Skip to content

Add private non-Git snapshots and retained restore evidence - #110

Merged
vanedaltro merged 3 commits into
mainfrom
feat/non-git-snapshots
Nov 5, 2026
Merged

vanedaltro merged 3 commits into
mainfrom
feat/non-git-snapshots

Conversation

@vanedaltro

@vanedaltro vanedaltro commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

Outside Git, admitted Linux/macOS Locations now capture private BLAKE3 snapshots and use the existing reviewed CLI/TUI rewind flow. Restores preserve unrelated edits, refuse stale/conflicting plans, and durably retain intents and actual displaced preimages before native replacements. Snapshot-cap warnings keep conversation execution successful.

  • Bind manifests to canonical Location and native directory identity; respect private roots, ignores, size limits and unsupported metadata exclusions. Historical exclusions cannot become deletions.
  • Preserve ordinary ownership/modes on recreation, prepare missing parents privately, and reject metadata that cannot safely be recreated.
  • Add bounded authenticated read-only recovery inspection and generated TypeScript SDK support. Filesystem completion does not acknowledge a Session/native receipt.
  • Protect durable event-held snapshot roots during retention. Keep every journal-containing namespace; interruption blocks replay instead of discarding evidence.
  • Synchronize README, roadmap, guides, OpenSpec and real terminal captures. Add Linux x64/ARM and macOS Intel/ARM native proof CI, plus explicit Windows fallback coverage.

Integrated current main 913fe1b0, including merged #111's Ctrl+R history search, without conflicts. Its code, docs/specs and 1026-requirement inventory are retained. A combined TUI regression verifies search cancellation, snapshot warnings, draft preservation and subsequent Esc-Esc rewind.

The original head failed Linux snapshot proofs/Rust because fsync received cap-std O_PATH directory descriptors. Sync now reopens the pinned directory for I/O, with an explicit Linux O_PATH regression. The macOS ARM proof reported a storage-lock acquisition failure; bounded short lock handoff/interruption handling now retains live-owner exclusion and distinguishes other errors. This retries acquisition before any restore starts, not source mutations.

Current integrated local macOS validation: two storage regressions, 17 file-copy cases, 12 Git snapshot cases, 11 rewind-filtered and nine history-search-filtered TUI cases (one overlap), three real non-Git CLI cases, ten additional parallel file-copy suite repetitions, workspace all-target Clippy with warnings denied, formatting/diff checks, generated SDK consistency and requirement inventory. OpenSpec 1.13.2 strict validation passed 115 items; spec lint reported 0 errors/25 warnings. The original increment also passed the OpenAPI artifact, SDK typecheck/128 tests (10 configured external skips), four server ownership tests and the complete 11-case CLI suite with serialized fixtures; an initial parallel CLI startup stall was recorded in implementation.md. Real terminal captures were visually checked. Native C deprecation/linker warnings were observed. Linux O_PATH execution is unavailable locally on this macOS host; fresh platform CI must pass on the corrected integrated head.

This implements task 3.1 and parts of 3.2–3.4 in #93. Managed keep/rollback resolution, native receipt acknowledgement and journal reclamation remain unfinished; retained records must not be removed to force retry. Git restore journaling, complete historical Git exclusions and broader crash/platform acceptance remain open. Windows file-copy writes remain explicitly unavailable. The daily-coding workstream and combined goal remain incomplete; remaining work is tracked in issue #93.

@leonardoaraujosantos
leonardoaraujosantos marked this pull request as ready for review November 5, 2026 15:22
@vanedaltro
vanedaltro merged commit 18a494a into main Nov 5, 2026
41 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