Release history
Changelog
Version history from the repo CHANGELOG.md — evidence-named releases, not marketing blurbs. Full notes live under GitHub.
v1.9.14
LatestConnection pool + transport presets
- **Transport presets (P14-S)** — preset catalog, active/partial badges, apply confirm, Tor inline gate, template pre-fill
- **Pool health UI (P14-P)** — readable pool / degraded connectivity signals (L3 soak optional for EXIT)
- Honest client-crypto copy: networks carry ciphertext; encryption stays on the client
- Settings transport surface aligned with Conduit Mesh pool owner (subtract dual-truth where touched)
v1.9.13
Vault LES cutover
- **Local Encrypted Store (LES)** — desktop Vault data plane: encrypt-on-write, encrypted catalog, profile-scoped layout
- **Chat Save → LES** + Secure Upload into one catalog
- **Remove from Vault** — LES hard delete (V13-5)
- **Preview stability** — Vault grid / lightbox after decrypt · close · reopen (R6b maintainer soak)
- Legacy chat→vault flag path **superseded** by LES (do not re-enable old `VAULT_SAVE_FROM_CHAT` owner)
- Vault UI reads LES catalog only on desktop shell
v1.9.12
Conduit Mesh + trust gates
- Conduit Mesh C0–C14 (HTTP pull, mesh wire, long-poll, SSE, Tor SOCKS L1)
- Dual-window L3 soaks: C7 WS, C10 HTTP, C14 SSE **PASS**; C13 Tor **BLOCKED** (env)
- Trust link/export confirmation gates; voice-note player/waveform
- Vault chat→save remains **disabled** (deferred to 1.9.13)
v1.9.11
Vault encryption sandbox Phases 1–5
- **Phase 1 — Encrypt-on-write** — `encryptVaultBytesForWrite`, `VaultWriteEncryptionRequiredError`; refuse vault writes when PDK session absent.
- **Phase 2 — Legacy migration** — migrate pre-v1.9.8 plaintext vault files to ciphertext on unlock.
- **Phase 3 — Encrypted index** — vault metadata index in encrypted SQLite (replaces plaintext localStorage index for new layout).
- **Phase 4 — Controlled decrypt surface** — export labeling, folder-only reveal, `vault-media-blob-lifecycle.ts` revoke on lock/preview close.
- **Phase 5 — Per-profile layout** — `profiles/{profileId}/vault/` writes; layout migration; `data_root.rs` ensures profile vault dir.
- **L3 runbook** — [vault-sandbox-l3-verification-2026-07.md](specs/backend/vault-sandbox-l3-verification-2026-07.md).
- **Chat→vault save** — remains **disabled** (`VAULT_SAVE_FROM_CHAT_ENABLED = false`); Phase 6 investigation complete, no flag flip until G8.
- **CodaCtrl lane D** — Obscur-side EXIT; download page `data-codactrl-sha256` hooks + agent runbook.
- **Release gate** — Node 22 for Vitest 4.1 in CI.
- **Vitest 4.1** — ESM config via `.mts`; transport parity + auth K4 mock stability.
v1.9.10
AUTH-SESSION-1 cancellation + version truth
- **Desktop session policy** — `NATIVE_SECURE_SESSION_RESTORE_ENABLED` and `NATIVE_DEVICE_SESSION_CONSENT_ENABLED` disabled on desktop shell builds; manual unlock after F5/restart/lock is intentional product behavior.
- **Consent gates** — `isDeviceSessionRestoreAllowed` and `resolveStaySignedIn` respect cancelled restore policy.
- **UI honesty** — auth session policy notice, profile manager lock copy, device session settings panel hidden on desktop when restore is off.
- **Version sync** — monorepo manifests, `version.json`, and program docs aligned to **1.9.10** (recovered bands 1.9.4–1.9.9 that shipped on `main` without semver bump).
v1.9.9
Storage resilience
- **Data root health probe** — detect missing/slow/unreachable custom data roots without infinite hang.
- **Recovery UX** — reconnect folder, choose new folder, offline webview recovery gate.
- **Junction bind resilience** — dead junction heal; bind to alternate path after USB disconnect.
v1.9.8
Portable storage + encryption at rest
- **Custom data root** — junction bind, migration, conflict/overwrite dialogs, `obscur.json` manifest.
- **Encryption at rest** — PDK from device password; SQLite `.obscur-enc` envelope; vault ciphertext; encrypted removal archives (`.obscur-profile.enc.json`).
- **UX-3** — honest lock-screen and Settings → Storage copy while locked.
v1.9.7
Auth subtraction
- **Withdrawn local login assist** — removed Chrome-style autofill/save-prompt path (LLA charter withdrawn).
- **Password-only return login** — device password unlock without username field on return visits.
- **Device session diagnostics** — Settings panel for stay-signed-in / keychain status (mobile/native builds with restore enabled).
- **Profile picker integration** — locked title bar switcher and auth gateway routing fixes.