Repository navigation
Closed
Labels
app/pm-stackpm-stack (Pad/Grist) in developing-today/codepm-stack (Pad/Grist) in developing-today/codeeffort/mMedium: expected under 1 day of workMedium: expected under 1 day of workenhancementNew feature or requestNew feature or requestkind/enhancementmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedIntake review done: acceptance criteria, links, and normalized labels addednextOrg Project gate: queued next — orchestrator adds to the boardOrg Project gate: queued next — orchestrator adds to the boardpriority/normalOrdinary priority (the default)Ordinary priority (the default)source/humanFiled directly by a humanFiled directly by a human
Description
Gap
The PM stack has no first-class event log. The audit/activity pieces exist but are scattered across separate stores in the aggregator state dir (~/.local/state/pm-aggregator/):
- the actions store (dashboard triage actions + their applied outcomes)
- the orchestrator's published actions[] in orchestration.json
- the session registry (agent/session identity + outcomes)
- the dashboard comments store (note / message / github kinds)
- per-item derived activity (derive.ts merges linked refs' comments — but comment resolution depends on the projector, which is not deployed; see code#1199)
There is no single chronological "what happened across the stack" stream a human (or the /today page) can read.
What to build
- An append-only event record in the aggregator: {at, actor (drew / orchestrator / keeper / job id / session), kind (action-applied, tier-change, comment, session-outcome, status-write, wall, ...), ref (item/session/goal), summary}.
- Writers: the aggregator's own action-result route, the orchestration publish step, and the session registry merge — events are emitted where the facts already occur, not scraped afterward.
- A page + machine-first /api twin (e.g. /events and /api/events.json) with filters by kind/ref/actor, newest first, bounded retention (e.g. 30 days or N=5000, whichever first).
- /today links its "progressed since last run" entries to the underlying events.
Acceptance
- Dashboard actions, orchestration tier changes, and session outcomes all appear in one stream with timestamps and refs.
- The /api twin carries the same records; filters work.
- Writing an event never blocks the underlying action (fire-and-forget append with the same durability as the existing stores).
Raised by Drew 2026-10-28 in the PM-stack non-Git data review; companion to the roadmap-files integration issue filed the same day.
Acceptance criteria
- Dashboard actions, orchestration tier changes, and session outcomes all appear in one chronological stream with timestamps and refs.
- The /events page and its /api/events.json twin carry the same records; filters by kind/ref/actor work.
- Writing an event never blocks the underlying action (fire-and-forget append with the same durability as the existing stores); retention is bounded (e.g. 30 days or N=5000, whichever first).
Metadata
Metadata
Assignees
Labels
app/pm-stackpm-stack (Pad/Grist) in developing-today/codepm-stack (Pad/Grist) in developing-today/codeeffort/mMedium: expected under 1 day of workMedium: expected under 1 day of workenhancementNew feature or requestNew feature or requestkind/enhancementmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedIntake review done: acceptance criteria, links, and normalized labels addednextOrg Project gate: queued next — orchestrator adds to the boardOrg Project gate: queued next — orchestrator adds to the boardpriority/normalOrdinary priority (the default)Ordinary priority (the default)source/humanFiled directly by a humanFiled directly by a human
Activity
developing-today commentedon Oct 28, 2026
CODE-702
dezren39 commentedon Oct 28, 2026
Acceptance clarification (Drew, 2026-10-28): the event stream needs a front-end endpoint too, not only the API — a user-facing /events page in the dashboard (chronological stream, filterable by kind/ref/actor in the UI, linked from /today's progress entries) in addition to the machine-first /api/events.json twin. Both are required; an API-only delivery does not close this issue.
dezren39 commentedon Oct 28, 2026
Intake review
Related: #1744 (shared PM-stack schema — this log should be designed against it), #1738 (roadmap files, companion filed the same day), #1199 (projector not deployed; per-item derived activity depends on it).
Notes: Verified still live at intake (2026-10-28T17:45Z): no cross-stack event log exists; the scattered stores named in the body (actions store, orchestration.json actions[], session registry, comments store) are the current state. Acceptance criteria section appended formalizing the body's
## Acceptancelist; original body preserved above it.Risks: Writing events at three separate emission points can double-count if the orchestration publish and the session-registry merge both fire for one fact — pick a single emitter per fact. Retention bound must be enforced from day one or the append-only file becomes the next unbounded store.
Suggested approach: Define the event record + append helper in the aggregator first, wire the action-result route as the first writer, ship /api/events.json with the page, then add orchestration and registry writers.
🤖 Fleet monitor intake enrichment · 2026-10-28
dezren39 commentedon Nov 1, 2026
🤖 Agent note · picked up
repo-health-code-pilot)247 remaining items
dezren39 commentedon Nov 3, 2026
🤖 Agent note · parked
dezren39 commentedon Nov 3, 2026
🤖 Agent note · parked
PM_AGG_EVENTS_FILEnot wired in install.sh) and a P2 (orchestration actions with free-text targets are dropped by event validation). Both are accepted as real, in-scope bugs; replies are posted on both threads. Per the Codex findings gate, PR feat(pm-stack): cross-stack event log — EventsStore, writers, /events + /api/events.json (#1739) #4489 must not merge past them.queue/6400-1739-event-log(laptop worktree/home/user/git/fleet/6400), re-push, confirm Codex clean + guard check, then merge and complete task 6400 as fixed_merged.dezren39 commentedon Nov 3, 2026
🤖 Agent note · picked up
fix(pm-agg): wire PM_AGG_EVENTS_FILE in install.sh; preserve free-tex…
Merge pull request #4489 from developing-today/queue/6400-1739-event-log
dezren39 commentedon Nov 3, 2026
🤖 Agent note · done