Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
3ecb5f8
feat(wallet-backend): land restart-in-place machinery (gated; barrier…
lklimek Jun 18, 2026
e084b7a
feat(context): activate SPV/coordinator restart-in-place; retire B-2 …
lklimek Jun 18, 2026
f3907a0
Merge remote-tracking branch 'origin/docs/platform-wallet-migration-d…
lklimek Jun 18, 2026
02c198b
feat(wallet-backend): finalize restart-in-place; bump platform rev fo…
lklimek Jun 18, 2026
35a4a04
docs(secret-seam): Phase-1 design artifacts (UX disclosure + test cas…
lklimek Jun 19, 2026
9d313b7
feat(wallet-backend): add raw-SecretBytes secret seam + typed errors …
lklimek Jun 19, 2026
890cae1
fix(model): redacting Debug for ClosedSingleKey (T9, 6a2818cd)
lklimek Jun 19, 2026
85e8c4f
feat(model): PrivateKeyData::InVault placeholder + migration probes (T1)
lklimek Jun 19, 2026
f1cd234
feat(model,wallet-backend): WalletMeta+ImportedKey sidecar fields, sc…
lklimek Jun 19, 2026
1880461
chore(wallet-backend): satisfy fmt + clippy for the secret-seam batch
lklimek Jun 19, 2026
e503bbd
feat(wallet-backend): SecretScope::IdentityKey + seam-first SecretAcc…
lklimek Jun 19, 2026
aa3c34d
feat(wallet-backend): identity_key_store + seed/single-key seam-raw w…
lklimek Jun 19, 2026
a6c11a7
feat: crash-safe dual-format migration + InVault resolver + vault del…
lklimek Jun 19, 2026
aadf532
feat: key_info_screen JIT identity signing + single-key Copy B disclo…
lklimek Jun 19, 2026
dd570b8
chore: fmt + clippy for the T3-T8 integration batch
lklimek Jun 19, 2026
c155020
fix(wallet-backend): dual-format read for WalletMeta + ImportedKey si…
lklimek Jun 19, 2026
12b34f3
test(identity-db): identity-key migration, deletion, write-fault no-l…
lklimek Jun 19, 2026
99b5926
test(wallet-lifecycle): assert lazy-migration secret post-conditions …
lklimek Jun 19, 2026
a727179
test(backend-e2e): TS-SIGN-E2E-01 InVault identity signs + broadcasts…
lklimek Jun 19, 2026
73c189d
refactor(wallet-backend): zeroize migration source, flavor identity-k…
lklimek Jun 19, 2026
66c3204
test(secret-seam): TS-INV-03 audit guard + TS-NOLEAK-02 sidecar no-le…
lklimek Jun 19, 2026
906a2f1
test(kittest): disclosure-banner copy coverage (QA-007/Diziet)
lklimek Jun 19, 2026
551d208
docs: comment hygiene + CLAUDE.md seam pointer + user-story softening…
lklimek Jun 19, 2026
4dabef6
chore: nightly fmt for the QA-findings batch
lklimek Jun 19, 2026
1be4bef
test(backend-e2e): seed Clear key so TS-SIGN-E2E-01 exercises the InV…
lklimek Jun 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ Code lives by responsibility, not convenience:
- **`backend_task/`** — async business logic, one submodule per domain; the authoritative enforcement layer. `TaskError` and its typed variants live in `backend_task/error.rs`.
- **`database/`** — SQLite persistence, one module per domain.
- **`context/`** — `AppContext` submodules (`*_db.rs`, lifecycle, settings, status).
- **`wallet_backend/`** — the wallet orchestration seam: adapters, views, backend-side live caches, signers, the secret chokepoint, the event bridge.
- **`wallet_backend/`** — the wallet orchestration seam: adapters, views, backend-side live caches, signers, the secret chokepoint, the event bridge. All wallet secret bytes (HD seed, imported single key, identity private key) enter/leave the vault through ONE chokepoint, `wallet_backend/secret_seam.rs` (raw `SecretBytes`, no DET-side serialization). Per-secret encryption wires in there later — grep `TODO(per-secret-encryption):` for the exact sockets. Design + migration: `docs/ai-design/2026-06-19-secret-storage-seam/`.
- **`ui/<domain>/`** — screens (`ScreenLike`). UI may *call* `model/` validators for instant feedback but never implements its own validation.
- **`ui/components/`** — reusable **Component-pattern widgets ONLY**: a `show()` plus a `ComponentResponse`, a display-only render widget, or component infrastructure. If it does not render egui, it is not a component.
- **`ui/state/`** — non-widget UI state: per-screen view-models and async fetch-state caches (e.g. `TrackedAssetLockCache`). Owned by screens, may return `BackendTask`, render nothing.
Expand Down
62 changes: 31 additions & 31 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions benches/wallet_hydration.rs
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,8 @@ fn seed_hd_wallets(
is_main: i == 0,
core_wallet_name: None,
xpub_encoded: xpub,
uses_password: false,
password_hint: None,
};
let seed_hash = wallet.seed_hash();
seed_view.set(&seed_hash, &envelope).expect("set envelope");
Expand Down
Loading