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
fix: close 3 P1s from the fix-delta re-audit (merge gate, v36 seed, Pi ownership)
Re-audit of the audit-fix commits surfaced 3 P1s against the zero-P1 ship bar:
P1 #1 — ctx_memory MERGE skipped the workspace category gate. My earlier P0 fix
routed update/archive through memoryVisibleToTool but left merge on the weaker
memoryBelongsToProject / storedPathBelongsToIdentity (the commit comment claimed
parity it didn't have). A primary agent could thus consolidate a foreign member's
memory in a non-shared category — the exact invisible-mutation the P0 closed for
update/archive. Routed merge through memoryVisibleToTool on BOTH harnesses.
+2 plugin regression tests (foreign non-shared merge refused; foreign shared
merge allowed).
P1 #2 — v36 created session_projects empty, so every session chunk-embedded
BEFORE v36 became invisible to the project-scoped backfill/count JOINs. Seed the
table in the migration from compartment_chunk_embeddings (the only pre-existing
source carrying session_id+harness+project_path — compartments has NO project_path
column, so the auditor's proposed SELECT FROM compartments was unrunnable).
Seed only unambiguous sessions (single distinct project_path); ambiguous
pre-scope-bug sessions are left for the idempotent heal path. Guarded on the
source table existing. +1 seed test (single-project seeded per-harness, ambiguous
skipped).
P1 #3 — Pi never recorded session→project ownership (grep-confirmed zero calls),
so Pi-published compartments were invisible to /ctx-embed-history's project scope.
Wired recordSessionProjectIdentity into Pi's updateSessionProjectTracking, fired
only on the once-per-(session,identity) transition it already detects — ctx.cwd
is authoritative in Pi so every observation is host-safe; no per-pass write.
Context the auditors lacked (verified via callgraph): the project-WIDE passive
sweep is test-only now (its dream-timer driver was removed in 9a91ac7); the only
live backfill is /ctx-embed-history, which already self-records ownership. So #2/#3
were latent (half-populated table) rather than a live-path break — fixed anyway so
the v36 table ships complete.
plugin 2029/0, Pi 461/0, biome clean both.
Co-authored-by: Alfonso [Magic Context] <288211368+alfonso-magic-context@users.noreply.github.com>
0 commit comments