Repository navigation
v0.12.1 P1 post-release audit: context-cache integrity, simplicity gate, symlinks & ignores #87
Description
Why this issue exists
v0.12.0 has actually been published: GitHub release and npm package. Verified main/tag package v0.12.0, merged PR #83, Ubuntu+Windows PR/main CI green; original release publish job failed on registry propagation but successful failed-job rerun run #38404132387 confirmed npm view development-kit@0.12.0 version and status already-published. Release Issue #86 has a fresh GitHub Actions success comment.
Post-publication audit exception: Merged PR #83 still exposes 12 unresolved GitHub review threads. Eight previously known findings F1–F8 have claimed implementer fixes/tests but reviewer thread resolution/provenance wasn't completed in GitHub. Four new Codex source-bound findings from final PR review have no follow-up disposition. Treat new findings as potential v0.12.1 patch blockers; don't represent them as accepted or resolved merely because package already published.
Four new findings to reproduce, correct and independently verify
- P1: Complexity-triggered simplicity review is advisory, not enforced.
computeComplexityDeltareturnsrequiresSimplicityReview, but production run creation/acceptance do not consume it. Gate bypass when new dependency, large diff or risk>=3. Add contract-bound immutable complexity provenance, enforcesimplicity-reviewerand risk-triggered requirements in canonical acceptance, adversarial tests. - P1: Context-cache fingerprint laundering. Cached
inputsortargetFactscan be changed while preserving their claimed nested fingerprints and recomputing outer hash, making malicious/stale facts appear fresh. Recompute and verify selector/input/cache-ID fingerprints from exact nested payloads; test cross-session and tampered entries, enforce before capsule propagation. - P2: Symlinked context-cache parent permits writes outside project root. Lexical
path.relativealone does not defend against symlinked parent/subfolder. Reject symlinks at every parent component or enforce realpath/identity and no-follow semantics; test Windows junction/reparse compatibility and Linux symlink attacks; preserve no-destructive user data guarantees. - P2: Missing managed runtime ignores in installed consumer projects.
runtime/bootstrap/git-bootstrap.mjsmanaged ignore list omits telemetry and context-cache generated files. Add appropriate.development-kit/telemetry/,.development-kit/cache/entries, verify bootstrap on fresh consumer repo, preserve existing .gitignore/user entries.
Mandatory follow-through
- Verify/reconcile all 12 PR release(v0.12): ship stable-state features, defer T04 to v0.13 #83 reviewer threads, including eight earlier claimed fixes, against the exact published tag and real tests. Preserve authored history and independent reviewer provenance.
- Implement and validate P1 fixes first. If exploitation is material, prioritize v0.12.1 patch, don't wait for v0.13's major architecture programme.
- Run full
npm run release:validate, Windows/Ubuntu CI, consumer npm tarball smoke, security/architecture review on patch SHA; do not bypass independent acceptance. - Publish verified patch only with correct new version and release authorization/policy. This issue is not an authorization to retag or mutate immutable v0.12.0.
- Keep v0.13 T04 State Engine V2 / full Windows restore priority intact (Issue v0.13.0 P0 — State Engine V2 T04 with complete Windows crash-durable restore #84 / T04 P1: Windows restore-journal deletion must follow durable directory rename #73).
All four findings are in PR #83 unresolved review threads. Source reviewed commit a71309c3625b14c3e015971447537be691c06551, merged main b46844585f0f303e5e666b09946db0e5a5c376ff.
Activity