From 6a8a33b886983ca7264fe702ed6375b5bb361e80 Mon Sep 17 00:00:00 2001 From: Edvane Cristina Santos Daltro Date: Wed, 4 Nov 2026 23:50:11 -0400 Subject: [PATCH 1/2] Add private non-Git snapshots and retained restore evidence --- .config/nextest.toml | 1 + .github/workflows/non-git-snapshot-proof.yml | 46 ++ Cargo.lock | 46 ++ README.md | 2 +- ROADMAP.md | 2 +- crates/cyber-app/src/lib.rs | 21 +- crates/cyber-cli/src/commands/exec/mod.rs | 10 + crates/cyber-cli/tests/branches_cli.rs | 115 +++ crates/cyber-core/src/binary/native.rs | 26 + crates/cyber-server/src/http/openapi.rs | 2 + crates/cyber-server/src/http/sessions.rs | 9 + crates/cyber-server/src/runtime/host.rs | 25 + crates/cyber-server/src/runtime/mod.rs | 6 +- .../src/runtime/rewind_preview.rs | 47 +- crates/cyber-snapshot/Cargo.toml | 12 + crates/cyber-snapshot/src/copy/mod.rs | 523 +++++++++++++ crates/cyber-snapshot/src/copy/restore.rs | 359 +++++++++ crates/cyber-snapshot/src/copy/storage.rs | 174 +++++ crates/cyber-snapshot/src/copy/tree.rs | 234 ++++++ crates/cyber-snapshot/src/lib.rs | 280 ++++++- crates/cyber-snapshot/tests/file_copy.rs | 720 ++++++++++++++++++ .../tests/file_copy_platform.rs | 21 + crates/cyber-snapshot/tests/snapshots.rs | 3 +- crates/cyber-tui/src/app.rs | 9 + crates/cyber-tui/src/rewind.rs | 14 + ...screens_explorer__rewind_review_light.snap | 2 +- ...creens_explorer__rewind_review_narrow.snap | 2 +- ...eens_explorer__rewind_review_no_color.snap | 2 +- ...explorer__rewind_review_screen_reader.snap | 2 +- ..._screens_explorer__rewind_review_wide.snap | 2 +- crates/cyber-tui/src/view/rewind.rs | 2 +- docs/features.md | 2 +- docs/rewind.md | 106 ++- docs/screenshots/rewind-menu.png | Bin 108602 -> 108358 bytes docs/screenshots/rewind-review.png | Bin 170599 -> 169505 bytes .../complete-daily-coding-surfaces/design.md | 35 + .../implementation.md | 72 ++ .../specs/snapshots-checkpoints/spec.md | 28 + .../complete-daily-coding-surfaces/tasks.md | 2 +- sdk/openapi.json | 87 +++ sdk/typescript/src/generated/operations.ts | 21 + sdk/typescript/src/generated/types.ts | 14 + 42 files changed, 3039 insertions(+), 47 deletions(-) create mode 100644 .github/workflows/non-git-snapshot-proof.yml create mode 100644 crates/cyber-snapshot/src/copy/mod.rs create mode 100644 crates/cyber-snapshot/src/copy/restore.rs create mode 100644 crates/cyber-snapshot/src/copy/storage.rs create mode 100644 crates/cyber-snapshot/src/copy/tree.rs create mode 100644 crates/cyber-snapshot/tests/file_copy.rs create mode 100644 crates/cyber-snapshot/tests/file_copy_platform.rs diff --git a/.config/nextest.toml b/.config/nextest.toml index 6bcd5db6..f7b9af8d 100644 --- a/.config/nextest.toml +++ b/.config/nextest.toml @@ -160,6 +160,7 @@ binary_id(cyber-account) | binary_id(cyber-server::worktree_setup_journal) | binary_id(cyber-server::worktree_setup_output) | binary_id(cyber-snapshot) +| binary_id(cyber-snapshot::file_copy_platform) | binary_id(cyber-store) & (test(writer::tests::) | test(migrate::tests::messaging_) | test(migrate::tests::usage_origin_)) | binary_id(cyber-store::store) | binary_id(cyber-tools) & (test(tools::bash::shell_tests) | test(plugin_host::) | test(browser::) | test(dev_server::) | test(permissions::engine::tests::message_send) | test(permissions::engine::tests::remote_attach) | test(remote_skills) | test(lsp::) | test(mcp::stdio::tests) | test(mcp::roots::tests) | test(mcp::elicitation::tests) | test(mcp::sampling::tests) | test(tools::process::tests) | test(tools::tool_search::tests) | test(mcp::pool::tests) | test(mcp::launch::tests) | test(mcp::http::tests) | test(mcp::oauth) | test(hook_commands::launch::tests) | test(sandboxing::tests) | test(permissions::filesystem) | test(tools::background::tests) | test(tools::monitor::) | test(tools::deliver::tests) | test(tools::powershell::tests) | test(permissions::dry_run) | test(sandboxing::tests::refusal_lines) | test(permissions::engine::tests::sandbox_boundary_needs_an_explicit_user_allow) | test(permissions::engine::tests::workflow_run) | test(permissions::taint::) | test(untrusted::)) diff --git a/.github/workflows/non-git-snapshot-proof.yml b/.github/workflows/non-git-snapshot-proof.yml new file mode 100644 index 00000000..d388f5dd --- /dev/null +++ b/.github/workflows/non-git-snapshot-proof.yml @@ -0,0 +1,46 @@ +name: Non-Git snapshot native proof +on: + pull_request: + paths: + - crates/cyber-snapshot/** + - crates/cyber-core/src/binary/native/** + - crates/cyber-core/src/binary/native.rs + - Cargo.lock + - .github/workflows/non-git-snapshot-proof.yml + workflow_dispatch: +permissions: + contents: read +concurrency: + group: non-git-snapshots-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + native: + name: File-copy snapshots (${{ matrix.os }}) + runs-on: ${{ matrix.os }} + timeout-minutes: 45 + strategy: + fail-fast: false + matrix: + os: [ubuntu-24.04, ubuntu-24.04-arm, macos-15, macos-15-intel] + env: + CARGO_INCREMENTAL: '0' + CARGO_PROFILE_DEV_DEBUG: line-tables-only + CARGO_PROFILE_TEST_DEBUG: line-tables-only + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - uses: Swatinem/rust-cache@v2 + with: + key: non-git-snapshot-proof + - name: Native storage, conflict and process-kill proof + shell: bash + run: | + set -euo pipefail + cargo test --locked -p cyber-snapshot -- --nocapture 2>&1 | tee non-git-snapshot-proof.log + - name: Retain native evidence + if: always() + uses: actions/upload-artifact@v4 + with: + name: non-git-snapshot-proof-${{ matrix.os }} + path: non-git-snapshot-proof.log + if-no-files-found: warn diff --git a/Cargo.lock b/Cargo.lock index 03066932..6913fe6a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -411,6 +411,19 @@ version = "2.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06" +[[package]] +name = "blake3" +version = "1.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d9e454fc11f76977dc803893aff6304ed33d6a26efae8696573bea74baa27ae" +dependencies = [ + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "cpufeatures 0.3.1", +] + [[package]] name = "block-buffer" version = "0.10.4" @@ -762,6 +775,12 @@ version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c" +[[package]] +name = "constant_time_eq" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" + [[package]] name = "convert_case" version = "0.10.0" @@ -1279,11 +1298,20 @@ dependencies = [ name = "cyber-snapshot" version = "0.1.0" dependencies = [ + "blake3", + "cap-fs-ext", + "cap-std", "cyber-core", "cyber-server", + "diffy", "futures", + "ignore", + "libc", + "rustix", + "serde", "serde_json", "sha1", + "similar 3.2.0", "tempfile", "tokio", "ulid", @@ -1553,6 +1581,15 @@ dependencies = [ "syn 2.0.119", ] +[[package]] +name = "diffy" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b545b8c50194bdd008283985ab0b31dba153cfd5b3066a92770634fbc0d7d291" +dependencies = [ + "nu-ansi-term", +] + [[package]] name = "digest" version = "0.10.7" @@ -3216,6 +3253,15 @@ dependencies = [ "winapi", ] +[[package]] +name = "nu-ansi-term" +version = "0.50.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" +dependencies = [ + "windows-sys 0.61.2", +] + [[package]] name = "num" version = "0.4.3" diff --git a/README.md b/README.md index 1946a9dd..ced6f114 100644 --- a/README.md +++ b/README.md @@ -79,7 +79,7 @@ The server owns execution and stores state in SQLite, so work can outlive a term For independent patch attempts, host-recorded tests and a separate read-only judge, start with the [verified `solve` workflow](docs/verified-workflows.md). Candidate patches remain available for human review; nothing is merged automatically. To combine complementary commits, use the [verified integration queue](docs/verified-integrations.md): submit a dependency manifest, test the combined patch, review independent advice, then explicitly publish a branch and PR. -[Reviewed rewind](docs/rewind.md) previews code, conversation or combined rewind with `cyber sessions rewind --to `. Applying requires the reviewed `--confirm `; changed context is refused, unrelated edits are preserved and later messages remain on an inactive branch. Code rewind currently requires Git snapshots. The TUI offers `/rewind`, idle Esc-Esc and reviewed `/undo`/`/redo` with guarded composer restoration. Non-Git snapshots and broader recovery acceptance remain in progress under [#93](https://github.com/CyberdyneCorp/cybercode-cli/issues/93). +[Reviewed rewind](docs/rewind.md) previews code, conversation or combined rewind with `cyber sessions rewind --to `. Applying requires the reviewed `--confirm `; changed context is refused, unrelated edits are preserved and later messages remain on an inactive branch. Code rewind uses Git snapshots, with a private file-copy fallback for admitted Linux/macOS non-Git Locations. The TUI offers `/rewind`, idle Esc-Esc and reviewed `/undo`/`/redo` with guarded composer restoration. File-copy restores retain recovery journals; managed recovery resolution and broader acceptance remain in progress under [#93](https://github.com/CyberdyneCorp/cybercode-cli/issues/93). Experimental [native computer use](docs/computer-use.md) adds macOS 14+ application/display screenshots and input with expiring owner grants, CLI/browser owner controls, private evidence and emergency Stop. Off by default; controlled macOS capture, input and Stop acceptance passed. Other layouts and signed distribution remain release checks. diff --git a/ROADMAP.md b/ROADMAP.md index 340e5ded..870c242f 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -97,7 +97,7 @@ The [current inventory](docs/implementation/spec-doc-reconciliation.md) contains **Usage limit waits (`session-runtime`, `configuration`, `exec-mode`, `tui`, `web-client`, P1; `goals`, `loops-scheduling`, `workflows`, P2): Status: implemented** (change [`add-usage-limit-wait`](openspec/changes/add-usage-limit-wait/proposal.md)). An unattended run (`cyber exec`, a Goal, a loop iteration, a workflow agent, a teammate, or their subagents) that hits a subscription usage limit with a known reset waits for it and retries the Turn instead of failing: within `usage_limit.max_wait` (default 6 h), 10 s after the reset plus per-Session jitter, as one new attempt from the same history. The wait is durable (`session.usage_limit.waiting|resumed|abandoned.1`), cancelled by the normal interrupt, resumed after a restart for top-level Sessions and ended cleanly for owned ones; wall deadlines (Session, run, Goal and loop `max_wall_seconds`, `exec --timeout`) win over waiting. `exec` reports `usage_limit` stream-json lines, the TUI offers `/resume-at-reset` and a footer badge, and the dashboard shows the wait. The model fallback chain, once implemented, runs first. -**Daily coding (P1), in progress:** issue [#93](https://github.com/CyberdyneCorp/cybercode-cli/issues/93) is the current priority. [Reviewed rewind](docs/rewind.md) provides typed CLI previews and explicit confirmation, fresh snapshot/Session revalidation and branch preservation, plus the TUI menu, idle Esc-Esc and staged `/undo`/`/redo` with guarded composer restoration. Broader rewind recovery acceptance, private non-Git snapshots, path rules/context, root structured output and JSONL input remain unfinished. The retry-count contract is reconciled without claiming structured-output implementation. +**Daily coding (P1), in progress:** issue [#93](https://github.com/CyberdyneCorp/cybercode-cli/issues/93) is the current priority. [Reviewed rewind](docs/rewind.md) provides typed CLI previews and explicit confirmation, fresh snapshot/Session revalidation and branch preservation, plus the TUI menu, idle Esc-Esc and staged `/undo`/`/redo` with guarded composer restoration. A private BLAKE3 file-copy backend now supports admitted Linux/macOS non-Git Locations, with retained restore intents, preimages and read-only owner inspection. Managed recovery resolution, journal reclamation, complete Git historical exclusions, broader native acceptance, path rules/context, root structured output and JSONL input remain unfinished. The retry-count contract is reconciled without claiming structured-output implementation. **Binary hex editor (P1), in progress:** [`add-binary-hex-editor`](openspec/changes/add-binary-hex-editor/proposal.md) now provides the [live binary workspace](docs/binary-editor.md): paged hex/ASCII inspection, literal search, exact goto, bookmarks, LE/BE interpretation and scoped owner API/SDK access. The user prioritized issue #94 on 2026-11-01 ahead of the unfinished plugins/hooks and daily-coding work. The native core and owner API/SDK now provide durable staged patches, draft undo/redo, byte review and explicit recovery on admitted Linux/macOS workspaces. The terminal now stages edits with draft undo/redo and explicit reviewed save/Restore Last Save through the same owner API. Acknowledged saves feed the native FileChanged producer. Authorized Sessions can review the shared saved-version catalog and Session diffs include binary references. The model-facing `binary` tool supports bounded inspect/read/search and expected-digest patches through separate invocation drafts and the retained native save engine. Model-operation discovery/receipt reconciliation stays separate from editable manual handles. Checkpoint/retention/rewind adapters and remaining acceptance are still open; this is not full editor acceptance. diff --git a/crates/cyber-app/src/lib.rs b/crates/cyber-app/src/lib.rs index 54ff8af8..4a6acacd 100644 --- a/crates/cyber-app/src/lib.rs +++ b/crates/cyber-app/src/lib.rs @@ -323,9 +323,28 @@ impl App { }))?; let snapshots: Arc = if opts.snapshots { let loader = Arc::clone(&config); - let snaps = cyber_snapshot::GitSnapshots::new( + let snapshot_store = store.clone(); + let references: Arc = Arc::new(move || { + let rows = snapshot_store.read(|db| { + let mut query = db.prepare("SELECT DISTINCT j.value FROM event e,json_tree(e.data) j WHERE j.type='text' AND j.value LIKE 'copy:%' LIMIT 100001")?; + let rows = query.query_map([], |row|row.get::<_,String>(0))?.collect::,_>>()?; + Ok(rows) + }).map_err(|error|error.to_string())?; + if rows.len() > 100000 { + return Err("Snapshot reference limit exceeded; pruning refused".into()); + } + Ok(rows.into_iter().collect()) + }); + let snaps = cyber_snapshot::GitSnapshots::with_policy( opts.paths.data.clone(), Arc::new(move |p| loader(p).map(|(v, _)| v).unwrap_or(Value::Null)), + vec![ + opts.paths.config.clone(), + opts.paths.state.clone(), + opts.paths.cache.clone(), + opts.paths.tmp.clone(), + ], + Some(references), ); snaps.spawn_gc(); snaps diff --git a/crates/cyber-cli/src/commands/exec/mod.rs b/crates/cyber-cli/src/commands/exec/mod.rs index 5238706c..ba41aa8d 100644 --- a/crates/cyber-cli/src/commands/exec/mod.rs +++ b/crates/cyber-cli/src/commands/exec/mod.rs @@ -515,6 +515,16 @@ async fn handle( event.data["message"].as_str().unwrap_or_default() ); } + "session.error" if event.data["kind"] == "snapshot" => { + // Snapshot capture is optional; its warning cannot turn a completed + // conversation into a failed exec result. + eprintln!( + "snapshot warning: {}", + event.data["message"] + .as_str() + .unwrap_or("code rewind unavailable") + ); + } "session.error" => { if event.data["kind"] == "budget_exceeded" { run.stop_reason diff --git a/crates/cyber-cli/tests/branches_cli.rs b/crates/cyber-cli/tests/branches_cli.rs index b1d13169..1587e28c 100644 --- a/crates/cyber-cli/tests/branches_cli.rs +++ b/crates/cyber-cli/tests/branches_cli.rs @@ -459,6 +459,13 @@ fn conversation_rewind_works_without_git_and_stale_context_never_applies() { let model = scripted_model::ScriptedModel::start(reply); let env = Env::new(&model); std::fs::remove_dir_all(env.root.join("repo/.git")).unwrap(); + let mut config = model.config(); + config["snapshots"] = json!(false); + std::fs::write( + env.root.join("cyber-home/config/cyber.jsonc"), + config.to_string(), + ) + .unwrap(); let id = env.exec(None, "first prompt"); let first = env.user_ids(&id)[0].clone(); let refused = exits(&env.cyber(&["sessions", "rewind", &id, "--to", &first]), 2); @@ -724,3 +731,111 @@ fn interrupt_and_wait_idle(env: &Env, id: &str) { std::thread::sleep(Duration::from_millis(20)); } } + +#[test] +#[cfg(any(target_os = "macos", target_os = "linux"))] +fn reviewed_non_git_code_rewind_uses_private_snapshots_and_keeps_owner_files() { + let model = scripted_model::ScriptedModel::start(reply); + let env = Env::new(&model); + std::fs::remove_dir_all(env.root.join("repo/.git")).unwrap(); + let id = env.exec(None, "WRITE-A"); + let first = env.user_ids(&id)[0].clone(); + std::fs::write(env.root.join("repo/owner.txt"), "owner bytes\n").unwrap(); + let preview = rewind_preview(&env, &id, &first, "both"); + assert!( + preview["code"]["target"] + .as_str() + .unwrap() + .starts_with("copy:") + ); + let requests = model.requests().len(); + json(&confirm_rewind(&env, &id, &first, "both", &preview)); + let journals = + json(&env.cyber(&["api", "GET", &format!("/sessions/{id}/rewind/recovery")]))["data"] + .as_array() + .unwrap() + .clone(); + assert_eq!(journals.len(), 1); + assert_eq!(journals[0]["filesystem_complete"], true); + assert!( + journals[0]["paths"] + .as_array() + .unwrap() + .iter() + .any(|p| p == "a.txt") + ); + assert_eq!(env.file("a.txt"), None); + assert_eq!(env.file("owner.txt").as_deref(), Some("owner bytes\n")); + assert!(env.user_ids(&id).is_empty()); + assert_eq!(model.requests().len(), requests); + let all = json(&env.cyber(&["sessions", "export", &id, "--all-branches"])); + assert!(all.to_string().contains(&first)); +} + +#[test] +#[cfg(any(target_os = "macos", target_os = "linux"))] +fn reviewed_non_git_cap_warns_once_without_failing_the_conversation() { + let model = scripted_model::ScriptedModel::start(reply); + let env = Env::new(&model); + std::fs::remove_dir_all(env.root.join("repo/.git")).unwrap(); + let mut config = model.config(); + config["snapshots"] = json!({"fallback_max_bytes":1}); + std::fs::write( + env.root.join("cyber-home/config/cyber.jsonc"), + config.to_string(), + ) + .unwrap(); + let output = env.cyber(&["exec", "--format", "json", "first prompt"]); + exits(&output, 0); + let stderr = String::from_utf8_lossy(&output.stderr); + assert_eq!(stderr.matches("snapshot warning:").count(), 1, "{stderr}"); + let result: Value = serde_json::from_slice(&output.stdout).unwrap(); + let id = result["session_id"].as_str().unwrap(); + let first = env.user_ids(id)[0].clone(); + let refused = exits(&env.cyber(&["sessions", "rewind", id, "--to", &first]), 2); + assert!(refused.contains("cap reached"), "{refused}"); + let review = rewind_preview(&env, id, &first, "conversation"); + json(&confirm_rewind(&env, id, &first, "conversation", &review)); + assert!(env.user_ids(id).is_empty()); +} + +#[test] +#[cfg(any(target_os = "macos", target_os = "linux"))] +fn non_git_recovery_inspection_creates_no_namespace_and_starts_no_inference() { + let model = scripted_model::ScriptedModel::start(reply); + let env = Env::new(&model); + std::fs::remove_dir_all(env.root.join("repo/.git")).unwrap(); + let session = json(&env.cyber(&[ + "api", + "POST", + "/sessions", + "-d", + &json!({"model":"test/main","mode":"accept-edits"}).to_string(), + ])); + let id = session["data"]["id"].as_str().unwrap(); + let result = json(&env.cyber(&["api", "GET", &format!("/sessions/{id}/rewind/recovery")])); + assert_eq!(result["data"], json!([])); + assert!(model.requests().is_empty()); + let registration: Value = serde_json::from_slice( + &std::fs::read(env.root.join("cyber-home/state/server.json")).unwrap(), + ) + .unwrap(); + let url = format!( + "{}/api/v1/sessions/{id}/rewind/recovery", + registration["url"].as_str().unwrap().trim_end_matches('/') + ); + let status = tokio::runtime::Runtime::new().unwrap().block_on(async { + reqwest::Client::builder() + .no_proxy() + .timeout(Duration::from_secs(5)) + .build() + .unwrap() + .get(url) + .send() + .await + .unwrap() + .status() + }); + assert_eq!(status, reqwest::StatusCode::UNAUTHORIZED); + assert!(!env.root.join("cyber-home/data/snapshot/global").exists()); +} diff --git a/crates/cyber-core/src/binary/native.rs b/crates/cyber-core/src/binary/native.rs index 1b058c95..99512476 100644 --- a/crates/cyber-core/src/binary/native.rs +++ b/crates/cyber-core/src/binary/native.rs @@ -95,6 +95,32 @@ pub(super) fn private_acl(file: &File) -> Result<(), Error> { Ok(()) } +/// Check that a mode-private directory has no macOS ACL grants bypassing its mode. +#[cfg(target_os = "macos")] +pub fn validate_private_directory_acl(file: &File) -> Result<(), Error> { + if !file.metadata().map_err(|_| Error::Io)?.is_dir() { + return Err(Error::File); + } + private_acl(file) +} + +/// Metadata a snapshot can recreate from ordinary ownership/mode fields alone. +/// ACLs, extended attributes and platform flags require separate retained metadata. +pub fn plain_snapshot_metadata(file: &File) -> Result { + let value = metadata(file)?; + if !attributes(file)?.is_empty() { + return Err(Error::File); + } + #[cfg(target_os = "macos")] + { + private_acl(file)?; + if file.metadata().map_err(|_| Error::Io)?.st_flags() != 0 { + return Err(Error::File); + } + } + Ok(value) +} + pub fn metadata(file: &File) -> Result { let m = file.metadata().map_err(|_| Error::Io)?; if !m.is_file() || m.nlink() != 1 || m.mode() & 0o7000 != 0 || m.permissions().readonly() { diff --git a/crates/cyber-server/src/http/openapi.rs b/crates/cyber-server/src/http/openapi.rs index be925026..4315da2e 100644 --- a/crates/cyber-server/src/http/openapi.rs +++ b/crates/cyber-server/src/http/openapi.rs @@ -758,6 +758,8 @@ pub fn operations(g: &mut SchemaGenerator) -> Vec { ) .body::(g) .ok::>(g), + op("get", "/sessions/{sessionID}/rewind/recovery", "v1.session.snapshotRecovery", "Inspect retained filesystem restore journals without acknowledging or replaying native effects") + .ok::>>(g), op("post", "/sessions/{sessionID}/rewind/preview", "v1.session.rewindPreview", "Review a rewind without changing files or the active conversation") .body::(g) .ok::>(g), diff --git a/crates/cyber-server/src/http/sessions.rs b/crates/cyber-server/src/http/sessions.rs index 50bd133f..20c20fb0 100644 --- a/crates/cyber-server/src/http/sessions.rs +++ b/crates/cyber-server/src/http/sessions.rs @@ -345,6 +345,7 @@ pub fn routes() -> Router { .route(&format!("{s}/recap"), get(recap).post(generate_recap)) .route(&format!("{s}/rewind"), post(rewind)) .route(&format!("{s}/rewind/preview"), post(rewind_preview)) + .route(&format!("{s}/rewind/recovery"), get(snapshot_recovery)) .route(&format!("{s}/rewind/confirm"), post(rewind_confirm)) .route(&format!("{s}/revert/stage"), post(stage)) .route(&format!("{s}/revert/clear"), post(clear)) @@ -1188,6 +1189,14 @@ async fn answer_question( Ok(StatusCode::NO_CONTENT) } +async fn snapshot_recovery( + State(state): State, + Path(id): Path, +) -> Result>>> { + Ok(Json(Data { + data: state.runtime.snapshot_recovery(&id).await?, + })) +} async fn rewind_preview( State(state): State, Path(id): Path, diff --git a/crates/cyber-server/src/runtime/host.rs b/crates/cyber-server/src/runtime/host.rs index 96648399..e7aaa4fb 100644 --- a/crates/cyber-server/src/runtime/host.rs +++ b/crates/cyber-server/src/runtime/host.rs @@ -1410,8 +1410,26 @@ pub enum RestoreError { Failed(String), } +/// Retained filesystem evidence; completion does not acknowledge a Session/native receipt. +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)] +pub struct SnapshotRecovery { + pub id: String, + /// The filesystem worker flushed its final record; not Session/native receipt acknowledgement. + pub filesystem_complete: bool, + pub paths: Vec, + /// Durably observed file checkpoints; absence does not prove that no effect occurred. + pub applied: Vec, +} + /// Working-tree snapshots for a Location. pub trait Snapshots: Send + Sync { + /// Actionable unavailability retained after a one-time automatic warning. + fn unavailable_reason(&self, _directory: &str) -> Option { + None + } + fn recovery(&self, _directory: &str) -> BoxFuture<'_, Result, String>> { + Box::pin(async { Err("Snapshot recovery inspection is unavailable".into()) }) + } /// Record the current tree; `None` when snapshots are off or unsupported here. fn track(&self, directory: &str) -> BoxFuture<'_, Result, String>>; @@ -1430,6 +1448,13 @@ pub trait Snapshots: Send + Sync { to: &str, ) -> BoxFuture<'_, Result, String>>; + fn exclusions( + &self, + _directory: &str, + _trees: Vec, + ) -> BoxFuture<'_, Result, String>> { + Box::pin(async { Ok(vec![]) }) + } fn reviewed_restore_available(&self) -> bool { false } diff --git a/crates/cyber-server/src/runtime/mod.rs b/crates/cyber-server/src/runtime/mod.rs index 1ae0e4fc..365e710d 100644 --- a/crates/cyber-server/src/runtime/mod.rs +++ b/crates/cyber-server/src/runtime/mod.rs @@ -221,9 +221,9 @@ pub use host::{ FileDiff, FileReadError, GoalWorktree, HookEffects, Invocation, LifecycleHook, LifecycleVerdict, LocationGuard, LocationLease, ModelResolver, NoSnapshots, NoTools, Provenance, Reconciliation, ResolvedModel, RestoreError, RuleEffect, RunWorktree, - SessionEnvelope, SkillSuggestion, Snapshot, Snapshots, TeamWorktree, ToolDef, ToolHost, - ToolOutcome, ToolScope, TurnContext, TurnWorktree, WorkflowAgentOutput, WorkflowAgentRequest, - WorkflowToolRequest, + SessionEnvelope, SkillSuggestion, Snapshot, SnapshotRecovery, Snapshots, TeamWorktree, ToolDef, + ToolHost, ToolOutcome, ToolScope, TurnContext, TurnWorktree, WorkflowAgentOutput, + WorkflowAgentRequest, WorkflowToolRequest, }; pub use model::{ AssistantEntry, CallState, CallStatus, Delivery, Entry, InboxRow, InputStatus, LastStep, diff --git a/crates/cyber-server/src/runtime/rewind_preview.rs b/crates/cyber-server/src/runtime/rewind_preview.rs index ef91958c..6fabfb3f 100644 --- a/crates/cyber-server/src/runtime/rewind_preview.rs +++ b/crates/cyber-server/src/runtime/rewind_preview.rs @@ -208,10 +208,8 @@ impl Inner { selection: &RewindSelection, ) -> Result { let unavailable = || { - RuntimeError::Invalid( - "Snapshots are unavailable for this Location; only the conversation can be rewound" - .into(), - ) + RuntimeError::Invalid(self.options.snapshots.unavailable_reason(&state.info.directory).unwrap_or_else(|| + "Snapshots are unavailable for this Location; only the conversation can be rewound".into())) }; if !self.options.snapshots.reviewed_restore_available() || (selection.action != RewindAction::Commit @@ -281,17 +279,56 @@ impl Inner { return Err(RuntimeError::Invalid(message)); } }; + let mut skipped = current.skipped; + skipped.extend( + self.options + .snapshots + .exclusions( + &state.info.directory, + vec![target.clone(), recorded.clone()], + ) + .await + .map_err(RuntimeError::Invalid)?, + ); + skipped.sort(); + skipped.dedup(); Ok(RewindCodePreview { baseline: current.tree, target, recorded, files, - skipped: current.skipped, + skipped, }) } } impl Runtime { + /// Read-only owner inspection; never settles evidence, restores files or starts work. + pub async fn snapshot_recovery( + &self, + session_id: &str, + ) -> Result, RuntimeError> { + use rusqlite::OptionalExtension; + let id = session_id.to_owned(); + // Inspection must remain available while restore holds the live projection. + let directory = self + .inner + .store + .read(move |db| { + Ok(db + .query_row("SELECT directory FROM session WHERE id=?1", [id], |row| { + row.get::<_, String>(0) + }) + .optional()?) + })? + .ok_or_else(|| RuntimeError::SessionNotFound(session_id.into()))?; + self.inner + .options + .snapshots + .recovery(&directory) + .await + .map_err(RuntimeError::Invalid) + } /// Build a review without restoring files, staging a revert, or changing the branch. pub async fn rewind_preview( &self, diff --git a/crates/cyber-snapshot/Cargo.toml b/crates/cyber-snapshot/Cargo.toml index beff00fc..64203cae 100644 --- a/crates/cyber-snapshot/Cargo.toml +++ b/crates/cyber-snapshot/Cargo.toml @@ -13,9 +13,21 @@ cyber-server = { path = "../cyber-server" } futures = "0.3" serde_json.workspace = true sha1 = "0.10" +serde.workspace = true +blake3 = "1" +diffy = "0.4" +similar = "3.2" +ignore = "0.4" +cap-std = "4.0" +cap-fs-ext = "4.0" + tokio = { version = "1", features = ["rt", "process", "time", "sync", "fs", "macros", "io-util"] } ulid.workspace = true +[target.'cfg(unix)'.dependencies] +libc.workspace = true +rustix = { version = "=1.1.5", default-features = false, features = ["fs", "std"] } + [dev-dependencies] tempfile.workspace = true serde_json.workspace = true diff --git a/crates/cyber-snapshot/src/copy/mod.rs b/crates/cyber-snapshot/src/copy/mod.rs new file mode 100644 index 00000000..9f57ec7c --- /dev/null +++ b/crates/cyber-snapshot/src/copy/mod.rs @@ -0,0 +1,523 @@ +//! Private BLAKE3 snapshots for exact non-Git Locations; no user repository required. +mod restore; +mod storage; +mod tree; +use cap_fs_ext::DirExt; +use cap_std::fs::Dir; +pub use cyber_server::runtime::SnapshotRecovery as Recovery; +use cyber_server::runtime::{FileDiff, Snapshot}; +use serde::{Deserialize, Serialize}; +use std::collections::{BTreeMap, BTreeSet}; +use std::path::{Path, PathBuf}; +use storage::{Result, fail}; + +const RECORD_LIMIT: u64 = 8 * 1024 * 1024; +const ENTRY_LIMIT: usize = 4096; +#[derive(Clone)] +pub(crate) struct Options { + pub max_file: u64, + pub max_total: u64, + pub ignore: Vec, + pub private_roots: Vec, +} +#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] +#[serde(deny_unknown_fields)] +struct Entry { + object: String, + length: u64, + mode: u32, + uid: u32, + gid: u32, +} +#[derive(Clone, Debug, Serialize, Deserialize)] +#[serde(deny_unknown_fields)] +struct Tree { + version: u32, + location: PathBuf, + root: String, + files: BTreeMap, + skipped: Vec, +} +#[derive(Serialize, Deserialize)] +#[serde(deny_unknown_fields)] +struct Manifest { + accessed: u64, + tree: Tree, +} +fn now() -> u64 { + std::time::SystemTime::now() + .duration_since(std::time::UNIX_EPOCH) + .unwrap_or_default() + .as_secs() +} + +pub(crate) struct Store { + root: PathBuf, + root_id: String, + data_path: PathBuf, + work: Dir, + + objects: Dir, + manifests: Dir, + journals: Dir, + _lock: Option, + options: Options, + usage: std::cell::Cell>, +} +impl Store { + pub fn open(data: &Path, location: &str, options: Options) -> Result { + Self::open_mode(data, location, options, true) + } + pub fn existing(data: &Path, location: &str, options: Options) -> Result> { + if !data.exists() { + return Ok(None); + } + let root = Path::new(location).canonicalize().map_err(fail)?; + let work = Dir::open_ambient_dir(&root, cap_std::ambient_authority()).map_err(fail)?; + let id = storage::dir_identity(&work)?; + let key = storage::digest(format!("{}\0{}", root.display(), id).as_bytes()); + let data_dir = Dir::open_ambient_dir(data, cap_std::ambient_authority()).map_err(fail)?; + if data_dir.symlink_metadata("snapshot").is_err() { + return Ok(None); + } + let snapshot = storage::existing_child(&data_dir, "snapshot", false)?; + if snapshot.symlink_metadata("global").is_err() { + return Ok(None); + } + let global = storage::existing_child(&snapshot, "global", true)?; + if global.symlink_metadata(&key).is_err() { + return Ok(None); + } + Self::open_mode(data, location, options, false).map(Some) + } + fn open_mode(data: &Path, location: &str, mut options: Options, create: bool) -> Result { + options.private_roots = options + .private_roots + .into_iter() + .map(|p| p.canonicalize().unwrap_or(p)) + .collect(); + let root = Path::new(location).canonicalize().map_err(fail)?; + if !root.is_dir() || root.parent().is_none() { + return Err("Snapshot Location must be a project directory".into()); + } + if create { + std::fs::create_dir_all(data).map_err(fail)?; + } + let data_path = data.canonicalize().map_err(fail)?; + if root.starts_with(&data_path) { + return Err("Private owner state cannot be a snapshot Location".into()); + } + let work = Dir::open_ambient_dir(&root, cap_std::ambient_authority()).map_err(fail)?; + let root_id = storage::dir_identity(&work)?; + if options.private_roots.iter().any(|p| root.starts_with(p)) { + return Err("Private owner state cannot be a snapshot Location".into()); + } + let data = Dir::open_ambient_dir(&data_path, cap_std::ambient_authority()).map_err(fail)?; + use std::os::unix::fs::MetadataExt; + let data_metadata = data + .try_clone() + .map_err(fail)? + .into_std_file() + .metadata() + .map_err(fail)?; + if data_metadata.mode() & 0o022 != 0 { + return Err("Snapshot data directory is writable by other users".into()); + } + let child = |parent: &Dir, name: &str, private: bool| { + if !create { + storage::existing_child(parent, name, private) + } else if private { + storage::private_child(parent, name) + } else { + storage::shared_child(parent, name) + } + }; + let snapshot = child(&data, "snapshot", false)?; + let copy = child(&snapshot, "global", true)?; + let key = storage::digest(format!("{}\0{}", root.display(), root_id).as_bytes()); + let dir = child(©, &key, true)?; + let lock = if create { + Some(storage::lock(&dir, true)?) + } else { + None + }; + let objects = child(&dir, "files", true)?; + let manifests = child(&dir, "manifests", true)?; + let journals = child(&dir, "journals", true)?; + Ok(Self { + root, + root_id, + data_path, + work, + objects, + manifests, + journals, + _lock: lock, + options, + usage: std::cell::Cell::new(None), + }) + } + fn verify_root(&self) -> Result<()> { + let fresh = + Dir::open_ambient_dir(&self.root, cap_std::ambient_authority()).map_err(fail)?; + if storage::dir_identity(&fresh)? != self.root_id { + return Err("Snapshot Location identity changed".into()); + } + Ok(()) + } + fn usage(&self) -> Result { + if let Some(size) = self.usage.get() { + return Ok(size); + } + let mut size = 0u64; + for dir in [&self.objects, &self.manifests] { + for name in storage::names(dir, 100_000)? { + size = size + .checked_add( + storage::open(dir, Path::new(&name))? + .metadata() + .map_err(fail)? + .len(), + ) + .ok_or("Snapshot storage overflow")?; + } + } + // Journals include displaced preimages/staging files and are never quota-evicted. + for name in storage::names(&self.journals, ENTRY_LIMIT)? { + let journal = self.journals.open_dir_nofollow(&name).map_err(fail)?; + for file in storage::names(&journal, ENTRY_LIMIT * 3)? { + size = size + .checked_add( + storage::open(&journal, Path::new(&file))? + .metadata() + .map_err(fail)? + .len(), + ) + .ok_or("Snapshot storage overflow")?; + } + } + self.usage.set(Some(size)); + Ok(size) + } + fn reserve(&self, size: u64) -> Result<()> { + if self.options.max_total == 0 + || self + .usage()? + .checked_add(size) + .is_none_or(|n| n > self.options.max_total) + { + return Err( + "Non-Git snapshot storage cap reached; conversation rewind remains available" + .into(), + ); + } + self.usage.set(Some( + self.usage()? + .checked_add(size) + .ok_or("Snapshot storage overflow")?, + )); + Ok(()) + } + fn object(&self, bytes: &[u8]) -> Result { + let object = storage::digest(bytes); + match storage::read(&self.objects, &object, self.options.max_total) { + Ok(existing) if existing == bytes => {} + Ok(_) => return Err("Snapshot object identity mismatch".into()), + Err(_) if self.objects.symlink_metadata(&object).is_ok() => { + return Err("Unreadable snapshot object".into()); + } + Err(_) => { + self.reserve(bytes.len() as u64)?; + storage::atomic(&self.objects, &object, bytes)?; + } + } + Ok(Entry { + object, + length: bytes.len() as u64, + mode: 0o644, + uid: 0, + gid: 0, + }) + } + fn bytes(&self, entry: &Entry) -> Result> { + if !storage::valid_digest(&entry.object) || entry.length > self.options.max_total { + return Err("Invalid snapshot object".into()); + } + let bytes = storage::read(&self.objects, &entry.object, entry.length)?; + if bytes.len() as u64 != entry.length || storage::digest(&bytes) != entry.object { + return Err("Corrupt snapshot object".into()); + } + Ok(bytes) + } + fn save(&self, tree: Tree) -> Result { + let digest = storage::digest(&serde_json::to_vec(&tree).map_err(fail)?); + let bytes = serde_json::to_vec(&Manifest { + accessed: now(), + tree: tree.clone(), + }) + .map_err(fail)?; + if bytes.len() as u64 > RECORD_LIMIT { + return Err("Snapshot manifest exceeds limit".into()); + } + let old = self + .manifests + .symlink_metadata(&digest) + .ok() + .map_or(0, |m| m.len()); + if bytes.len() as u64 > old { + self.reserve(bytes.len() as u64 - old)?; + } + storage::atomic(&self.manifests, &digest, &bytes)?; + Ok(Snapshot { + tree: format!("copy:{digest}"), + skipped: tree.skipped, + }) + } + fn load(&self, id: &str) -> Result { + self.verify_root()?; + let digest = id + .strip_prefix("copy:") + .filter(|s| storage::valid_digest(s)) + .ok_or("Invalid non-Git snapshot identity")?; + let manifest: Manifest = + serde_json::from_slice(&storage::read(&self.manifests, digest, RECORD_LIMIT)?) + .map_err(fail)?; + let tree = manifest.tree; + if tree.version != 1 + || tree.location != self.root + || tree.root != self.root_id + || tree.files.len() > ENTRY_LIMIT + || storage::digest(&serde_json::to_vec(&tree).map_err(fail)?) != digest + { + return Err("Snapshot belongs to a different Location or is corrupt".into()); + } + // A preview/recovery lease keeps an otherwise unreferenced manifest recent. + self.save(tree.clone())?; + Ok(tree) + } + pub fn track(&self) -> Result { + self.ensure_recovered()?; + self.save(self.capture()?) + } + pub fn changed(&self, from: &str, to: &str) -> Result> { + let (from, to) = (self.load(from)?, self.load(to)?); + Ok(changes(&from, &to)) + } + pub fn diff(&self, from: &str, to: &str) -> Result> { + let (from, to) = (self.load(from)?, self.load(to)?); + changes(&from, &to) + .into_iter() + .map(|path| self.file_diff(&path, from.files.get(&path), to.files.get(&path))) + .collect() + } + fn file_diff( + &self, + path: &str, + before: Option<&Entry>, + after: Option<&Entry>, + ) -> Result { + let a = before + .map(|e| self.bytes(e)) + .transpose()? + .unwrap_or_default(); + let b = after + .map(|e| self.bytes(e)) + .transpose()? + .unwrap_or_default(); + let (mut patch, additions, deletions) = + match (std::str::from_utf8(&a), std::str::from_utf8(&b)) { + (Ok(a), Ok(b)) if !a.contains('\0') && !b.contains('\0') => { + let diff = similar::TextDiff::from_lines(a, b); + let additions = diff + .iter_all_changes() + .filter(|c| c.tag() == similar::ChangeTag::Insert) + .count() as u32; + let deletions = diff + .iter_all_changes() + .filter(|c| c.tag() == similar::ChangeTag::Delete) + .count() as u32; + ( + diff.unified_diff() + .header(&format!("a/{path}"), &format!("b/{path}")) + .to_string(), + additions, + deletions, + ) + } + _ => ("Binary files differ\n".into(), 0, 0), + }; + if let (Some(a), Some(b)) = (before, after) + && a.mode != b.mode + { + patch = format!("old mode {:04o}\nnew mode {:04o}\n{patch}", a.mode, b.mode); + } + Ok(FileDiff { + file: path.into(), + status: match (before, after) { + (None, _) => "added", + (_, None) => "deleted", + _ => "modified", + } + .into(), + patch, + additions, + deletions, + binary: None, + }) + } +} +fn changes(a: &Tree, b: &Tree) -> Vec { + a.files + .keys() + .chain(b.files.keys()) + .collect::>() + .into_iter() + .filter(|p| a.files.get(*p) != b.files.get(*p) && !excluded(a, p) && !excluded(b, p)) + .cloned() + .collect() +} + +/// Prune only unreferenced, old manifests. Journals keep all their objects pinned; +/// an unavailable durable-reference view never authorizes deletion. +pub(crate) fn gc( + data: &Path, + config: &std::sync::Arc, + protected: &BTreeSet, +) -> Result<()> { + if !data.exists() { + return Ok(()); + } + let data = Dir::open_ambient_dir(data, cap_std::ambient_authority()).map_err(fail)?; + if data.symlink_metadata("snapshot").is_err() { + return Ok(()); + } + let snapshot = storage::existing_child(&data, "snapshot", false)?; + if snapshot.symlink_metadata("global").is_err() { + return Ok(()); + } + let root = storage::existing_child(&snapshot, "global", true)?; + for location in storage::names(&root, 100_000)? { + if !storage::valid_digest(&location) { + return Err("Invalid snapshot namespace".into()); + } + let dir = storage::private_child(&root, &location)?; + let _lock = match storage::lock(&dir, false) { + Ok(lock) => lock, + Err(_) => continue, + }; + gc_location(&dir, config, protected)?; + } + Ok(()) +} +fn gc_location( + dir: &Dir, + config: &std::sync::Arc, + protected: &BTreeSet, +) -> Result<()> { + let manifests = storage::private_child(dir, "manifests")?; + let journals = storage::private_child(dir, "journals")?; + // Until an owner resolves/acknowledges native evidence, no journal is evicted. + if !storage::names(&journals, ENTRY_LIMIT)?.is_empty() { + return Ok(()); + } + let objects = storage::private_child(dir, "files")?; + let mut keep = BTreeSet::new(); + for name in storage::names(&manifests, 100_000)? { + if temporary(&name) { + prune_temporary(&manifests, &name)?; + continue; + } + if !storage::valid_digest(&name) { + return Err("Unrecognized snapshot manifest".into()); + } + let manifest: Manifest = + serde_json::from_slice(&storage::read(&manifests, &name, RECORD_LIMIT)?) + .map_err(fail)?; + if manifest.tree.version != 1 + || storage::digest(&serde_json::to_vec(&manifest.tree).map_err(fail)?) != name + { + return Err("Corrupt snapshot manifest".into()); + } + let days = config(&manifest.tree.location) + .pointer("/snapshots/retention_days") + .and_then(serde_json::Value::as_u64) + .unwrap_or(7); + let old = days != 0 && now().saturating_sub(manifest.accessed) > days.saturating_mul(86400); + if old && !protected.contains(&format!("copy:{name}")) { + manifests.remove_file(&name).map_err(fail)?; + } else { + keep.extend( + manifest + .tree + .files + .values() + .map(|entry| entry.object.clone()), + ); + } + } + storage::sync(&manifests)?; + for name in storage::names(&objects, 100_000)? { + if temporary(&name) { + prune_temporary(&objects, &name)?; + continue; + } + if !storage::valid_digest(&name) { + continue; + } + if !keep.contains(&name) { + let metadata = storage::open(&objects, Path::new(&name))? + .metadata() + .map_err(fail)?; + let old = metadata + .modified() + .ok() + .and_then(|t| std::time::SystemTime::now().duration_since(t).ok()) + .is_some_and(|age| age.as_secs() > 7 * 86400); + if old { + objects.remove_file(&name).map_err(fail)?; + } + } + } + storage::sync(&objects) +} + +fn excluded(tree: &Tree, path: &str) -> bool { + tree.skipped + .iter() + .filter_map(|p| p.split_once(": ").map(|(_, p)| p)) + .any(|p| path == p || path.starts_with(&format!("{p}/"))) +} +impl Store { + pub fn exclusions(&self, ids: &[String]) -> Result> { + let mut skipped = BTreeSet::new(); + for id in ids { + let tree = self.load(id)?; + skipped.extend( + tree.skipped + .into_iter() + .map(|path| format!("historical {id}: {path}")), + ); + } + Ok(skipped.into_iter().collect()) + } +} + +fn temporary(name: &str) -> bool { + name.strip_prefix("tmp_") + .is_some_and(|id| id.len() == 26 && id.parse::().is_ok()) +} +fn prune_temporary(dir: &Dir, name: &str) -> Result<()> { + let file = storage::open(dir, Path::new(name))?; + let old = file + .metadata() + .map_err(fail)? + .modified() + .ok() + .and_then(|t| std::time::SystemTime::now().duration_since(t).ok()) + .is_some_and(|age| age.as_secs() > 7 * 86400); + if old { + dir.remove_file(name).map_err(fail)?; + storage::sync(dir)?; + } + Ok(()) +} diff --git a/crates/cyber-snapshot/src/copy/restore.rs b/crates/cyber-snapshot/src/copy/restore.rs new file mode 100644 index 00000000..24904774 --- /dev/null +++ b/crates/cyber-snapshot/src/copy/restore.rs @@ -0,0 +1,359 @@ +//! A durable intent precedes every namespace mutation; incomplete intents fence reuse. +use super::storage::{self, Result, fail}; +use super::{ENTRY_LIMIT, Entry, RECORD_LIMIT, Store, Tree, now}; +use cap_fs_ext::DirExt; +use cyber_server::runtime::{FileDiff, RestoreError}; +use serde::{Deserialize, Serialize}; +use std::os::unix::fs::PermissionsExt; +use std::path::Path; + +#[derive(Clone, Debug, Serialize, Deserialize)] +#[serde(deny_unknown_fields)] +struct Change { + path: String, + before: Option, + after: Option, +} +#[derive(Clone, Debug, Serialize, Deserialize)] +#[serde(deny_unknown_fields)] +struct Journal { + version: u32, + location: std::path::PathBuf, + root: String, + created: u64, + completed: bool, + changes: Vec, + applied: Vec, +} + +impl Store { + pub(super) fn ensure_recovered(&self) -> Result<()> { + if self.recovery()?.iter().any(|r| !r.filesystem_complete) { + return Err( + "Snapshot restore requires recovery; private journal and preimages retained".into(), + ); + } + Ok(()) + } + pub fn recovery(&self) -> Result> { + let mut result = vec![]; + let mut response_bytes = 32usize; + for id in storage::names(&self.journals, ENTRY_LIMIT)? { + let dir = self.journals.open_dir_nofollow(&id).map_err(fail)?; + let record: Journal = + serde_json::from_slice(&storage::read(&dir, "intent.json", RECORD_LIMIT)?) + .map_err(fail)?; + if record.version != 1 + || record.location != self.root + || record.root != self.root_id + || record.changes.len() > ENTRY_LIMIT + { + return Err("Invalid snapshot recovery journal".into()); + } + let view = super::Recovery { + id, + filesystem_complete: record.completed, + paths: record.changes.iter().map(|c| c.path.clone()).collect(), + applied: record.applied, + }; + response_bytes = response_bytes + .saturating_add(serde_json::to_vec(&view).map_err(fail)?.len()) + .saturating_add(1); + if response_bytes > 4 * 1024 * 1024 { + return Err("Snapshot recovery catalog exceeds response limit".into()); + } + result.push(view); + } + Ok(result) + } + fn plan( + &self, + target: &str, + recorded: &str, + expected: &str, + paths: Option<&[String]>, + ) -> std::result::Result<(Tree, Vec), RestoreError> { + self.ensure_recovered().map_err(RestoreError::Failed)?; + let before = self.capture().map_err(RestoreError::Failed)?; + if self + .save(before.clone()) + .map_err(RestoreError::Failed)? + .tree + != expected + { + return Err(RestoreError::Stale); + } + let target = self.load(target).map_err(RestoreError::Failed)?; + let recorded = self.load(recorded).map_err(RestoreError::Failed)?; + let mut changes = vec![]; + let mut conflicts = vec![]; + for path in super::changes(&recorded, &target) { + if paths.is_some_and(|allowed| !allowed.contains(&path)) { + continue; + } + if before + .skipped + .iter() + .filter_map(|p| p.split_once(": ").map(|(_, p)| p)) + .any(|p| path == p || path.starts_with(&format!("{p}/"))) + { + continue; + } + let current = self.current(&path).map_err(RestoreError::Failed)?; + let base = recorded.files.get(&path); + let want = target.files.get(&path); + let mut next = if current.as_ref() == want { + continue; + } else if current.as_ref() == base { + want.cloned() + } else { + match self + .merged(current.as_ref(), base, want) + .map_err(RestoreError::Failed)? + { + Some(entry) => Some(entry), + None => { + conflicts.push(path); + continue; + } + } + }; + // Existing ownership is owner state, not an agent edit to undo. + if let (Some(current), Some(next)) = (current.as_ref(), next.as_mut()) { + next.uid = current.uid; + next.gid = current.gid; + } + if next == current { + continue; + } + if current.is_some() { + let native = + cyber_core::binary::native::Target::capture(&self.root, Path::new(&path)) + .map_err(|e| { + RestoreError::Failed(format!( + "Restore metadata unsupported for {path}: {e}" + )) + })?; + native.same_filesystem(&self.objects).map_err(|e| { + RestoreError::Failed(format!( + "Restore requires same-filesystem private storage: {e}" + )) + })?; + } + changes.push(Change { + path, + before: current, + after: next, + }); + } + if !conflicts.is_empty() { + return Err(RestoreError::Conflict(conflicts)); + } + Ok((before, changes)) + } + fn merged( + &self, + current: Option<&Entry>, + base: Option<&Entry>, + want: Option<&Entry>, + ) -> Result> { + let (Some(current), Some(base), Some(want)) = (current, base, want) else { + return Ok(None); + }; + let (ours, base, theirs) = (self.bytes(current)?, self.bytes(base)?, self.bytes(want)?); + let (Ok(ours), Ok(base), Ok(theirs)) = ( + std::str::from_utf8(&ours), + std::str::from_utf8(&base), + std::str::from_utf8(&theirs), + ) else { + return Ok(None); + }; + if [ours, base, theirs].iter().any(|s| s.contains('\0')) { + return Ok(None); + } + let Ok(merged) = diffy::merge(base, ours, theirs) else { + return Ok(None); + }; + if merged.len() as u64 > self.options.max_file { + return Err("Merged snapshot exceeds file limit".into()); + } + let mut entry = self.object(merged.as_bytes())?; + entry.mode = current.mode; + entry.uid = current.uid; + entry.gid = current.gid; + Ok(Some(entry)) + } + pub fn preview( + &self, + target: &str, + recorded: &str, + expected: &str, + paths: Option<&[String]>, + ) -> std::result::Result, RestoreError> { + let (_, changes) = self.plan(target, recorded, expected, paths)?; + changes + .iter() + .map(|c| { + self.file_diff(&c.path, c.before.as_ref(), c.after.as_ref()) + .map_err(RestoreError::Failed) + }) + .collect() + } + pub fn restore( + &self, + target: &str, + recorded: &str, + expected: &str, + paths: Option<&[String]>, + authorize: &(dyn Fn() -> Result<()> + Send + Sync), + ) -> std::result::Result, RestoreError> { + authorize().map_err(RestoreError::Failed)?; + let (_, changes) = self.plan(target, recorded, expected, paths)?; + if changes.is_empty() { + return Ok(vec![]); + } + let record_bytes = serde_json::to_vec(&changes) + .map_err(|e| RestoreError::Failed(e.to_string()))? + .len() as u64; + let reserve = changes + .iter() + .map(|c| { + c.before + .as_ref() + .map_or(0, |e| e.length) + .max(c.after.as_ref().map_or(0, |e| e.length)) + }) + .try_fold( + record_bytes.saturating_mul(2).saturating_add(4096), + |sum, length| sum.checked_add(length).ok_or("Restore size overflow"), + ) + .map_err(|e| RestoreError::Failed(e.into()))?; + self.reserve(reserve).map_err(RestoreError::Failed)?; + // The directory is unique. A crash before publishing its intent is also + // unreadable recovery evidence and fails closed on the next open. + let id = format!("restore_{}", ulid::Ulid::new()); + let dir = storage::private_child(&self.journals, &id).map_err(RestoreError::Failed)?; + let mut journal = Journal { + version: 1, + location: self.root.clone(), + root: self.root_id.clone(), + created: now(), + completed: false, + changes, + applied: vec![], + }; + + Self::record(&dir, &journal).map_err(RestoreError::Failed)?; + for (i, change) in journal.changes.iter().enumerate() { + if let Some(after) = &change.after { + let file = storage::create( + &dir, + &format!("stage_{i}"), + &self.bytes(after).map_err(RestoreError::Failed)?, + ) + .map_err(RestoreError::Failed)?; + Self::stage_metadata(&file, after).map_err(RestoreError::Failed)?; + } + } + storage::sync(&dir).map_err(RestoreError::Failed)?; + for i in 0..journal.changes.len() { + authorize().map_err(RestoreError::Failed)?; + self.install(&dir, i, &journal.changes[i]) + .map_err(RestoreError::Failed)?; + journal.applied.push(journal.changes[i].path.clone()); + Self::record(&dir, &journal).map_err(RestoreError::Failed)?; + } + self.verify_root().map_err(RestoreError::Failed)?; + journal.completed = true; + Self::record(&dir, &journal).map_err(RestoreError::Failed)?; + Ok(journal.applied) + } + fn stage_metadata(file: &std::fs::File, entry: &Entry) -> Result<()> { + rustix::fs::fchown( + file, + Some(rustix::fs::Uid::from_raw(entry.uid)), + Some(rustix::fs::Gid::from_raw(entry.gid)), + ) + .map_err(fail)?; + file.set_permissions(std::fs::Permissions::from_mode(entry.mode)) + .map_err(fail)?; + file.sync_all().map_err(fail) + } + fn record(dir: &cap_std::fs::Dir, journal: &Journal) -> Result<()> { + let bytes = serde_json::to_vec(journal).map_err(fail)?; + if bytes.len() as u64 > RECORD_LIMIT { + return Err("Restore journal exceeds limit".into()); + } + storage::atomic(dir, "intent.json", &bytes) + } + fn install(&self, dir: &cap_std::fs::Dir, index: usize, change: &Change) -> Result<()> { + if self.current(&change.path)? != change.before { + return Err(format!( + "Restore source changed; journal retained: {}", + change.path + )); + } + let parent = self.parent(&change.path, true)?; + let parent_id = storage::dir_identity(&parent)?; + let leaf = Path::new(&change.path) + .file_name() + .ok_or("Invalid restore leaf")?; + let stage = format!("stage_{index}"); + match (&change.before, &change.after) { + (Some(before), Some(after)) => { + let target = cyber_core::binary::native::Target::capture( + &self.root, + Path::new(&change.path), + ) + .map_err(fail)?; + if target.length.0 != before.length + || target.metadata.mode != before.mode + || target.metadata.uid != before.uid + || target.metadata.gid != before.gid + { + return Err("Restore source metadata changed; journal retained".into()); + } + let (_, original) = target.validate().map_err(fail)?; + let stage_file = storage::open(dir, Path::new(&stage))?; + cyber_core::binary::native::copy_metadata(&original, &stage_file).map_err(fail)?; + Self::stage_metadata(&stage_file, after)?; + cyber_core::binary::native::exchange(dir, &stage, &target).map_err(fail)?; + if self.read_entry(dir, std::ffi::OsStr::new(&stage))? != *before { + return Err("Displaced restore preimage changed; recovery required".into()); + } + } + (Some(before), None) => { + rustix::fs::renameat_with( + &parent, + leaf, + dir, + &stage, + rustix::fs::RenameFlags::NOREPLACE, + ) + .map_err(fail)?; + if self.read_entry(dir, std::ffi::OsStr::new(&stage))? != *before { + return Err("Displaced deletion preimage changed; recovery required".into()); + } + } + (None, Some(_)) => rustix::fs::renameat_with( + dir, + &stage, + &parent, + leaf, + rustix::fs::RenameFlags::NOREPLACE, + ) + .map_err(fail)?, + (None, None) => {} + } + storage::sync(&parent)?; + storage::sync(dir)?; + self.verify_root()?; + if storage::dir_identity(&self.parent(&change.path, false)?)? != parent_id { + return Err("Restore parent identity changed; journal retained".into()); + } + if self.current(&change.path)? != change.after { + return Err("Restore result changed; recovery required".into()); + } + Ok(()) + } +} diff --git a/crates/cyber-snapshot/src/copy/storage.rs b/crates/cyber-snapshot/src/copy/storage.rs new file mode 100644 index 00000000..9ae17072 --- /dev/null +++ b/crates/cyber-snapshot/src/copy/storage.rs @@ -0,0 +1,174 @@ +//! Descriptor-relative private storage. Names are server-derived single components. +use cap_fs_ext::{DirExt, FollowSymlinks, OpenOptionsFollowExt}; +use cap_std::fs::{Dir, DirBuilder, DirBuilderExt, OpenOptions, OpenOptionsExt}; +use std::fs::File; +use std::io::{Read, Write}; +use std::os::unix::fs::MetadataExt; +use std::path::Path; + +pub type Result = std::result::Result; +pub fn fail(error: impl std::fmt::Display) -> String { + error.to_string() +} +pub fn identity(file: &File) -> Result { + let m = file.metadata().map_err(fail)?; + let birth = m + .created() + .map_err(|_| "Filesystem does not expose stable directory creation identity")?; + let birth = birth.duration_since(std::time::UNIX_EPOCH).map_err(fail)?; + Ok(format!( + "{}:{}:{}:{}", + m.dev(), + m.ino(), + birth.as_secs(), + birth.subsec_nanos() + )) +} +pub fn dir_identity(dir: &Dir) -> Result { + identity(&dir.try_clone().map_err(fail)?.into_std_file()) +} +pub fn sync(dir: &Dir) -> Result<()> { + let file = dir.try_clone().map_err(fail)?.into_std_file(); + file.sync_all().map_err(fail)?; + Ok(()) +} +pub fn private_child(parent: &Dir, name: &str) -> Result { + child(parent, name, 0o077) +} +pub fn shared_child(parent: &Dir, name: &str) -> Result { + child(parent, name, 0o022) +} +pub fn existing_child(parent: &Dir, name: &str, private: bool) -> Result { + child_mode(parent, name, if private { 0o077 } else { 0o022 }, false) +} +fn child(parent: &Dir, name: &str, forbidden: u32) -> Result { + child_mode(parent, name, forbidden, true) +} +fn child_mode(parent: &Dir, name: &str, forbidden: u32, create: bool) -> Result { + let mut builder = DirBuilder::new(); + builder.mode(0o700); + if create { + match parent.create_dir_with(name, &builder) { + Ok(()) => sync(parent)?, + Err(e) if e.kind() == std::io::ErrorKind::AlreadyExists => {} + Err(e) => return Err(fail(e)), + } + } + let dir = parent.open_dir_nofollow(name).map_err(fail)?; + let m = dir + .try_clone() + .map_err(fail)? + .into_std_file() + .metadata() + .map_err(fail)?; + // Ownership must match the already trusted data-directory descriptor. + let owner = parent + .try_clone() + .map_err(fail)? + .into_std_file() + .metadata() + .map_err(fail)? + .uid(); + if m.uid() != owner || m.mode() & forbidden != 0 { + return Err("Snapshot storage is not private".into()); + } + #[cfg(target_os = "macos")] + if forbidden == 0o077 { + cyber_core::binary::native::validate_private_directory_acl( + &dir.try_clone().map_err(fail)?.into_std_file(), + ) + .map_err(|_| "Snapshot private directory has unsupported ACL grants".to_string())?; + } + Ok(dir) +} +pub fn open(dir: &Dir, name: &Path) -> Result { + let mut options = OpenOptions::new(); + options + .read(true) + .follow(FollowSymlinks::No) + .custom_flags(libc::O_NONBLOCK); + let file = dir.open_with(name, &options).map_err(fail)?.into_std(); + let m = file.metadata().map_err(fail)?; + if !m.is_file() || m.nlink() != 1 { + return Err("Snapshot source is not a unique regular file".into()); + } + Ok(file) +} +pub fn read(dir: &Dir, name: &str, limit: u64) -> Result> { + let file = open(dir, Path::new(name))?; + if file.metadata().map_err(fail)?.len() > limit { + return Err("Snapshot record exceeds limit".into()); + } + let mut bytes = vec![]; + file.take(limit.saturating_add(1)) + .read_to_end(&mut bytes) + .map_err(fail)?; + if bytes.len() as u64 > limit { + return Err("Snapshot record grew beyond limit".into()); + } + Ok(bytes) +} +pub fn create(dir: &Dir, name: &str, bytes: &[u8]) -> Result { + let mut options = OpenOptions::new(); + options + .write(true) + .read(true) + .create_new(true) + .mode(0o600) + .follow(FollowSymlinks::No); + let mut file = dir.open_with(name, &options).map_err(fail)?.into_std(); + file.write_all(bytes).map_err(fail)?; + file.sync_all().map_err(fail)?; + #[cfg(target_os = "macos")] + rustix::fs::fcntl_fullfsync(&file).map_err(fail)?; + Ok(file) +} +pub fn atomic(dir: &Dir, name: &str, bytes: &[u8]) -> Result<()> { + let temp = format!("tmp_{}", ulid::Ulid::new()); + create(dir, &temp, bytes)?; + dir.rename(&temp, dir, name).map_err(fail)?; + sync(dir) +} +pub fn lock(dir: &Dir, create: bool) -> Result { + let mut options = OpenOptions::new(); + options + .read(true) + .write(true) + .create(create) + .mode(0o600) + .follow(FollowSymlinks::No); + let file = dir.open_with("lock", &options).map_err(fail)?.into_std(); + let m = file.metadata().map_err(fail)?; + if !m.is_file() || m.nlink() != 1 || m.mode() & 0o077 != 0 { + return Err("Unsafe snapshot lock".into()); + } + file.try_lock() + .map_err(|_| "Snapshot storage is busy".to_string())?; + Ok(file) +} +pub fn names(dir: &Dir, max: usize) -> Result> { + let mut names = vec![]; + for entry in dir.entries().map_err(fail)? { + if names.len() >= max { + return Err("Snapshot storage entry limit exceeded".into()); + } + names.push( + entry + .map_err(fail)? + .file_name() + .into_string() + .map_err(|_| "Invalid snapshot storage name")?, + ); + } + names.sort(); + Ok(names) +} +pub fn digest(bytes: &[u8]) -> String { + blake3::hash(bytes).to_hex().to_string() +} +pub fn valid_digest(value: &str) -> bool { + value.len() == 64 + && value + .bytes() + .all(|b| b.is_ascii_digit() || (b'a'..=b'f').contains(&b)) +} diff --git a/crates/cyber-snapshot/src/copy/tree.rs b/crates/cyber-snapshot/src/copy/tree.rs new file mode 100644 index 00000000..63080b8a --- /dev/null +++ b/crates/cyber-snapshot/src/copy/tree.rs @@ -0,0 +1,234 @@ +use super::storage::{self, Result, fail}; +use super::{ENTRY_LIMIT, Entry, Store, Tree}; +use cap_fs_ext::DirExt; +use cap_std::fs::Dir; +use ignore::gitignore::{Gitignore, GitignoreBuilder}; +use std::collections::BTreeMap; +use std::io::Read; +use std::os::unix::fs::MetadataExt; +use std::path::{Component, Path}; + +pub(super) fn safe_path(path: &str) -> Result<()> { + if path.is_empty() + || path.len() > 4096 + || path.contains('\\') + || path.contains('\0') + || Path::new(path) + .components() + .any(|c| !matches!(c, Component::Normal(_))) + { + return Err("Invalid snapshot path".into()); + } + Ok(()) +} +pub(super) fn protected(path: &Path) -> bool { + path.components() + .any(|c| matches!(c,Component::Normal(n) if n==".git" || n==".cyber" || n==".claude")) +} +impl Store { + pub(super) fn capture(&self) -> Result { + self.verify_root()?; + let mut tree = Tree { + version: 1, + location: self.root.clone(), + root: self.root_id.clone(), + files: BTreeMap::new(), + skipped: vec![], + }; + let mut matcher = GitignoreBuilder::new(&self.root); + for line in &self.options.ignore { + matcher.add_line(None, line).map_err(fail)?; + } + let mut matchers = vec![matcher.build().map_err(fail)?]; + self.walk(&self.work, Path::new(""), &mut matchers, &mut tree, 0)?; + self.verify_root()?; + tree.skipped.sort(); + Ok(tree) + } + fn rules(&self, dir: &Dir, relative: &Path) -> Result { + let mut rules = GitignoreBuilder::new(&self.root); + for name in [".gitignore", ".cyberignore"] { + if dir.symlink_metadata(name).is_err() { + continue; + } + let bytes = storage::read(dir, name, 64 * 1024)?; + let text = std::str::from_utf8(&bytes).map_err(fail)?; + for line in text.lines() { + rules + .add_line(Some(self.root.join(relative).join(name)), line) + .map_err(fail)?; + } + } + rules.build().map_err(fail) + } + fn walk( + &self, + dir: &Dir, + relative: &Path, + matchers: &mut Vec, + tree: &mut Tree, + depth: usize, + ) -> Result<()> { + if depth > 64 { + return Err("Snapshot directory depth limit exceeded".into()); + } + matchers.push(self.rules(dir, relative)?); + for item in dir.entries().map_err(fail)? { + let item = item.map_err(fail)?; + let path = relative.join(item.file_name()); + let name = path + .to_str() + .ok_or("Non-UTF-8 snapshot path is unsupported")? + .to_owned(); + safe_path(&name)?; + if tree.files.len() + tree.skipped.len() >= ENTRY_LIMIT { + return Err("Snapshot path limit exceeded".into()); + } + let metadata = dir.symlink_metadata(item.file_name()).map_err(fail)?; + let excluded = self.root.join(&path).starts_with(&self.data_path) + || protected(&path) + || self + .options + .private_roots + .iter() + .any(|p| self.root.join(&path).starts_with(p)); + let configured_ignore = matchers + .first() + .is_some_and(|r| r.matched(&path, metadata.is_dir()).is_ignore()); + let ignored = configured_ignore + || matchers + .iter() + .skip(1) + .rev() + .map(|r| r.matched(&path, metadata.is_dir())) + .find(|m| !m.is_none()) + .is_some_and(|m| m.is_ignore()); + if excluded || ignored { + tree.skipped.push(format!( + "{}: {name}", + if excluded { "private" } else { "ignore" } + )); + } else if metadata.is_dir() { + let child = dir.open_dir_nofollow(item.file_name()).map_err(fail)?; + self.walk(&child, &path, matchers, tree, depth + 1)?; + } else if !metadata.is_file() + || metadata.file_type().is_symlink() + || cap_fs_ext::MetadataExt::nlink(&metadata) != 1 + { + tree.skipped.push(format!("unsupported: {name}")); + } else if metadata.len() > self.options.max_file { + tree.skipped.push(format!("size: {name}")); + } else { + match self.read_entry(dir, &item.file_name()) { + Ok(entry) => { + tree.files.insert(name, entry); + } + Err(error) if error == "Unsupported snapshot metadata" => { + tree.skipped.push(format!("metadata: {name}")) + } + Err(error) => return Err(error), + } + } + } + matchers.pop(); + Ok(()) + } + pub(super) fn read_entry(&self, dir: &Dir, name: &std::ffi::OsStr) -> Result { + let mut file = storage::open(dir, Path::new(name))?; + let before = file.metadata().map_err(fail)?; + let metadata = cyber_core::binary::native::plain_snapshot_metadata(&file) + .map_err(|_| "Unsupported snapshot metadata")?; + if before.len() > self.options.max_file { + return Err("Snapshot file exceeds configured limit".into()); + } + let mut bytes = vec![]; + Read::by_ref(&mut file) + .take(self.options.max_file.saturating_add(1)) + .read_to_end(&mut bytes) + .map_err(fail)?; + let after = file.metadata().map_err(fail)?; + let current = dir.symlink_metadata(name).map_err(fail)?; + if before.len() != bytes.len() as u64 + || before.len() != after.len() + || before.mtime() != after.mtime() + || before.mtime_nsec() != after.mtime_nsec() + || before.ctime() != after.ctime() + || before.ctime_nsec() != after.ctime_nsec() + || before.dev() != cap_fs_ext::MetadataExt::dev(¤t) + || before.ino() != cap_fs_ext::MetadataExt::ino(¤t) + || current.file_type().is_symlink() + || cap_fs_ext::MetadataExt::nlink(¤t) != 1 + { + return Err("Snapshot source changed while hashing".into()); + } + let mut entry = self.object(&bytes)?; + entry.mode = metadata.mode; + entry.uid = metadata.uid; + entry.gid = metadata.gid; + Ok(entry) + } + pub(super) fn parent(&self, path: &str, create: bool) -> Result { + safe_path(path)?; + let parent = Path::new(path).parent().ok_or("Invalid snapshot parent")?; + if protected(Path::new(path)) + || self.root.join(path).starts_with(&self.data_path) + || self + .options + .private_roots + .iter() + .any(|p| self.root.join(path).starts_with(p)) + { + return Err("Protected snapshot path".into()); + } + self.verify_root()?; + let mut dir = self.work.try_clone().map_err(fail)?; + for component in parent.components() { + let Component::Normal(name) = component else { + return Err("Invalid snapshot parent".into()); + }; + if create && dir.symlink_metadata(name).is_err() { + use cap_std::fs::{DirBuilder, DirBuilderExt}; + let mut builder = DirBuilder::new(); + builder.mode(0o700); + dir.create_dir_with(name, &builder).map_err(fail)?; + storage::sync(&dir)?; + #[cfg(target_os = "macos")] + cyber_core::binary::native::validate_private_directory_acl( + &dir.open_dir_nofollow(name).map_err(fail)?.into_std_file(), + ) + .map_err(fail)?; + } + dir = dir.open_dir_nofollow(name).map_err(fail)?; + } + Ok(dir) + } + pub(super) fn current(&self, path: &str) -> Result> { + let parent = match self.parent(path, false) { + Ok(parent) => parent, + Err(error) => { + // Only a genuinely absent ancestor is absence; aliases and errors refuse. + let mut cursor = self.work.try_clone().map_err(fail)?; + for component in Path::new(path) + .parent() + .ok_or("Invalid snapshot path")? + .components() + { + let Component::Normal(name) = component else { + return Err(error); + }; + match cursor.symlink_metadata(name) { + Err(e) if e.kind() == std::io::ErrorKind::NotFound => return Ok(None), + _ => cursor = cursor.open_dir_nofollow(name).map_err(fail)?, + } + } + return Err(error); + } + }; + let leaf = Path::new(path).file_name().ok_or("Invalid snapshot leaf")?; + match parent.symlink_metadata(leaf) { + Ok(_) => self.read_entry(&parent, leaf).map(Some), + Err(e) if e.kind() == std::io::ErrorKind::NotFound => Ok(None), + Err(e) => Err(fail(e)), + } + } +} diff --git a/crates/cyber-snapshot/src/lib.rs b/crates/cyber-snapshot/src/lib.rs index f83524f9..c4cc0cc7 100644 --- a/crates/cyber-snapshot/src/lib.rs +++ b/crates/cyber-snapshot/src/lib.rs @@ -1,14 +1,19 @@ -//! Shadow-git working-tree snapshots and conflict-aware restore (`snapshots-checkpoints`). +//! Shadow-Git and private non-Git snapshots with conflict-aware restore. //! //! Each worktree gets a separate git directory under `/snapshot//` that //! uses the project worktree as its work tree and borrows the project's objects through //! alternates. The user's index, refs, stash and config are never touched. +//! Admitted Linux/macOS Locations outside Git use Location-bound BLAKE3 storage. +#[cfg(any(target_os = "macos", target_os = "linux"))] +mod copy; mod git; mod restore; +pub use cyber_server::runtime::SnapshotRecovery; +use std::collections::{BTreeSet, HashMap}; use std::path::{Path, PathBuf}; -use std::sync::Arc; +use std::sync::{Arc, Mutex}; use std::time::Duration; use cyber_server::runtime::{FileDiff, RestoreError, Snapshot, Snapshots}; @@ -19,18 +24,38 @@ use git::Shadow; /// Resolved configuration for a Location. pub type ConfigFn = dyn Fn(&Path) -> Value + Send + Sync; +/// Durable roots supplied by the application. Failure disables pruning. +pub type ReferencesFn = dyn Fn() -> Result, String> + Send + Sync; const DEFAULT_MAX_FILE_BYTES: u64 = 2 * 1024 * 1024; pub struct GitSnapshots { data_dir: PathBuf, config: Arc, + private_roots: Vec, + references: Option>, + unavailable: Mutex>, } impl GitSnapshots { /// `data_dir` is the Cyber data directory; snapshots live under `/snapshot`. pub fn new(data_dir: PathBuf, config: Arc) -> Arc { - Arc::new(Self { data_dir, config }) + Self::with_policy(data_dir, config, vec![], None) + } + + pub fn with_policy( + data_dir: PathBuf, + config: Arc, + private_roots: Vec, + references: Option>, + ) -> Arc { + Arc::new(Self { + data_dir, + config, + private_roots, + references, + unavailable: Mutex::new(HashMap::new()), + }) } fn root(&self) -> PathBuf { @@ -46,8 +71,89 @@ impl GitSnapshots { Shadow::locate(&self.root(), location) } + fn non_git(&self, directory: &str) -> bool { + !self + .private_roots + .iter() + .any(|root| Path::new(directory).starts_with(root)) + && (self.config)(Path::new(directory)).get("snapshots") != Some(&Value::Bool(false)) + && cyber_core::project::worktree_root(Path::new(directory)).is_none() + } + + #[cfg(any(target_os = "macos", target_os = "linux"))] + async fn file_copy( + &self, + directory: String, + operation: impl FnOnce(copy::Store) -> Result + Send + 'static, + ) -> Result { + let config = (self.config)(Path::new(&directory)); + if config.get("snapshots") == Some(&Value::Bool(false)) { + return Err("Snapshots are disabled for this Location".into()); + } + let (ignore, max_file) = Self::options_value(&config); + let max_total = config + .pointer("/snapshots/fallback_max_bytes") + .and_then(Value::as_u64) + .unwrap_or(200 * 1024 * 1024); + let data = self.data_dir.clone(); + let private_roots = self.private_roots.clone(); + let lock = cyber_server::workspace::mutation_lock(Path::new(&directory)) + .map_err(|e| e.to_string())?; + let guard = lock.lock_owned().await; + tokio::task::spawn_blocking(move || { + let _guard = guard; + let store = copy::Store::open( + &data, + &directory, + copy::Options { + ignore, + max_file: max_file.min(max_total).min(64 * 1024 * 1024), + max_total, + private_roots, + }, + )?; + operation(store) + }) + .await + .map_err(|e| format!("Snapshot worker did not acknowledge completion: {e}"))? + } + + /// Inspect retained journals without restoring files or acknowledging native effects. + pub async fn recovery(&self, directory: &str) -> Result, String> { + #[cfg(any(target_os = "macos", target_os = "linux"))] + { + let (ignore, max_file) = self.options(Path::new(directory)); + let max_total = (self.config)(Path::new(directory)) + .pointer("/snapshots/fallback_max_bytes") + .and_then(Value::as_u64) + .unwrap_or(200 * 1024 * 1024); + let options = copy::Options { + ignore, + max_file: max_file.min(max_total).min(64 * 1024 * 1024), + max_total, + private_roots: self.private_roots.clone(), + }; + let data = self.data_dir.clone(); + let directory = directory.to_owned(); + tokio::task::spawn_blocking(move || { + copy::Store::existing(&data, &directory, options)? + .map(|store| store.recovery()) + .unwrap_or_else(|| Ok(vec![])) + }) + .await + .map_err(|e| e.to_string())? + } + #[cfg(not(any(target_os = "macos", target_os = "linux")))] + { + let _ = directory; + Err("Snapshot recovery inspection is unavailable on this host".into()) + } + } + fn options(&self, location: &Path) -> (Vec, u64) { - let config = (self.config)(location); + Self::options_value(&(self.config)(location)) + } + fn options_value(config: &Value) -> (Vec, u64) { let ignore = config .pointer("/snapshots/ignore") .and_then(Value::as_array) @@ -77,6 +183,16 @@ impl GitSnapshots { } pub async fn gc(&self) { + #[cfg(any(target_os = "macos", target_os = "linux"))] + if let Some(references) = &self.references + && let Ok(protected) = references() + { + let data = self.data_dir.clone(); + let config = self.config.clone(); + let _ = tokio::task::spawn_blocking(move || copy::gc(&data, &config, &protected)).await; + } + #[cfg(not(any(target_os = "macos", target_os = "linux")))] + let _ = &self.references; for git_dir in git::shadow_dirs(&self.root()) { git::gc(&git_dir).await; } @@ -84,9 +200,56 @@ impl GitSnapshots { } impl Snapshots for GitSnapshots { + fn recovery(&self, directory: &str) -> BoxFuture<'_, Result, String>> { + let directory = directory.to_owned(); + Box::pin(async move { GitSnapshots::recovery(self, &directory).await }) + } + fn unavailable_reason(&self, directory: &str) -> Option { + self.unavailable + .lock() + .unwrap_or_else(std::sync::PoisonError::into_inner) + .get(directory) + .cloned() + } fn track(&self, directory: &str) -> BoxFuture<'_, Result, String>> { let directory = directory.to_string(); Box::pin(async move { + if self.non_git(&directory) { + #[cfg(any(target_os = "macos", target_os = "linux"))] + { + let result = self + .file_copy(directory.clone(), |store| store.track()) + .await; + let mut unavailable = self + .unavailable + .lock() + .unwrap_or_else(std::sync::PoisonError::into_inner); + return match result { + Ok(snapshot) => { + unavailable.remove(&directory); + Ok(Some(snapshot)) + } + Err(error) => { + let repeated = unavailable.get(&directory) == Some(&error); + if unavailable.len() < 1024 || unavailable.contains_key(&directory) { + unavailable.insert(directory, error.clone()); + } + if repeated { Ok(None) } else { Err(error) } + } + }; + } + #[cfg(not(any(target_os = "macos", target_os = "linux")))] + { + let mut unavailable = self + .unavailable + .lock() + .unwrap_or_else(std::sync::PoisonError::into_inner); + if unavailable.len() < 1024 { + unavailable.insert(directory,"Non-Git snapshots require native private storage support on this host; conversation rewind remains available".into()); + } + return Ok(None); + } + } let Some(shadow) = self.shadow(&directory) else { return Ok(None); }; @@ -106,6 +269,14 @@ impl Snapshots for GitSnapshots { ) -> BoxFuture<'_, Result, String>> { let (directory, from, to) = (directory.to_string(), from.to_string(), to.to_string()); Box::pin(async move { + if self.non_git(&directory) { + #[cfg(any(target_os = "macos", target_os = "linux"))] + return self + .file_copy(directory, move |store| store.changed(&from, &to)) + .await; + #[cfg(not(any(target_os = "macos", target_os = "linux")))] + return Err("Non-Git snapshots are unavailable on this host".into()); + } let Some(shadow) = self.shadow(&directory) else { return Ok(Vec::new()); }; @@ -121,6 +292,14 @@ impl Snapshots for GitSnapshots { ) -> BoxFuture<'_, Result, String>> { let (directory, from, to) = (directory.to_string(), from.to_string(), to.to_string()); Box::pin(async move { + if self.non_git(&directory) { + #[cfg(any(target_os = "macos", target_os = "linux"))] + return self + .file_copy(directory, move |store| store.diff(&from, &to)) + .await; + #[cfg(not(any(target_os = "macos", target_os = "linux")))] + return Err("Non-Git snapshots are unavailable on this host".into()); + } let Some(shadow) = self.shadow(&directory) else { return Ok(Vec::new()); }; @@ -128,6 +307,23 @@ impl Snapshots for GitSnapshots { }) } + fn exclusions( + &self, + directory: &str, + trees: Vec, + ) -> BoxFuture<'_, Result, String>> { + let directory = directory.to_owned(); + Box::pin(async move { + #[cfg(any(target_os = "macos", target_os = "linux"))] + if self.non_git(&directory) { + return self + .file_copy(directory, move |store| store.exclusions(&trees)) + .await; + } + let _ = (&directory, &trees); + Ok(vec![]) + }) + } fn reviewed_restore_available(&self) -> bool { true } @@ -146,6 +342,19 @@ impl Snapshots for GitSnapshots { expected.to_owned(), ); Box::pin(async move { + if self.non_git(&directory) { + #[cfg(any(target_os = "macos", target_os = "linux"))] + return self + .file_copy(directory, move |store| { + Ok(store.preview(&target, &recorded, &expected, None)) + }) + .await + .map_err(RestoreError::Failed)?; + #[cfg(not(any(target_os = "macos", target_os = "linux")))] + return Err(RestoreError::Failed( + "Non-Git restore is unavailable on this host".into(), + )); + } let shadow = self .shadow(&directory) .ok_or_else(|| RestoreError::Failed("Snapshots are unavailable".into()))?; @@ -179,6 +388,19 @@ impl Snapshots for GitSnapshots { expected.to_owned(), ); Box::pin(async move { + if self.non_git(&directory) { + #[cfg(any(target_os = "macos", target_os = "linux"))] + return self + .file_copy(directory, move |store| { + Ok(store.restore(&target, &recorded, &expected, None, authorize.as_ref())) + }) + .await + .map_err(RestoreError::Failed)?; + #[cfg(not(any(target_os = "macos", target_os = "linux")))] + return Err(RestoreError::Failed( + "Non-Git restore is unavailable on this host".into(), + )); + } let shadow = self.shadow(&directory).ok_or_else(|| { RestoreError::Failed("Snapshots are unavailable for this Location".into()) })?; @@ -222,6 +444,19 @@ impl Snapshots for GitSnapshots { expected.to_owned(), ); Box::pin(async move { + if self.non_git(&directory) { + #[cfg(any(target_os = "macos", target_os = "linux"))] + return self + .file_copy(directory, move |store| { + Ok(store.preview(&target, &recorded, &expected, Some(&paths))) + }) + .await + .map_err(RestoreError::Failed)?; + #[cfg(not(any(target_os = "macos", target_os = "linux")))] + return Err(RestoreError::Failed( + "Non-Git restore is unavailable on this host".into(), + )); + } let shadow = self .shadow(&directory) .ok_or_else(|| RestoreError::Failed("Snapshots are unavailable".into()))?; @@ -255,6 +490,25 @@ impl Snapshots for GitSnapshots { expected.to_owned(), ); Box::pin(async move { + if self.non_git(&directory) { + #[cfg(any(target_os = "macos", target_os = "linux"))] + return self + .file_copy(directory, move |store| { + Ok(store.restore( + &target, + &recorded, + &expected, + Some(&paths), + authorize.as_ref(), + )) + }) + .await + .map_err(RestoreError::Failed)?; + #[cfg(not(any(target_os = "macos", target_os = "linux")))] + return Err(RestoreError::Failed( + "Non-Git restore is unavailable on this host".into(), + )); + } let shadow = self .shadow(&directory) .ok_or_else(|| RestoreError::Failed("Snapshots are unavailable".into()))?; @@ -298,6 +552,24 @@ impl Snapshots for GitSnapshots { recorded.to_string(), ); Box::pin(async move { + if self.non_git(&directory) { + #[cfg(any(target_os = "macos", target_os = "linux"))] + return self + .file_copy(directory, move |store| { + Ok(match store.track() { + Ok(current) => { + store.restore(&target, &recorded, ¤t.tree, None, &|| Ok(())) + } + Err(error) => Err(RestoreError::Failed(error)), + }) + }) + .await + .map_err(RestoreError::Failed)?; + #[cfg(not(any(target_os = "macos", target_os = "linux")))] + return Err(RestoreError::Failed( + "Non-Git restore is unavailable on this host".into(), + )); + } let shadow = self.shadow(&directory).ok_or_else(|| { RestoreError::Failed("snapshots are unavailable for this Location".into()) })?; diff --git a/crates/cyber-snapshot/tests/file_copy.rs b/crates/cyber-snapshot/tests/file_copy.rs new file mode 100644 index 00000000..5448c968 --- /dev/null +++ b/crates/cyber-snapshot/tests/file_copy.rs @@ -0,0 +1,720 @@ +#![cfg(any(target_os = "macos", target_os = "linux"))] +//! Actual non-Git bytes, namespace boundaries, retained intents and three-way restore. +use cyber_server::runtime::{RestoreError, Snapshot, Snapshots}; +use cyber_snapshot::GitSnapshots; +use serde_json::{Value, json}; +use std::path::PathBuf; +use std::sync::{Arc, Mutex}; +struct Project { + _temp: tempfile::TempDir, + root: PathBuf, + data: PathBuf, + config: Arc>, + snapshots: Arc, +} +impl Project { + fn new() -> Self { + let temp = tempfile::tempdir().unwrap(); + let base = temp.path().canonicalize().unwrap(); + let root = base.join("work"); + let data = base.join("data"); + std::fs::create_dir(&root).unwrap(); + let config = Arc::new(Mutex::new(json!({}))); + let shared = config.clone(); + let snapshots = GitSnapshots::new( + data.clone(), + Arc::new(move |_| shared.lock().unwrap().clone()), + ); + Self { + _temp: temp, + root, + data, + config, + snapshots, + } + } + fn dir(&self) -> String { + self.root.display().to_string() + } + fn write(&self, path: &str, bytes: impl AsRef<[u8]>) { + let path = self.root.join(path); + std::fs::create_dir_all(path.parent().unwrap()).unwrap(); + std::fs::write(path, bytes).unwrap(); + } + async fn track(&self) -> Snapshot { + self.snapshots.track(&self.dir()).await.unwrap().unwrap() + } +} +#[tokio::test] +async fn non_git_snapshots_hash_bytes_preserve_owner_edits_and_restore_without_a_repository() { + let p = Project::new(); + p.write("src/a.txt", "one\ntwo\nthree\nfour\nfive\nsix\n"); + let before = p.track().await; + assert!(before.tree.starts_with("copy:")); + p.write("src/a.txt", "ONE\ntwo\nthree\nfour\nfive\nsix\n"); + p.write("new.bin", [0, 255, 128]); + let after = p.track().await; + p.write("src/a.txt", "ONE\ntwo\nthree\nfour\nfive\nSIX\n"); + p.write("owner.txt", "keep\n"); + let current = p.track().await; + let preview = p + .snapshots + .preview_restore(&p.dir(), &before.tree, &after.tree, ¤t.tree) + .await + .unwrap(); + assert_eq!(preview.len(), 2); + assert!(!preview.iter().any(|f| f.file == "owner.txt")); + assert!( + std::fs::read_to_string(p.root.join("src/a.txt")) + .unwrap() + .starts_with("ONE") + ); + let result = p + .snapshots + .restore_reviewed( + &p.dir(), + &before.tree, + &after.tree, + ¤t.tree, + Arc::new(|| Ok(())), + ) + .await + .unwrap(); + assert_eq!(result.len(), 2); + assert_eq!( + std::fs::read_to_string(p.root.join("src/a.txt")).unwrap(), + "one\ntwo\nthree\nfour\nfive\nSIX\n" + ); + assert!(!p.root.join("new.bin").exists()); + assert_eq!( + std::fs::read_to_string(p.root.join("owner.txt")).unwrap(), + "keep\n" + ); + assert!(!p.root.join(".git").exists()); + assert!( + p.snapshots + .recovery(&p.dir()) + .await + .unwrap() + .iter() + .all(|j| j.filesystem_complete) + ); +} +#[tokio::test] +async fn same_size_same_timestamp_is_hashed_and_old_previews_refuse() { + let p = Project::new(); + p.write("a.txt", "aaaa"); + let before = p.track().await; + let file = std::fs::OpenOptions::new() + .write(true) + .open(p.root.join("a.txt")) + .unwrap(); + let timestamp = file.metadata().unwrap().modified().unwrap(); + p.write("a.txt", "bbbb"); + file.set_times(std::fs::FileTimes::new().set_modified(timestamp)) + .unwrap(); + let after = p.track().await; + assert_ne!(before.tree, after.tree); + assert_eq!( + p.snapshots + .changed(&p.dir(), &before.tree, &after.tree) + .await + .unwrap(), + ["a.txt"] + ); + p.write("a.txt", "cccc"); + assert!(matches!( + p.snapshots + .restore_reviewed( + &p.dir(), + &before.tree, + &after.tree, + &after.tree, + Arc::new(|| Ok(())) + ) + .await, + Err(RestoreError::Stale) + )); + assert_eq!(std::fs::read(p.root.join("a.txt")).unwrap(), b"cccc"); +} +#[tokio::test] +async fn ignores_size_private_roots_and_aliases_are_disclosed_and_never_captured() { + use std::os::unix::fs::symlink; + let p = Project::new(); + *p.config.lock().unwrap() = + json!({"snapshots":{"ignore":["configured.txt"],"max_file_bytes":64}}); + p.write(".gitignore", "ignored/\n"); + p.write("ignored/file", "hidden"); + p.write("configured.txt", "hidden"); + p.write("large.bin", vec![1; 65]); + p.write(".cyber/private", "secret"); + p.write("plain", "visible"); + symlink(p.root.join(".cyber"), p.root.join("alias")).unwrap(); + std::fs::hard_link(p.root.join("plain"), p.root.join("hard-link")).unwrap(); + let snapshot = p.track().await; + for name in [ + "ignored", + "configured.txt", + "large.bin", + ".cyber", + "alias", + "hard-link", + "plain", + ] { + assert!( + snapshot.skipped.iter().any(|s| s.ends_with(name)), + "{name}: {:?}", + snapshot.skipped + ); + } + let root = p.data.join("snapshot/global"); + use std::os::unix::fs::PermissionsExt; + assert_eq!( + std::fs::metadata(root).unwrap().permissions().mode() & 0o777, + 0o700 + ); +} +#[tokio::test] +async fn storage_cap_and_foreign_location_do_not_authorize_restore() { + let p = Project::new(); + p.write("a.txt", "before"); + let before = p.track().await; + let other = Project::new(); + other.write("a.txt", "other"); + let current = other.track().await; + assert!( + other + .snapshots + .preview_restore(&other.dir(), &before.tree, ¤t.tree, ¤t.tree) + .await + .is_err() + ); + *p.config.lock().unwrap() = json!({"snapshots":{"fallback_max_bytes":1}}); + p.write("b.txt", "cap exceeds"); + let err = p.snapshots.track(&p.dir()).await.unwrap_err(); + assert!(err.contains("cap reached"), "{err}"); + assert_eq!(std::fs::read(p.root.join("a.txt")).unwrap(), b"before"); +} +#[tokio::test] +async fn admission_loss_after_a_replacement_retains_journal_and_blocks_replay() { + use std::sync::atomic::{AtomicUsize, Ordering}; + let p = Project::new(); + p.write("a.txt", "old a"); + p.write("b.txt", "old b"); + let before = p.track().await; + p.write("a.txt", "new a"); + p.write("b.txt", "new b"); + let after = p.track().await; + let calls = Arc::new(AtomicUsize::new(0)); + let count = calls.clone(); + let result = p + .snapshots + .restore_reviewed( + &p.dir(), + &before.tree, + &after.tree, + &after.tree, + Arc::new(move || { + if count.fetch_add(1, Ordering::SeqCst) >= 2 { + Err("admission revoked".into()) + } else { + Ok(()) + } + }), + ) + .await; + assert!(result.is_err()); + let journal = p.snapshots.recovery(&p.dir()).await.unwrap(); + assert_eq!(journal.len(), 1); + assert!(!journal[0].filesystem_complete); + assert_eq!(journal[0].applied, ["a.txt"]); + let next = p.snapshots.track(&p.dir()).await.unwrap_err(); + assert!(next.contains("requires recovery"), "{next}"); + assert_eq!(std::fs::read(p.root.join("a.txt")).unwrap(), b"old a"); + assert_eq!(std::fs::read(p.root.join("b.txt")).unwrap(), b"new b"); +} + +fn namespace(p: &Project) -> PathBuf { + std::fs::read_dir(p.data.join("snapshot/global")) + .unwrap() + .next() + .unwrap() + .unwrap() + .path() +} +#[tokio::test] +async fn retention_prunes_orphans_but_preserves_durable_reference_roots() { + use std::collections::BTreeSet; + let mut p = Project::new(); + p.write("a.txt", "first"); + let first = p.track().await; + p.write("a.txt", "second"); + let second = p.track().await; + let manifests = namespace(&p).join("manifests"); + for file in std::fs::read_dir(&manifests).unwrap() { + let path = file.unwrap().path(); + let mut value: Value = serde_json::from_slice(&std::fs::read(&path).unwrap()).unwrap(); + value["accessed"] = json!(0); + std::fs::write(path, value.to_string()).unwrap(); + } + let orphan = format!("tmp_{}", ulid::Ulid::new()); + for directory in [&manifests, &namespace(&p).join("files")] { + let path = directory.join(&orphan); + std::fs::write(&path, b"unpublished").unwrap(); + std::fs::OpenOptions::new() + .write(true) + .open(path) + .unwrap() + .set_times( + std::fs::FileTimes::new() + .set_modified(std::time::UNIX_EPOCH + std::time::Duration::from_secs(1)), + ) + .unwrap(); + } + let protected = BTreeSet::from([first.tree.clone()]); + let config = p.config.clone(); + p.snapshots = GitSnapshots::with_policy( + p.data.clone(), + Arc::new(move |_| config.lock().unwrap().clone()), + vec![], + Some(Arc::new(move || Ok(protected.clone()))), + ); + p.snapshots.gc().await; + assert!(!manifests.join(&orphan).exists()); + assert!(!namespace(&p).join("files").join(&orphan).exists()); + assert!( + manifests + .join(first.tree.strip_prefix("copy:").unwrap()) + .exists() + ); + assert!( + !manifests + .join(second.tree.strip_prefix("copy:").unwrap()) + .exists() + ); + assert!( + p.snapshots + .diff(&p.dir(), &first.tree, &first.tree) + .await + .unwrap() + .is_empty() + ); +} +#[tokio::test] +async fn configured_private_roots_and_parent_symlink_replacement_refuse_restore() { + use std::os::unix::fs::symlink; + let mut p = Project::new(); + let private = p.root.join("operator-state"); + std::fs::create_dir(&private).unwrap(); + p.write("operator-state/password", "secret"); + p.snapshots = + GitSnapshots::with_policy(p.data.clone(), Arc::new(|_| json!({})), vec![private], None); + p.write("nested/a.txt", "first"); + let first = p.track().await; + assert!(first.skipped.iter().any(|s| s.ends_with("operator-state"))); + p.write("nested/a.txt", "second"); + let second = p.track().await; + std::fs::rename(p.root.join("nested"), p.root.join("moved")).unwrap(); + symlink(p.root.join("moved"), p.root.join("nested")).unwrap(); + assert!( + p.snapshots + .restore_reviewed( + &p.dir(), + &first.tree, + &second.tree, + &second.tree, + Arc::new(|| Ok(())) + ) + .await + .is_err() + ); + assert_eq!( + std::fs::read(p.root.join("moved/a.txt")).unwrap(), + b"second" + ); +} + +/// Child-only worker. The parent kills it while admission waits between two +/// actual native replacements; there is no production crash switch. +#[test] +fn killed_restore_worker() { + let Some(base) = std::env::var_os("CYBER_COPY_CRASH_TEST") else { + return; + }; + let base = PathBuf::from(base); + let rt = tokio::runtime::Runtime::new().unwrap(); + rt.block_on(async { + let snapshots = GitSnapshots::new(base.join("data"), Arc::new(|_| json!({}))); + let directory = base.join("work").display().to_string(); + let ids: Value = + serde_json::from_slice(&std::fs::read(base.join("ids.json")).unwrap()).unwrap(); + let marker = base.join("restore-paused"); + let count = std::sync::atomic::AtomicUsize::new(0); + let _ = snapshots + .restore_reviewed( + &directory, + ids[0].as_str().unwrap(), + ids[1].as_str().unwrap(), + ids[1].as_str().unwrap(), + Arc::new(move || { + if count.fetch_add(1, std::sync::atomic::Ordering::SeqCst) == 2 { + std::fs::write(&marker, b"first native replacement acknowledged").unwrap(); + loop { + std::thread::sleep(std::time::Duration::from_millis(20)); + } + } + Ok(()) + }), + ) + .await; + }); +} +#[tokio::test] +async fn process_kill_between_replacements_retains_preimages_and_never_replays() { + let p = Project::new(); + p.write("a.txt", "before a"); + p.write("b.txt", "before b"); + let before = p.track().await; + p.write("a.txt", "after a"); + p.write("b.txt", "after b"); + let after = p.track().await; + let base = p.root.parent().unwrap(); + std::fs::write( + base.join("ids.json"), + json!([before.tree, after.tree]).to_string(), + ) + .unwrap(); + let mut worker = std::process::Command::new(std::env::current_exe().unwrap()) + .args(["--exact", "killed_restore_worker", "--nocapture"]) + .env("CYBER_COPY_CRASH_TEST", base) + .env("PATH", "") + .stdout(std::process::Stdio::null()) + .stderr(std::process::Stdio::null()) + .spawn() + .unwrap(); + let deadline = std::time::Instant::now() + std::time::Duration::from_secs(20); + while !base.join("restore-paused").exists() { + if std::time::Instant::now() >= deadline || worker.try_wait().unwrap().is_some() { + let _ = worker.kill(); + let _ = worker.wait(); + panic!("native worker did not reach the between-file cut"); + } + std::thread::sleep(std::time::Duration::from_millis(20)); + } + worker.kill().unwrap(); + worker.wait().unwrap(); + let reopened = GitSnapshots::new(p.data.clone(), Arc::new(|_| json!({}))); + let recovery = reopened.recovery(&p.dir()).await.unwrap(); + assert_eq!(recovery.len(), 1); + assert!(!recovery[0].filesystem_complete); + assert_eq!(recovery[0].applied, ["a.txt"]); + assert!( + reopened + .track(&p.dir()) + .await + .unwrap_err() + .contains("requires recovery") + ); + assert_eq!(std::fs::read(p.root.join("a.txt")).unwrap(), b"before a"); + assert_eq!(std::fs::read(p.root.join("b.txt")).unwrap(), b"after b"); + let journal = namespace(&p).join("journals").join(&recovery[0].id); + assert_eq!(std::fs::read(journal.join("stage_0")).unwrap(), b"after a"); +} + +#[tokio::test] +async fn historical_exclusions_do_not_become_deletions_and_configured_ignores_take_priority() { + let p = Project::new(); + p.write("a.txt", "abc"); + let before = p.track().await; + *p.config.lock().unwrap() = json!({"snapshots":{"max_file_bytes":4,"ignore":["secret.txt"]}}); + p.write("a.txt", "oversize"); + p.write("secret.txt", "key"); + p.write(".gitignore", "!secret.txt\n"); + let after = p.track().await; + assert!(after.skipped.iter().any(|p| p == "size: a.txt")); + assert!(after.skipped.iter().any(|p| p == "ignore: secret.txt")); + assert!( + !p.snapshots + .changed(&p.dir(), &before.tree, &after.tree) + .await + .unwrap() + .contains(&"a.txt".into()) + ); + assert!( + p.snapshots + .exclusions(&p.dir(), vec![after.tree]) + .await + .unwrap() + .iter() + .any(|p| p.ends_with("size: a.txt")) + ); +} +#[tokio::test] +async fn executable_mode_is_reviewed_and_restored() { + use std::os::unix::fs::PermissionsExt; + let p = Project::new(); + p.write("run.sh", "echo done\n"); + std::fs::set_permissions( + p.root.join("run.sh"), + std::fs::Permissions::from_mode(0o644), + ) + .unwrap(); + let before = p.track().await; + std::fs::set_permissions( + p.root.join("run.sh"), + std::fs::Permissions::from_mode(0o755), + ) + .unwrap(); + let after = p.track().await; + let preview = p + .snapshots + .preview_restore(&p.dir(), &before.tree, &after.tree, &after.tree) + .await + .unwrap(); + assert!(preview[0].patch.contains("old mode 0755")); + assert!(preview[0].patch.contains("new mode 0644")); + p.snapshots + .restore_reviewed( + &p.dir(), + &before.tree, + &after.tree, + &after.tree, + Arc::new(|| Ok(())), + ) + .await + .unwrap(); + assert_eq!( + std::fs::metadata(p.root.join("run.sh")) + .unwrap() + .permissions() + .mode() + & 0o777, + 0o644 + ); +} + +#[cfg(target_os = "macos")] +#[tokio::test] +async fn macos_acl_grants_cannot_make_private_snapshot_storage_readable() { + use std::os::unix::fs::PermissionsExt; + let p = Project::new(); + p.write("a.txt", "secret bytes"); + let global = p.data.join("snapshot/global"); + std::fs::create_dir_all(&global).unwrap(); + std::fs::set_permissions(&global, std::fs::Permissions::from_mode(0o700)).unwrap(); + let result = std::process::Command::new("chmod") + .args(["+a", "everyone allow read,search"]) + .arg(&global) + .output() + .unwrap(); + assert!(result.status.success(), "{result:?}"); + let error = p.snapshots.track(&p.dir()).await.unwrap_err(); + assert!(error.contains("ACL grants"), "{error}"); + assert_eq!(std::fs::read_dir(global).unwrap().count(), 0); +} + +#[tokio::test] +async fn recovery_inspection_does_not_wait_for_a_paused_native_writer() { + use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering}; + struct Release(Arc); + impl Drop for Release { + fn drop(&mut self) { + self.0.store(true, Ordering::SeqCst); + } + } + let p = Project::new(); + p.write("a.txt", "old a"); + p.write("b.txt", "old b"); + let before = p.track().await; + p.write("a.txt", "new a"); + p.write("b.txt", "new b"); + let after = p.track().await; + let released = Arc::new(AtomicBool::new(false)); + let _release = Release(released.clone()); + let paused = Arc::new(tokio::sync::Notify::new()); + let signal = paused.clone(); + let snapshots = p.snapshots.clone(); + let directory = p.dir(); + let resume = released.clone(); + let task = tokio::spawn(async move { + let count = AtomicUsize::new(0); + snapshots + .restore_reviewed( + &directory, + &before.tree, + &after.tree, + &after.tree, + Arc::new(move || { + if count.fetch_add(1, Ordering::SeqCst) == 2 { + signal.notify_one(); + while !resume.load(Ordering::SeqCst) { + std::thread::sleep(std::time::Duration::from_millis(10)); + } + } + Ok(()) + }), + ) + .await + }); + tokio::time::timeout(std::time::Duration::from_secs(10), paused.notified()) + .await + .unwrap(); + let view = tokio::time::timeout( + std::time::Duration::from_secs(2), + p.snapshots.recovery(&p.dir()), + ) + .await + .unwrap() + .unwrap(); + assert_eq!(view.len(), 1); + assert!(!view[0].filesystem_complete); + assert_eq!(view[0].applied, ["a.txt"]); + released.store(true, Ordering::SeqCst); + task.await.unwrap().unwrap(); +} + +#[tokio::test] +async fn deleted_parent_is_recreated_privately_with_original_file_ownership_and_mode() { + use std::os::unix::fs::{MetadataExt, PermissionsExt}; + let p = Project::new(); + p.write("private/a.txt", "private source"); + std::fs::set_permissions( + p.root.join("private"), + std::fs::Permissions::from_mode(0o700), + ) + .unwrap(); + std::fs::set_permissions( + p.root.join("private/a.txt"), + std::fs::Permissions::from_mode(0o640), + ) + .unwrap(); + let metadata = std::fs::metadata(p.root.join("private/a.txt")).unwrap(); + let before = p.track().await; + std::fs::remove_dir_all(p.root.join("private")).unwrap(); + let after = p.track().await; + p.snapshots + .restore_reviewed( + &p.dir(), + &before.tree, + &after.tree, + &after.tree, + Arc::new(|| Ok(())), + ) + .await + .unwrap(); + let restored = std::fs::metadata(p.root.join("private/a.txt")).unwrap(); + assert_eq!( + (restored.uid(), restored.gid(), restored.mode() & 0o777), + (metadata.uid(), metadata.gid(), 0o640) + ); + assert_eq!( + std::fs::metadata(p.root.join("private")).unwrap().mode() & 0o777, + 0o700 + ); + assert_eq!( + std::fs::read(p.root.join("private/a.txt")).unwrap(), + b"private source" + ); +} + +#[cfg(target_os = "macos")] +#[tokio::test] +async fn file_acl_is_excluded_instead_of_recreated_with_wider_access() { + let p = Project::new(); + p.write("sensitive", "private source"); + let result = std::process::Command::new("chmod") + .args(["+a", "everyone deny write"]) + .arg(p.root.join("sensitive")) + .output() + .unwrap(); + assert!(result.status.success(), "{result:?}"); + let snapshot = p.track().await; + assert!(snapshot.skipped.iter().any(|s| s == "metadata: sensitive")); + assert_eq!( + std::fs::read_dir(namespace(&p).join("files")) + .unwrap() + .count(), + 0 + ); +} + +#[cfg(target_os = "linux")] +#[tokio::test] +async fn extended_metadata_is_excluded_instead_of_dropped_on_recreation() { + let p = Project::new(); + p.write("sensitive", "private source"); + let file = std::fs::File::open(p.root.join("sensitive")).unwrap(); + rustix::fs::fsetxattr( + &file, + "user.cyber-snapshot-test", + b"metadata", + rustix::fs::XattrFlags::empty(), + ) + .unwrap(); + let snapshot = p.track().await; + assert!(snapshot.skipped.iter().any(|s| s == "metadata: sensitive")); + assert_eq!( + std::fs::read_dir(namespace(&p).join("files")) + .unwrap() + .count(), + 0 + ); +} + +#[tokio::test] +async fn conflicting_owner_edit_refuses_the_entire_restore_before_replacement() { + let p = Project::new(); + p.write("a.txt", "old a\n"); + p.write("b.txt", "base\n"); + let before = p.track().await; + p.write("a.txt", "new a\n"); + p.write("b.txt", "agent\n"); + let after = p.track().await; + p.write("b.txt", "owner\n"); + let current = p.track().await; + let result = p + .snapshots + .restore_reviewed( + &p.dir(), + &before.tree, + &after.tree, + ¤t.tree, + Arc::new(|| Ok(())), + ) + .await; + assert!(matches!(result, Err(RestoreError::Conflict(paths)) if paths == ["b.txt"])); + assert_eq!(std::fs::read(p.root.join("a.txt")).unwrap(), b"new a\n"); + assert_eq!(std::fs::read(p.root.join("b.txt")).unwrap(), b"owner\n"); + assert!(p.snapshots.recovery(&p.dir()).await.unwrap().is_empty()); +} + +#[tokio::test] +async fn restore_reserves_displaced_preimages_before_changing_source_files() { + let p = Project::new(); + p.write("a.txt", "old a\n"); + let before = p.track().await; + p.write("a.txt", "new a\n"); + let after = p.track().await; + let mut used = 0u64; + for name in ["files", "manifests"] { + for entry in std::fs::read_dir(namespace(&p).join(name)).unwrap() { + used += entry.unwrap().metadata().unwrap().len(); + } + } + *p.config.lock().unwrap() = json!({"snapshots":{"fallback_max_bytes":used}}); + let result = p + .snapshots + .restore_reviewed( + &p.dir(), + &before.tree, + &after.tree, + &after.tree, + Arc::new(|| Ok(())), + ) + .await; + assert!( + matches!(result, Err(RestoreError::Failed(message)) if message.contains("cap reached")) + ); + assert_eq!(std::fs::read(p.root.join("a.txt")).unwrap(), b"new a\n"); + assert!(p.snapshots.recovery(&p.dir()).await.unwrap().is_empty()); +} diff --git a/crates/cyber-snapshot/tests/file_copy_platform.rs b/crates/cyber-snapshot/tests/file_copy_platform.rs new file mode 100644 index 00000000..04cd44c6 --- /dev/null +++ b/crates/cyber-snapshot/tests/file_copy_platform.rs @@ -0,0 +1,21 @@ +//! Unsupported native storage stays explicit without failing conversation capture. +#[cfg(windows)] +#[tokio::test] +async fn non_git_windows_capture_is_unavailable_with_an_actionable_reason() { + use cyber_server::runtime::Snapshots; + use std::sync::Arc; + let root = tempfile::tempdir().unwrap(); + let data = tempfile::tempdir().unwrap(); + let snapshots = + cyber_snapshot::GitSnapshots::new(data.path().into(), Arc::new(|_| serde_json::json!({}))); + let directory = root.path().display().to_string(); + assert!(snapshots.track(&directory).await.unwrap().is_none()); + assert!( + snapshots + .unavailable_reason(&directory) + .unwrap() + .contains("native private storage") + ); + assert!(snapshots.track(&directory).await.unwrap().is_none()); + assert_eq!(std::fs::read_dir(root.path()).unwrap().count(), 0); +} diff --git a/crates/cyber-snapshot/tests/snapshots.rs b/crates/cyber-snapshot/tests/snapshots.rs index e9626273..46bd5390 100644 --- a/crates/cyber-snapshot/tests/snapshots.rs +++ b/crates/cyber-snapshot/tests/snapshots.rs @@ -199,12 +199,11 @@ async fn restore_brings_back_deleted_files_and_keeps_a_backup() { } #[tokio::test] -async fn disabled_or_non_git_locations_take_no_snapshots() { +async fn disabled_locations_take_no_snapshots() { let r = Repo::new(); *r.config.lock().unwrap() = json!({"snapshots": false}); assert_eq!(r.snaps.track(&r.dir()).await.unwrap(), None); let plain = tempfile::tempdir().unwrap(); - *r.config.lock().unwrap() = json!({}); assert_eq!( r.snaps .track(&plain.path().display().to_string()) diff --git a/crates/cyber-tui/src/app.rs b/crates/cyber-tui/src/app.rs index 55093580..18978517 100644 --- a/crates/cyber-tui/src/app.rs +++ b/crates/cyber-tui/src/app.rs @@ -2359,6 +2359,15 @@ impl App { )); Vec::new() } + "session.error" if data["kind"] == "snapshot" => { + self.toast(format!( + "snapshot warning: {}", + data["message"] + .as_str() + .unwrap_or("code rewind unavailable") + )); + vec![Action::Refresh] + } "session.error" => { let text = format!("error: {}", data["message"].as_str().unwrap_or_default()); self.alert(crate::sound::Alert::Error, &format!("cyber: {text}")); diff --git a/crates/cyber-tui/src/rewind.rs b/crates/cyber-tui/src/rewind.rs index 705257f5..d5822542 100644 --- a/crates/cyber-tui/src/rewind.rs +++ b/crates/cyber-tui/src/rewind.rs @@ -567,6 +567,20 @@ mod tests { assert!(matches!(app.overlay, Overlay::None)); } #[test] + fn optional_snapshot_warning_keeps_the_running_session_and_draft() { + let mut app = app(); + app.session.running = true; + app.composer.set_text("keep this draft"); + let actions = app.on_event( + "session.error", + &serde_json::json!({"kind":"snapshot","message":"storage cap reached"}), + ); + assert!(app.session.running); + assert_eq!(app.composer.text(), "keep this draft"); + assert_eq!(actions, vec![Action::Refresh]); + assert!(app.toast.as_ref().unwrap().0.contains("snapshot warning")); + } + #[test] fn permission_and_attachment_drafts_keep_their_priority() { let mut app = app(); app.overlay = Overlay::Permission(crate::app::PermStep::Choose(0)); diff --git a/crates/cyber-tui/src/snapshots/cyber_tui__screens_explorer__rewind_review_light.snap b/crates/cyber-tui/src/snapshots/cyber_tui__screens_explorer__rewind_review_light.snap index eacd2d8d..4d1db251 100644 --- a/crates/cyber-tui/src/snapshots/cyber_tui__screens_explorer__rewind_review_light.snap +++ b/crates/cyber-tui/src/snapshots/cyber_tui__screens_explorer__rewind_review_light.snap @@ -10,7 +10,7 @@ expression: shown │command or compaction. Clear reverses the stage while preserving later owner edits. External │ │effects and unresolved tool/native outcomes are not undone or acknowledged. │ │Composer after acknowledgement (newer edits stay): WRITE the notes │ -│1 proposed file changes · 0 current exclusions │ +│1 proposed file changes · 0 snapshot exclusions │ │deleted notes.md (+0 -3) │ │diff --git a/notes.md b/notes.md │ │deleted file mode 100644 │ diff --git a/crates/cyber-tui/src/snapshots/cyber_tui__screens_explorer__rewind_review_narrow.snap b/crates/cyber-tui/src/snapshots/cyber_tui__screens_explorer__rewind_review_narrow.snap index 98e0934e..0394b4f8 100644 --- a/crates/cyber-tui/src/snapshots/cyber_tui__screens_explorer__rewind_review_narrow.snap +++ b/crates/cyber-tui/src/snapshots/cyber_tui__screens_explorer__rewind_review_narrow.snap @@ -14,7 +14,7 @@ expression: shown │undone or acknowledged. │ │Composer after acknowledgement (newer edits stay): WRITE the │ │notes │ -│1 proposed file changes · 0 current exclusions │ +│1 proposed file changes · 0 snapshot exclusions │ │deleted notes.md (+0 -3) │ │diff --git a/notes.md b/notes.md │ │deleted file mode 100644 │ diff --git a/crates/cyber-tui/src/snapshots/cyber_tui__screens_explorer__rewind_review_no_color.snap b/crates/cyber-tui/src/snapshots/cyber_tui__screens_explorer__rewind_review_no_color.snap index eacd2d8d..4d1db251 100644 --- a/crates/cyber-tui/src/snapshots/cyber_tui__screens_explorer__rewind_review_no_color.snap +++ b/crates/cyber-tui/src/snapshots/cyber_tui__screens_explorer__rewind_review_no_color.snap @@ -10,7 +10,7 @@ expression: shown │command or compaction. Clear reverses the stage while preserving later owner edits. External │ │effects and unresolved tool/native outcomes are not undone or acknowledged. │ │Composer after acknowledgement (newer edits stay): WRITE the notes │ -│1 proposed file changes · 0 current exclusions │ +│1 proposed file changes · 0 snapshot exclusions │ │deleted notes.md (+0 -3) │ │diff --git a/notes.md b/notes.md │ │deleted file mode 100644 │ diff --git a/crates/cyber-tui/src/snapshots/cyber_tui__screens_explorer__rewind_review_screen_reader.snap b/crates/cyber-tui/src/snapshots/cyber_tui__screens_explorer__rewind_review_screen_reader.snap index 0ef54edc..38d82b47 100644 --- a/crates/cyber-tui/src/snapshots/cyber_tui__screens_explorer__rewind_review_screen_reader.snap +++ b/crates/cyber-tui/src/snapshots/cyber_tui__screens_explorer__rewind_review_screen_reader.snap @@ -10,7 +10,7 @@ expression: "render(app, 100, 30, &Opts::default())" │command or compaction. Clear reverses the stage while preserving later owner edits. External │ │effects and unresolved tool/native outcomes are not undone or acknowledged. │ │Composer after acknowledgement (newer edits stay): WRITE the notes │ -│1 proposed file changes · 0 current exclusions │ +│1 proposed file changes · 0 snapshot exclusions │ │deleted notes.md (+0 -3) │ │diff --git a/notes.md b/notes.md │ │deleted file mode 100644 │ diff --git a/crates/cyber-tui/src/snapshots/cyber_tui__screens_explorer__rewind_review_wide.snap b/crates/cyber-tui/src/snapshots/cyber_tui__screens_explorer__rewind_review_wide.snap index 05b1b686..5cbd25c2 100644 --- a/crates/cyber-tui/src/snapshots/cyber_tui__screens_explorer__rewind_review_wide.snap +++ b/crates/cyber-tui/src/snapshots/cyber_tui__screens_explorer__rewind_review_wide.snap @@ -9,7 +9,7 @@ expression: shown │Files are restored when selected; the conversation boundary is staged until the next prompt, shell command or compaction. Clear reverses │ │the stage while preserving later owner edits. External effects and unresolved tool/native outcomes are not undone or acknowledged. │ │Composer after acknowledgement (newer edits stay): WRITE the notes │ -│1 proposed file changes · 0 current exclusions │ +│1 proposed file changes · 0 snapshot exclusions │ │deleted notes.md (+0 -3) │ │diff --git a/notes.md b/notes.md │ │deleted file mode 100644 │ diff --git a/crates/cyber-tui/src/view/rewind.rs b/crates/cyber-tui/src/view/rewind.rs index 4c54205e..37e6f1cd 100644 --- a/crates/cyber-tui/src/view/rewind.rs +++ b/crates/cyber-tui/src/view/rewind.rs @@ -140,7 +140,7 @@ fn review(app: &App, lines: &mut Vec>) { } if let Some(code) = &preview.code { lines.push(Line::from(format!( - "{} proposed file changes · {} current exclusions", + "{} proposed file changes · {} snapshot exclusions", code.files.len(), code.skipped.len() ))); diff --git a/docs/features.md b/docs/features.md index f1c884f7..8feb4186 100644 --- a/docs/features.md +++ b/docs/features.md @@ -19,7 +19,7 @@ Implemented behavior and remaining scope, reviewed on **2026-10-16** (Cross-sess | Base prompts and output styles | Embedded base prompts chosen by model family (`openai`, `anthropic`, `gemini`, `local`, `default`) from the catalog model, not the provider; built-in styles `default`, `concise`, `explanatory`, `learning` and custom `~/.config/cyber/output-styles/*.md` and `.cyber/output-styles/*.md` (validated names and frontmatter, 32 KiB regular files, project styles held until the checkout is trusted and part of its digest); selection by Session switch, creation, `output_style` config, then `default`, for primary Sessions only; `/output-style` picker, the Settings Config row, `cyber exec --output-style`, `GET /config/output-styles`, `PUT /config/output-style` and `POST /sessions/{id}/output-style`; a family, style or base prompt version change starts a new Context Epoch at the next Turn ([guide](local-core-guide.md#base-prompts-and-output-styles)) | Available; plugin styles, `cyber import` of `.claude/output-styles` and per-agent styles remain | | Safety | Workspace trust, permission rules, protected paths, auto classification with confirmed `/approve`, macOS/Linux sandboxing and Windows AppContainer confinement with named profiles (`deny_read`), the environment policy, credential masking, `Sandbox denied:` reports with one-call escalation, excluded commands, `sandbox.*` events, `cyber sandbox explain/test/run`, the `bypass` eligibility gate (sandbox, container or `--dangerously-bypass-permissions`), org `policy.modes.disable` and the rule dry run (`cyber permissions test`, `GET /permissions/test`) | Available; on Windows, sandboxed Git Bash and PowerShell cannot start in the AppContainer yet ([issue #9](https://github.com/CyberdyneCorp/cybercode-cli/issues/9)), and the Windows proxy and full auto-mode controls remain partial P1 | | Untrusted content | `webfetch`, `websearch`, MCP tool, browser and MCP resource results arrive in one `` frame that content cannot close, with hidden characters shown as `[U+XXXX]` markers and overflow re-reads kept framed; a deterministic injection signal detector (seven kinds, `detector_version` 2) records `untrusted` on `session.tool.settled.1` and admitted messages, with a warning line in the TUI, the web dashboard and `cyber exec` (stderr and stream-json); after a signal the run is tainted until the next user prompt, and egress, external writes, classifier-allowed commands and secret reads ask (or are denied with no user attached, in `dont-ask`, or in `bypass` with `bypass: "deny"`), with taint evidence for the auto classifier; `permissions.untrusted_content` (`taint`, `bypass`, `scan`, `allow_when_tainted`, project layers may only tighten); base prompt guidance (version 3); a labeled fixture set with a recall and false-positive gate and scripted end-to-end scenarios ([guide](local-core-guide.md#untrusted-content)) | Done locally (P1, `add-untrusted-content-defense`); the TUI and dashboard state each notice's consequence from the Location's effective `taint`/`bypass` (`untrusted_content` on `GET /sessions/:id`); hand acceptance on the real binary remains | -| File recovery | Shadow-git snapshots, conflict-aware restore and [reviewed rewind](rewind.md) with explicit fingerprint confirmation | CLI and TUI code/conversation/both; idle Esc-Esc, staged `/undo`/`/redo` and guarded composer restoration. Private non-Git snapshots and broader recovery acceptance remain | +| File recovery | Shadow-git snapshots, conflict-aware restore and [reviewed rewind](rewind.md) with explicit fingerprint confirmation | CLI and TUI code/conversation/both; idle Esc-Esc, staged `/undo`/`/redo` and guarded composer restoration. Private Linux/macOS file-copy snapshots, retained restore intents and read-only recovery inspection are implemented; managed resolution, journal reclamation and broader recovery acceptance remain | | Project collaboration | Self-hosted Git project hub, verified organization/friends membership, explicit published local agents, human/agent project and private conversations, held receiver consent, fenced shared tasks, CLI `/collab` TUI, the `/agents` Project hub group and typed SDK ([guide](collaboration.md), [evidence](implementation/project-collaboration.md)) | Experimental; off by default. Live Auth provisioning and multi-host deployment acceptance remain operator work | | Clients | TUI, noninteractive `exec`, background service, HTTP/SSE/WebSocket/stdio API and generated TypeScript SDK | Available; complete P1 client surfaces remain | | Installation and upgrade | Signed releases from `.github/workflows/release.yml` on a `v*` tag: 8 targets, `SHA256SUMS`, cosign keyless bundles and a rolling `channel-` manifest on GitHub Releases; `install.sh` (POSIX `sh`, SHA-256 and optional cosign checks, atomic install, marked PATH line, `CYBER_INSTALL_BASE_URL` mirrors); `cyber upgrade` (verified, atomic self-replace or the package manager's command), `cyber uninstall` (sizes, confirmation, no symlink following, keyring cleanup), background update notices and the `min_supported` warning; a `Dockerfile` running as uid 10001 with `CI=true` ([guide](local-core-guide.md#install-upgrade-and-uninstall)) | P0 done locally; Homebrew, npm, Scoop, WinGet, AUR, Nix and container-registry publishing are partial (manifests rendered, not published); no release has been tagged yet | diff --git a/docs/rewind.md b/docs/rewind.md index 1ad429b4..41f27a00 100644 --- a/docs/rewind.md +++ b/docs/rewind.md @@ -18,11 +18,11 @@ keeps the conversation; `conversation` moves the active path before that message `cyber sessions tree`, checkout and `export --all-branches`. The fingerprint binds the Session, exact Location, sequence, boundary, active tip, -snapshot identities, proposed patches, current exclusions and retained tool status. -A changed context requires a fresh review. Code planning uses the existing +snapshot identities, proposed patches, available current/historical exclusions and retained tool status. +A changed context requires a fresh review. Code planning uses three-way merge rules; unrelated owner files stay intact and are not shown as -proposed deletions. Conflicts are reported before application. Planning uses a -separate shadow Git index and never installs proposed files into the workspace. +proposed deletions. Conflicts are reported before application. Git planning uses a separate shadow index; file-copy planning uses private objects. +Neither installs proposed files into the workspace. Confirmation obtains native Location ownership, rechecks the current tree under the workspace mutation lock and refreshes admission before file changes. A failed @@ -30,13 +30,20 @@ native acknowledgement or event commit after a possible effect retains the nativ activity fence and backup evidence; it is not a successful rewind. Do not repeat a mutation to infer its outcome. Inspect the Session and retained recovery evidence. -Code rewind currently needs an available Git snapshot with an implementing -reviewed-restore host. Non-Git Locations and disabled snapshots support -conversation-only rewind; their code rewind fails visibly. Current snapshot -exclusions are listed; complete historical exclusion reporting remains acceptance -work. Legacy stages keep their original owner-route behavior. A reviewed file stage -cannot be replaced or cleared through legacy stage/clear routes, or discarded by -branch checkout; use a reviewed clear or explicitly commit it. +Code rewind uses shadow Git snapshots in repositories. On Linux/macOS, an +admitted non-Git Location uses private BLAKE3 file-copy snapshots. The filesystem +must expose stable directory creation identity and support native metadata and +replacement operations; restore currently needs the Location and Cyber data on +the same filesystem. Unsupported cases refuse code restore visibly. Windows +currently supports Git snapshots and conversation-only rewind outside Git. +Disabled snapshots also retain conversation-only rewind. + +Current exclusions are listed; file-copy previews also disclose exclusions from +the target and recorded manifests. Complete historical Git exclusion reporting +remains unfinished. Legacy stages keep their original owner-route behavior. A +reviewed file stage cannot be replaced or cleared through legacy stage/clear +routes, or discarded by branch checkout; use a reviewed clear or explicitly +commit it. Owner routes, under the normal authenticated server boundary: @@ -63,7 +70,7 @@ available through slash completion and `GET /commands`. ![Rewind boundary menu](screenshots/rewind-menu.png) -The review shows the actual proposed patches, current exclusions, retained tool +The review shows the actual proposed patches, snapshot exclusions, retained tool statuses and external-effect warning before confirmation. ![Reviewed code and conversation rewind](screenshots/rewind-review.png) @@ -101,13 +108,11 @@ The screenshots are real terminal captures against a local scripted provider. The capture fixture writes the sample edit during a held Turn to exercise actual Git snapshots and preview rendering; it does not confirm the rewind. -This implements the CLI and TUI rewind surfaces of -[#93](https://github.com/CyberdyneCorp/cybercode-cli/issues/93). Broader native -crash/restart/interrupt acceptance, complete historical exclusion reporting, the -private non-Git backend and recoverable restore journal remain unfinished. Path -rules/context, root structured output and JSONL input are also outstanding. The -retry-count specification reconciliation does not implement root structured output. - +This implements the CLI and TUI rewind surfaces and the initial file-copy backend +of [#93](https://github.com/CyberdyneCorp/cybercode-cli/issues/93). Managed recovery +resolution, journal reclamation, complete historical Git exclusions and broader +native acceptance remain open. Path rules/context, root structured output and +JSONL input are also outstanding. ## Recovery acceptance coverage @@ -123,6 +128,63 @@ A fresh TUI App separately verifies that clear preserves a new terminal's draft. An instrumented snapshot-port test loses native acknowledgement, reloads the runtime and checks that subtree stop reports retained unknown evidence, keeps admission closed and does not replay restoration. This is not a native -partial-replacement crash test. Process-kill cuts during file replacement, the -recoverable restore journal and complete historical exclusion reporting remain -required acceptance work alongside the non-Git backend. +partial-replacement crash test. The file-copy suite additionally kills a real +worker between native file replacements, then verifies retained preimages, an incomplete journal and refusal +to replay. Broader cut-point/metadata/platform acceptance and managed resolution +remain required. Git restore has not gained this new journal. + +## Non-Git storage and retained restore intents + +File-copy snapshots live under +`/snapshot/global//`: immutable BLAKE3 objects in `files`, +versioned Location-bound manifests in `manifests`, and native restore evidence in +`journals`. The Location identity binds the canonical directory, native device/ +inode and creation time. Replacing a directory or using a foreign snapshot cannot +transfer restore authority. Capture hashes bytes every time; matching size and +mtime never establish content identity. + +Capture respects `.gitignore`, `.cyberignore` and `snapshots.ignore`; configured +ignores cannot be undone by a project whitelist. Private owner roots and `.git`, +`.cyber` and `.claude` directories are excluded. Symlinks, hardlinks, read-only +files, non-plain ACL/extended metadata and unsupported objects are skipped. Snapshot exclusions are retained in each manifest so omitted +files are not falsely described as deletions. File modes appear in review. Existing +ownership is preserved; recreating a deleted file uses its recorded ordinary ownership/mode or refuses before publishing it. +Missing parents are created privately. Non-plain metadata is excluded until it can +be retained and recreated safely. + +`snapshots.max_file_bytes` defaults to 2 MiB (hard per-file bound 64 MiB), +`snapshots.fallback_max_bytes` to 200 MiB per Location, and +`snapshots.retention_days` to seven days. Limits account for retained logical +payloads, records and displaced preimages; filesystem allocation overhead differs. +A cap warning is emitted once per Location/condition in the running service; +conversation work and successful `exec` results continue. A fresh capture retries +availability after conditions change. Durable Session references protect staged +baselines and inactive branches. Unreferenced old manifests/objects can be pruned +only with a complete durable reference view. Every namespace containing journals +is conservatively retained; no quota or timeout discards unresolved evidence. + +Before file changes, restore durably publishes an intent and prepares private +stages. Replacements retain displaced inodes; progress and completion are flushed +independently. Admission and content/route identities are rechecked. A failure or +process loss leaves the journal and preimages intact and blocks later file-copy +capture/restore in that Location. It does not automatically roll back, retry or +acknowledge uncertain native effects. + +Inspect retained evidence through the normal authenticated owner API: + +```sh +cyber api GET /sessions//rewind/recovery +``` + +`GET /api/v1/sessions/{id}/rewind/recovery` and SDK +`client.session.snapshotRecovery(sessionID)` list the selected Session's +Location journals. Inspection is bounded and read-only, remains available while a +native writer is paused, and does not create an absent namespace or start +inference. `filesystem_complete` means only that the worker flushed its final +filesystem record; it does not acknowledge the Session/native receipt. `applied` +contains durable checkpoints; a missing entry is not proof of no effect. + +Managed keep/rollback resolution and acknowledgement/reclamation of retained +journals are not implemented yet. Do not edit records or remove evidence to force +a retry. This increment preserves recovery material and provides inspection; it +does not claim complete operator recovery or arbitrary external-writer atomicity. diff --git a/docs/screenshots/rewind-menu.png b/docs/screenshots/rewind-menu.png index dc9ba9cd7a46d75abb982275809847634949ba34..6881ed9abd3cbd26f059d3452ae0b82ba0d081a7 100644 GIT binary patch literal 108358 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 JE!DP<_(mYl341O$2(2Le3_e1;6%p$@2d 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ⅈd)7FLv3KY6%sm?k+{>CT;_+qmt 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 diff --git a/docs/screenshots/rewind-review.png b/docs/screenshots/rewind-review.png index aabf0cb5683fc1e8ffe699b2e992c668ce70a6e0..f1149d4e9d4fe9673dfd4d82f2114b7c395cb373 100644 GIT binary patch literal 169505 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
  • YY)<(T_WK>@c6^oU9ahBM89<%1sAJva% zsytoO9`;n(BTi8)rUCU2WxrK2h(k|$R=Y}1Cw`I&=30X`bIiTs_%>}&CQs1#zlx|j z{f`)@iT<=fO%(pbJkC|T{S0ciPWPqL9_PhbVNxk=UJTV&WeHpqUF0jTJS#~8#O-_>V-XGRanHv<&{NW00Bmm*ZgG6y)XaYbG z(yJkQ6FSnm6tlC>`S+GM?wdv3%7h00?BG_%7$ORCHrG(WGRK8#jV?799De}el)se< zk9NbHZG`_+aBojvvdP9NDJsXR{rSra7jD9~g#`#%K9&E)2>&(yPNVbx>Q2Q;;|=@< zHnso1<&xh{ZT~%+gG%($LTq zbjNqZJ=@i>mZ5~Qigy9RWXfE2ePD?0{AWJI$F~yC0ci^)-|?b)$n+d>Ulyz4mmE$C zHb_s6j6^pz25cZF6qE?uY*u+1^-9a%QhqGkQH3o`RA0AEk1eoPOplmi?qbEugAQ+xBlqM^R7^P*6}9=|;LikxuCb zr5kCGQV}IYL^=edJEgn3J2&01>5lK@nZak?_5a>){l8hWW;vVfX7BsH_jRAwaUSRI zNIju;z5CQ`&lx8J)2E(r!h?*gu5#1O_nh!@(*wFUs%PhnwT_wVZgILLs)b1Aht>eo_L!f2Q0itf~wLb3K8dfwA!(_8$@FibiR<>BGdt zyr;46+C6i^;*5joLbp-&-)n21ek}*D6bp+WO|YSf39fnQcF06xQPEJ6AAzF19YbDr zwsrc3&;0z=4%kOSqpzU{Mk63#;9QVA*FL!l3xp!i-^v&$T$PmD{|y^4{KnUiZiEft zUBG2Ms~$`SA9PvyHB3Q4Ay-tiTFLVSK9en9+9Evlr6ZIJHQnJnW~68I_V&78yJl}T?yx^_$72h~mDcIX3_Kd# zmVGY|odF^v%A}9kU7u$FrvF6eSYs)=@+0)@td}x^f)Do2#=)@rpMlyI39Bwp3;nc+0_;*xUosDMT`m#`ZRTg-%>nXVnuHb#+Mz32baEm>p#_t17kg~NFVFQD^G>zbt^4tu_n_wBushh;q8MQy#H`s+d8eZVI>lHo~{eKPYU>H5( zQcNGq>%6kEb&)I5)7#5e;by-))E$SiPkGOztH=nHEic37GL`Uf)gMlKnX35!aNY}{ zmw^E{MD|+`=P7VF1=1Q&SBiO?H-F#S7a==kO?R{Kkh59pE)`=TKa5=HBtQ;VcvxwC z(3{NmhkCk=R?Ng?1&DagUp5)1(G-XUb_ZW!q3Y7!x8KDf8H3E*#&VA>9+ELIk#2yPv8KdlermL9|9 zFdy36mzEF|l%E-;>8w6BT38)1nBls2@VdY+m7T|I=i3=zby-Y?8#=0G{<`aodRzo- zCWyqDwb>J-9!N<|$=wOQV-n5hD8E5pZm$yZ7naeyOV+>|7qFD&5LM4!XuKfuCm|y% z+uY}}dX;q&GAoTpg!!TVy<};U2yXq*)YPM*W+p0yw8Vszpzz?mO_#;#;yl<~WU42` zu>ApPOECHhBb*ZzmiZLt?2?fTqhmEz*$>6~?=GFrCKd_7x^Pnrk?C zL3A9(0fUzk=pf=DIWULs<9mpQ^{B{k+!#9gx#!r_cfY{mE*q4Z&_?6ne74Z!34lNG zg?6vTMV!mkE9RW&m0Z?y;{ULP!b+2Yf}!WDXla$QG%IV}zC{Y&g8+JDe=5`<)^jsJ zxK7t7un?%pPrN?z|J<6RFdYAB4HF^=jVxbD@ISz_=rl^b zXa{Hu?FuJuBRs%qxH_6a9OAYy>j+ofZ^|B)&~j6eaF@b{iEy{(|a{6eLhL&_>4 zYK68T74LtJ#mOZ8(hGxuK?wq`lcPEDz!xt+0z1l5YWwG@I-%i6?3@h(CSocPBw%lc zu@rE+!2FlH^XE2Epf!#Qe+7c!-3twFHjV{~_#pfO`4mO>Rt9EPR%TYa%%uXSm3dg> zbdQtKA8^J(Ldm%+)6fWjb08zbv9wUn&6{u5Kd{Z?=na^S);FN#VlT<3=Gv`v053j>dhcNB z^gjV5af$8T?62fTdRpKP?USY^A+eM5;<(UaQGB?cj7gHtjBH!adOA@8`v00@qc5BuLEt>PhicNT+!@(F&Lv#jtOa&op?- z!38W3pO!XgvGLSgWhpu)mPpqNx?V6b)`^K(Lb?khFj%M_AZUD+`q8-;WTN>IwEj&e zNfq(kZ2J&se`8Odoj!CZ$in^q3TbHxiOhdx1bAke$Cv~_ZxGNzR5f$}fl=viYSi5G zrviQD_Jl;<-d}EGoGT}$=SOLZ5?NWMnaNGiQ9OMYRP3}}0)DbXCt!+WVjUpGp7bCa z3G^n4gfWV`{P~>)Rp5N9?LE>3hc_cH*f%Iw-Mvy&fI<#5cn_I-kRp3QLy9IQ2ES5c zV|`dKBejJ==gg+Mx{29PPNDQ5y80CC%hGQCDG;BLW&&nA+lXuoWbxG}2n@FFUg}~f zzi|G7a`62hu0VVSOFIk#pnBB6Qk!oqE6qVN^YSMa+FL=_^Q$HAT&e(-n|@uK!lWXr zitUWZKUv+8i#OUrTh+MneVinZ>s{77N{d35b4(yWV~&^E>A`BgrG^p3ZlbN~&7%Ki zGNRKzS}Y_7fMfMDnWR-xb8gO8v&+8dcsb!7u^zRCDAPakN<9J zDgmEce^nP4i24#=ESPG&KK}-AmoY(0{~*$Bg9T>w7nNMq@+D4&C`>kwl|1AsD*5E;@#N6? zOqUP=T?^b(ty6&7t4!~vE&Oga*59h6kPf~ZT_tGZY1p&)8q4dWXF4dxhvBG(byaRf zH>)8bYZ%!Dy~>jl5y2N!L0=#Bg&cF7C+1TR2N|2-E+#Cjo2fyRWn6a6XLcT!_N}&E ze&ha4iX&cTla@c}PVR0TDTutetJmI3%2uY&fab6|QK8_N> z0$EBj@J;qQf2?g3k$zvxy9&@B<*J3G#rFGO?^7@EQsbI5%Qb#&S^zg{XDD;#n-#Kv z<`I_t+utH`Hmb+DbUvXs6}&MPoB!*!Ez54~xp^_j?{LMJ4kj0w&oP?63C+wjFLXQ7 zEZ?^QtT~HGF>Z?&Yo>OXM{PcpA1Ik~=uzR{VVgDoG`Hjqw@*4LJ}AbcIjw-Gl-8<9h>NS$mPgrNtvSDT zd6)0f;;NZH3i8=Gb*jacj)tMbC$Xsa)81tLa+Q+TjjzG{JDG_db9iV3*D|jHW}r7# zkiQ*~FTc{uE9BD|=$OfAlJpP}>F8hwXQe6i`CtRx70QmL1!w2|j*FxSmEcqRCG=Lt z0hL0^Sn#!v1wI$p*_=Vy>jqV6YcmTlOPy~l!gj@$afew-O7t3(GBr7)vj}%#7Hni_ zB$!SvxLvO?126U|5ji1Cv-eJ2V|@;$xH=P7Hw0pu%Cg`Ns-m(9s*zjY_YDl>kN7hM zsQ2P9QJ(rVuXo_i%G=$?A_6x)eHvb0QO@ZB)a4M3nUkFlb{{SkfNhTz{rR5IL zylT)`0{1N>{dgvq$hCvYN4e_sY9Ia3&y}9(vsn-$Q)dAqfV!3BTd(KHm;%1m$8j0LryB74pF zDBH@wK1r-M_`R75ayFcWgg({0<$wPE56~vzZVQbV*X(h67L#f$bJA>RHc{ht&}uvt zb{&3tc^izWq}G6ead|=lmVYo^hs`nF7&`Ec>Z%K(SNGR4oS# zD!?p8GPof5F=~axl=J!C=ALgF?1?cU*mA-*A|FC>-FCNzfviOLgHLX8Wt|&>v$W<^ z6iBfw|L8O^)SX_J;iD%N522(c%=RZtY!K4!-!^4_eMECHRo>IrL#3xL^X;7^px^jE z(r{3ULLHZ!Z0N}xSQ&GoRY_9sHSeKNHvYtNOwcxuptk znwx>?sfi60j?hONKe|IWUP;Y2^n3ht(INtimPp-_cBkl|Z9hmKC-^$|!C>eEk4Wj) zVK3NhY;1jsR6wC|t$+R5FY2j%Gb-IhDpQ?yjxvq@b_S+D_y>q8WJNnFyXW;zW7H5` zo<8zk*1?hElYab>H7iMB`o3*9QJn)qwzx0|R+!#U;9gAeu3jw`t(E`C_b@x>SFS9( zeu1o9FT~cJP!g@EQ2b(02G#Gi7r^?cEhI%H^>nm<*}C2(3NLj?$drX#Q7Q_XEz^2~ z{g^ps^O&mc9_|#7;x9}i1Y_m(4JUUN`#E@MeLX>C9Z5s{wI`q}Nf^S>Kf0QNZJ}P? zrp*MS*8mK+WXdWQR~&O)9!%9}tjU;)xWd=cnH?I*pLckcc~^YvfwOjd5G{ybDNNvA z%zJm8JD1?Ig?!9)Q`tOxE(-lke)CtT5d~6IK~#Qj-X}YhD~*4IX?1{Eg2F_Wch23K zI1*yFeCEZ|HQQ6o6;@Z+6)N8B$+x&io*trlggM$4ubkYi z_hOko&kQNrQv)4KeyvV4p4vg3Z-?ylOQ8S3R|ro;_w~wA{uqsNZKKrkM5*+1MNe7p6P#qp21 z_(^m7%X(Q-X0CA))5?_A8R66_KKw4a#& z4`;L`%=7&{6?)-}_E4xT%3^S&Zxig8o|#5ZaRSEpkC^H>x}JEAANV$fyt^bW+D1o zBy5xR#cNA+S=G9z+_0Bv@mr{CJExH%l`Q7BR=~+8iO2H=Y6Aaq9afodU(zYRd=x`l zFvOWCQw~hh8t@s8`COw~ljK?6z8uL~z^9oH8E6hSfu9Okk|~IDlrN~NOvG@WiQb(I zY#ID|LF0N5oa1HmngvGT?#`8w_@$;&sZD!2A!sf32ioB(Tt(!er75VaSP?f!#3L0M z93{f2+g5<{;Su2=DM(j!k$3@xOdbq!tJ&=nGDcoZ<=omt_}=yY+Zzt-EZ}t_M{>RJ zshA=9>U`O1j0f-Kyz@JZvj9|Z5LZ|>PK-*Q3Vn@$x@>xS8lar&S^E7GKSu9Ag$MxS zW#eJnS1d%|-CVJ;v4qNW2L(oXx3TUS%0UjDOx10Hg1woW}U`WA@%0peZlKs*><{5 z$X8}i2x`FDXOHb3ln=SF!jP4Bk5$3i3dZ^`?$v>76}P-@3EbNzHSYK&N|R)Qnqn{;Ts;=n%UF3!JPda@E;Yv3mOPl<{zw+avA^X{_dHs)*LuS)XAs8Ei<2i4 z8ZJ$OMS1cB`{tke^I`r;h0os)D^jwuT64<*P8hBHHN6JAIEQfRhXMQoBO{z12f^ok=U=lGs4qBih1sLhXRR*}U&0{KXxdEz1rH%QHOLDE zgneEkhR*?hmN|gP_+LVGr8bb2xguZe=GOrpMfx3U-v?ZxXET%jI>l38)aQ58!mi1c z>@3orlj@tvMfuJLHtUW}-Y0^4Xz{b|#anW77!#%EuW&lPc%8+TJwo3G>}>FcVOMq+ zJ?rRmi_3HQ%uTK86Y$zNZ7+b(09A0UZ5Z9xuc+g5nhrg2N{blG$`(i>C?Bz3hdfva z$LUC+F8s(B{zxBOIOA{kA@^y7OOf4qnaF7v7vhs)^Ws*OQQ~$?riX5r9nET@30fD} zLN(s*OgQbx7d*KOASYa0aRL6HZw9M%6bI(u)HO)&9!@b*NfYQ-gk6Nk{Tki|{NVcP z^8D(ueq^Un(QJlRexxAd?f-z|hJFc(KYpwM?-i21YK5VOJ_ew}sBuvdPFWBUG4T-l zclX9l+vR}^?GS8$(8NWpzwP_QY<0EREs(`0#F=am0khu_WARMo4{}6(E1*`vGzu7b z2#4f$IyLXCxK>PD=^DgwGZDbkz#Z=D?q-3G2d_bOcK3{RmZQ2ljnf4s4D?rXFkGpR z83Ul9xv~Yul$E(HSj9Uva%=22tw3S{J8aWXyr^}SWa*w(@v&~tj><5B+i~KZRY5a% z^=r|N$ZG(S9UN$u?AGK9iV#6*#xTDhYLo zj(p7502$geDO9reV@&(}5fLAHtl@A+%Qs8L~U22i^WBwQf==!)A@kWeegxJe!*8 zblc+H+=kX?m8B|%AT;EH8C!opNNkN~3t1-Zv(UktZGa-4rB>Wl-~OZi2_B0Xkmh_M zsj{7?$`WbI`ukZxZvY^{fPL3fb2->|`+JGf1@UE@px}qh%*yssnzRXk(pRf0wIwZF ze&deGV8(fEIE9F~xC?}~SW7CwFeY4`kZCX{%kJm$YP&=sW5n($fKE3Zpk|O){ybk5 z^>_=JW&Irn*3#Xw){gx^7KMO7Xi_=>`(9v&W4gB`0qt+gMaw8hdb_vgJ-6NlzfAS~ z5}@bkX3XxWq!$ENX`N`18iKie`kV?u7ThY(Z zEXZDruTHgJ;%7zx}LeM-HZs6Yak~j>)Fqv%HOb2()5ne@{>XhgWL#d0hMV7m z?92u4eZV;vQ8Y1tnSqiRlAJsy-52*F&6YX@aM~?O#{hb0QHtj-?I=t)IVU?bFNlWh zUKSgB2%e0xl7mn*pwPZJ>(N#D+}`v}mn&LYD(|Sw`Rtbo7ZQBu3(SKr=bu-W!k zRdCrt^$jtpvjgwRi~Si;_ErNU0%(gZ_N5>|1J!n-(y6gxJgio@V(w)jq~b{vFioG9 zzC0w8HP4iBKZgG$f?>~MKM%K)B6!=8nTAUzZQUF*WYXtTa|<~bzcy?jqw7OWg?5g^ z(MN_0$4JUBQ-$cgs~DwuH&(tpU=tN4-{#p`&xnA5^YAr1d2r|fv+-oSTCc}6Lj3!t z=&EiCQ)y}+Ph zvtb^)kspQ_jqf`6ep^&Cvu3R3dxq3b1Cm9}CCL-A-l)S3+mo`hT}lg@*<$3WG=L?z zoZxd$jDV*o3-Xg%+_E(*ox9^RBdi>(K+^1Em6>R0b_e_5V<>;VlF2Yvh*CmZ{N-p%bflW=ewXT2DP} zYR;RS^o{iuYwP>R#-@Q`iGdtHoci!5GU{60%}cXx(N zZ~wr=6IQZ$pn=0P<$_|_Q5DU`6!U_)FoEqQ>)GDHlL6t47iovb2NiF!nePnrCA2k&%5}}1SOZQ_3$1 zkRUVZ?aS-3Fk~RPdlN#NL;i~yJV;Q@D<};MJM=N=gtK;B%O?%<2POknxTp$*W94g* z9RITpi8ftVzXDOY7e*SFQ$DBt$M@^|KUmE z6UQXXWSnoO2jjFFr=MN<&p#rs+dpLp`W%1!^ocoHW+~&QDLZLZgtm^(apM%WasJWt zVIJtrKVN)H{6I&iW{1S}KXp1kKp0$G{I>r^y18c?P%V)Uthb7?3QX0dJO6&sCj2|5 z%GM7KFuXi(S|DQm%gbF14Jpds@BGQ*I#wx6j#>QX>{0pVS+Vn`b31B+$w11={QBJL zsABvun^pvhD9 zcfW93aDAnd-mR>r;v=Fwgq@*y%(`QZc>iMc@uN5*V!l*)#iU-#smqrFa^r+}@BE3) z)>cM9h{b(+ndO8a-!ES(4$Y6IdPBZymE{~yGR$c$<<429G9cPRGob0iIsP$Ac)?Za z%Y)PWEng_Rw}T^pgdyChiEx60-G#qQt6rvc+!XH%S-UUgR-dh(JI zl3GKlvU4KhR0oPws$;?e=w}6pxm=q<%~NjgdzLm<-abBPw~O+0TIbs<&%V#g>>R6w6D32r>{VlM`=?qJAwO{dUG#bBym;|K)|6&)^u!(kN!u zX^Hpr+>nT>KDmzO%3=Op?DV~-L^LD(HANgLImong77OzA^LfmhZ4sA9i^pOyr!m&p z)C42mRrT8j$n$N#+jtxM6_sLvRK!HS5rstAmlylZ_mVjG=v79>Yvlxt2U3prwcHXN z>?gaX^jekf`PZWCJv1j|cq>sVH6Hk!oJd<=-`vDRDc5HBhHnJ=@+dJc9bLUEkR=w> zioHG6i*10@;18=F#i%5F>Bkx*&(03IiN(^1h&nvf`BIhm>Inui)x$ZnDQA}xSNH0D zJ6%hDv)0Nve5@I5;?j|Mc{%Yiu-lN~jvN%tG2P zVEn0_S~XqS8?>KV>+V$Bf`Wo0+I4~`_}6xs;GR1Y3JfpO*uwu_hZdV#X z)qum^z8K5xs~sIgJr-SE6Q?LEg--W(&s+yiRC*Hux5Zq}`sl#Av#L|bQ)C#U)%wNd zLF$Q1L}Sc08dpu|N-=49O-dD%svCwOD3I1~u3jiq=~C18aE;4eN&6kl_&ny>*@sz= zeANukKw2%!qsVARcJ}@&67B?i@&#FH`9us1G6H2j$Dv_r@k0u*Yz5Z9*Hx}ep-g}>UzL^! z-0V#;3?X!pN?#8)s$KNNq1t~f{*{0;G}cKe6OkUza_iPDC3>xrH|r7-62Ck{L&G~X zi`oVT=w_@J6zYyc5Ox$s?XXDP*jY6_FdvY*@Il&gYE(Tw2fFMs*Lm;r+MN_>WBU^e z>ce;Q8*1!B+k5@iL{?n%D%sefumjbg;{loiNB(s**Rq@h zL-Qfmk`rn2x7i2t0S&u>TYlTP3TY}_PTh-eQ^m1 zZkOp$iy&h-KTgOBH2rgm8^faYE&YM?`KD82_XurhR}=3=#p6xuBny8Y5c?^#RwDMu z>R|GWf%tQRQsrQhdtf>#6;_R%UljiPt^BVYA&?x6Yn*!0<3LVC^E zzV9q6zP`SKx}BM8l<0wTz486VfT6cquCv61M#RYG!V@%cacsHX5<<3-QYVAAzFxjw z7afYUe&c-A=8u;*K>#W0YHDjwC!j3|)HO9F%j5-rvVbUF1EMbIxH0qxkhPZ*17flwzzOc=BVre)i# zWr?ZgIo6i+<-81*?p^;edhtA>Xr9qMwVoP5&54PJ&LKmg4;VtZ&@Vqj^Vv;&Sfn=* zQsQo?$!8a_?IYssTsGB(I#@#>_GGcU zHrQ-LeCy_Y%v-n1(#m!=sJ>6+@V|Ir2O-#r6-)iCA&@D)_W04`M?cEE9S~)flEV`W zj+{k$KJ!VoJR}(m*pD9vx%=i66kz(-)d|!dhzXca6yf0EXG|;|6 z|BHlOgfcWqb+_>w43f*EhpDyfc3*XweKiDDJg)biJ2 zOpS&MT()8Y+^{K~gvn2*w>Ou3#N0^4Cdauf_98OXb465i6U27ITY}fikEpeb-BgWy zJ-J;sUQ&XdF(=P7##2V(IFi$c{N%yoA5Ut)%{b9n*sDL9Xslo-B?r^Y;V3N*Rbjag z{O=3oKeLgtvd*6j_v*DObQvCst);bPHlzJcP5}k0uZVXP#H#RLP z`X6~jy>*!z!uycnBpAw$N6bXKrJO&^S8;2PZ$DCP%Fh;xQz=>wv1`YRA8uCRmCR~s z8&em+!eWfDxvVe%gZGUYXNDu=_U^_8mA0|*K&BjIOt)-!ihePA2gpXGE=2McfVuJrPNklb#8r%!=^5o%^}=7gd#x#xi@*nV@`T`67LS_HomVsyNekl z)?XpMuTRS-!%C;c&L^0^k^NL}>sL#^aakN z7*Q>9mI^sP&4kuqC%L4hxVO6jTze1pFT1_ZZkp!mEJ=$FOF&{AT1k_(fHk*;J(@KUZlOkUcl;$bI&tKDEYr>RV>4r2<=;Czr zjlMlr7RBrlo}|=$J9WIsRg&`dx%QW-Jpvb$i*MIybZBU3HG!QOVykn?y#+Tc|4mp* z$}m2MB$#&OP}Nv77kDqv+s*gBx)$FvzfJyyY1tN`G@R?Su-Dh`8qUN-v+5~nNFU{!PBCjo_!WW@vgOGTQyIAn3NV+ zI4wjHd#84?5E7ECD zoTC>Nr`_%rSvv`n+f6-=g34?+IS@>`Zs>&EPDi@lYn}O`azLMd^OYV`)H&*)$8MR# zxBF>lG+*ZlLEWpf%-`-P zZ0f949%r!(#TABXhQ9)inm2_2!i6DJ!O^rFXun^`-sin5OSuphd|eMQ zM)FLKqcldBelxK(QBcUqF>|tieV35(!g(+$oppJ*uFS@Ki}?%F%iEbO{q^N-{K^K- zfA>6Bz7?9^iFjmyTx53XkOq;3uNk&1E#I$Sv0#m6ai}|oQ1L~V%VTh*`3ENJ>(|n} zYu%!h$g^WYClp~{p_z4s*@k}V$luSpVoOJeTwRhAtM1LaS&nh}_+Q0@Lts;<_Tc`C zzQcR@=(}0hS8=^YOE#AeTyb=Nf9LoA%u4!YcT-+hQ{#I3kCp=hjul__E!4N^_fqB4 zM3KJ_jL13)E94l-qM8##8M9#L{{C>DGVp$&0J+#+gjBxs_wSylP1;+Zusj}UA1WGJ zi(p$e5dZx$uqVH*JgV$>ZWk`LyA{6B8Ksfq@O*iV7Qc^RW4K93GGdsEy}*1>X4qjP zi?6n}mi@nP?53$^OE;y~u4+D$T;9vq`^?uOP=ivL&4ybB2BaLrLPL}Ljj^N2tr#yq zA7}`=Lj2Ajq>|+Hv^^!&O-+}5_2+SV7wBNp0>|IlK+5;gSoHhfU|+ajX*Q2vIrk5t;C^~=@1>GUa+Df86GyK*H_R5zP6-{yK?DBT}OyPHQ)Jlt@u0vZh0Uy zOi#~1ku!6zvR&1=r$F(?Th1SuFou2RS~$^)H2g>RH8gA*?IK{qkY-}CuBG)OT^%!><4Q)nE)JOFS2g~DNN!UO*9INpbzqAz1k3oIe-j=CZ5gPXGmeDfPE0O3w+!d&TT*dRl^G9vhRkMseB01|; zxFkW+I^J7PIktR}6+5AjI`|fU>&v4gK9)}li;_J{RtxO?CNA;!258h6O^)ox{;>(Y zD`R^vxzBqF!Wb2mF*5V^I%Lji_Xs8`3#~^jKpeW~FN|TO|LhaI zQ+^;~0{?wDBvVrk!fu1ag81B?UyVqo)aouoRz3N?^GFkyfI#0|-(1@`JWtp$BWbBI zC1AyM?4`hsJI5#Gw@oKl75H|#5veN$t8ZOUtSlwNudEgNt}NO8{at-FkyMo^AC@cj zdMc98O{M$;_N&E>GZ(~HLSiCvztioW7SJ+-_zUeaG{aNMQmbpvlkO?fs?|9*>c%Rr@)vwEbbe2QjTgK$0~DC_PHr0g8;Z{gbPQ7xMx7k9#O- zuJ@nitjZ)ISY4}1h;ntLz+*!C3C(J=1^&Qk!RzsIz~d{jvK8L-hiSG)ApO)8im_mN z`S_k5XYp~+XGOT)-?xktqJTa6Be*n5Z|NX@TI8%1N{YR%ntUDEyDtsYrXT;TMop!> zHHjUKchm}&Vgf;dRYXN}gvN<$ews287z!c&w7deAzqTa#;e#STJs-0gkHpGsD^AqA zKwU#HhNjN#ws*#N-ee^XI}(i)u{)Sytd1ua`@f0)(9pKf(wFkaZk70yiN3Na^3mvL z=@7Y2m+8?i(N4hUYBMv^Zxm2@>&_ifmwUcm&0idS1mqjP5~$~yiuNi-+pP3=R(FeL zDDwC?lo%}RUAK0FNcX|PbK?_Tn5(MgF`d|G%_06Qi&R+(i;pv8Ceqe6=Cp67a`D(U zkfM#^QxgyirW=I`KunIU{R(DbM%$JCEdIGvB1Wepd$vqXf867H`bQ{b#VgC#4h)!Yc+z_x22#B2Qjt$Z*}n>%dse6xOK@>dDE{so2aP0>VTHccSC^LBu^;#j%lw`D?o<-3;ANoyuMZxMYDYT(Zx3{Bwl+^-6 z{GYs=Z(UUL*Sdb`nXqAGfsj#&KRB4B5jKI501XKAhYT%g$%SzNa{T<$?oRI;&pEh} zjYdmr9LM&T1=5r3=4buO`Ob1YwHeAOxfPM2p@s*F?hWl|>|8z~03meRCrn4IEA$;7 zt85!cM&#-r_N3>NSWGyJiND2oz^$*_VtK`k%T7@!IJuwxHn-LGhI+PXez|*`tN4?_ z8V_}}!Gq+EkZ251o*VToJuQV+3Yae?O|EQRUTevS%u|)}j7N!tuR1#9?V0cE3nIqUeh&%V282cO}I@o?2z^MZ%lK$+I2Rt0j6kK9O*y)Qhxg!(0kjexMpsZW%~Md10=R2`d2DZFPF(w` z_sZx}-gmkrPtO<Oxk`_xCA{w2hZ17k_DwTkNI=OPAMz0(c>t#v?ND3+(JX)W-$t zpcw0XR}C$YP!qPP9*^zPoz=8%L+CB1%9am+mP`V8MyK@HpRn(}-wqucg%D#atRli$?h3 zS0aa~ZcrjWrt}6`f$ZxG>0~rC+&&J_OmaR%OINQfew{(Z;bdQi4m&3FuTo+hY}oAo z+@@hq7XX`3fal6kW+4hjFFKed1!h0{jps-^U*}(QvgNRyF7i}XRaraO{^pU80H7z ziQ%)g9hF@?X2leFL}w)8FhJjkpkrV_QJ~EUSIAiE|pa-H?>^G z7#SL(xPGq2)@#ztrseXJKDx+8EpZ5ka#E)F(PyCkq zas4~b*f?i|dzf%(QdHxDFVrhLqtO}!GI;9UPx?kl#THoCBM){dL_1gqEQZ4>WAZXG z)~a4dCvn{GFJ?+QvRjMc{<01Q9yAvP;#JaEiyscLm)`6793rRRX8bZw>;}UNp8>N# z%vVt9-7%JDbWYQY*rSX}tz0$|tFCUQWMHs_))z>zA+sD64N^zEWMrJ}M^CD&A>5ou zwkiLO`3+WvZkgRQh1GtySMFrAfe{@Ybkh41(RM5S$eLm%w1pF3?&dt=9!uQiTM5BE zf*Ko2?YsWZYlZM`usVd3JBW@u2mfFd>{;*Ne&3`&-#2oOx*{P_RS zb6~XC&Z>m&w2z3tc0DZ(?e1uXSvrr;Jq0{atZ+niZhtP872!D`Yvsk~P^CPvK8Tqj zv4TG0yWB-j_qg8A_nmu>4?fJ9Ko!i%nX2LQ=@V3NHppJYNQ0_?xn^Y|lzJp&oW@%R z4BxqZL*s*Px(-wp^3E!AyV>#cfACaR8=V~yT%S^yU1;ap3HerBTn|ysjLBME3EyPd zgQz|pnALK+q0*pen_|-2R9D1$?uxVAOpQ&IH5U{$m#J^Q&wYNYV zMc1MPZ70j7h=tIyxebT&`9+hOIZT-_wgmBDmoXU941p6Su+sGJ6l(JP8s51!f-i6zJehjq)H zNoWcLKTM~KlL#Xvg2-XG2JXApj|!5oFIt{my)IZ+Xw?rsqy*kzsiX*IyPXKme9j;1 zi$5z(`csl*Q%d#^<@qY&g^_=>C>=PRM;mEj3pH@?Ui)tSL@6O#w|eZJ#i{k|%k~jl z!Fb&iMkDlA<+E0yxlMa{UENXrJF+xqPl)DR0tQ}yy5ic(x;9j;`R>Y$ahCyQ{k1Ha_Y%Cdb*l1{~Qf^`is?#*t@^RS3!n%$J}Tz2QV$_;3C}l=b902Y!JH57N&bSptI9v}&{o0q|IsitV9GAG-7YD6 zIwkv!#E-vei&sZS$6UQs^_Q|GG|1uBb@8R}9OB}fqhF*Uf(7Q2c+EZ9;GM~SO05d| zMrkpNXi~8tDW+`4y&V++fdhQ*Qm7cS6q2GmfsCL^IK*rkbx*QAnuEAqnv{gZkQop5 zgzn;v3(Y$8&1ie^4l4x+$vOXDyl4!%z~Urw9F9uDoJ#4%17Cuj3@U80*ASg6ZX1UhZJQKl|?sl^A zyo0q9IWOs$&&)=7-w6vZy!{26QFlw4VNP40jipBT|HIx_M^(A5`x;wO5m^|dfP#vE zh_oWHR6<%wX{Ebi(x`}_l(e+8bazQNNH<7#O_;?3S zJR;6_=F;tyi?1np#Yn!QBWDuk<00SZcYCmpK1UpFfI$Uy&pCh=;5RJ0K|8L@h3a!jv5EMo0~4vH z>o1u%#jZ&*G3hcIP?*#?wR$9WYGJNXr4Cy4l_T2LVqEd);V7baPUF#)T&XCvTlpHN z6H4Rl2CT-rcjD;f&IHjErPR0jFF2s?u@RBooa-2AZx`aDAf5aN&ep!X(`Y30E$CPW zZ4P|={g>HPBQ-%OJGl<)Z|`-NB&6Tvxutp#`($i0m8_r3!uwpL#!j}%NDW-MWSjzC zRZScf6_u6YU`nLU?IuY1mI~!GWyUskDj?&kfnvsg9d=xwdk!rQ6WWDL}*5~(I<@5DiklMQe zNwN^`*qFox_#hk+qAS!1enE|&51uZC>D6XyOYrkSp+7Jn)Ofn(jF99VbHNT$&F*-i zeGs~u_ii#Y22yIZNvwU{TdRs)yL{W_Ou2e~B=BK$-MINLB3qaI*M8UJxrKqA`=%dC z`K}#ZjW)udf2h?6xNLb_!5k}VPr(8q%h=^R9aecy16E~kdsYn6t%z- zkM-h=*dX@UiDiS|1(nWmJ4C8t+>po04PMXs<&Q~wJGjD}Oft{EgkS88zsETxR*D0L zNCKh9kH6~W_LtnBbh%uAv#!_zWO2gOcriaw=7-PyoMjmmV=oRM=6WD(F0N!hUyL?M zxzPFnt$+HnIr9B@xF-n`moE@_3b3H+Y)Cx?_{1Z*B5aY@OGopKWzNJ22L&{rcup0~ z)H3U1q+^mHc}J;DDN0rGAWxN)KK>eyg!Cq_h=>TDo}uK>Lo3`j zukzv*S1L-}3q^HyEUr8Wo^7tJy^;QaikNV7vZ>AQ4Dj-&UOz5D?%s9$B05>4ZEyS*<;(BGVe*NIltGozO}G zMcR_6z9X9&q9zhN`N|e;%Fp5FJOXP|O8Ow_M%nW4!=>3 zLaO7LyE5$B(Lbyk0DkN4%&b-b4naVx5-putMCtA(p0I1voprJM9C=@YH2t^5lt^|l zl`zUg(1jWA1ch^$he&RJR&j{Sc;4f2b{^(l3CR;xV=w%eZ|28Y9Rh$GfPoZEZv|b5 z5<;&=7)5G(c&1ah61RVC}Y zTM{(p7Pn#{yOd7;q$>M5sF!X~(FN!obOgK|R=XShm=8$vSo}UD(XEfu57{Ih`Vor0 z_ws5*>Na}yEOFjoa~v&GDyszbaOrzndU7DjB*O2G6pQSlyXjhYO+y^h3d6?btM5Bi zIN|hPv@&O$RCvY*6Uy-^xvn($ZPW5{fDi=CLoc@1u2PphIRi{^qfasQ4Nl=gb^}90 zbE^~7LX8GLbuqvus3gR=o_p^GM_blL{%8vs_(Xj5tQ&J^g_4Jy?mP5M>avtN2!EEQ zODNd^ETG65RpfvPBjL7sXch7lelO@NkZo}vlC#w@e zt_dCt6f4e!5k}_N%^gs3+kS3dMlJLVgT^vlDOCXC;~M2Q*iy1JDlShEDuGRq_D4FsbHRo}*FmZs_&ZS4P+M%VPApP=b&%BN(;kR!4XJ*$qZ_5g>EK z!clI3DuaaDcmOpMuWVP0n%^Q+c{A!k631o8I60p;^K}gr=z5}}fZZ=xkq0y^T#Vzr zmClI2x3~^JP5z*%)|-qiHy`mNxtndFE4=XeJJ*CDvzmzQna6<=QdV8YU3`3?5ATQ^ zX+DMmZ?^k%3xMhx7>aPn6heh~MN20381~DQ${MPB#%qNa>9ZS2<*f{t((~LF_XUSX zlkdaoH7Up0q3nEUQbS#5hOQ^u3kOQl+23DIhB6zJ3Mm&4?pmlV#wJ2sxKU@6xz{!S zw;pVyj;cS3vh;vih{gddRP^bOtEqa6OhTEUTOZC|F-5>A26`SWU@Xc;{ z22ps91ZJfQ0GlQ$N?@{V3w<*)nfmWF0uYUYn$%Z|YY^FiHrL+!+sPUBo!mS-f*0%wr2oqxQ*?iBJ)V zhVJ{tlFG$OCfd`>=|UV0Xw3sBn?J#)`8hsTpU>9BouQYC)LdfK43;A>zF*8mWi~bx z+*L8NKzNCyA5H)$%dgAHeqrXw|Hx$g^!-UujMc;UZ?gCo^58clN+-eQ4X1PC>M%-Q zj`ZXm*obRA(e_nd+#q=9>nqT0>Jd}SBlO8m5Z_qpVcH$t>hC;7Ktw=0yEwjra90if z+2L?d8|1V_x>vj>)$MK9?M(Ub;p0aCOj~ZhaRZ1mE32wdB5Vc<7;{@TSG?KXDYvNh z#A(@%ISUXW$}uSWtL?5&u6*vEYBqQ%>>5ig<@zjOZ|eZ~uesMYjHv(%Z+EzuV>Mr& zL+eB+X0ghTPMQ|+@OmBP%LM&<3ycm$R*&~tF~}NRJUv+m z_LV!+?(XJ>)mfXy@W`onf#rdDtQ$ai=ti!kepN&J3xROBbz1kl&&)vVnKo5fDdWkH zrou05k#0Fkn?;==)svJw7i#UJFojozj+Za9CMt4MQE}C{bj2E>zz6dNW+AB*fr~EQm)d#wG5VI{>r&gckbb$kCwhw;HIEtPIn~nYsX^+iuJ; z-rGpnTDd?*Hi!(MBVv%{y2ZMYH=2q&(>lFJj}z}6OHZ=&{HaE;CL{Qh+OJp4e~b5W>sbq@rLqz(@2Rsx`3Q-S zOCVp~l}!#Ljw~>0Ia7pd9BLI_1cqn`V_1ZWKuojs8O-M&S8QtGk2WV!&xh*0M1aD6<9=k;!ar#Hd$p3z(pJ z)Ha9-g1MHHEsm4je*XQ#OG2dy+0W6k<82%8dGqY^$G-NaA=jv{ty06h|;&yP!ZJpz%g^-HZVlP=!UC^KvD8LQn}r@OZ9n6{B`HQ?W|_bVsmGh2-fh z%`YER;822j&3-(R+Rn<*`@M&K=#Ltnej)EAAy<;=!B}u zh^};5Cg+fJ)Um*PW;e?% zI$dz;IhlR3bSTdZ4WJxO`O;|vW#;)C<6|}=a&jrs{U##eXgoc8>6z?eTBW>zAH7XC%P;u7M|3%lv?zgftoj2DV4MIRsLiM z33^8-?vDDri0?btl;|EkBW2YMboOxu9j6(g&fM1>(2CDICWCqb+O0()*FZ7ZV=P62lm^WL+07gq*&2r`zsDVc1#}@}EXy4T_ra2MYx+M=A7jZF?j{s;}5K+zkS2 z#)Y!bw6l9>aP5#)vBuC75Rs8hERGLofBOban#rs0dL|Is9AxJik36QCjE5=0blw*E z#tqVKj1j!~;NGC>$kcBOvmH?epgu0cYDaQE%m8tGkC$>!Hw2ZMlEM$k!NPzb*N04r z+zZ7#P`2BYIRm3$ZKQ}+6>m~esr5^kNAh?QbL{M%O+qblJZTW7SMFg`#L39-EpZ(=9s(?I*54h)nfFGAf^%qt1V zwKOsLx=gM})EXYJe=rBwV=z8FvC%!J<&A+$b39HQJvwhawp9b>bCHvoy*jK+nVD@7 z0%4q+ZAH2C`$i-6j&{tQEWm%3f$9(F`zgjJ8E~*cqrBbzNL}FE!a%Zd=(%u11H%=Z zlU|pZzo|U`{e9E7@xsnQ$HBYS+Zf>>S{SvwyE^9FN#iXMx+nHts8nSxgoMo~I@>+j z&1mw&QKoiUnhV*Pnc-Xxd2ZXg!;ecZi%cc4`B&zRGGFQ&!aeKe6&#S*l01~*@;Y_N}3IZ59Y(H388DY;h{&K9CTEJVkH!;*P?=rA}ii*X)aZT(x zLl#d)Db`F)(IGO)y^ks8V3vz7Cdq>%Q}0rC|3}eH(R~3iLj!}e65}9gB3!41=1|OL z4$KQ7o{IWAfkLJv*0wef?%p{x^blhSAJ&^9lK?s>kd|dxwZIPwWRQEnSG2hpjxMzK zc0BHnKcA!9OdMGL`~d;PH?%d|>%9MRAMu`W3ycQ=$=zJGv%hZ|e{k};ObUCOn4&%N zf-5bf!&?esle)o#H<_8HyRE~$sq#L~`Fe0^U>!P}4_I=Qk;D?OWpdeh@PhT@1_9t$ z;^?kEQsQN^E}J5)2|G--wkTVQQnC?ufbi7Vn0&mw&AuDGxp^joqS1s`DffLxn4%rm z<@))XqR>tVkj5?cRc5QlZcon3g4W)6iY_YZsv z{qf@`Um-7iTkL!N0T>461XQOS?9As0^c4s9PMmp#n`_^GRwm1*kYg0YnW5X2;v)HxSKs!1KGsCTwc@z3`e52_Zm7Q# zMEY)zp&m28ma(=~JcU?@hXy^@6D2o6BSE^QS&K>#3og)Tu_Yiu?ht{y!I5;0HNmLc z>D>O3Otm5{{U~S#+E;2V9ZoE{zvzI9%i(&t(XMhKBXsqENK*3JKKY!XcvX%A3_5Xg zk#<|l@f6o4zfHn_{6Bm!*`3BCz*?h)<6u5DT5oT%)i5N1htG2WLa)PXF87P=h{r&zog225 zO_OXHsAa!7yVkNGmmn7LocQW@1tS18Blu`RV>Z3saHv2C?%A7QKKfL3B#$n1K4_%= z2FZ`-7|6IwoK*Rmn;HCZK0zWu)0!VFo*} zgr7{Mu;lZEpm&!<+2r(Cq1FVur+`$V9%}r$aNG_~@49x&vof7BNtH~aY>5U*s*YsL zr>9jXH4~iTJt$)sBTMW>nD_ilpu6|4%{O>Pb9XlLAQhi}TQ*sR{(ejS!!~e;7Rk_8 z^9iO7qKn}nxh)QC4i>aiW4(#i-HcR{`46ftzVb9v7-ZkSJG(|ru(nEKXsZ z-Tg(;x^ORup6aNns6ZJCBIO}2u6?|$%f{e+Sx19?qD%ea##$dNyJm#HBkQ9w`yKPi zlkMOy3i&9EBtfJzwQJW} zK7T8>N!C(xrbi%76SfBFn0!-aCpQ@*!OYu%d+q2OYdvcJQ{mEw^77GCql?qYN= z1C?Y>fww|xk6tb<9lh&sKD)0FqxC2DcD_j@_a+U;7(2l+3@*|0u`m~aor}x9ZrW3X zu$9eYlrL84gsKQVeM9x{!Af@pjVM%vTrUi_l`nzlU3|bucW!!l?dh;LjTZ@O*DH1J z_ zgqp#;<{`d4Zf*c2qD@aa3+^#Cd5&gk`bp06S{ICMmL2ycEiqhw+ZEXux>s_a>(;IH zx-;h-!z%LaWPmr#<2`rL!nEC6J~-RjB{5OH2qBnYbRquWzVv4>knm}s%az&2oy2#ARMEV&am5rOQ zF>+WQrR2;=2QLjcQI+oO3hqBf8r|y1~J|^Lzc- zU@WtaY`Ck>*2< z&&@Jth3q51p-BLbeeAPP?$E5SENhvW!ejlNvGRrfe$kzCfS@a+%8JKbO_eP+9agAf z5Fu(d94!oWyVzX2z5!&G#p1xDIIw4~RgQC%$t2M($(PM0;a_4SvCU|#Vy z)lq~I{f<)MnE(K)R@Jt{O=iFF*qD}*XfB2%7w>{RHL>_9Wq4U4?%g@T2TDU(F6)5| zVKa;4=(!JV(23Q-sTn63a8pJL{D3}f5vawkTF6%@*1{W!7*#?Si0}bgcRyDz`X3Fz z?Jwjlo0(Yr(KKL8pQqp6WBhK8d|9IS$}>i)Y(7^{J6319)w2E0pkofCqGe3r*0`iJ4b>gMHYMX?Pp0#qvV{zEk?i zUR$3O%D8p{zb73T*87x}kDsS$GgdTWiXQ#Gz6xi{4q>Ei^dfWj3-68icwpw|+7U0A zML{3WXVXKuH`~6*-xPp^!v?HEbKkyoB`QjQC(3Cq3C(67KtM-&;X;7$CGral>AZp8 zWW}T!IyC(peTYdMP%V=iN#Li9?>kQ(j!bc(VT|#e9*$bs;X1czJb6rf2~4!imScjJ z3r`Qp+IdozEn`$cGtfiX_Vc=(w5uicjnzY z;j2tnADo@8lcJbya&LN{1MFy^S$}IB4i3$$S1U};{_ylo zl9RqL=lD{tb~+uSrLCJg@J?Nj%;CAk=0?Nf3d5~?sCMFnwV72|8x2xN;!5i)^2Er_ z=e8;4>M~OCHirOY)F?rH;6MkqY$adyY`rPr68BOE#yg*&w&%GHE@jSWxBPrivkED& zRvOLCqb!sBy*)h}DviujwLMsCk+!m=ycW+@LFVP+;-XDptWTz&Dmx=ztq55{)KcE7 zPlk$YlxgqYEvsBNLTtspBEVn9(aPq44uamLwAhNy1-M9KrTk65&2R_@dL5U{nA9J?T^;@6mdef@S? z8so5xsI=T8yl_Qj zqj1N^W|}#PJiw5B(Zi6uDSr7rB$msiMwI{l0JQWHO<1q%yS@9r(ZTQ_adkDd6q`~% zYMFGI;^jI#6r+=Twq*GS0j~m31$`P(<_DruvAp6D=oFy$g**com@1!Z@s!Z&qdvEK zM2~6;{e_^od)w0iuw#_Ugl=MUH6mXr7)GBrUfgjIv_k zE0cM*7F)HP*>1!q)=7wl-%W!tKA_iDRFH2`E{WF39H%l{F?tynCxi4eRj)cdb+Fa{ zDHxZ~z5de+>S5nU;eK@oKE09TWjOhIN3~}hkGsyRQrtIt7A(QY(s3C@MFpO@z)50M zF8cwPlR;W0!3U`}`vSM0^Mj?(p8Ala)Ll8bAmRT`I9n;~f>2QSE#M zst_mCj<(>rWjPf({H^QmRmaR?v;o2#R#7U70h~klDis%3Q?G|wdswh=l#qL%SV+Eb zCX?7J#BqP)r77iGeySDy{ruPnCkRBy>L<%Ly5{MuJ238IO6*XaBiDlif}qz~_WQAG zs&hfKbh6R@FQ%w*wu}c$p7McI#g8zRe-a(ggze3=2K`;9Nu~U@c4bktPX|_I4TsCr zwRkR(T}ZY!g{%@G`cu-jjK&9hy0Z1OFgRRNYq>F~{P{F*fHRQ^r2m`?yUVNHj)Y#2 zPS;a5nH#Ly<;&soG7Ny#Be0r9E_)MRx(g9prvrLdrgM`Um9-2F!_{~MJm0-zmSlhq zs)Ype{XRn*Yn+f)if&abvK{H@HV;Z^+-@5)R*|sfTAGt#b=KqX?bRVUsKIsj+?u`r zrM~_#AEba>@FNoQ$(boCx8C*!KY`oOX7MFbQr`-} z%@r|Hjju(9uFb3?2^zXn{b{NS_o|aQ*V=qyc}VUJn6L_fiL4j1%TZcjF}9c66qKW2 zXl-5K2H=JV1#g21?}c)TIMol2_{u2QsCEtA-+2)d=Dk)*0|4p#bUu!wj zo32DiKusOPbRj<0Q7%rBO=pNzP+=S~QRJq>8UhZEwtd_Jt#DgHLPE5=)trR6zUXyEa0Lu*$q$f)Qb>zao=X3 z8N42#uP0%(*T9AjEoCQ&Ip`*{r($-1mZ1XHdYVB#5p#S#a=KYM@DZXpbnE|^uP~#q z0`e9V@^(BX!GIMO#L#Es665Zq@}&d)rsaK5Pu!fGzd;3OfH&#=DCGnrVHd;DY#t8f zG?ZvJX>M6C(i!+TNN?h8Rh5Po$_>!y*6_7Qf$1cr7g;J(Atr00Hsx6f(D3gcgL6kS zeywyDU;0cF5ktMB++N;`@bfuvd&76VEtcCw-WdWq4`!U-9oS|brU@Uc?N^&N2Fe-^ zq(93qghV2Uf*7c^oppOE{CnKzj~A$mC_sk5)pTIFunax~xir}rwJAC%i4L@lWggjC z8OfcAsS^u>y9vWO1}tXxU_=7?Oe8+}r?Xk$i>t~F&68P8jb&nj5Fo4qA7m2vk%e4q zyOid!*LhpQ11vO2mF^T;9d&num&ytx}^O) zaMkDo*dE^h&;jHx6diLdkS=%fO)nmWoSH! zT((23?0r_*x5XoMcLPL%zSme>S)T8$H+mkDaDXz(>db(-+)A74Ckad&gN&L!TUEaJ)q0&dcShLF+sRH`?44vBkCDIGhA%h~9AliF{Tzd%ftO5G zElyHSNTcdV>85E>a8TQ(g*FsKX3fTi-*?LwZ(8p2C3H8II~nf#)B#H z%WQGm>^+;GsIBJ1m~VgU2awvSxVriuLa2l(G$!75!6lHZms=wJ5vUf*b6iobWp*>I z`(M6vwTO#~4&~XXLtt#S4IRrUi|`4DTo5ue%#0VlaG6Og1B+rY0GS*^<+91)$d+DQ zKb$ifJ0b0zFp#+YQLuce{m;Y>Ev0N&h}edsCtW!}D!&bA4R8Hzx<{gCp_;fA!cnYS z8q%ozO)*XZ-sAW6;7Ih^SK|{EwRn#P7Sf@k;2_e@QSNO`vvLkqC|)r@HVG0T;hd&i z6Zcw1P>O8)Q>+WIi9+G?bzYZ2EhW4Xf^`=bPvZfX!l>K)c~fK1{b@9^ze~_5V$W~V z=3$Zc0}_Gwb{&{a7uiI#>TI_)l9W@ss{OQx*G!d5tg|fq4jglhcX+BgGa(&ovxN+~ zOa906`DXYjD?_M|wen?~z{YH+s>eTYySwjh4oM-GOzFLUlPw2mdPoQ zC_GapD=T~S;Gj26rFHt#o1rM#WZqk<6)jctaQsG9Q~+R5YH|>kwYNJs#6rV3dLBmG zBNW*`8)|4sXN$wLp@N^)I{o=m*Cxe1O?`cODsn}RQkx|`Egoh#qJ?FW-5-NYoq0PR zM?5S)Bg4&pGsS8O-+WW@BGASSphgJ1z5BxYnYC7J-QD5>*%YPg#%1<^EAyJq^S$pL zE|eLiAidznOc_Y8oM#Uv1I$ur&~2qtSif|yJ=m91-)l0@?)2IoEnfg#+OuRUZYh@a z>;wrFPAB$>u=C&7?LGZp0jRNsB}}jIK2)7O9@>lWhoD4&ll|P@`~!zAMdrF+WELP# z6RW3l6&%287C}B3E1v+IU8B9GD#o}EBFOGVS=)7`ZLM_$uk&dfq>wZbwags*PH(;} z5qyQG-}jB2{aZExB*-_|?|Uxv0Qa@Vy*-WvKUaq>s%)Z}X{o469NYyqH#eiAqUO4H z9O^dV-Gjw8z5U_JmC((l;m&MzvI`eH%gcF*e#|8rVfhEUwX6JKA1Mh*spLLlpWb+P z;-&hCJ=&O@0;ryvEV%(^$a(V6?guM*<63aa%P_1l*@NEX=r0uZrIHnTJ2QHuhFKLe znMu8Zmdne`W_he%ImnvUcK-VkI&uUmqAz4Qh^wrA6Whr;&#$F zQStwQi~-#KKTPjOj=UV=`}2QXF&-vmKQf{Yk~T|IhP^9yOh!kzb!8znW=SzsLCt== zh>d>s_V;Iv&0~nwGG4ht_4MgeP>XGxR0+s-U%<~M{4AXm<9Z;@kwH7pjfHgDKkCRb zDDx%!$cA`%=lXzR4JZ)6PQ);n!>HQ6<;nUS9(-0k$%v?axdubuf~N54eXlH!H`3@CW`d>!0cx#*w?8i#w1 z9kXkGENNI`zaa!A(vxC5R3alD!C=|30}kaC!63)g3LGW5bW{iv1RzO59sre@2}Tv9 z4J2J*Yr`6F*;rctSi;XwfAeLUT;_jAs@rsY4k3}E(Nr=Akqu}gsX9IhWpCXe|0z3p zfk$@51umQ!{pIF2FJ5Jz`=DmKNGq$v2cVs;$;ybx0;bg1I7W+sjZ_S%Pp5qwHu9e- zM94tz3~ZKSf4qac#K2n6c6|vPl?UJs5B95@dq32U`1)k(+;Ewuy4F1K(Q>o^(fN)1 ze7rWhf_)bABkR!j@@b5Yj7AD@?K5soAL5VyeI9AVaq1X?nDW~)@dmG6-=@n&gT}lU z0z8>CCHeRYG;9q+PfH~X4)nX%r=^A>3`fQ;c{y|F8Achjk1$-4)zU<;Gew=^$VOg7lSHl%oFnW z^GsJ)F#)%wT5EeY$Et7=Bq$=;cR~Tpx~0kzQ!8d+WqPUI^D^_58=Q1Cy_tW~$RByG zPsM5nB=w)O|A;Q-!bYIYsuD8D z-r|2g0St;xH>aYa;yxh)Ujl*O29t+9i1+5;s#R^DsC#M+2P#A7jLj_eOBc9&#~x8V z%e2I4*@^GS%)*kNn@cZWWZ+yYhJ#unpd?C2m(R6jh)V?U3j95;3aR204`eJ3 zE4r4A)egwofz&R8yxEZ`5dho15y+RFp6`$KCIxU7S|QmJRnx4FR_S zj4GU19+S^gIzccukd2r>l`2?%v=PU0U?#EL_~7*k{%bruJS^)`w8vJ4Xd&zvaAa^$ z&qf^|`u1Z-xnjKTuk*DS`YaTEP`Ya2-p^#yEdCwD#@7c`XpoIU+?lX~A5d(-umTPW z5Tv^sIBsCPg@NG`GfyIa51SAl$EwjD|%RQqd46IJ0a$?oUX77ssFFp<7zr#l7C2?!8UGFXHM zD2?_sVjLGJ<@WHZE% zcNub5rrYlR)0#ycz64AlVe{nA*qGQ{?x)?*88tkeE&PHXARPPW!9 zRaRA6XqEaCG-wItx}Cm$e&L+e$tzXs-5vyLv496+P&R{-me$j_KSSK)tNOkoCB)0g zmIi7V14p_<5-u(W77n1GEES!$RyWT3C=WW4aoB476ratr>sa&L8~N(~{=MGd#sv7u z`Kqgu>yuQ0ln;T(bO7Z#z;h!tbBg01I+O=vCq?iRN+F%AW7WXn;koj zHA;?(T~59j7Oo7~J?=G1i1Y5d1EcPsk8g`$lF4E#nGUdNsNkt)pdF1@%GDRP9QiFYE6Km~Ufm2Y1gs)?3YMA(M2X zGd?&beDx4J_H)y(C%gPYT|*3`wBVPd; zJ|4S3>iaq0b5yGt$a=|)%KsCT(>0088&t1e2~pEV8$eNm^DC$fZQh5jij_ zPH}(y+ho^gUEHc?*LVM!{Zo5s51v1#4FHBg!DjPHERp$evvczvCg+TP{S zOeVrVR?{+KE&E5o4RQG)=b`Vbo}Il}<%CY?0MWwRK~-Iwb;LsxW#Yk%cBH0vQ~``?ir>9m@VRwvU{Y+39@-(xsnHyI1L7q?c}^|{xTcDWKi zaJ{|tgX_rRc+~z>cO#YgA7biizTpw_AV-&+?a0oTob5^#L@Jth?$uA=2+7BIrYcY4 z$BGuvP)R&|v?Ko`AmRv8)-&Usw|laDRL)o+W7)wpwpNK13fF_A%(A+0pv7st$PG7M zVfW_j^8Ad+EcG(&VhsDYNyk;Yv z3n2K@zq0OZlH>UvX;t&_)46!a(Zl1pK!A(u4mjM~LCD_P_&?y{!7cw+TpTJPuBPI~ z@CYU*HcLCx+yv+j>0I1aSE2lR&u^|p=W>HVfn9fmuBMjt#0cJ#vRv@~i#ndr)+Qoo z*8}_^Y&`yFQ4S*tL@buN5r8SL2c|_7Ysl12uo$UGguH6(Ox8KsZFDWYoq5ll>FuE1 z2KjSr0uY#S-Zi+#$Id~FHuU(PFw$%1<2HhcBp^4Rj=|OaKjRQ8&%@opNvg})C<317?Ej7lGaA?(xyMVxeZ{B|BCW|MG zGyfzB+M%OcKO-*d2g~2Kl<_)p`Rj_ zZCLIZjX-SwN+anV6d8NsXvVveJCoxB&=@kCr$j|=?oE6>jf)G(cFDoGf#+uX<@R;Np%Yp1?U|>M}BjVCaqI}3H#?|%sC3Fz1hyuqY;r%8kH>%3E_4o7g=QpoczErkLfcK2ng-m8hSva9!g{rZ{TkiP;Rj|s{%cpSzSy1iB+0+_@4|ND z-a;Yh>EiOY!7x7$l%v8}KLUw_t(kVZB8! zfKRzM(bYg(B%aV|sDLrAlNFPccKnI^Dct>u`z7^$%9P}BnwBn|F9Sohh{MpIQM>cT zK_5SUh|XeWex$#O!W*%Ty545l*17Q8()tYJ(u@75m61Yo-aB_Jv%!#>Z#dEiW=w;K z#^x;#$p@-SJLZPSLTjUEV>U^~2*%ZAuzuierFZKk*sr513$wFqT4v|SZ1!fO&L+*Z zY#T*O67Nj)dFWd$_bXzP>Cw5#+q6IT{lechU-+4&dL51QoQ3!%H$Y%xoy|PKmj_^$ zKI;u2ILxLxT$;I@oLo9nBrh>6OQpR|4+xNXS&qp~4gwakbl(AD&Hpzrnv%WJkmAVS z3#0w$>t13~*vRq-8I~bJr{j~rbsKW2=&OR;!zF8ISw!!g1+ZwgbGM!ulR=CSq@!rM zL?CjsK}e4oSl?B(b8K7V?)|JRC!`PX1#>V+!a*}}@JD{H6St`_q{wunbQTIS!pbEG z<}|&f`_qF`U!3(8Z#DibxHuq(fmzjQq9_-P-S+rp*3k6Q*aziov|AS@UP#lq#c5MuCRzx^2&A6|7k+{ zePrVlS-50IZf?w<@v_&pj)#8wR3{uIoE!4jBw_P?V<5K%{~0M6nR`7X6bYPLZu{~J_XN1KFj2u% z;g8<`Yl4WK_^+#Y$r}kJ#+f6cVoQ* zN5F#f=SRLQsrXV0US(Q7L4o$&pMO2#+w{s41cxrd0Rc!5D<29BCTQ?H-3X!@#SDAT z!a^HJ{KrOYLpA5fVSMgNxn8@{U+34q2b<2X|9&`s_fRbFzZgjSpU?mO z7rzJ=%&$v76f_KL_6H9A*IRWcOZV^>L6P?BQ~sVyueT%ozRCUi+UhkyK`d-6AZ(Vyf|beLwt(hacxZu|WRkNcn!2{?C!}qoz1~b{wi& z4*&V^68rD8mJb~O|IEStFJAip94X&d$p72B{NMUW`GOfNUfIq|-yOkFzC3d3*p&yr zT`LgsxyW`?@_Zt{VMB<|tp;je@TyFm-xT9c^}$V{y$v#hk%BE;vRiqeD>V$ zV_2o>FEE4nkdA{GD$p5xC|IqGm_|hkF3Hz?yNH9_QwHwtw ziEX-0C9C+^<4y)G1MT$ZU$2lyR8a^ifv&OsCE@5_e>`P(2x33HPi?|I4v z+Gnfwh9hFMk1aE~zOk^hvM!~z)h*?zzkGht2;rSUd&93`0=2QZ;kCLZo7}x*L}{Zg zdP7}Xo5qtwQ@#1>)zVUKYGaRn1BxB@Q8`bhU{TxBgFI3eH#rfk-~EH2v( za@rrt$5?z7v@4D7JYCkjoV;?xGl~h{LLK}6B7LNe{nQvH*0<{?w;y&8lUDul@li~y zCsiv~es^#fp64%Q_Pxa3>;7IZDe0ucB|B?t5%X+>##m6r^HX@Z`UX10FBTXGMIsZ@ zle6{Tcze5f7^I}bZ-ifFn3~F}WZ+k@+e_?F}4{PKTW{1U8d(zqt=ddVpvvP z;9$^Hm2KJxlhi@nN~RjIev*a>eoQr7*T^R(_)*3t*k6tPwKI6%FAw_<@(o0vzIf$f z;__$3v3#A|_18i>ybS;ItL5;^e`vM*P0i5|-pO;=rT&s>(&K$*U**tJDvB*&%Sqq) zY;8gHMS?`S@{!KrmO3m;0l#NiQNT}#&(_Yal%nl;mqEImXvGbJxuv-^+fvomHsGbn zJWdi6M%InQKQ}iqal>$Pa}S4;FYV1AJ@OLg>0>v`B{|IFbo?S~bp3IHzFCVb3zWL8 z!`CVI1n=eD$)nthwhkY79*+)oR&lJpntt!~&ckeHw6kZxHYWBX^?FSVUY}i&9bd`i z-#|aV_2~J8Nm27vLIPuc-FM;$UWzMr*3~f*m_#?FhWq9kD|z=F$=%tymQCJ2b}*Dd z$jxx;*u>In4ad*$Pgai&+h}_^-YXwvF$>a~o_t?FEvKrZuUp1T7F=vCqh}kB;coFn zt(31(Qrj49hShXx-Tuu7q3V#C8|T9U<>uD!_L3pg9h&)q8yglJY(3r5foyDD=X%H3 zL#ULQp0=OfTy;B_U!0hjwutUdYxT-BlzC?Trkn5vm9la;Uari6)6{#RQ_RF%6cUy- zo)3x=^X}MLzj50@q2QCe9^e=pn8EuyF?Zhy{q^zvw02X07$H6dMN*v2{)Z1!o@SmN z^Lp&g!1|c7YiQ_e*Aqn*vz7(&(0=JsZtfWgiVz;V_SojI5*9(quRPu30p8c*W6P0E zl*34$>EHB4m9nUrlj0JilEww>7M@x9T4tUW8Y4)1QcMk>*U|O0?}_451+L}*9cK{1 zb5$(6Ww;CsFXv6yqLF01Ws~cHj_7eG@sIvjIdItFO}w|}xK@4LOEGs$m*8FrLh-=} z$vM!kZ>QrMoE7LS5*zJWa4zD!k69gbDwd!L(7D$!OPF{|dEZ)Ew8X7s3(dG9_ByGPP*zrGlq(D1*!k6&2qA_kZ&XB64#Z>)>VR-oRD~Vuc zht`yxCY%w>*kC!Hn~a79u2nDZ8iRAiP3M-qXN6<5C^<%q6NY%T`i@;Snr1iBdS`sD z9fy6)tA6bQ3;$&09QClWGPTWndUn$m^|qwJof(PCycty(<6gtP_|8lBSLMUWmt%JG zR2ds7iIr-qX+mE=n%AeJZ%XqvaWh?8%xn%TJn77YSW610EZuqT$ZbhYOgT$|Zmg~L zx4_&d(@V}P#Wd;!PS0+j@8QaMMY75``0VB8=UpDi&W+v}_@XV=7{+9Nko7Xbn#;jP z+dG^yYvzD=NS}jibGDX-Z<5k!wfw#NnL2~L@fUG5L9SMbuO7ksI$3tg;D%<)*9B+3 z$)Sehs*B>ne9|7m`i;gHb6MF|bDhhbi}NlI!hAZ|4mKgDA@KbzjWcGvVSe{lhju#cf3`$F|7r^NH)sR=8F;D)i;o z-5Cs)|*L4|E z?^!(;6l&K**d>dnBWkW`h_@|K6#MEhtqC2Sk`b)Dtma@nVP2t??dDIY%AH}}^z7Cr zj`(;9LZ2k0?}J`4Jb!Mxs2V-8>7$;O-I}R#?zoKIy|NYvOA^?gW4lh1bYAeSbFc5{ z_AcE_c0yUB`K}qN1q$m+ANh^ok~-pU5Tvn9wWxZ>UO%y;O{3j%(Z?e(Tm13>>XSVK zL(f-_xojHE)+ZH%9A&#(%HiR7mfcev?~$$K>!Z#r4oKF39t#A*33)&d-%hC57a|y$ z>(ak8)~d@w1mmjax~eP<#AGGv6+Id0S63L_ z$E9U$j;i&uWDCHr&P%p_Sum(T*OVp~sJvy%bs0|FNu#vqZk`g7`CEog5^-!)9na(( z(Df>ogO`H7Vf^R*S4USJ*JS(k_3=?e1s+sDT0ubRPJy2SB2r3Ajcyp-p(27vN=mBa z7%*ydh?KO%MhqAogN^R7y_YW^|3KZi*?nKvIp-VaTw)9*%(gHtm6W|=Yw|Xt zSNjLKevik_nqZwu;Rf=(c@zrzeuefn@pgB<<((^BbU?!bS0`J$8=X)>u8wY#tt*G+ zLt3<;S{wT9u#0ilm8fq)s;E0FFHfi3wB@=`*Z=XuS_VH;P6wY*Xx#1X)fJVw3vTwW z8<`l^UAtj({#K5z=~T(7Y6jR->#o=zmN_{R)~!=4qhPQF*LIDs{WH%%tCxW`dNDGc z)8l#&h^~hOdFGYL$Bz-J8d+aBIU>@ABqY!US_3b0#U=P>rY10B@ljE@4T6)S+atkdJ=26D*FxFH z&UOw)^@hzw@mu=U*RM$atD}l&fQ8OqpCY&yYG<&eNe?;PC@<#~;uEYl_g4ETIFytA zg^iJpdDXpEQUZ-mh78J$JyGVW>(#ZNdWI()p_{9Fo^`P3+7En=Ruld@NT@|uZ5r+m zv$GpDJrN&Blob*C#mGv#F}iUuI7p>$JAqivW-GlO?xtfG$0yj%$Oxa^JM#)c zq*0hLc?WA99u2j7X@qF4b)2_hvboT2MX!E-0aq(K8}BU6UntZ@IUL3hKG7S4C%#SM zj68PB(m$-S63Z>B3tEs3wS|j&r%3{XRC&Qu0~-yO{Z_N(3e9A|bWdx+M~_~p(1Ke0 zva>4Ai7!N6qsZ6ZR3}41Ttm5>!MudG?SY>M*YWMoU1$u(Yj20JT=R)@OTF|IC#ARV z1n=_;Ar?-^NuoX>2Valhm^X>LPLBxILw-MTn!C=7z@v;_2MRpl&{5{#$lEO8Q+_zk zCdhHR77w@TN1|3hKJbkkV`S7d(O3AACcyVNEB&jr@IBVV5#G`I+%E2X8{4($7xt0o z#9pOd$D|)ti?z+C&h|DMfzN$io_YSSO^QR*Sa}BTO5$X24d+VgO-{%%H}KRa*r;~5 z_A_YrT12e&l|wW$lest&%j+{rM19((M%xNYD!+5jKL*>}soW%8esPX{wA67*n>?}) zTN*PP5s}Rnmy*m;^jl?6B&B8GNch509*wg(EUBeY-g5Mz&r%ciJTn#&WDt~Smg{z5 zv2Su2L0lFKtFh=+;+ShAZ?;{hraom4BZtFeWWLw_i5nUk{j$hT9;4Y8%wi5XCm**F zJ1vB>WJ9;)hUMkguY{7=+o(kE31!J2E}UnQ7u(4Anhmk7g@u$9I&fOj`K}^K2@2gd zV(m4FbCsYj;`6aGu+b}>UC`?&`0}Iwa=5cedWa{Q-$!{bSl5g*fLAIXLsh`|RHTvz`wbg{Bl!cQ%o z|D$!Ye6kY+`=Q@PCJsgk?UR$QFh(Z&20G$9eQ&2+dNV}8IFxcTN2g*<&D`6$$*bO7 zwMg-lG;_JIz4>qUdf+GFJ`Ai+{u}b@mHuh0^HqjO#gCQ?v>*VnYNde!d1G_ay-s3$ z!c=Gg!7IcF7X!{208%wQr4VNI`IbXzv+iLxbXA{%Ekh-Cvq8haJ z*;;ijcy5W*Vg&4oS8&@cGv{X#rN{=4KZBB}bQ!;0CbDD{%Fa*vPEWzwfO+#NiXqrF zPH$|H$%z+XMis34c!LqgY9{R^K99(HJtE^p?|j&*gpUI?-Oarrmbr7apXjFmR%}J^ z@tkV%))={rczj~iwP&5KE?eI_eHWW6>KZ37K=7?gF>7mFa1JZIxcj+_ej^%bq(rkl zyQ;`PJU~6;H$iU~udVS_#BU>0=whag@H7flySTu^NnBlwm}UigK(ugZ?sS3qa*~dZ z?8Ps-P2I5~2gHVVm)1bWYcmC#9ZAcVzJwq8#^Gh(Eoona$sab5M)$pwciC5ZZu<#; zFt5Ui=-YJ~R{Wx;yOS&8gU->$@-fN^Hx(rOhdG$~{12hoAYo!`@aV;*OEUs&+7Ku- zzTIMc^Uxe|vaO$oSDZi-PxZd%CsU5LWnR2)$i(1^IV^gpx7Kk?uVaz-!$D1pt%#IU z$^Tw{HYR|GUyz+$uYX9pvE?40&o&M4K~(WQTA7OTj_dXZcoIKcKx1}&$LBtPSnmg) zQWvS4;lW1G|1dVPz_#FQV3-11k?{ER_&CfWX_Z-lWv&SiQXp<#N(v4BK$iFMQ09COV94ChW&qXGBYF# zLqT3M&pmt?cfO*IFy_C2j@@N($(6n6!nRcTqice8B-aE?`8k%x#&XZPrI3;_>T0ZM zUmE>;tBTly>MJWP4|LJbMQc$8A&w@Dr!;ATISPS$zuoX8;U-;B29Z^4W=?uVc6(U~ zl96Kt&%yabPppEl9bnXC)D>qt=$M)@Q;<{(L;QEgicMnqN8EWh5>aA{b zm{o$!@dXv{7F4H_IUw=-e;zO6_#~hH4c@U-$Oo$l?)J&Pv|+_~S;NwEW7A*Kw6O9= zv!n&)oYuMTLBIhy2K0q^aW(ftmF^S}k_$YDB;q{J{$EMfST2 z3@*^V{A!hFU;$A8@HI-Mftf7wto#=a3?^S-| z#~_!-)rm{Y7+BD|OfvaDp9%$kLk> zXIz_@(L-1g*2l@qNb~$~HQ}>oOi#?QRbyP#|wpyCmP8|jX z2t$ao&SLh*kVOOn(PXZ-OvflC$n{r8O4?3?*B9@+3?(b*Q>yhEWNIq&^7WZyC}6er zCKtjxh~ILF=V8V9K*1=3Rf^0kR7?|m?B^I6xj1HLXRoI1gXr7Y%XlsP!RSih2FJ_u|>_6BJxU8si2ZH^L8ayC^!_ zK}{bsR=3RAMA6VHbM|Bz`3VPM)~VxOi|{_vLuNgF1FOmi?l^UZM6fFXSev-9N7R-x zHr6#ao-u;3vL@Z5yQ8Rgs8YmdpziEu%2y086aV*WM1{+@**eTi%!d4-5d_Gbhk7cua{Bgu4BUwU8Q;g+a<)b@AHgLAGrWV)p)QL>y&Ccx~)ZngBK}(0#GYOVT{8=F6$Q^`3<+nT39BueIDSvL)a|Uh ztoKGT1r4~8pt`oOrRlYlz7Ezz0Ob~UGiSewDkv35lnutRLqlQkY9)b7I*DJ}Ee5g_ zR5#l*-w!(JC-jURkH`tZHWGSh2&PC9Ed9iW(Iz5V!hVS3@C0u%_s3u+SJnlyvs^d$ zAhmRB=KbfQ$dV$dFX|8W(-cbGa^(Vc1}Z~x*^4dq!O;Elz~?@;`PE}BK^P3~D5gQZ z+H=)|YqOzj!F8wuk_qU6hBr*e1vOR9BrwL z1z+`4dC1EhsL*&;c7Fx*L1B<4^5Q8~;C3hMUc?EMe> z@JlT^)kML+y($s}N$?aGK3_XOhF4duMQg2jcXf61IPSyaw$Al@?y4+LwzBT3ZEzKyteoVwA52e|(fy44r*Z6Mkcs;Lnnmow1;a<^CKRJ#i1K?2p2Z8u zT5)BSo=-2VJkP$VTy-OPKSNRB-35$l%|re@_j7wwx0}gfRr#U!9)l~h{mtsnQ6QXq zO-wf(kNKsQg>X!|%z+!Z>BOs!fW*eB>*y{jFYnB0e}wr8uX@@IzIKeA*bG@HBA@j^ z$-3w8H(s9P4XpVeUYa$?6Y@Ye)hHxv3){N46G(g78y{K^JuasumA*)W7c{I4w_a?m zG?Su@s@H~s7B`?XOVw|{!83(Ea6MRE%>gB%`Qlx#O|-T~R;v6GXw~;4R&lap0$W6# zNusWw(hbJsBp=wKJ{Bq4;08_^hS_dDiU>J6AyxBG8!6$Lb1%FAsf`cVEXWON$+2~o z;)+xEI~{#GShU?{psSynBN9RyMe_1bf#Q#2Z@i8i39hAiujs0zM2c-em*GvJ-0j2u z3T?KT!;|VTJCH%_R&tYR%CGh z8k=N~UCHy)s3%(Tmo7bVmzAAX3_h>pp~i!G`wm8SLo?$C8Yq}_jr}Hx)r82-VpaJm zN~ZJ2XvTEO-Y@mFlHicpgP4u6;7!kEtub1khU%TshHGsKJ3EVabZef~k0>2)5-QYM zZ>XEG;yvNW-%e~7iSn30)!NP;ms%}wbQ~_`bobL^TsmMc|8kuuFpX6TwlZsI{-`;) zwFOzw)YMd461=7gt(BB2o7p+IGaLfN4P0%v^9pkA|D@D3cQUAbtx%$*juJOh+3%zOD~xd6WP)ZFf~?JaE8 zV`(G&>xUfYwQcM>brSlvP%?=@s+=zBMLwTo&=ChJr+jEgdoBzW_MZn$FgcQ3>K42= zLO}vEAhV=>y}O8CyHp}X?J^qz+ZufvQbA+eE@ve9Y?!>vmOE%poC4iu0nz33&BsUV zNxs zf(?Oy-KEXzm3EKf-+$5SH5ks=k^P2Oi)4Fsor5Cx`X5 z)|I)roFxiBr+@$tOLIf}q9~(|t!Zl(Kxw>zIu-Aet#V~*A@cqeShTR~n>9_<$)(55 z-sK_xegfysCkUZ#WX3pFqcqCFgDx+pmOvZVEG7=cQM<;|hmRbf5Mg!YjeFJFl74ef zEWDJT9}8(e7NB15`1C^4HjJT4tOu(pK`gN zh%P?%fVGt{_M`%~*18$UcCr2Bt!@i(0e^=UTqFZSocCWjSljFe3XM+JD7@M~;fmdB zBx~fAm&b)SDc+_<=G%=#tJZKybVUTD4P~Q$YT|75!LJbc8P9LD^)-1J3udcp0| z-Zx^XY(BK2zPS!~p6m%P7&R}pi|dLo7UDx;4%t!3DR)!p8H#tKqW-0bjIjhw=yS!Z z!YjFov=x!fXG}olN@ubAf!b!`NK7Ixb)xA$)T#p~D`6!emY9$E;ftwtJj zDmC!Ova;;L*`aXIxWex|$hzq+m_qTJfxlum@Z3;R96eDiYdzwj1_?OWkiveKk`+)#a0X&}l_=-Nn;RD3!D#ac+|^DAR~B&TzFna=>yOo_JiGOK}%z z07j_BNC~CzZrWd3d|;tT7JGNcX;71DTJ+oZxsmH*OuP7h^TfvuW~&IDA7VC2Isz9C zXkDw!Efgi5j2fyp1}k%-=5m~`1}yPtB8^Nik1zsG$%L1pVkmX`%2v}@>Ehvf4aD7#ov zOWeMG^X4|0`j&sNx^BnMpWOV-WHW^S$)^XA|IuFP-Ypu+Qgql3o}V-g{Wu(MYi19PNGlJ0!YeyuAq);h zaXUuW_25n%#6G+akHl!&gL;owS*BvMBeAW%sca<$LV97A=jOi{ zj}2JCUTkv1%$#Z#jREuq5OM-#0Qh|)SIdsO=4hw1PcMe$OM4`kU) zlfUGKf{5+WdpaQ8qtJ2ZVX}o5`&*}c8r(@eV}9<(J-8b_Kdqlb+pBy^COwtR4ttfF zD5!baNjR^PH1pTK7vqV;#+l6E=$BGPFWoUQR;>w6$oUXPh`cptS|pjNG(O_&=(yot zhsCq|Ew0ltHobI%IWE~&AT=)^_jGohQb@A8)vc`t#%OBBvc;<+CL%x11-xm-FkwEP ze#{jZJXDHZbZvc|(>;dSWDfSp)F{l!5p?A*q=QbhN=|1Re<+++REUtQot&h zy)k|rh)-2=1RxDk`;&Wy_WKRlT!mW0SzR-arJXs~{nXNt&2V(+VSF6>%mWT^4fqJG z_FX=r-_|hmr_{Isl}|`p3GwWt!jU#{ghSTEDBVC&R>bz#hV{8=tB#}bQ%e1~hPpb{ zhwe~1SL3e&;|k+)jny|Qs#k>&kD3&S%@2^_ao~P$5O=@JA!(;ycz#fnB@-!;lEFIY zTXd5SL3FFEeL!fcqVok9Z5~ckA%57Gn&( z&_YI2l@y!JV?3PMozu^*2XDT!ng8ZC&zJr_97*kM-;>~FEEmjqI+w%7*lyZEAPBZ? zHz=_ty{0b&7Lj9`&k}l=*lkdz<<`!)(?$u7G=&FWpUqXyp8nU-qc5p zEcFxCy+}T%#76YxCV{6PNh`EKfiM)zX(+oWs&fnNokdqcdxGNSFNy*~UM!9Q}7ORZULAB**#?$lRyzvPP+>D_PTawma8jqs$R zA-1w?(C#>P3KJ=tGt;m&OCSx@b@?xay>>7=Ey;Zm|I*$s9 z+J?0|=oMWx`*R;LBX;m}3aTj9w9P!{(eKfy12I8D&nc?u1q~UL06&;mKFR-ebN2w) z5qP$@L`W*v{7&Zj|k z*YaKm#l+0Zo(r%l){iaiE(;oSaqyw#Pv_u5)cW3Xw#2&LwDbiQ@hQhwY`qFneW@VKfbRkJU1k`36f{R z_Pk8US@bLP)ML8?4zLkA?cGi)u>|>^sh1&T~ebecv1AJOoXn(g$=wSp# zo~a|4=kleWS9rMvM+}XRp8b!p@<;#LnxMI>@I6kmN@HmL7``@A&bH$5Ba%V)qfY; z2L+*Ye~4A6IatdKYF4vHOBdfT>v}D`*GANKFdZ{D=NV7|)0&PU9idk%FG%7NXkZs0 z9}_|pnKzw{GnnwyYng55jykx`$ksi5+OHDOH>8Fo90yV|MRO$%Y%Sm(_{T}UVb=Op zgbR>?-iWQ1teCR5osWLw`?;8O&iCC+nzepr`B$$JY(savC;<9T=GnBd4`-)K1BGHa z?0aabIW7`QZekB5Zxgp=JPB3p7SbV$Cw@6Wf%WQ_xbtqcbPciAt<`qdPQMcT?ZD!B z7dsmQ)!GL9C~q0S;xf(0Nq|H#t`Q5}tGP-e|0IK90#|XmrbOb}x~6ZMZfKgGD=8xO z*!G!=Rf+5x$eJKVZW9Q5*d}1_03J^8nOWzW1T1*5BO$rIKJ}>75)MF$x8qJx z4O6gq*Z*QUTP~-`A;p|sTu{DabGP`ABW);`1-DCYGG7RrZY+?*+ULizJS&xKkjp#( zW*xxS3$JWk(~=lX9lF&>k!SEPqO9NzowTG$X||LQtn!w>oH=3w?*^`#_fDXxni=jKe?)^(%%@|bGPta4)`MMJ9mW9LH2 zy28A&!)a8r33{6e7mBB#8qIwY7r2B4jVVDDq<{xi))YWnng2+0y6W) zKS4o3wQiv>>nJWcV?7z+A(ulHTl9D5hcRVUqqh+g@Ue|wTSw>nS5UEse}0M@wcFEC z-fBFt%V)UZX77SoWR5g0{eGw;vwmF*z7$dyo10$XwnaKAd&_Eq_g#AgX&yY*ejc@r z`+$`WIr+zX?gt-3bh+t&iIX3avu3!Qgce{j`+rTq;26$CX|G^1a4z1_9c?j(ZXn;k zn}DHKr8qoSPg*TEb?ZtJ%}t-ZbP4_vrI$=kk*Re1OAk+hR&-SKF81eh<%~>bpzEkS z6ckwjDw^ozcv)@bb(b1&hCprG@yP^v#zqv#B|65zhXCIFWR!J!X8XFmOY7J@;%ZF^ zQVo`L5Tr;sS^4VY4CJ8MctuRc>tl};Mag>K>324E=G@!v+A)aYI^VAE9kYf1q!gzs zha^~j5NHr66VN@G=GVVVd=dD2D5Jw-sQ|MF#>P)+t3A?l;3kqn#UjGrs-q` zZ3sF4M|73*30M*F2`GoR6y+gq)|4a$c)a-!yK7PMX+!{B#iu*fPBm` zva2@AK6zL155&-QOtl({deIf@OuAA>-&V$sdMHEN@Y>X!0`g+8zNYuDu1yiVxteB@ z5m_pX-VGRpyQlCt)=-+{GPE_GgPd%TDKP1h)8?@8{UYf3Nhx87^b@tCGCXiJQe`Z@%d80Hq#@qHB?#we2!gQKkyK zQrMgV*@l!RrHBoOU9Rh5%8(W`qq^th%-g-=>g(gXb!t<6Qad*8OFKT0-lR7x?MHk& zQ{rn70DN!&Qg2P&wEgLp6@Ii3*x2+LVXnhzBGF%%zwSBw=Vmux&+8wO;|jI(pIyI~ zLdUQSPX+dozWeZ{u9eJSKl>ZO`)|QX5@PQ1^?Z^eVbKn!hos$(Wyk8}LSrvRr#(Yg zp9q7C(){AEn}abM4J7QlaZ255*}ldJe%(?eQ~C8DVUc4J12N+!yv^QPv%hm%9zE>j zeODm4)iJI(a`Yo6PILa?-%CF)^4g_lANp7oK0YbDjo|(9U*ZsTUFzk#kU>MfUw|*4 zee#sFpJUWfR#70V(hi3RtQ&(FY^bfj8eLiDe7XKKm1jZy=v@wF;(e&(< zqW7O}26NeMOlscp!0v^8{PuC6JkW0A-A_u2PscXAy%@p@+OYmh(|@w@Y{(3r$q6pq zv65?LU$+ilJ{$Evl$p!KYdn9<efjq3;id|%dqAea4`vzLs^Pa{$i{{-B+X%G^wjb3416t?+rYk9P4F))ZSVO)8}47`1!|#}|3~-5)8;zgQE&C;n~Wt^6DaB4p$m z*$Ehd<5s_|zZ{!`+7|Dn~LBLpkGl@Q|{&-7rALAz49>jwGyS z7dKN3ceWM-JzJurBkqi+6}iw0mE$nYd-TCf-+$#t)V*8XJ-HXv9*&H5)hfy$rd8Vw zkZ}`a)68a>7nmDoO9OP9Iaw|4wx&A9rdB0mbeoFfz`|ccuF(uB`~H18do@VsE%T+f zLMdm{y!tBx7Q*G26HP;xALi^fHzc)x|2792b6Na@&eN~tJSP7C(El_9rSjP27=lK)~SX=Qp6UJv+W+$CO@=QlOC@B>~b`^Q-G-yHIn`0p1A*%a-#i>S&35s8; zMZw{s5Gt2v{HkV9V{q%LAgCBM8-XK<;RqUOTGejwzLgnWmE_|;6MLXF(KqxVb& zb2)DK(e`PC!kT-dw`_=>2C*@AnC389rC%x-f7+Iz;B4uyoNUgXPb1pNozHL5q;`RM z?XlEuP6n8LIVVLq$r4Tg7Bt=c%ZL+tso(C%yDy3A!p>6TpX)IgA_bdlHVbiU39L3? zI0u>JVS!dcCU3VS1k^}w&9FNZeq7w~G)TEE>NQ}gh-aVtP8j}LUEfBbSfwcnI6fNu zR7nX%eoXEc(a`9bnv5ddk47H=FQB^;(j+U#*Z0!9(L|3DQfsICb7lbW^)t<^Rz1KB zWzu*i0%D_tyqJW%mrH#5#OB4;*dX78Je`XqytV$8VcNGtAjbk;<@4{D87|Pt@$Xjq zI{P%NaT(4Y@*F|Ka1gUNgZHVZ&svX4UcFuNxcZE`!G;F3?4!dw@_6^YT+pi9qsDrwi> z*EPiX0<@Dn94FkH40CWRQS@*~Bg^+30cUGWWuzQn5UycOId<_U{yWw2X z;HIR!5C_oTKk0gw1GnkQYu?{-Ng}Sk;5U*OpCiDpioZN^UmFOZ>78eYQe?CfiJaJ! zsXxzC;bZ$0{kP3x-*xhMo5hCxrGQPN=kCFk-R!N64SL$osKT;shC~;v1z0e9Kg(%W zRu8p7OG7bXrJ2il_4E+Y|MG^am_wD30yc|NR!~INEy3qB!cfpDVl^X^DUNkg#D3u= zt(u0Kwg#nXypIIgB|vSVMefV&tl~*i+i4FwdB#C}`k4}WK~<5hw|Y+~r!8>B^Q==% zHrwsO8e&E^B6nSMP#lG9%MHh?b%b6l3P~y)#&pnv2yZvon=Qd(s636CKH8cVSznTB zI}J<+uCI43oB_KMo9t%Qq(YCr{x*`Wy?tbiQ(G$L9wtY&R?5<}QKr-CW;MJzfoyaL zdOwc0ZoUFcH(yY>g!q6JQo#7s;b+08dk__ZobST;0+8!IqwN0Dn|m10+9A^^8glew zqnhFB%=Z5i8ku2m=FecrpEl>miFYp``d#z!<)^AfluNtwl4%3uVv(~ z4ElnY?xScPy_HJ_@(wl#pLT_P+qaIY8mpZMef<0>Y2)b_69US5_^G1_$zf)!9oWwv zD(~)YVr;rIv<)e~=aPg1aTn|=s^+%gF?ih2i}4A)*8M)An$+`SIWS9pYRY45XMUy^ z^mw$QLcCy7fZJMc)joEmVX>ajO9?qaLuaM7?cR{q=NrAuG*_AsEz)`e z^Vop(ZHL%osc(0rf2Ama{uUUvA!eDJ_P!VI?4*Y$2Cds`b= z{ik`h+X7D)VP_dH@jCucsCIzk?mIK~P~y<`wQ>&GP>Y_1I~2t2WB;=oLb=$(U5rwQ z>+`(`mXS~~DaF;%(>s7a^w5o;@Y4(<57AKLrvl??R&&hc(1O`vD>|f~4^XhB9^Srd z5Zvxop=#*q=Uhn%i8FS9a-X)APZJE}Tj~tY7Zz-9#0BbK#uq^`=WWNik|m)j)Z0_3euT-No7Zy5^_O!a(7)bh z;Mj=^ia;5J=DdGX>%3_aZtet}@(n%}X8!%qyRHHIQZ&l#&o5mPW|D==@41m1cm ztttbagg{9Id(vm??ySd?EVLU{M$ed;H-Xu1`@(ipg-@zDaqdU}I@4}Y0Ms0Lj?smv zEy9MAtDB2cF}vOD0H|N+Xc+}KfN+eZm>rXN+inp94EGrtz!GuA&xrLEy(!dBnw9o7 z8=|PJ0ER4hO*g=*WO)aptlHcoPcEBZYFNC*5P=uxv6DScXPAO`h>#7zffRU zwSW)a+S+W1)iqzd*334jevFA})eY+GSZ>IbOuo5scm_=EV_tUG7;hO0uH-5NGAuq}{cGrLG=w=imU={h-}RHb2k;J{iDG$ASd$HH=ZHLAj>lQd1Q|`N$9)}4<;f-U(aHn`lc(-bu>I)>HF-zX znnk?A90#uTGtHZZxvmKh%+8+sf~Albz(;l^3@aN%enlWK$Eo@J9_Yg3|l% ztKQO15mz@q-tQjN7_3YFD diff --git a/openspec/changes/complete-daily-coding-surfaces/design.md b/openspec/changes/complete-daily-coding-surfaces/design.md index 89223582..63da752a 100644 --- a/openspec/changes/complete-daily-coding-surfaces/design.md +++ b/openspec/changes/complete-daily-coding-surfaces/design.md @@ -96,3 +96,38 @@ attachment chips to preserve those inputs. Historical prompt restoration copies text, without manufacturing media attachment authority. After a restart without a retained original draft, clear preserves the current composer. No uncertain operation is replayed automatically. + + +### Non-Git file-copy implementation increment + +The first production backend supports admitted Linux/macOS filesystems and keeps +Git selection and disabled snapshots compatible. Objects/manifests/journals use +`/snapshot/global//`, adding a Location namespace to the +canonical fallback layout because non-Git projects share the `global` project ID. +The identity hashes canonical path plus native device/inode/creation time, avoiding +mtime/size authority and inode-reuse adoption. Bounded descriptor-relative walks +never follow directory symlinks; configured ignores and private roots take priority. +Mode changes are explicit in review. Unsupported native metadata, directory +identity or cross-filesystem replacement refuses visibly; Windows fallback remains +unavailable rather than using unchecked writes. + +Versioned manifests retain excluded classes. Current/target/recorded exclusions +enter the reviewed fingerprint; excluded paths are unknown, not deletions. A bounded +private store accounts for logical payloads, records and displaced preimages. +Native restore prepares stages and durably records its intent before namespace +mutation; admission, contents and directory routes are refreshed per file. +Unknown/interrupted intents block reuse and keep actual displaced preimages. +`GET /sessions/{id}/rewind/recovery` is read-only owner inspection, uses durable +Session Location metadata without waiting on a held live projection, and never +settles native evidence. Its `filesystem_complete` flag describes the filesystem +record only. Live inspection takes no mutation lease and reads atomically published +records; missing progress never implies no effect. + +GC uses the application's bounded complete durable `copy:` reference set. It +preserves all referenced manifests, including inactive branches and stages, and +refuses pruning without that view. Any namespace with journals is retained until +a future explicit managed-resolution protocol can prove acknowledgement; this +increment does not invent a keep/rollback policy or clear native fences. That +resolution and journal reclamation, Git restore journaling, full native acceptance +and complete historical Git exclusions remain open under tasks 2.4/3.2–3.4. +Snapshot warnings are optional capture diagnostics, not failed conversation results. diff --git a/openspec/changes/complete-daily-coding-surfaces/implementation.md b/openspec/changes/complete-daily-coding-surfaces/implementation.md index 55e480e2..e174fc52 100644 --- a/openspec/changes/complete-daily-coding-surfaces/implementation.md +++ b/openspec/changes/complete-daily-coding-surfaces/implementation.md @@ -181,3 +181,75 @@ this increment; two long test scenarios were split into named recovery phases rather than exempting them from Clippy's complexity limit. Linux/Windows execution remains pending CI. Existing native C deprecation and linker unwind warnings were observed during local builds; successful checks do not substitute for platform CI. + + +## Private non-Git snapshots and retained restore intents + +This increment starts from merged #109 (`3dac1557`). The snapshot port selects +private file-copy storage for admitted Linux/macOS Locations outside Git, retaining +the existing Git backend. Task 3.1 is implemented. Tasks 3.2–3.4 and acceptance 2.4 +remain open: managed keep/rollback resolution, native receipt acknowledgement, +journal reclamation and broader native crash/platform acceptance are unfinished. +The goal and issue #93 are not complete; #92 and owner-closed #94 keep their scope. + +Objects are BLAKE3-addressed; manifests bind the canonical Location plus native +device/inode/creation identity. Every capture hashes bytes, including same-size/ +same-mtime changes. Descriptor-relative no-follow traversal applies ignores, +private roots, per-file limits and unsupported metadata exclusions. An omitted +historical/current path is not a deletion. Review includes retained file-copy +exclusions and ordinary mode changes. Existing ownership is preserved; recreating +a deleted file prepares recorded uid/gid/mode in private storage or refuses before +publication. Missing parents are private. ACL/xattr/platform-flag/read-only files +are excluded until their metadata can be retained and recreated safely. + +Restore checks the reviewed tree and admission under owned mutation/storage locks, +publishes a durable intent, prepares stages and uses native exchange/no-replace +operations. Actual displaced inodes are retained, with independently flushed +progress and final filesystem completion. Locks remain owned by the blocking +worker after async request cancellation. An incomplete/malformed journal refuses +further file-copy capture/restore; no automatic retry or rollback is inferred. +The read-only authenticated owner recovery route remains usable while the native +writer is paused, does not create absent namespaces, and never acknowledges a +Session/native receipt. `filesystem_complete` is deliberately limited to worker +filesystem completion; an absent `applied` entry does not establish no effect. + +The default per-Location 200 MiB logical cap includes retained stages/preimages. +Optional snapshot warnings do not fail a successful CLI conversation or stop the +TUI Session. A complete application durable-reference view protects event-held +roots, including stages and inactive branches. Failed/missing reference collection +refuses pruning; every namespace containing a journal remains retained. Aged +unpublished temporary objects/manifests can be reclaimed when no journal exists. + +The substantive code-review pass resolved: treating omitted files as deletions; +configured ignores overridden by project whitelists; blocking live inspection on +a writer-held lock; missing displaced-preimage quota reservation; privacy gaps +from inherited macOS ACL grants; and recreating files with weaker metadata. +Regressions exercise these corrections. Snapshot I/O remains behind the existing +server port; the application supplies private scopes and durable references, while +CLI/TUI only classify optional diagnostics and render existing reviewed responses. +No external reviewer or external model provider was used. + +Local verification and CI results are recorded in the PR. Platform constraints are +explicit: stable creation identity, admitted metadata/native operations and +same-filesystem private restore storage are required; Windows file-copy writes +remain unavailable with an actionable reason and conversation-only fallback. +Git restore has not gained the new journal. The native CI matrix runs snapshot +proofs on Linux x64/arm64 and macOS Intel/ARM; Windows CI selects the explicit +unsupported-file-copy test. Broader cut points, metadata/platform combinations and +managed resolution remain coverage gaps rather than completed acceptance. + + +Local macOS validation for this increment: 17 file-copy tests and 12 existing Git +snapshot tests passed, including whole-plan conflict refusal and preimage-space +reservation before mutation. All 11 real CLI branch/recovery scenarios passed with +serialized fixtures; the initial parallel run stalled during first exec startup +before prompt admission and was terminated, not counted as a pass. Ten focused TUI +rewind tests and four server ownership/recovery tests passed. The current OpenAPI +artifact and generated SDK consistency checks passed; SDK typecheck and 128 tests +passed with ten configured external skips. Real Git-backed terminal menu/review +screenshots were recaptured and visually checked. Strict OpenSpec 1.13.2 passed all +114 items; spec lint reported zero errors and 25 warnings. Formatting and diff +checks passed. Native C deprecation and linker unwind warnings were observed; +Linux/Windows and additional macOS architectures require the PR's platform CI. + +Workspace all-target Clippy with warnings denied also passed on the final code. diff --git a/openspec/changes/complete-daily-coding-surfaces/specs/snapshots-checkpoints/spec.md b/openspec/changes/complete-daily-coding-surfaces/specs/snapshots-checkpoints/spec.md index 35f45e36..b7e02f8c 100644 --- a/openspec/changes/complete-daily-coding-surfaces/specs/snapshots-checkpoints/spec.md +++ b/openspec/changes/complete-daily-coding-surfaces/specs/snapshots-checkpoints/spec.md @@ -49,3 +49,31 @@ #### Scenario: Interrupted restore - **WHEN** a file-copy restore loses its owner after a possible partial replacement - **THEN** recovery retains the journal and backup evidence and does not report success or blindly repeat the mutation + + +#### Scenario: Inspect retained restore evidence +- **WHEN** an authenticated owner inspects recovery journals for a Session's Location +- **THEN** the read-only bounded response reports filesystem completion and durable progress without restoring, acknowledging native receipts, creating an absent namespace or starting inference +- **AND** inspection remains available while a native writer is paused + +#### Scenario: Excluded file is not a deletion +- **WHEN** an otherwise recorded non-Git path is excluded by a later capture +- **THEN** its absence does not authorize deletion or synthesize a deletion diff, and retained target/recorded exclusions appear in a rewind review + +#### Scenario: Snapshot cap does not fail conversation +- **WHEN** the fallback cap makes file-copy capture unavailable +- **THEN** a one-time diagnostic leaves conversation execution and conversation-only rewind available, and successful exec exits remain successful + +#### Scenario: Recreate an admitted deleted file +- **WHEN** a file-copy restore recreates a deleted file and its missing parents +- **THEN** it prepares the recorded ordinary ownership/mode before publishing the file, creates missing parents privately, and refuses unsupported metadata rather than widening access +- **AND** captures disclose exclusions for ACLs, extended attributes, platform flags or other metadata that cannot be recreated safely + +## MODIFIED Requirements + +### Requirement: Non-git fallback +(P1) In non-git Locations the system SHALL snapshot by copying changed files with verified BLAKE3 identity into private `/snapshot///files/` storage, up to `snapshots.fallback_max_bytes` (default 200 MiB per Location). Non-git projects SHALL use `global` with an isolated Location namespace. When the limit is exceeded it SHALL disable code rewind for that Location with a one-time warning while conversation work continues. Unsupported native storage SHALL be unavailable explicitly rather than weakening restore guarantees. + +#### Scenario: Non-git project +- **WHEN** a Session runs in an admitted folder without git +- **THEN** edits remain rewindable through private Location-bound file-copy snapshots diff --git a/openspec/changes/complete-daily-coding-surfaces/tasks.md b/openspec/changes/complete-daily-coding-surfaces/tasks.md index 5a182167..1f69da19 100644 --- a/openspec/changes/complete-daily-coding-surfaces/tasks.md +++ b/openspec/changes/complete-daily-coding-surfaces/tasks.md @@ -16,7 +16,7 @@ Task 2.4 evidence now includes real service kill/reload/restage/clear, disabled ## 3. Non-git snapshots -- [ ] 3.1 Add private content-addressed BLAKE3 objects and Location-bound manifests behind the snapshot interface, including ignore/size/metadata reporting and same-size/same-mtime verification. +- [x] 3.1 Add private content-addressed BLAKE3 objects and Location-bound manifests behind the snapshot interface, including ignore/size/metadata reporting and same-size/same-mtime verification. - [ ] 3.2 Implement conflict-aware owned restore and recoverable backups/journal, preserving Git behavior, protected paths, symlink/hardlink safety and interruption evidence. - [ ] 3.3 Integrate 200 MiB cap, visible unavailable/overflow state, reference-aware retention and staged/branch/recovery protections. - [ ] 3.4 Test real non-git editing/restoration, limits, deletes/renames, unsupported files, concurrent Session/editor changes, crashes and native filesystem privacy. diff --git a/sdk/openapi.json b/sdk/openapi.json index be638e07..3822f9b5 100644 --- a/sdk/openapi.json +++ b/sdk/openapi.json @@ -7015,6 +7015,52 @@ "data" ] }, + "Data_Array_of_SnapshotRecovery": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SnapshotRecovery" + } + } + }, + "required": [ + "data" + ] + }, + "SnapshotRecovery": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "filesystem_complete": { + "type": "boolean", + "description": "The filesystem worker flushed its final record; not Session/native receipt acknowledgement." + }, + "paths": { + "type": "array", + "items": { + "type": "string" + } + }, + "applied": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Durably observed file checkpoints; absence does not prove that no effect occurred." + } + }, + "required": [ + "id", + "filesystem_complete", + "paths", + "applied" + ], + "description": "Retained filesystem evidence; completion does not acknowledge a Session/native receipt." + }, "RewindSelection": { "type": "object", "additionalProperties": false, @@ -23770,6 +23816,47 @@ } } }, + "/api/v1/sessions/{sessionID}/rewind/recovery": { + "get": { + "operationId": "v1.session.snapshotRecovery", + "summary": "Inspect retained filesystem restore journals without acknowledging or replaying native effects", + "tags": [ + "session" + ], + "parameters": [ + { + "name": "sessionID", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Data_Array_of_SnapshotRecovery" + } + } + } + }, + "default": { + "description": "Tagged error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorBody" + } + } + } + } + } + } + }, "/api/v1/sessions/{sessionID}/rewind/preview": { "post": { "operationId": "v1.session.rewindPreview", diff --git a/sdk/typescript/src/generated/operations.ts b/sdk/typescript/src/generated/operations.ts index b738c314..9f0ddf77 100644 --- a/sdk/typescript/src/generated/operations.ts +++ b/sdk/typescript/src/generated/operations.ts @@ -1541,6 +1541,12 @@ export interface Operations { body: undefined; response: S.Data_Nullable_Goal; }; + "v1.session.snapshotRecovery": { + path: { sessionID: string }; + query: Record; + body: undefined; + response: S.SnapshotRecovery[]; + }; "v1.session.startDelegation": { path: { sessionID: string; requestID: string }; query: Record; @@ -4590,6 +4596,18 @@ export const operations = { unwrap: false, stream: false, }, + "v1.session.snapshotRecovery": { + tag: "session", + name: "snapshotRecovery", + method: "GET", + path: "/api/v1/sessions/{sessionID}/rewind/recovery", + pathParams: ["sessionID"], + query: [], + body: "none", + located: false, + unwrap: true, + stream: false, + }, "v1.session.startDelegation": { tag: "session", name: "startDelegation", @@ -5974,6 +5992,9 @@ export function createGroups(caller: Caller) { /** Clear the current Goal and activate the next queued one; null when the queue was empty (`POST /api/v1/sessions/{sessionID}/goals/skip`) */ skipGoal: (sessionID: string, options?: RequestOptions): Promise => caller.call("v1.session.skipGoal", { path: { sessionID } }, options), + /** Inspect retained filesystem restore journals without acknowledging or replaying native effects (`GET /api/v1/sessions/{sessionID}/rewind/recovery`) */ + snapshotRecovery: (sessionID: string, options?: RequestOptions): Promise => + caller.call("v1.session.snapshotRecovery", { path: { sessionID } }, options), /** Durably reserve a named user delegation request (`POST /api/v1/sessions/{sessionID}/delegations/{requestID}`) */ startDelegation: (sessionID: string, requestID: string, body: Operations["v1.session.startDelegation"]["body"], options?: RequestOptions): Promise => caller.call("v1.session.startDelegation", { path: { sessionID, requestID }, body }, options), diff --git a/sdk/typescript/src/generated/types.ts b/sdk/typescript/src/generated/types.ts index 88fcd4db..f6b4e814 100644 --- a/sdk/typescript/src/generated/types.ts +++ b/sdk/typescript/src/generated/types.ts @@ -902,6 +902,10 @@ export type Data_Array_of_RemoteReach = { data: RemoteReach[]; }; +export type Data_Array_of_SnapshotRecovery = { + data: SnapshotRecovery[]; +}; + export type Data_Array_of_Task = { data: Task[]; }; @@ -4658,6 +4662,16 @@ export type SkillInfo = { /** The scope a skill was discovered in. */ export type SkillOrigin = "builtin" | "user" | "project" | "config" | "plugin"; +/** Retained filesystem evidence; completion does not acknowledge a Session/native receipt. */ +export type SnapshotRecovery = { + id: string; + /** The filesystem worker flushed its final record; not Session/native receipt acknowledgement. */ + filesystem_complete: boolean; + paths: string[]; + /** Durably observed file checkpoints; absence does not prove that no effect occurred. */ + applied: string[]; +}; + export type SolveCandidateEvidence = { candidate_id: string; label?: string | null; From 91756950dd67589f1ada6f4a391bddf3cdcf011f Mon Sep 17 00:00:00 2001 From: Edvane Cristina Santos Daltro Date: Thu, 5 Nov 2026 10:31:32 -0400 Subject: [PATCH 2/2] Fix snapshot directory sync and bound lock handoff --- crates/cyber-snapshot/src/copy/storage.rs | 75 +++++++++++++++++-- crates/cyber-tui/src/rewind.rs | 21 ++++++ .../implementation.md | 32 ++++++++ 3 files changed, 123 insertions(+), 5 deletions(-) diff --git a/crates/cyber-snapshot/src/copy/storage.rs b/crates/cyber-snapshot/src/copy/storage.rs index 9ae17072..98dd0bdc 100644 --- a/crates/cyber-snapshot/src/copy/storage.rs +++ b/crates/cyber-snapshot/src/copy/storage.rs @@ -28,9 +28,19 @@ pub fn dir_identity(dir: &Dir) -> Result { identity(&dir.try_clone().map_err(fail)?.into_std_file()) } pub fn sync(dir: &Dir) -> Result<()> { - let file = dir.try_clone().map_err(fail)?.into_std_file(); - file.sync_all().map_err(fail)?; - Ok(()) + // cap-std can hold O_PATH directories on Linux, which fsync rejects. + // Reopen the pinned directory itself for I/O, without resolving an ambient path. + let fd = rustix::fs::openat( + dir, + ".", + rustix::fs::OFlags::RDONLY + | rustix::fs::OFlags::DIRECTORY + | rustix::fs::OFlags::CLOEXEC + | rustix::fs::OFlags::NOFOLLOW, + rustix::fs::Mode::empty(), + ) + .map_err(fail)?; + File::from(fd).sync_all().map_err(fail) } pub fn private_child(parent: &Dir, name: &str) -> Result { child(parent, name, 0o077) @@ -142,10 +152,26 @@ pub fn lock(dir: &Dir, create: bool) -> Result { if !m.is_file() || m.nlink() != 1 || m.mode() & 0o077 != 0 { return Err("Unsafe snapshot lock".into()); } - file.try_lock() - .map_err(|_| "Snapshot storage is busy".to_string())?; + acquire_lock(&file)?; Ok(file) } +fn acquire_lock(file: &File) -> Result<()> { + let deadline = std::time::Instant::now() + std::time::Duration::from_millis(250); + loop { + match file.try_lock() { + Ok(()) => return Ok(()), + Err(std::fs::TryLockError::WouldBlock) => {} + Err(std::fs::TryLockError::Error(error)) + if error.kind() == std::io::ErrorKind::Interrupted => {} + Err(error) => return Err(format!("Cannot lock snapshot storage: {error}")), + } + if std::time::Instant::now() >= deadline { + return Err("Snapshot storage is busy".into()); + } + // Bounded acquisition only: no restore operation has started or is replayed. + std::thread::sleep(std::time::Duration::from_millis(5)); + } +} pub fn names(dir: &Dir, max: usize) -> Result> { let mut names = vec![]; for entry in dir.entries().map_err(fail)? { @@ -172,3 +198,42 @@ pub fn valid_digest(value: &str) -> bool { .bytes() .all(|b| b.is_ascii_digit() || (b'a'..=b'f').contains(&b)) } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn directory_sync_uses_a_readable_descriptor() { + let temp = tempfile::tempdir().unwrap(); + let dir = Dir::open_ambient_dir(temp.path(), cap_std::ambient_authority()).unwrap(); + #[cfg(target_os = "linux")] + let dir = { + let fd = rustix::fs::openat( + &dir, + ".", + rustix::fs::OFlags::PATH | rustix::fs::OFlags::DIRECTORY, + rustix::fs::Mode::empty(), + ) + .unwrap(); + Dir::from_std_file(File::from(fd)) + }; + sync(&dir).unwrap(); + } + + #[test] + fn lock_acquisition_waits_for_a_short_handoff_but_keeps_a_live_owner_exclusive() { + let temp = tempfile::tempdir().unwrap(); + let dir = Dir::open_ambient_dir(temp.path(), cap_std::ambient_authority()).unwrap(); + let owner = lock(&dir, true).unwrap(); + assert!(matches!(lock(&dir, false), Err(error) if error.contains("busy"))); + let contender = dir.try_clone().unwrap(); + let waiting = std::thread::spawn(move || lock(&contender, false)); + std::thread::sleep(std::time::Duration::from_millis(25)); + drop(owner); + let next = waiting.join().unwrap().unwrap(); + assert!(matches!(lock(&dir, false), Err(error) if error.contains("busy"))); + drop(next); + assert!(lock(&dir, false).is_ok()); + } +} diff --git a/crates/cyber-tui/src/rewind.rs b/crates/cyber-tui/src/rewind.rs index d5822542..b593f00c 100644 --- a/crates/cyber-tui/src/rewind.rs +++ b/crates/cyber-tui/src/rewind.rs @@ -581,6 +581,27 @@ mod tests { assert!(app.toast.as_ref().unwrap().0.contains("snapshot warning")); } #[test] + fn history_search_cancel_and_snapshot_warning_do_not_arm_rewind_or_replace_the_draft() { + let mut app = app(); + app.composer = crate::composer::Composer::new(vec!["older prompt".into()]); + app.composer.set_text("keep this draft"); + app.on_key(KeyEvent::new(KeyCode::Char('r'), KeyModifiers::CONTROL)); + assert!(app.history_search.is_some()); + app.on_event( + "session.error", + &serde_json::json!({"kind":"snapshot","message":"cap reached"}), + ); + assert!(app.history_search.is_some()); + let esc = KeyEvent::new(KeyCode::Esc, KeyModifiers::NONE); + assert!(app.on_key(esc).is_empty()); + assert!(app.history_search.is_none()); + assert!(app.rewind.escape.is_none()); + assert_eq!(app.composer.text(), "keep this draft"); + assert!(app.on_key(esc).is_empty()); + assert!(matches!(app.on_key(esc).as_slice(), [Action::Rewind(_)])); + assert_eq!(app.composer.text(), "keep this draft"); + } + #[test] fn permission_and_attachment_drafts_keep_their_priority() { let mut app = app(); app.overlay = Overlay::Permission(crate::app::PermStep::Choose(0)); diff --git a/openspec/changes/complete-daily-coding-surfaces/implementation.md b/openspec/changes/complete-daily-coding-surfaces/implementation.md index e174fc52..66ea14a8 100644 --- a/openspec/changes/complete-daily-coding-surfaces/implementation.md +++ b/openspec/changes/complete-daily-coding-surfaces/implementation.md @@ -253,3 +253,35 @@ checks passed. Native C deprecation and linker unwind warnings were observed; Linux/Windows and additional macOS architectures require the PR's platform CI. Workspace all-target Clippy with warnings denied also passed on the final code. + + +### PR #110 CI correction and merged-history integration + +The initial PR head `6a8a33b8` failed its Linux x64/ARM snapshot proofs and the +Linux Rust suite because directory sync called fsync on cap-std O_PATH handles. +Sync now reopens `.` relative to the pinned descriptor with read/directory/no-follow +flags, retaining descriptor authority while obtaining an fsync-capable handle. +The new Linux regression explicitly constructs an O_PATH directory and syncs it. +The macOS ARM proof also reported a storage-lock acquisition failure; acquisition +now retries only bounded short contention/interruption before any restore starts, +keeps a live owner exclusive and reports other lock errors distinctly. Regression +coverage checks both lock handoff and refusal while the owner remains live. +No source mutation is retried by this acquisition change. + +Merged current main `913fe1b0`, including #111's Ctrl+R history search, into the +existing PR branch without conflicts. The roadmap's 1026-requirement inventory and +history-search feature/docs/specs are preserved. A combined regression verifies +that a snapshot warning preserves the search and draft, cancelling search does +not arm rewind, and subsequent Esc-Esc opens rewind without replacing the draft. +Managed recovery resolution and journal reclamation remain outside this correction. + + +After integration, local macOS checks passed: two storage regressions, 17 file-copy +cases, 12 Git snapshot cases, 11 rewind-filtered TUI cases, nine history-search- +filtered TUI cases (one overlap), and three real non-Git CLI cases. Ten additional +parallel file-copy suite repetitions passed. Workspace all-target Clippy with +warnings denied, formatting/diff checks, generated SDK consistency and requirement +inventory checks passed. Strict OpenSpec passed 115 items after #111; lint reported +zero errors and 25 warnings. Linux O_PATH execution cannot run on this macOS host; +the corrected head requires fresh Linux x64/ARM and macOS platform proof CI. No +old-head green checks are used to accept this integrated revision.