Skip to content

fix(graph): complete absent residual provenance cleanup - #248

Merged
Kashkovsky merged 1 commit into
mainfrom
codex/fix-residual-provenance-terminal-absence
Aug 27, 2026
Merged

fix(graph): complete absent residual provenance cleanup#248
Kashkovsky merged 1 commit into
mainfrom
codex/fix-residual-provenance-terminal-absence

Conversation

@Kashkovsky

Copy link
Copy Markdown
Owner

Summary

  • terminalize durable provenance cleanup when its exact bound v2 sidecar was already removed by foreground view cleanup
  • prove target absence through the private contained directory chain while preserving malformed, symlinked, legacy-v1, mismatched, and ambiguous state
  • cover the complete foreground removal to residual completion path with Effect-native tests

Defect

Foreground graph view removal captures v2 provenance evidence, commits durable residual cleanup authority, and then removes the exact sidecar. When residual maintenance later reached provenance, the missing sidecar read as legacy-unknown and was retried forever as invalid-sidecar.

Safety

The new terminal path requires a syntactically valid stored token for the exact checkout and worktree plus a containment-safe current absence proof under the shared provenance lock. Existing legacy-v1, invalid, symlinked, replacement, permission-ambiguous, or containment-ambiguous state remains preserved or deferred.

Verification

  • focused changed-surface Vitest: 10 files, 88 tests passed
  • source and test TypeScript checks passed
  • strict changed-file oxlint and Prettier passed
  • git diff check passed
  • independent critical/important review: clean

Property-testing assessment: no new property was added because this is one exact two-stage regression; existing removed-view worker properties already cover generalized phase and retry transitions.

Global development install is intentionally deferred while the Threadnote 4.4 release worktree owns the singleton runtime.

@Kashkovsky
Kashkovsky merged commit 1bab52e into main Aug 27, 2026
61 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant