Skip to content

Commit 57d93eb

Browse files
Ufuk Altinokalfonso-magic-context
andcommitted
docs: record A52 — config-conflict-trust audit finding is a false positive (migrator refuses-on-conflict)
Co-authored-by: Alfonso [Magic Context] <288211368+alfonso-magic-context@users.noreply.github.com>
1 parent 4f5701d commit 57d93eb

1 file changed

Lines changed: 17 additions & 0 deletions

File tree

docs/AUDIT-KNOWN-ISSUES.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -845,3 +845,20 @@ stale. Verified a FALSE POSITIVE: the compiled check evaluates the
845845
whole compiled-check lifecycle ONLY when `surface_condition` changes
846846
(`smartConditionChanged` in `storage-notes.ts`), which is correct — a body edit
847847
doesn't change what the check tests, so re-compiling would be wasted work.
848+
849+
### A52. Config loader trusts a PRESENT shared CortexKit config (legacy-read fallback is absent-only) — correct by construction
850+
An audit flagged that `loadPluginConfigDetailed` only reads the running harness's
851+
legacy config when the shared CortexKit base is **absent**, so a shared config
852+
that is "present but conflicted" would be trusted (GC not suppressed) and could
853+
drive a destructive embedding sweep under a cross-harness conflict. Traced as a
854+
FALSE POSITIVE grounded in the migrator's invariant: a *present* shared config is
855+
NEVER a conflicted merge. `migrateConfigFile` (`migrate-config-location.ts`)
856+
**refuses on conflict** — when the OpenCode/Pi legacy pair differs, or a present
857+
target differs from legacy, it returns `conflict: true` and writes **nothing**,
858+
leaving the shared base absent → the absent-path legacy-read fallback handles it.
859+
The migrator only ever writes the shared file from a single source (or matching
860+
sources). So "shared present" means "the user's authoritative, conflict-free
861+
config" — trusting it (and letting GC run against the model it names) is correct,
862+
not a data-safety hole. The destructive-sweep scenario requires a conflicted
863+
shared file to exist, which the migrator structurally never produces. If a user
864+
hand-authors a shared config, that IS their authoritative intent by definition.

0 commit comments

Comments
 (0)