v0.1.20
What's Changed
- [#WARDEN-631] feat(telemetry): circuit-break + surface runtime 415 schema drift by @yatfa-com[bot] in #280
- [#WARDEN-340] feat(git): explorable stash rows + /api/git-stash-show endpoint by @yatfa-com[bot] in #188
- [#WARDEN-431] feat(sidebar): Source Control panel replacing inline per-chat diff rows by @yatfa-com[bot] in #192
- [#WARDEN-455] feat(sidebar): themed right-click context menu for session history rows by @yatfa-com[bot] in #282
- [#WARDEN-635] feat(git-state): add at-risk repo-state axis (⚑N) to fleet rollup by @yatfa-com[bot] in #281
- [#WARDEN-538] feat(telemetry): attach focused chat name to extended-tier events by @yatfa-com[bot] in #285
- feat(git): detect outgoing×outgoing cross-agent file collisions [WARDEN-639] by @yatfa-com[bot] in #286
- [#WARDEN-637] feat(telemetry): capture renderer JS errors as base-tier error events (runtime:renderer) by @yatfa-com[bot] in #284
- [#WARDEN-645] refactor(server): collapse 14 git-route preludes into withGitRepo wrapper by @yatfa-com[bot] in #288
- fix(observer): stop logDirective emitting "null@host" for local/tmux chats [WARDEN-642] by @yatfa-com[bot] in #287
- fix(gitStatus): unescape C-quoted porcelain/name-only paths so spaces & special chars don't break collision detection + file-open [WARDEN-650] by @yatfa-com[bot] in #289
- fix(observer): gate ws.onerror on connectionTimeoutShownRef so a failed connection shows one error [WARDEN-653] by @yatfa-com[bot] in #290
- [#WARDEN-656] refactor(web): extract pure layout-geometry from storage.ts into web/src/lib/layout.ts by @yatfa-com[bot] in #291
- refactor(web): replace App.tsx's duplicated saveUi key list with a single type-checked PERSISTED_PREF_KEYS source [WARDEN-658] by @yatfa-com[bot] in #292
- [#WARDEN-659] test(web): add formatTokens.ts coverage (graceful-empty + k/M tier boundaries + compact1 rounding) by @yatfa-com[bot] in #293
- [#WARDEN-661] fix(health): visibility-gate Fleet Health /api/health poller by @yatfa-com[bot] in #295
- [#WARDEN-662] fix(web): pass per-agent git context into collection-drill-in ChatRow by @yatfa-com[bot] in #296
- [#WARDEN-663] feat(web): add prev/next changed-region nav to DiffViewer by @yatfa-com[bot] in #297
- [WARDEN-664] refactor(web): decompose SettingsPage god-component into per-section components by @yatfa-com[bot] in #298
- [#WARDEN-665] feat(telemetry): attribute events to a release via appVersion (schema v1→v2) by @yatfa-com[bot] in #299
- [#WARDEN-666] feat(telemetry): send per-batch idempotency-key header reused across retries by @yatfa-com[bot] in #300
- [#WARDEN-667] feat(web): add 5th fleet git-state chip (🗄N stashed WIP) to summarizeProjectGitState by @yatfa-com[bot] in #301
- [#WARDEN-671] feat(telemetry): bounded in-memory replay buffer for transiently-dropped sends by @yatfa-com[bot] in #305
- [#WARDEN-672] test(web): cover electron.ts IPC bridge — consent defaults + never-reject degradation by @yatfa-com[bot] in #306
- [#WARDEN-668] feat(web): surface telemetry transmission log (actual send outcomes) in Settings by @yatfa-com[bot] in #302
- [#WARDEN-669] feat(web): rank fleet unpushed popover oldest-first with a relative-age label by @yatfa-com[bot] in #303
- fix(git): unescape C-quoted paths in parseGitShowNameStatus [WARDEN-675] by @yatfa-com[bot] in #308
- [#WARDEN-676] fix(server): unescape C-quoted paths in parseGitLsEntries (non-ASCII / special-char file browser) by @yatfa-com[bot] in #309
- [WARDEN-670] feat(web): show each dirty agent's +N −M magnitude in the ±N fleet-chip popover, rank heaviest-first by @yatfa-com[bot] in #304
- refactor(server): collapse read-with-guards into one shared readChatFile [WARDEN-674] by @yatfa-com[bot] in #307
- refactor(server): extract Claude-session layer into src/claudeSessions.js [WARDEN-677] by @yatfa-com[bot] in #310
- [#WARDEN-680] fix(telemetry): preserve source-file basenames in frame.file through the sink redactor by @yatfa-com[bot] in #311
- [#WARDEN-682] feat(web): add 6th fleet git-state chip (💤N stalled) by @yatfa-com[bot] in #312
- [#WARDEN-684] feat(telemetry): add non-identifying platform (OS) base-tier field, bump schema v2→v3 by @yatfa-com[bot] in #313
- [#WARDEN-689] feat(web): show per-agent stashCount (🗄N) in the stash popover + rank heaviest-parker-first by @yatfa-com[bot] in #314
- [#WARDEN-696] refactor(web): extract useConfigPersistence hook from App.tsx by @yatfa-com[bot] in #315
Full Changelog: v0.1.19...v0.1.20