You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
impl(dashboard): comments loop never exercised since the Oct 25 demo - verify triage/GitHub-post loop end-to-end and retire demo data #1145
Evidence (live review 2026-10-26 ~22:40 CDT, laptop loopback + gh, cross-checked): /api/comments.json tonight contains exactly the 3 slice-3 acceptance-demo comments from 2026-10-25T22:27Z ("Acceptance demo (slice 3): a plain note...") - no real comment has flowed through since, and there is no evidence the message->orchestrator-triage or github->poster loop has run since the demo. Drew's triage-from-dashboard requirement rides on this loop.
Proposal
(1) Run one real end-to-end pass: a message comment on a real item -> orchestrator triages -> state flips; one github-kind comment -> poster posts -> github-result recorded. (2) Mark/retire the 3 demo comments (delete or badge as demo). (3) Add pending-message/github counts to the health page so an unworked queue is visible.
Acceptance
Evidence (comment ids + GitHub URL) of both loops completing, posted on this issue.
One real end-to-end pass is evidenced on this issue (comment ids + GitHub URL): a message comment on a real item is triaged by the orchestrator and its state flips; one github-kind comment is posted by the poster and its github-result is recorded.
The 3 slice-3 demo comments from 2026-10-25 are retired or visibly badged as demo data, so they are no longer indistinguishable from real comments.
Pending-message and pending-github counts appear on the health page, so an unworked comment queue is visible.
Fleet monitor intake pass, 2026-10-28. Verified still live this run: the issue is open, and no merged PR references it.
Related: Refs #906 and #941 (author spoofing — related, separate). The demo comments date to the 2026-10-25 slice-3 acceptance demo. No merged PR references this issue (checked this run); still open, no comments — still live.
Notes / risks: Drew's triage-from-dashboard requirement rides on this loop; right now there is no evidence it has run since the demo, and demo data sitting indistinguishable from real data makes the next real comment easy to miss.
Suggested approach: Run the two loop passes with one real item each and post the evidence (comment ids + GitHub URL) here; badge or delete the 3 demo comments; add the pending counts to the health page in the same pass so a future stall is visible.
Labels normalized this pass and an ## Acceptance criteria section appended to the body (original text preserved verbatim above it), formalizing the acceptance prose already in the issue. Marked meta/enriched.
Live exercise for #1145 (queue task 3037): a real github-kind dashboard comment, posted to GitHub by the poster step so the pending -> posted loop can be verified end-to-end. Its own GitHub URL is recorded back into the dashboard store via /api/comments/github-result.
Dashboard comment id: dc-mvt66f1w-2wkruw (store: ~/.local/state/pm-aggregator/comments.json on the laptop).
Health counts live. PR fix(aggregator): expose pending comment counts on /api/health (#1145) #2124 merged after CI green (run ✓, treefmt ✓). The laptop primary ff-pulled to b2b885b9 and pm-aggregator restarted on it. Live GET /api/health on the deployed aggregator returned "comments": {"pendingMessages": 0, "pendingGithub": 0, "total": 5} — and after the demo retirement below, "total": 2, proving the counts read the live store (the PR also adds the seeded-store boot test api-health-comments.test.ts).
Message loop end-to-end. Real message comment dc-mvt65o3z-19sh5t posted via POST /api/comments on this issue's ref → appeared as the sole entry in the orchestrator's queue (GET /api/comments.json?kind=message&state=new) → POST /api/comments/triage returned {"triaged": 1} → its state is now triaged and the new-queue is empty.
Demo comments retired. The three 2026-10-25T22:27Z slice-3 demo comments (dc-mvoee41p-1rr63t, dc-mvoee41v-23io1f, dc-mvoee421-3m7poo) were deleted from the live store (~/.local/state/pm-aggregator/comments.json on the laptop; service stopped, entries removed, service restarted — the sanctioned method from the acceptance text). The store now holds exactly the two real comments from steps 2–3, verified via GET /api/comments.json after restart.
One operational note: /api/health assembly takes ~1–3 minutes on the laptop (provenance priming fans out to upstreams), so short-timeout probes see a timeout, not an error — worth knowing for any watchdog tuning.
Activity
developing-today commentedon Oct 27, 2026
CODE-281
dezren39 commentedon Oct 28, 2026
Intake review
Fleet monitor intake pass, 2026-10-28. Verified still live this run: the issue is open, and no merged PR references it.
Related: Refs #906 and #941 (author spoofing — related, separate). The demo comments date to the 2026-10-25 slice-3 acceptance demo. No merged PR references this issue (checked this run); still open, no comments — still live.
Notes / risks: Drew's triage-from-dashboard requirement rides on this loop; right now there is no evidence it has run since the demo, and demo data sitting indistinguishable from real data makes the next real comment easy to miss.
Suggested approach: Run the two loop passes with one real item each and post the evidence (comment ids + GitHub URL) here; badge or delete the 3 demo comments; add the pending counts to the health page in the same pass so a future stall is visible.
Labels normalized this pass and an
## Acceptance criteriasection appended to the body (original text preserved verbatim above it), formalizing the acceptance prose already in the issue. Markedmeta/enriched.69 remaining items
dezren39 commentedon Oct 29, 2026
🤖 Agent note · parked
dezren39 commentedon Oct 29, 2026
🤖 Agent note · picked up
fix(aggregator): expose pending comment counts on /api/health (#1145) (…
dezren39 commentedon Oct 29, 2026
Live exercise for #1145 (queue task 3037): a real github-kind dashboard comment, posted to GitHub by the poster step so the pending -> posted loop can be verified end-to-end. Its own GitHub URL is recorded back into the dashboard store via /api/comments/github-result.
Dashboard comment id:
dc-mvt66f1w-2wkruw(store:~/.local/state/pm-aggregator/comments.jsonon the laptop).dezren39 commentedon Oct 29, 2026
🤖 Agent note · done
b2b885b9) · prior PR feat(aggregator): pending dashboard-comment counts on /health (#1145) #2098 (merged,73ba3a96)Evidence — all acceptance criteria met
b2b885b9and pm-aggregator restarted on it. LiveGET /api/healthon the deployed aggregator returned"comments": {"pendingMessages": 0, "pendingGithub": 0, "total": 5}— and after the demo retirement below,"total": 2, proving the counts read the live store (the PR also adds the seeded-store boot testapi-health-comments.test.ts).dc-mvt65o3z-19sh5tposted viaPOST /api/commentson this issue's ref → appeared as the sole entry in the orchestrator's queue (GET /api/comments.json?kind=message&state=new) →POST /api/comments/triagereturned{"triaged": 1}→ its state is nowtriagedand the new-queue is empty.dc-mvt66f1w-2wkruwcreated withgithubState: pending→ the poster posted it to GitHub (the comment immediately above this one, impl(dashboard): comments loop never exercised since the Oct 25 demo - verify triage/GitHub-post loop end-to-end and retire demo data #1145 (comment)) →POST /api/comments/github-resultrecorded it: statepostedwith that URL in the store.dc-mvoee41p-1rr63t,dc-mvoee41v-23io1f,dc-mvoee421-3m7poo) were deleted from the live store (~/.local/state/pm-aggregator/comments.jsonon the laptop; service stopped, entries removed, service restarted — the sanctioned method from the acceptance text). The store now holds exactly the two real comments from steps 2–3, verified viaGET /api/comments.jsonafter restart.One operational note:
/api/healthassembly takes ~1–3 minutes on the laptop (provenance priming fans out to upstreams), so short-timeout probes see a timeout, not an error — worth knowing for any watchdog tuning.