fix(review round 1): daemon PAT-header auth, job pruning, session-split batches, streaming tars, seed cleanup, ping/pong, byte caps, branch switch, slug --, ctx cancel, Init:true, pagination, latest/before events; web newest-window history + load-older, offline busy gate, staleness guards, memo store, auth probe, scroll key, focus-visible, draft restore, poll dedup; 106+181 tests, coverage 96.2%/95.1%+

This commit is contained in:
Raphael Westphal
2026-08-18 18:49:52 +02:00
parent 64e45e1a82
commit 6aac763563
25 changed files with 2564 additions and 959 deletions
+21 -3
View File
@@ -169,7 +169,27 @@ func (s *Server) handleSessionEvents(w http.ResponseWriter, r *http.Request) {
if limit > maxEventsLimit {
limit = maxEventsLimit
}
events, err := s.store.EventsAfter(id, after, limit)
var (
events []Event
err error
)
switch {
case r.URL.Query().Get("latest") != "":
if r.URL.Query().Get("latest") != "1" {
writeError(w, http.StatusBadRequest, "invalid latest")
return
}
events, err = s.store.EventsLatest(id, limit)
case r.URL.Query().Get("before") != "":
before, perr := strconv.ParseInt(r.URL.Query().Get("before"), 10, 64)
if perr != nil || before < 0 {
writeError(w, http.StatusBadRequest, "invalid before")
return
}
events, err = s.store.EventsBefore(id, before, limit)
default:
events, err = s.store.EventsAfter(id, after, limit)
}
if err != nil {
writeError(w, http.StatusInternalServerError, err.Error())
return
@@ -360,7 +380,5 @@ func (s *Server) webHandler(webdist string) http.Handler {
})
}
var _ = daemonVersion
// daemonToken is set by main from LVMH_TOKEN (single process, read-only).
var daemonToken string