fix(storage): prove exact cache cleanup evidence by joshuajbouw · Pull Request #1793 · astrid-runtime/astrid · GitHub
Skip to content

fix(storage): prove exact cache cleanup evidence - #1793

Draft
joshuajbouw wants to merge 6 commits into
codex/1790-windows-job-object-certificationfrom
codex/1792-windows-cache-invalidation-cleanup
Draft

fix(storage): prove exact cache cleanup evidence#1793
joshuajbouw wants to merge 6 commits into
codex/1790-windows-job-object-certificationfrom
codex/1792-windows-cache-invalidation-cleanup

Conversation

@joshuajbouw

@joshuajbouw joshuajbouw commented Sep 1, 2026

Copy link
Copy Markdown
Member

Linked Issue

Tracking #1792. Related: #1710, #1790, #1818.

Summary

Preserved Windows cache-invalidation cleanup candidate stacked on #1791.

The source reached dual exact-head acceptance, but the Windows x86 oracle failed before the provider-backed storage, trusted-path, process-zero, and native WinFsp gates were established. Windows publication is parked under #1818, so this PR is not a merge candidate for 2026.9.0.

Changes

  • Runs concurrent provider cleanup while emitting canonical evidence order.
  • Fails closed when stopped-provider identity cannot be proven.
  • Adds cache, replacement-listener, and transient-probe falsifiers.

Verification

  • Independent GLM and Luna source reviews accepted the current head.
  • Exact-head Windows workflow failed in trusted staging; native WinFsp was skipped.
  • No Windows certification claim is made.

AI / Tool Assistance

Assisted-by: Codex:GLM-5.3 Flash

AI assistance was used for implementation and regressions. Independent review and certification remain maintainer-owned.

Checklist

  • Source review completed
  • Failed certification gate disclosed
  • Ready to merge

Bound the provider cache invalidation phase waits and make every spawned mount or revocation task owned, cancelled, and joined across success, timeout, assertion failure, and unwind. Add typed test-visible projection cleanup evidence that names the first failed stage without changing production success or retained-failure semantics.

Closes: #1792
Refs: #1710
Signed-off-by: Joshua J. Bouw <jjb@unicity-labs.com>
Keep test-owned JoinHandles owned through timeout and body unwinds, abort unfinished tasks observably, join terminal settlement, and preserve body panic payloads while collecting finisher failures separately. Record typed cleanup stages on the actual projection revoke and invalidation paths without changing production authority or retained-failure semantics.

Closes #1792

Refs #1710

Signed-off-by: Joshua J. Bouw <jjb@unicity-labs.com>
@joshuajbouw joshuajbouw changed the title fix(storage): own timeout tasks and expose cleanup evidence fix(storage): settle owned cleanup tasks and evidence Sep 1, 2026
Bind typed cleanup evidence to unique executions, assert the complete ordered success sequence, and prove exact first-failure termination. Add parallel evidence and Windows executable-suffix falsifiers while recording normal cache removal.

Closes #1792

Refs #1710

Signed-off-by: Joshua J. Bouw <jjb@unicity-labs.com>
@joshuajbouw joshuajbouw changed the title fix(storage): settle owned cleanup tasks and evidence fix(storage): prove exact cache cleanup evidence Sep 1, 2026
Stop providers in canonical component order, terminate evidence at the first failure, bind each stop to its exact mount ID and observed acknowledgement, and consume stale invalidation evidence in an explicit scope. Split existing test support to preserve source line caps.

Closes #1792

Refs #1710

Signed-off-by: Joshua J. Bouw <jjb@unicity-labs.com>
Concurrently attempt every retained provider stop, emit canonical evidence once, and fail closed for unowned retained generations. Keep cache completion evidence in its cleanup scope and split oversized stop/cache regression modules.

Closes #1792

Refs #1710

Signed-off-by: Joshua J. Bouw <jjb@unicity-labs.com>
Signed-off-by: Joshua J. Bouw <jjb@unicity-labs.com>
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