v1.0.3
What's Changed
- fix(projects): harden loopback identity resolution by @xingkaixin in #379
- fix(scan): preserve state on worker unavailability by @xingkaixin in #380
- Fix cache persistence baseline handling by @xingkaixin in #381
- Fix committed partial scan status by @xingkaixin in #382
- Avoid duplicate Kimi detail transcript reads by @xingkaixin in #383
- fix(codex): cache child final messages by @xingkaixin in #384
- fix(api): cache dashboard storage aggregates by @xingkaixin in #385
- fix(discovery): stream cached message suffixes by @xingkaixin in #386
- perf(search): benchmark message scan tradeoffs by @xingkaixin in #387
- fix(api): reuse snapshot session trees by @xingkaixin in #388
- Refactor session slug construction by @xingkaixin in #389
- Fix session signature coverage by @xingkaixin in #390
- refactor(agents): share tool argument parser by @xingkaixin in #391
- refactor(contract): narrow change seams by @xingkaixin in #392
- fix(web): distinguish API load failures by @xingkaixin in #393
- refactor(web): reduce live session render work by @xingkaixin in #394
- fix(web): align detail landing interactions by @xingkaixin in #395
- fix(cache): Clear stale cache staging rows by @xingkaixin in #396
- fix(cli): harden unhandled rejection paths by @xingkaixin in #397
- fix(agents): commit database change baseline only after the scan succeeds by @xingkaixin in #398
- fix(cache): record full-sync completion on a fresh cache by @xingkaixin in #399
- fix(api): resolve session-detail identity off the event loop by @xingkaixin in #400
- perf(codex): stop re-reading every rollout on each windowed scan by @xingkaixin in #401
- fix(discovery): bound the smart-tag worker lifecycle by @xingkaixin in #402
- fix(cli): isolate SSE/watcher listener fan-out failures by @xingkaixin in #403
- fix(cache): surface cache marker write and read failures by @xingkaixin in #404
- fix(cli): continue search-index batches past non-fatal job failures by @xingkaixin in #405
- fix(api): validate agent keys on bookmark and alias writes by @xingkaixin in #406
- perf(cache): index sessions by bare activity time by @xingkaixin in #407
- perf(cache): aggregate dashboard model cost from a per-session rollup by @xingkaixin in #408
- fix(discovery): normalize env data-root overrides by @xingkaixin in #409
- refactor(agents): unify the four drifted timestamp parsers by @xingkaixin in #410
- test(web): guard session-tree titles against HTML injection by @xingkaixin in #411
- fix(web): robustness details across retry, menus, and dead-end routes by @xingkaixin in #412
- test: close the coverage gaps around the api client, theme bootstrap, and degraded-server retry by @xingkaixin in #413
- chore: tighten the DX feedback loops (typecheck task, bundle-test split, CI concurrency) by @xingkaixin in #414
- docs: add verification commands and CI gates to AGENTS.md by @xingkaixin in #415
- refactor(agents): codify the adapter error taxonomy and stop masking db failures by @xingkaixin in #416
- chore(cli): log parsed startup flags instead of raw argv by @xingkaixin in #417
- chore(deps): dependency and manifest hygiene by @xingkaixin in #418
- chore(core): prune dead exports from the public barrel by @xingkaixin in #419
- perf(agents): track transcript part kinds instead of rescanning by @xingkaixin in #420
- perf(web): repaint the receipt texture without rebuilding the cloth simulation by @xingkaixin in #421
- refactor(api): split handlers.ts into focused modules by @xingkaixin in #422
- refactor(cli): extract ScanStatusReporter and SearchIndexPublisher from the sync engine by @xingkaixin in #423
- fix(analytics): attribute usage by message time by @xingkaixin in #424
- chore(release): Prepare v1.0.3 by @xingkaixin in #425
Full Changelog: v1.0.2...v1.0.3