Skip to content

Commit b97f689

Browse files
hyperpolymathclaude
andcommitted
feat: extract reversible-core crate from januskey
Extract the core reversibility types into a shared library crate that ochrance and valence-shell can depend on, while keeping the CLI in januskey-cli. reversible-core provides: - ContentHash + ContentStore (SHA256 content-addressed storage) - OperationMetadata + MetadataStore (append-only operation log) - Transaction + TransactionManager (begin/commit/rollback) - ReversibleExecutor trait (Rust mirror of ochrance's VerifiedSubsystem) - ManifestEmitter (A2ML manifest generation for ochrance verification) - OperationType with formal inverse mapping (per absolute-zero CNO theory) Lineage: maa-framework → absolute-zero → januskey → {ochrance, valence-shell, aletheia} 44 tests passing across both crates. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 0e915ed commit b97f689

18 files changed

Lines changed: 7670 additions & 0 deletions

Cargo.lock

Lines changed: 1706 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
# SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell
3+
4+
[workspace]
5+
members = ["crates/reversible-core", "crates/januskey-cli"]
6+
resolver = "2"
7+
8+
[workspace.package]
9+
edition = "2021"
10+
license = "MIT OR PMPL-1.0-or-later"
11+
repository = "https://github.com/hyperpolymath/januskey"
12+
authors = ["Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>"]
13+
14+
[profile.release]
15+
lto = true
16+
codegen-units = 1
17+
opt-level = 3

crates/januskey-cli/Cargo.toml

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
# SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell
3+
4+
[package]
5+
name = "januskey"
6+
version = "1.0.0"
7+
description = "Provably reversible file operations through Maximal Principle Reduction"
8+
keywords = ["reversible", "filesystem", "transactions", "undo", "backup"]
9+
categories = ["command-line-utilities", "filesystem"]
10+
edition.workspace = true
11+
license.workspace = true
12+
repository.workspace = true
13+
authors.workspace = true
14+
15+
[dependencies]
16+
reversible-core = { path = "../reversible-core" }
17+
clap = { version = "4", features = ["derive"] }
18+
serde = { version = "1", features = ["derive"] }
19+
serde_json = "1"
20+
sha2 = "0.10"
21+
chrono = { version = "0.4", features = ["serde"] }
22+
uuid = { version = "1", features = ["v4", "serde"] }
23+
thiserror = "1"
24+
anyhow = "1"
25+
hex = "0.4"
26+
flate2 = "1"
27+
dirs = "5"
28+
walkdir = "2"
29+
colored = "2"
30+
dialoguer = "0.11"
31+
indicatif = "0.17"
32+
glob = "0.3"
33+
whoami = "1"
34+
35+
# Key management dependencies
36+
aes-gcm = "0.10"
37+
argon2 = "0.5"
38+
rand = "0.8"
39+
zeroize = { version = "1", features = ["derive"] }
40+
subtle = "2"
41+
base64 = "0.22"
42+
43+
[dev-dependencies]
44+
tempfile = "3"
45+
assert_cmd = "2"
46+
predicates = "3"
47+
48+
[[bin]]
49+
name = "jk"
50+
path = "src/main.rs"
51+
52+
[[bin]]
53+
name = "jk-keys"
54+
path = "src/keys_cli.rs"

0 commit comments

Comments
 (0)