build(manifest): land wave-1 dependency set and ADR-003 feature graph

- russh = "0.65", default-features off, aws-lc-rs only (ADR-002:
  no flate2, no rsa; tree RC-free except the recorded ssh-key
  0.7.0-rc.11 pin riding the russh keys path)
- alkcall 0.10, alkvault 0.1 version-pinned; no path deps
- standing toolkit: tokio, thiserror, tracing, parking_lot, zeroize
- edition 2024, rust-version 1.89
- ADR-003 feature graph: session/git/tunnel/sftp, default = [],
  flat and independent — features gate nothing yet (wave-2
  decline core is the first consumer)
- task w1-manifest completed; notes/summary filled

Verified: cargo tree (no rsa/pkcs1/flate2), cargo test, cargo test
--all-features, cargo clippy --all-targets -- -D warnings (default +
all-features), cargo fmt --check, taskgraph validate
This commit is contained in:
glm-5.3-flash committed 2026-10-28 06:20:20 +00:00
1 parent 0b1bc284fa
commit 78ae905b21
3 files changed
+2659 -22

No files matched your search

+24 -13
View File
@@ -1,14 +1,14 @@
# Single-crate protocol/door crate (the alktty template). No workspace:
# the composition story is deferred — alkssh's substance is the mappings
# (family ADR-003); the russh pin is decided (ADR-002: 0.65.0, aws-lc-rs).
# (family ADR-003).
[workspace]
members = ["."]
[package]
name = "alkssh"
version = "0.1.0"
edition = "2021"
rust-version = "1.88"
edition = "2024"
rust-version = "1.89"
license = "MIT OR Apache-2.0"
description = "SSH adapter for the alk family: russh-wrapped vanilla-ssh termination bridged to/from alkcall channels — session/pty, tunnels, git exec — with every capability mapping a fail-closed cargo feature (no features: no capabilities)"
repository = "https://git.alk.dev/alkdev/alkssh"
@@ -24,20 +24,31 @@ exclude = [".opencode/", "AGENTS.md", "docs/reviews/", "docs/plans/", "docs/rese
name = "alkssh"
[features]
# The capability feature graph (ADR-003) lands with implementation start:
# session (→ alktty), tunnel (→ alktunnels), git (→ alkgit), sftp (→
# alkfs, deferred placeholder). The default build carries no capabilities
# by design — every mapping is opt-in and every unfeatured channel open
# declines fail-closed.
# ADR-003: flat and independent — no feature implies another; `default = []`
# by design (a default build has no capabilities; every unfeatured open
# declines fail-closed). Features gate nothing yet — the wave-2 decline core
# is their first consumer; the per-feature sibling deps land with their
# first consuming wave.
default = []
session = []
git = []
tunnel = []
sftp = []
[dependencies]
tokio = { version = "1.54.1", features = ["full"] }
# Deliberately empty until implementation start — the russh pin is decided
# (ADR-002: 0.65.0, aws-lc-rs); russh + alkcall + sibling-crate deps land
# with implementation.
# ADR-002: aws-lc-rs only; default features off — no flate2, no rsa
# (ed25519-only; the tree stays RC-free except the ssh-key pin riding the
# russh keys path). Never enable russh's `des`/`dsa` features.
russh = { version = "0.65", default-features = false, features = ["aws-lc-rs"] }
alkcall = "0.10"
alkvault = "0.1"
tokio = { version = "1.54", features = ["full"] }
thiserror = "2.0"
tracing = "0.1"
parking_lot = "0.12"
zeroize = "1.9"
[dev-dependencies]
[profile.release]
lto = "thin"
lto = "thin"