You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(rmo): wire obliterate into dispatch + audit residue (secure deletion)
The obliterate secure-deletion command was fully implemented in
commands/secure_deletion.rs but never wired into dispatch — no Command
variant, no parser case, no executor arm — so it was unreachable dead code
from the REPL/scripts. This binds the proven RMO model to a usable runtime.
Wiring:
- parser: Command::Obliterate { path, force, redirects } + "obliterate" case
(--force/-f skips the confirmation guard).
- executable: executor arm -> commands::secure_deletion::obliterate_path
(routes file vs directory); proof_reference -> OBLITERATE_IRREVERSIBLE;
description arm.
- secure_deletion: obliterate_path dispatcher.
Audit residue (MAA / GDPR Article 17 attestation):
- obliterate/obliterate_dir append an append-only record to
<sandbox-root>/.vsh-audit.log via AuditLog. The data is destroyed; the
proof-of-deletion survives. Sandboxed under the shell root (testable, isolated).
Tests: impl/rust-cli/tests/obliterate_rmo_tests.rs (6) — dispatch wiring,
missing-operand error, end-to-end destruction, audit residue, irreversibility
(undo cannot resurrect), no-old-plaintext-remains. Full suite green (317 lib +
all integration); verified through the real vsh binary in script mode.
Honest scope (docs reconciled from "RMO stubs only"): best-effort 3-pass
overwrite (random/0x00/0xFF + fsync) on in-place filesystems only; CoW/SSD need
hardware secure_erase; audit HMAC signing pending; NOT a complete GDPR
framework. Updated CLAUDE.md, README, FAQ, ROADMAP(+_TO_V1), TOPOLOGY,
docs/wiki/*, methodology.a2ml, and the ECHO-TYPES-OCHRANCE bridge (adoc + a2ml)
in lock-step.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KfgJznd6jzSeDYsSXGAXkU
@@ -78,7 +78,7 @@ ochrance-usage = "name receipts and attestation surfaces; do not claim crypto gu
78
78
[agent-rules.forbidden-moves]
79
79
production-ready = "do not claim valence-shell is production-ready"
80
80
lean-rust-mechanised = "do not claim the Lean-to-Rust correspondence is mechanised"
81
-
rmo-gdpr-beyond-stubs = "do not claim RMO/GDPR support exists beyond stubs"
81
+
rmo-gdpr-beyond-stubs = "do not claim RMO/GDPR beyond the implemented best-effort obliterate (in-place FS only, no hardware erase, no HMAC-signed audit); do not claim a complete GDPR compliance framework"
Copy file name to clipboardExpand all lines: .machine_readable/bot_directives/methodology.a2ml
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -101,7 +101,7 @@ constraints = [
101
101
"Coq has 0 remaining real proof gaps: obliterate_overwrites_all_blocks is CLOSED (Print Assumptions: Closed under the global context, re-verified 2026-07-16 under Coq 8.18.0) — see docs/PROOF_HOLES_AUDIT.md",
102
102
"Agda has 1 structural axiom (funext) — provable in cubical Agda, intentional in intensional TT",
103
103
"Coq has 1 justified decidability axiom (is_empty_dir_dec) — infinite-domain Filesystem = Path -> option FSNode; switching to FMaps.t FSNode is the documented migration",
104
-
"RMO (GDPR / secure deletion) primitives are stubs in impl/rust-cli/src/commands/secure_deletion.rs — proofs exist for the model, runtime does not yet bind to them",
104
+
"RMO (GDPR / secure deletion): the obliterate command IS implemented and wired (parser+executor -> commands::secure_deletion::obliterate_path; 3-pass overwrite + unlink + append-only audit residue at <root>/.vsh-audit.log; tests/obliterate_rmo_tests.rs). Best-effort on in-place filesystems only; CoW/SSD need hardware secure_erase; audit HMAC signing still pending. Do NOT claim a full GDPR compliance framework.",
105
105
"OCaml extraction path exists in proofs/coq/extraction.v but the extracted code is not wired into a build target",
106
106
"Idris2 ABI carrier has 2 holes + 10 partial markers per the 2026-06-01 deep audit (issue #42) — these are the FFI boundary obligations",
Copy file name to clipboardExpand all lines: CLAUDE.md
+15-6Lines changed: 15 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -53,8 +53,8 @@ The Rust CLI is a functional interactive shell with these features:
53
53
- NOT a full POSIX shell (word splitting in external command args, $IFS in all contexts, full function nesting still incomplete)
54
54
- NOT formally verified end-to-end (Lean -> Rust is ~95% confidence via property testing, not proven)
55
55
- NOT a replacement for bash/zsh in current state
56
-
-No GDPR compliance (RMO/secure deletion are stubs)
57
-
- No mechanized correspondence proof (property testing only)
56
+
-Partial GDPR/RMO: the `obliterate` secure-deletion command is implemented and wired (3-pass overwrite + unlink + append-only audit residue), best-effort on in-place filesystems only — CoW/SSD need hardware erase and audit HMAC signing is still pending, so this is NOT a full GDPR compliance framework
57
+
- No mechanized correspondence proof (property testing only; a compiled-Lean-model differential oracle now backstops it — see `docs/LEAN4_RUST_CORRESPONDENCE.md`)
58
58
- Elixir NIF build broken (low priority)
59
59
- BEAM daemon not implemented (planned, not built)
60
60
@@ -111,7 +111,7 @@ deep-audit session). The corresponding Phase 4C design docs under
111
111
### Medium Priority
112
112
113
113
1. Full POSIX compliance incomplete (see `docs/POSIX_COMPLIANCE.md`)
114
-
2.No GDPR compliance (RMO/secure deletion are stubs)
114
+
2.Partial GDPR/RMO: `obliterate` implemented (best-effort secure deletion + audit residue); full GDPR framework incomplete (HW erase for CoW/SSD, HMAC signing)
115
115
3. Elixir NIF build broken (low priority)
116
116
117
117
### Low Priority
@@ -303,9 +303,18 @@ cargo run
303
303
- Working in Rust CLI
304
304
305
305
### RMO (Remove-Match-Obliterate)
306
-
- Irreversible deletion with proof of complete removal
307
-
- Stubs only — NOT implemented
308
-
- Needed for GDPR compliance
306
+
- Irreversible deletion with proof of complete removal (model proven in
Copy file name to clipboardExpand all lines: docs/ECHO-TYPES-OCHRANCE-BRIDGE.adoc
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -30,7 +30,7 @@ Valence Shell supplies the shell operations; Echo Types supplies the language fo
30
30
Valence Shell already has RMR and RMO vocabulary:
31
31
32
32
* RMR: Remove-Match-Reverse, reversible transactions with undo/redo proof.
33
-
* RMO: Remove-Match-Obliterate, irreversible deletion with proof of complete removal; currently stubs only.
33
+
* RMO: Remove-Match-Obliterate, irreversible deletion with proof of complete removal. The `obliterate` command is implemented and wired (best-effort 3-pass overwrite + unlink + append-only audit residue); the full RMO/GDPR framework (hardware erase for CoW/SSD, audit HMAC signing) is incomplete.
34
34
35
35
Without Echo Types, these can be misread as only implementation features. With Echo Types, they become cases in a broader theory of information change.
36
36
@@ -148,7 +148,7 @@ When working in Valence Shell, Claude and similar agents must observe these rule
148
148
149
149
* Do not claim Valence Shell is production-ready.
150
150
* Do not claim the Lean-to-Rust correspondence is mechanised.
151
-
* Do not claim RMO/GDPR support exists beyond stubs.
151
+
* Do not claim RMO/GDPR support beyond the implemented best-effort `obliterate` (in-place FS only; no hardware erase, no HMAC-signed audit) — i.e. do not claim a complete GDPR compliance framework.
152
152
* Do not claim Echo Types proves Valence Shell implementation correctness.
153
153
* Do not claim Ochrance cryptographic integrity while its hash/attestation gaps remain open.
154
154
* Do not merge exploratory Echo bridges into core claims without checking `docs/bridge-status.md` in echo-types.
0 commit comments