fix: 6 bugs (timeline path value, seer SSE cursor, erasure checksum, subtle compare, build status code, dead WorkerName branch)
Some checks failed
Test / test (push) Has been cancelled

This commit is contained in:
drjones
2026-07-05 07:06:59 +00:00
parent 3678b199d0
commit f923b1ef54
6 changed files with 61 additions and 16 deletions

View File

@@ -51,6 +51,47 @@ type SeerEvent struct {
CreatedAt string `json:"created_at"`
}
// ListSeerEventsSince returns events newer than the given SQLite timestamp string (exclusive).
func (s *Store) ListSeerEventsSince(since string, limit int) ([]SeerEvent, error) {
if limit <= 0 {
limit = 50
}
var rows interface {
Close() error
Next() bool
Scan(dest ...any) error
Err() error
}
var err error
if since == "" {
rows, err = s.db.Query(`
SELECT id, host_id, event_type, payload_json, created_at
FROM seer_events ORDER BY created_at ASC LIMIT ?`, limit)
} else {
rows, err = s.db.Query(`
SELECT id, host_id, event_type, payload_json, created_at
FROM seer_events WHERE created_at > ? ORDER BY created_at ASC LIMIT ?`, since, limit)
}
if err != nil {
return nil, err
}
defer rows.Close()
var events []SeerEvent
for rows.Next() {
var e SeerEvent
var hostID sql.NullString
if err := rows.Scan(&e.ID, &hostID, &e.EventType, &e.PayloadJSON, &e.CreatedAt); err != nil {
return nil, err
}
if hostID.Valid {
e.HostID = hostID.String
}
events = append(events, e)
}
return events, rows.Err()
}
func nullString(s string) sql.NullString {
if s == "" {
return sql.NullString{}