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
feat(pm-stack): scheduled digest — daily/weekly PM digest from the canonical projection, delivered to chat and archived as a dashboard page #1278
Part of epic #1184 (PM stack coherence — wave 2, 2026-10-26).
The dashboard answers questions when Drew goes to it; nothing summarises the day on its own. A scheduled digest closes that gap: once a day (and a weekly roll-up) the PM system generates a digest from the canonical projection — what moved (started, merged, closed), what is blocked and on whom, what needs Drew (the NEEDS DREW tier, with reasons), what was done recently, and a quota outlook (pools near walls, walls predicted before reset) — delivered to chat and archived as a dashboard page so any day's digest can be re-read later. The digest is a rendering of the same projection the pages use (no separate reporting pipeline to drift), states the feed/orchestration freshness it was built from, and links every claim to the item it came from.
Acceptance:
A daily digest is generated on schedule from the canonical projection and posted to chat, with a weekly roll-up on the configured day.
Each digest is archived as a dashboard page (dated URL) rendering identical content to the chat delivery.
Every section (moved / blocked / needs Drew / done / quota outlook) links its items, and the digest header states the data freshness it was derived from.
A missed or stale source degrades the digest visibly (section marked stale with its age) instead of silently omitting it.
Acceptance criteria
A scheduled digest is generated from the canonical projection: daily plus a weekly roll-up, delivered to chat and archived as a dashboard page.
Every section (moved / blocked / needs Drew / done / quota outlook) links its items, and the digest header states the data freshness it was derived from.
A missed or stale source degrades the digest visibly (section marked stale with its age) instead of silently omitting it.
Notes: builds directly on the canonical projection and the freshness signalling landed in PR #1318. Verified live: no digest generation or archive page exists on main.
Risks: a digest that silently omits a stale source trains readers to trust an incomplete picture — the visible-degradation criterion is load-bearing.
Suggested approach: daily digest first (chat delivery + archived page), weekly roll-up as a parameterised variant once the daily is trusted.
Fresh check: PR feat(pm-stack): scheduled digest from the canonical projection (#1278) #5279 OPEN at head cfbb8b8d1 (round-3 Codex fix by lane code-n). Checks still pending — aggregator tests and typecheck + contract corpus (run 41780209422, queued ~1h in the Actions backlog). Codex rounds 1–3 were fixed and answered on their threads by prior lanes. Parked 20 min; on resume, verify checks green and the Codex state on cfbb8b8d1 fresh (disposition any round-4 findings), then merge and complete task 4988.
Expectation: On resume, confirm the Codex round for head cfbb8b8 (disposition any findings), confirm checks green, then merge and complete task 4988 as fixed_merged.
Done: PR #5279 merged (merge commit 10b3a4b); this issue auto-closed.
Local verification mirroring the queued CI checks (run 41780209422 still queued at merge): bun test 1527/1527 pass (digest tests 12/12), bun run contract:check passed; typecheck shows only a pre-existing main error in src/item-history.ts (untouched by this PR).
Codex: the current-head round completed; all 10 earlier findings were re-verified one by one against head cfbb8b8 (registry rows, kind-carrying archive links, freshness-before-archiving, quiet hours, reset-relative forecast, provider freshness + completion-time tests, EnvironmentFile, machine-twin identity, shared digests dir) and their threads resolved with the verification recorded on the PR.
Activity
developing-today commentedon Oct 27, 2026
CODE-402
dezren39 commentedon Oct 27, 2026
Intake review
Related: epic #1184 (wave 2 parent).
Notes: builds directly on the canonical projection and the freshness signalling landed in PR #1318. Verified live: no digest generation or archive page exists on main.
Risks: a digest that silently omits a stale source trains readers to trust an incomplete picture — the visible-degradation criterion is load-bearing.
Suggested approach: daily digest first (chat delivery + archived page), weekly roll-up as a parameterised variant once the daily is trusted.
158 remaining items
dezren39 commentedon Nov 4, 2026
🤖 Agent note · parked (CI pending)
cfbb8b8d1(round-3 Codex fix by lane code-n). Checks still pending — aggregator tests and typecheck + contract corpus (run 41780209422, queued ~1h in the Actions backlog). Codex rounds 1–3 were fixed and answered on their threads by prior lanes. Parked 20 min; on resume, verify checks green and the Codex state oncfbb8b8d1fresh (disposition any round-4 findings), then merge and complete task 4988.dezren39 commentedon Nov 4, 2026
🤖 Agent note · parked (CI pending)
cfbb8b8d1unchanged. Checks still pending — aggregator tests and typecheck + contract corpus, run 41780209422, statusqueuedsince 2026-11-04T05:35Z (~1h, Actions backlog). Codex rounds 1–3 all fixed and answered on their threads; no round-4 review of headcfbb8b8d1posted yet. Parked task 4988 for 20 min; on resume, verify checks green and Codex state oncfbb8b8d1fresh, then merge PR feat(pm-stack): scheduled digest from the canonical projection (#1278) #5279 and complete task 4988.dezren39 commentedon Nov 4, 2026
🤖 Agent note · parked
queue/4988-1278-pm-digestdezren39 commentedon Nov 4, 2026
🤖 Agent note · picked up (resume)
Merge pull request #5279 from developing-today/queue/4988-1278-pm-digest
dezren39 commentedon Nov 4, 2026
🤖 Agent note · done (fixed & merged)
Done: PR #5279 merged (merge commit 10b3a4b); this issue auto-closed.
bun test1527/1527 pass (digest tests 12/12),bun run contract:checkpassed; typecheck shows only a pre-existing main error insrc/item-history.ts(untouched by this PR).