Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Phases

UnENVerse was built in numbered phases. Each phase is one coherent piece of work with its own tests, and a phase number is a queue position, not an id: the early plan was renumbered several times as work was inserted ahead of it, and each phase page lists the earlier numbers it carried so old notes stay readable. The numbers used here are the ones the project uses today.

  • Phases 1 to 20 built the product: the vault, the server, access control, the agent-safe CLI and the release pipeline.
  • Phases 21 to 42 were the road to 1.0.0: correctness, hardening, parity, nodes, history, approvals and the rename to UnENVerse.
  • Phases 43 to 56 are the operations roadmap (its ids are R00 to R34) and the behaviour-test round, numbered in the same sequence.
  • Phases 57 and later are the queue of roadmap phases still to do, with the agent-safety lane planned after 1.0.0. See the queue.

Every phase

PhaseNameStatusPage
1Tauri wrapper, static frontendDoneread
2SQLCipher + Argon2id encrypted storage, unlock flowDoneread
3TypeScript + Vite, inline handler elimination, Projects groundworkDoneread
4Remote vault server + CLIDoneread
5Multi-user / RBACDoneread
5.1Security hardening passDoneread
6TLS on server, cert pinning, tag sidebar filter, bug fixesDoneread
7–10.1Audit, auth model, permission expressions, Open to LAN, lost-update fixDoneread
11Frontend test suite + module-by-module audit, 66 bugs fixedDoneread
12UX persistence, Tauri window state, LAN wrong-vault fix, experimental project tyDoneread
13CLI parity (unv-cli as lib + thin binary), exporter golden fixturesDoneread
14Agent-safe CLI: redaction, JSON envelope, exit codes, describeDoneread
15Custom icons, live enrichment, Windows/distro portability, Docker RAMDoneread
16ESLint/Prettier/clippy, scripts/version.mjs, release-on-version-bump + GHCR +Doneread
17Foundation & securityDoneread
18Core features & integrationsDoneread
19UX & accessibilityDoneread
20Operability & releaseDoneread
21${Provider/ID} resolved to the entry UUIDDoneread
22TOTP as a stored secretDoneread
22.2HOTP, Steam, the next code and the Authenticator screenDoneread
23Credential shape, copy profiles, env namingDoneread
24Shipped-feature defects, lint to zero, CI hygieneIn progressread
24.1Composite secrets and bundlesDoneread
24.2The secrets grid, legible at scaleDoneread
24.3Calendar feedsDoneread
24.4Unique-ID registryIn progressread
24.5A richer credential modelIn progressread
25Close review-01, remainderDoneread
26The redaction engine, outwardDoneread
27The UI labDoneread
28Escape by constructionDoneread
28.1Escape II: coverage the first pass leftDoneread
29The config compilerDoneread
29.1Config compiler II: the next rules, and scopeDoneread
30StorageDoneread
30.1Storage II: clients send deltasDoneread
30.2Storage III: rows below the project, retention, loadDoneread
31The provider catalogueDoneread
31.1Settings → Data row "Provider catalogue": status line from catalogue_status, *Doneread
31.2Provider gained acts_as, exposure, console_url (validated against the 24Doneread
31.3The catalogue holds only the 48 compiled prefixes, so it cannot yet add anythingIn progressread
32Does it actually do anything?In progressread
32.1tests/efficacy-cards.test.ts (one entry of every registered secret type + a poDoneread
32.2tests/efficacy-surfaces.test.ts (health-scan results, Settings sidebar-layoutDoneread
32.3Deleted the unreachable copy-chunk-env button, hasChunkEnvRefs and its handlDoneread
33UI ⇄ CLI parityDoneread
33.1benrich --online in the app: asks each issuer about its own credential, so it sDoneread
33.2bunv doctor's file-level checks (integrity, storage, salt pairing, file permisDoneread
33.3UI for import-vault (Bitwarden / 1Password / Proton, with the onboarding wizarDoneread
33.4UI for user strict-write (needs a server route too: set_strict_write is locaDoneread
33.6unv diff A B (entry diff, redacted by default) and CLI management of the tempDoneread
33.7Delete or wire the six registered-but-never-invoked Tauri commands listed underDoneread
34NodesDoneread
35Config time machineDoneread
36Blast radiusDoneread
37ApprovalDoneread
38Stack integrationsDoneread
39Pentest before 1.0.0In progressread
41Sub-phases 28.1, 29.1, 30.1, 30.2, 34.1, 37.1, 38.1 and the 24.5 leftovers, commDoneread
42The rename to UnENVerse, restore a snapshot or a node's file into chunks (`src/tDoneread
43R01 security hotfixesDoneread
44R22 UnENVerse websiteDoneread
45R02 CI release gating + speedDoneread
46Chaos testing programDoneread
47R03 dependency modernisationDoneread
48R04 unv-app extractionDoneread
49R05 ops runtime + local recoveryDoneread
50R06 SFTP, retention, restore drillDoneread
51R07 metadata + lifecycle coreDoneread
52R08 config parsers + migration coreDoneread
53R09 password-manager sourcesDoneread
54R26 signed desktop + CLI updatesIn progressread
56T56 T56 behaviour tests (Rust + TypeScript)Doneread

The release history is in the changelog, and the decisions behind the phases are the decision records.