Skip to content

fix: preserve FileOps cancellation through bounded helper execution - #87

Merged
De-pitcher merged 3 commits into
mainfrom
fix/76-cancellation-output-regressions
Oct 18, 2026
Merged

De-pitcher merged 3 commits into
mainfrom
fix/76-cancellation-output-regressions

Conversation

@De-pitcher

ghost commented Oct 18, 2026 •

Copy link
Copy Markdown
Owner

FileOps previously executed filesystem operations in the parent while the fixed I/O helper rejected its missing local execution interface. Route operations through the owned helper, retain pre/post mutation snapshots for conflict-aware undo, and preserve cancellation when post-state acquisition fails or is cancelled again.

Keep guarded handlers inside their existing timeout contexts instead of redundant wait_for child tasks. This retains request ownership through repeated cancellation and finalization, addressing the Python 3.11 surviving-helper failure found in CI. Standalone output limits, policy-filtered bounded directory acquisition, byte-exact undo and unsupported-interface rejection remain covered.

Empirical teardown fixtures now publish PID markers atomically after closing their staging writes. This prevents readers from treating an empty newly created file as a complete marker. All original liveness, ancestry, teardown, deadline and negative-control assertions remain unchanged.

Validation:76independent focused tests for the runtime correction, plus5independent installed-source empirical cases for the marker correction; scoped format/lint/mypy pass. The actual marker writer is invisible until its data is complete and both launcher/writer are verified terminated after the probe. Source origins and149inputs are bound, with148protected inputs unchanged in the final fixture correction.

At earlier head e4acea2, hermetic715tests passed with85.17%coverage, all4Linuxversions andWindows3.11passed, and Docker/governance passed. Windows3.13exposed the fixture race; Windows3.12/3.14were cancelled. This test-only correction requires a fresh complete platform/coverage gate. Release and live-provider acceptance remain separate.

Accountable contributor:@De-pitcher. Implementation:Antigravity and OpenCode (host-reported DeepSeek V4.1 Flash Free). Independent reviewer/orchestrator:Codex.

Closes #76

@De-pitcher De-pitcher self-assigned this Oct 18, 2026
@De-pitcher
De-pitcher marked this pull request as ready for review October 18, 2026 12:02
@De-pitcher
De-pitcher merged commit 626004b into main Oct 18, 2026
15 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.

F07: strengthen cancellation cleanup and output-byte regression assertions

1 participant