`AcPrincipal.did: Option<String>` → `Option<guildhouse_did::Did>`. The AuthorizationContext now carries a W3C-canonical typed DID; malformed DIDs fail at deserialize time rather than propagating into the corpus_check / session state. SessionState.principal stays a String — it can also hold a Unix username in ungoverned mode, so a typed Did would force Option<Did> there and complicate the chain. The render at SessionState::from_ac now goes Did → as_str() instead of cloning the legacy String. Behaviour at the audit-leaf level is unchanged when the AC carries a valid `did:web:...` payload. Phase 0 of DESIGN-DID-INTEGRATION-2026-04-29 §5. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Signed-off-by: Tyler J King <tking@guildhouse.dev>
21 lines
533 B
TOML
21 lines
533 B
TOML
[package]
|
|
name = "libgsh"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
description = "Governed shell library — AC validation, CR building, corpus gate"
|
|
|
|
[dependencies]
|
|
guildhouse-did = { path = "../../guildhouse-did" }
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
reqwest = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
sha2 = { workspace = true }
|
|
hex = { workspace = true }
|
|
chrono = { workspace = true }
|
|
dirs = { workspace = true }
|
|
tracing = { workspace = true }
|
|
|
|
|
|
[dev-dependencies]
|
|
tempfile = "3"
|