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
Copy file name to clipboardExpand all lines: docs/design-docs/working-memory-triage.md
+11-11Lines changed: 11 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,8 +11,8 @@ Findings from CodeRabbit review + bug reports. Tracking resolution before merge.
11
11
12
12
### Major
13
13
14
-
-[]**R2 — Bulletin fallback gate too aggressive** (`prompts/en/channel.md.j2:172`)
15
-
Condition `not working_memory and not knowledge_synthesis` hides bulletin when working memory exists but knowledge synthesis hasn't run yet. Should gate only on `not knowledge_synthesis`.
14
+
-[x]**R2 — Bulletin fallback gate too aggressive** (`prompts/en/channel.md.j2:172`)
15
+
Condition `not working_memory and not knowledge_synthesis` hides bulletin when working memory exists but knowledge synthesis hasn't run yet. **Fixed in PR #570:** fallback now depends on missing `knowledge_synthesis`, and prompt data preserves that original absence.
Exclusion of "The user is the CEO" drops participant context with nowhere else to live until Phase 6 ships.
@@ -21,22 +21,22 @@ Findings from CodeRabbit review + bug reports. Tracking resolution before merge.
21
21
`task` from user input persisted verbatim; could capture secrets/PII. Truncate and scrub.
22
22
23
23
-[ ]**R5 — Dirty flag only bumps on merges** (`src/agent/cortex.rs:1958`)
24
-
Prunes and decays also change the memory set but don't trigger knowledge synthesis re-gen. Add `report.pruned > 0 || report.decayed > 0`.
24
+
Prunes and decays also change the memory set but don't trigger knowledge synthesis re-gen. Add `report.pruned > 0 || report.decayed > 0`.**Partial in PR #570:** prunes and merges now dirty synthesis; decay remains intentionally importance-only and needs a follow-up decision.
25
25
26
26
-[ ]**R6 — Dirty-flag synthesis not mutex-guarded** (`src/agent/cortex.rs:2106`)
27
-
Can race with warmup synthesis path. Should acquire the same synthesis mutex.
27
+
Can race with warmup synthesis path. Should acquire the same synthesis mutex.**Still open:** PR #570 single-flights background refresh tasks, but lock parity with warmup still needs a focused verify/fix pass.
28
28
29
-
-[]**R7 — Intraday/daily synthesis blocks main cortex loop** (`src/agent/cortex.rs:2166`)
30
-
LLM calls awaited inline inside `tokio::select!`; events stop draining during synthesis. Spawn as background tasks.
29
+
-[x]**R7 — Intraday/daily synthesis blocks main cortex loop** (`src/agent/cortex.rs:2166`)
30
+
LLM calls awaited inline inside `tokio::select!`; events stop draining during synthesis. **Fixed in PR #570:** intraday and daily synthesis now run as background tasks with single-flight scheduling and failure backoff.
31
31
32
-
-[]**R8 — Empty sections treated as successful no-op** (`src/agent/cortex.rs:2558`)
33
-
Returns before tasks can contribute to synthesis; dirty flag never clears, causing infinite rescheduling.
32
+
-[x]**R8 — Empty sections treated as successful no-op** (`src/agent/cortex.rs:2558`)
33
+
Returns before tasks can contribute to synthesis; dirty flag never clears, causing infinite rescheduling.**Fixed in PR #570:** true empty input clears the target version, while gather failures fail the synthesis path and keep it retryable.
Three cortex agent builders lack explicit max_turns; two have inline preamble strings instead of prompt files.
36
+
Three cortex agent builders lack explicit max_turns; two have inline preamble strings instead of prompt files.**Stacked in PR #571:** one-shot synthesis prompt hardening is kept out of PR #570 to keep the reliability diff focused.
37
37
38
-
-[]**R10 — Version snapshot after async work** (`src/agent/cortex.rs:2614`)
39
-
`knowledge_synthesis_last_version` read after LLM call; concurrent writes can advance the version past what was actually synthesized. Snapshot before.
38
+
-[x]**R10 — Version snapshot after async work** (`src/agent/cortex.rs:2614`)
39
+
`knowledge_synthesis_last_version` read after LLM call; concurrent writes can advance the version past what was actually synthesized. **Fixed in PR #570:** synthesis snapshots the target version before async work and only marks that version complete.
Raw events that didn't hit count/time trigger before midnight are lost from daily summary. Roll them into the summary. **Fixed:** daily summary now fetches all raw events, filters to the unsynthesized tail after the last intra-day synthesis, and includes them in the LLM input.
0 commit comments