Repository navigation
acpmux: fix closed summary cache invalidation - #31635
Conversation
Review of manaflow-ai/cmux #31635 at e2428a5What I checked: I diffed merge-base 6e3e5d4...e2428a5 (5 files, +104/-18) and read the touched code in mod.rs ( The three blocking findings of the #31529 review
Old follow-ups:
The red: remote_group_cli.rs::interrupted_grouped_ephemeral_is_purged_after_successful_openJudgement: unrelated to this PR. It is a race in the test that already exists on base.
Other checks
Follow-ups
Follow-ups: skip the cache insert for purged/replaced sessions; invalidate on config reload; bound the map size; the purge test should exercise a real purge; fix the race in the remote_group_cli purged-event test separately. Review (claude opus-5.5 medium subagent): SHIP at e2428a5 |
|
Review (subagent claude-opus-5-5 medium): SHIP at 316bc68 Checked the whole diff and the last commit. In Follow-ups:
|
Delta review of manaflow-ai/cmux #31635: e2428a5 -> 316bc68Scope: (1) Event comes after the session stops resolving, on every path
(2) Consumers still receive it
(3) Error paths
(4) Locks
(5) Why the failure got likelier, and whether this fixes it
Follow-ups:
Review (claude opus-5.5 medium subagent): SHIP at 316bc68 |
…pmux-cache-followups # Conflicts: # cmux-tui/crates/acpmux/src/hub/mod.rs
|
Delta review of #31635 at 8d25e0b (merge of feat-cmux-next 27f0109 into 316bc68, which had SHIP: #31635 (comment)).
Land on the checks at this head: the acpmux suite, clippy and the purge test rerun at 8d25e0b. Compare any red by name against base 27f0109. Follow-ups: unchanged from the previous review. Review (claude opus-5.5 medium): SHIP at 8d25e0b |
|
Found 2 test failures on Blacksmith runners: Failures
|
|
Review (subagent claude-opus-5-5 medium): SHIP at 8d25e0b Delta from the SHIP at 316bc68. Follow-ups: none in the code. CI note, not a code finding: acpmux tests, clippy/panic ratchet, protocol IR and api-compat at this head fail on |
…pmux-cache-followups
|
Delta review of #31635 at 1ae48f9: a clean merge of feat-cmux-next b732874 (includes #31717, the Cargo.lock fix) into 8d25e0b, which had SHIP (#31635 (comment)). The PR's own diff against its new base ( Land on the checks at this head (the acpmux suite, clippy and the purge test), with any red compared by name against base b732874. Follow-ups: unchanged. Review (claude opus-5.5 medium): SHIP at 1ae48f9 |
|
Review (subagent claude-opus-5-5 medium, carried): SHIP at 1ae48f9 This is a clean base merge of 8d25e0b (SHIP at #31635 (comment)) with feat-cmux-next b732874, which brings in the #31717 Cargo.lock fix. The head tree 46ef725c is byte-identical to |
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Shipped in:
|
* base red: acpmux builds for Windows again (meta_save test seam's SIGKILL is unix only) #31635's hold_seam calls libc::kill/SIGKILL, which libc has no Windows binding for, so cargo check --target x86_64-pc-windows-gnu -p acpmux fails. Off unix the seam aborts instead. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-98039a45cb5769efd845 * rustfmt Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-98039a45cb5769efd845 * base red: cmux-tui-core builds for Windows again (cache-TTL reminder reload is unix only) #31770 calls Mux::reload_cache_ttl_timers from settings.rs on every target, but it lives in agent_chat_notices, a #[cfg(unix)] module. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-98039a45cb5769efd845 * meta_save seam: no abort off unix (the crash ratchet counts it) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-98039a45cb5769efd845 --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Follow-up correctness fixes for the closed-summary cache:
write_snapshot, avoiding nested metadata and permission locks in the writer;Leo asked: “you (or other guys) should audit my computer and see what is taking up all the CPU and optimize against that.” The prior cache benchmark on a profiled Mac running the NEXT nightly measured the same 7,828-record fixture (7,295 closed) at 227.378→150.376 ms for watch/list, 207.694→149.910 ms for sessions?usage, and 235.739→181.206 ms for peer summaries. These follow-ups preserve those bytes and invalidation behavior.
measure_7828_full_idle_closed_summary_cachemeasure_7828_full_idle_closed_summary_cachemeasure_7828_full_idle_closed_summary_cacheValidation runs through cmux-ci for the acpmux test suite and clippy.
agent-identity footer --repo manaflow-ai/cmux
Agent session: agent session
Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Fixes correctness bugs in the closed-summary cache so cached rows never serve stale data, and reorders the purge event so watchers can't resolve a just-purged session.
write_snapshotonly evicts entries, avoiding nested metadata and permission locks in the writer.Written for commit 1ae48f9. Summary will update on new commits.