What's Changed
- site: resolve v1.x version from release manifest (no per-release edits) by @esengine in #3017
- perf(serve): add ETag caching to /history and /context by @HUQIANTAO in #2957
- fix(desktop): prevent workspace git console flashes on Windows by @Nahiyi in #2935
- ci(e2e-bot): drive the PR head + exercise compaction by @esengine in #3050
- feat(agent): cache prefix diagnostics for prompt-cache churn by @esengine in #3057
- feat(agent): structured, economical compaction (soft/force ratios + fold economics) by @esengine in #3073
- fix(e2ebench): cap post-cancel wait with WaitDelay so a wedged child can't wedge the bench by @HUQIANTAO in #3062
- fix(e2ebench): cap runTests / goBuildAll wait so a hung child can't pin diff mode by @HUQIANTAO in #3067
- fix(e2ebench): cap mutation test wait + always restore source on panic by @HUQIANTAO in #3068
- fix(e2ebench): cap differential test wait + always restore source on panic by @HUQIANTAO in #3069
- fix(e2ebench): parse method-form test names in parseNewTests by @HUQIANTAO in #3071
- fix(e2ebench): parse quoted args in --test-cmd so -run "TestFoo" reaches go test by @HUQIANTAO in #3072
- fix(e2ebench): strip the full module prefix in repoRelFromModulePath, not just the first segment by @HUQIANTAO in #3075
- fix(e2ebench): add a grading-loop context to bound the test/build wall clock by @HUQIANTAO in #3076
- fix(e2ebench): truncate on a UTF-8 rune boundary in truncateFor by @HUQIANTAO in #3077
- fix(e2ebench): print the bench name and a usage example on -h/-help by @HUQIANTAO in #3080
- fix(e2ebench): preserve source file mode in copyFile by @HUQIANTAO in #3082
- fix(e2ebench): skip nil-named funcs in changedFuncs to avoid a nil-deref on func literals by @HUQIANTAO in #3084
- fix(e2ebench): track parseCoverProfile skip rate so a broken format is visible by @HUQIANTAO in #3086
- fix(e2ebench): skip symlinks in copyDir so the seed's fixture links don't leak out-of-tree by @HUQIANTAO in #3087
- fix(e2ebench): distinguish "suite dir missing" from "suite dir empty" in the error message by @HUQIANTAO in #3089
- fix(e2ebench): surface JSON marshal + write errors instead of silently dropping them by @HUQIANTAO in #3092
- chore(e2ebench): trim narrative comments to the repo policy by @esengine in #3097
- perf(providers): pool request body buffers via sync.Pool by @HUQIANTAO in #2958
- netclient: remove Client.Timeout from NewHTTPClient, delegate to context by @AtmoOmen in #3027
- fix(serve): keep SSE /events warm with periodic ping so proxies don't drop the idle stream by @HUQIANTAO in #3064
- fix(cli): persist /theme selection to user config so it survives restart by @CnsMaple in #3043
- fix(tui): ESC no longer exits YOLO; Ctrl+C copies selection to clipboard by @CnsMaple in #3051
- chore: add CODEOWNERS scaffolding for core-path review by @esengine in #3130
- fix(desktop): link Linux release against WebKitGTK 4.1 by @esengine in #3155
- fix(provider): replay an SSE stream cut before any token by @esengine in #3161
- docs(migrating): explain latest/next dist-tags and v0.x auto-import by @esengine in #3168
- Project Topic Tabs and Context Inspector by @SivanCola in #2925
- fix(desktop): only show the native menu bar on macOS by @esengine in #3170
- fix(config): migrate legacy API key into the global credentials store, not ~/.env by @esengine in #3172
- fix(desktop): keep provider API keys global so they survive a project switch by @esengine in #3174
- fix(desktop): remember the install path across Windows updates by @HUQIANTAO in #3060
- fix(e2ebench): use digit-only cut when parsing the hunk-header new-side start line by @HUQIANTAO in #3090
- fix(desktop): release bug-fix roundup (todo panel visibility, null-guard render crash) by @esengine in #3184
- feat: Claude Code parity roundup (/rewind, ! shell, queue navigation) by @esengine in #3186
- fix(desktop): surface legacy sessions in Global topics (concurrency-safe) by @esengine in #3198
- feat: global auto-plan settings (/auto-plan, default off) by @esengine in #3199
- fix(control): auto-answer ask prompts in YOLO mode by @SivanCola in #3194
- fix: release CLI/shell fixes (first-run key prompt, login PATH, status row) by @esengine in #3204
- perf(desktop): rendering + bundle roundup (debounce, deferred values, code-split, highlight cache) by @esengine in #3205
- feat(config): drive effort capabilities from provider config (#2963) by @Bernardxu123 in #3037
- refactor(desktop): remove agent settings tab by @SivanCola in #3201
- fix(desktop): let macOS system quit bypass background close by @SivanCola in #3203
- feat(desktop): add close-to-tray option (rebase of #3030) by @esengine in #3209
- fix(desktop): refresh project tree after session changes by @SivanCola in #3208
- feat(desktop): add text size setting by @wade19990814-hue in #3144
- fix(desktop): simplify active topic indicator by @SivanCola in #3211
- feat(desktop): use wordmark logo in chrome and welcome by @SivanCola in #3215
- build(desktop): ship a macOS .dmg for first-time install by @esengine in #3216
- Fix repeated successful writer loops by @paradoxSCH in #3202
- fix(plan): clear and track approved plan todos by @wade19990814-hue in #3142
New Contributors
Full Changelog: desktop-v1.1.0...desktop-v1.2.0