Commit Graph
100 Commits
Author SHA1 Message Date
nesquena-hermes a214dfea20 Release YO (v0.51.685): extract session-list cache to its own module (#5004, #1907)
Release YO (v0.51.685): extract session-list cache to its own module (#5004, #1907)
2026-06-26 11:49:25 -07:00
nesquena-hermes 56515f827a Release YN (v0.51.684): full-table-only enhanced-table copy sanitizer (#4994, fixes #4945)
Release YN (v0.51.684): full-table-only enhanced-table copy sanitizer (#4994, fixes #4945)
2026-06-26 11:14:16 -07:00
nesquena-hermes cca7421743 Release YM (v0.51.683): pip-style agent-root discovery (#4998, fixes #4700)
Release YM (v0.51.683): pip-style agent-root discovery (#4998, fixes #4700)
2026-06-26 10:39:10 -07:00
nesquena-hermes 83fa82d4fe Release YL (v0.51.682): indexed compression-continuation lookup (#4991, fixes #4990)
Release YL (v0.51.682): indexed compression-continuation lookup (#4991, fixes #4990)
2026-06-26 09:44:24 -07:00
nesquena-hermes 7763e92d09 Release YK (v0.51.681): Anthropic OAuth-token env detection parity (#4995, fixes #4770)
Release YK (v0.51.681): Anthropic OAuth-token env detection parity (#4995, fixes #4770)
2026-06-26 09:16:15 -07:00
nesquena-hermes 60f6779e47 Release YJ (v0.51.680): explicit session-index rebuild thread ownership (#4993, #3894)
Release YJ (v0.51.680): explicit session-index rebuild thread ownership (#4993, #3894)
2026-06-26 08:30:10 -07:00
nesquena-hermes b9cea92fa1 Release YI (v0.51.679): parallelize fresh sidebar boot fetches (#4992, fixes #4759)
Release YI (v0.51.679): parallelize fresh sidebar boot fetches (#4992, fixes #4759)
2026-06-26 08:11:15 -07:00
nesquena-hermes 87acf25e98 Release YH (v0.51.678): suppress post-render scroll artifact across all intent modalities (#4970)
Release YH (v0.51.678): suppress post-render scroll artifact across all intent modalities (#4970)
2026-06-26 06:47:31 -07:00
nesquena-hermes ffef6fa4ec Release YG (v0.51.677): render cron run output as literal pre/code (#4977)
Release YG (v0.51.677): render cron run output as literal pre/code (#4977)
2026-06-26 05:11:28 -07:00
nesquena-hermes f6910eeed8 Release YF (v0.51.676): scope pending user-turn dedupe to current tail (#4826, fixes #4825)
Release YF (v0.51.676): scope pending user-turn dedupe to current tail (#4826, fixes #4825)
2026-06-26 04:27:23 -07:00
nesquena-hermes 42b3ada3f2 Release YE (v0.51.675): bounded state.db tail reads for paginated session loads (#4920, fixes #4918 P1)
Release YE (v0.51.675): bounded state.db tail reads for paginated session loads (#4920, fixes #4918 P1)
2026-06-26 03:57:13 -07:00
nesquena-hermes bb2920180e Release YD (v0.51.674): process-global request-diagnostics watchdog (#4973)
Release YD (v0.51.674): process-global request-diagnostics watchdog (#4973)
2026-06-26 01:07:25 -07:00
nesquena-hermes 6dd1c5e0fa Release YC (v0.51.673): stale local approval card clears instead of dead-ending (#4955, #4948 local variant, #4771 follow-up)
Release YC (v0.51.673): stale local approval card clears instead of dead-ending (#4955)
2026-06-26 00:13:03 -07:00
nesquena-hermes 66d0278659 Release YB (v0.51.672): pre-aggregate cron sidebar ordering for missing-index scans (#4962)
Release YB (v0.51.672): pre-aggregate cron sidebar ordering for missing-index scans (#4962)
2026-06-25 20:20:04 -07:00
nesquena-hermes a59fb8290e Release YA (v0.51.671): move CLI sidebar cache rebuild out of the lock (#4952, closes #4842)
Release YA (v0.51.671): move CLI sidebar cache rebuild out of the lock (#4952, closes #4842)
2026-06-25 19:57:10 -07:00
nesquena-hermes 443e1063b5 Release XZ (v0.51.670): chronological tool-call rows before final answer incl equal-ts (#4893)
Release XZ (v0.51.670): chronological tool-call rows before final answer incl equal-ts (#4893)
2026-06-25 19:40:45 -07:00
nesquena-hermes 76eb548007 Release XY (v0.51.669): persist OpenAI priority service_tier (#4543, fixes #4536)
Release XY (v0.51.669): persist OpenAI priority service_tier in main-model settings (#4543, fixes #4536)
2026-06-25 19:12:18 -07:00
nesquena-hermes e96b95d8b2 Release XX (v0.51.668): WebUI<->Desktop session reconciliation (#4834, fixes #4833)
Release XX (v0.51.668): WebUI<->Desktop session reconciliation (#4834, fixes #4833)
2026-06-25 17:49:55 -07:00
nesquena-hermes fce305993a Release XW (v0.51.667): compaction-marker writeback + code-redaction fix (#4823, fixes #4821)
Release XW (v0.51.667): compaction-marker writeback + code-redaction fix (#4823, fixes #4821)
2026-06-25 17:26:29 -07:00
nesquena-hermes 9dc1395adb Release XV (v0.51.666): local approvals no longer 409 (#4950, #4771 regression, closes #4948)
Release XV (v0.51.666): local approvals no longer 409 (#4950, #4771 regression, closes #4948)
2026-06-25 15:39:43 -07:00
nesquena-hermes 8dd64eaa27 Release XU (v0.51.665): freeze CLI/cron sidebar cache key during streaming (#4908, #4842)
Release XU (v0.51.665): freeze CLI/cron sidebar cache key during streaming (#4908, #4842)
2026-06-25 15:11:59 -07:00
nesquena-hermes d1106c83e5 Release XT (v0.51.664): transparent stream keeps prose chronological for mixed turns (#4932, #3397)
Release XT (v0.51.664): transparent stream keeps prose chronological for mixed turns (#4932, #3397)
2026-06-25 14:55:03 -07:00
nesquena-hermes ada386acd4 Release XS (v0.51.663): show mobile reload button outside standalone mode (#4939, fixes #4784)
Release XS (v0.51.663): show mobile reload button outside standalone mode (#4939, fixes #4784)
2026-06-25 13:55:08 -07:00
nesquena-hermes a569d6ba3b Release XR (v0.51.662): ignore DOM-wipe scroll clamp during render (#4934)
Release XR (v0.51.662): ignore DOM-wipe scroll clamp during render (#4934)
2026-06-25 13:38:51 -07:00
nesquena-hermes a06a63a9c2 Release XQ (v0.51.661): no fabricated turn duration from stale pending_started_at (#4930)
Release XQ (v0.51.661): no fabricated turn duration from stale pending_started_at (#4930)
2026-06-25 13:14:30 -07:00
nesquena-hermes 9d1b6617c2 Release XP (v0.51.660): durable tool output/diff body on cold reload (#4927, completes #4925)
Release XP (v0.51.660): durable tool output/diff body on cold reload (#4927, completes #4925)
2026-06-25 12:44:48 -07:00
nesquena-hermes ccab526528 Release XO (v0.51.659): one-click extension install works with no env config (#4935, closes #4933)
Release XO (v0.51.659): one-click extension install works with no env config (#4935, closes #4933)
2026-06-25 11:59:25 -07:00
nesquena-hermes 670fe37f4c Release XN (v0.51.658): tool cards keep long content args + reconstruct diffs (#4928, #4925)
Release XN (v0.51.658): tool cards keep long content args + reconstruct diffs (#4928, #4925)
2026-06-25 11:42:30 -07:00
nesquena-hermes 55a2e698a9 Release XM (v0.51.657): expanded shell tool card full command + broadened redaction (#4926, #4925)
Release XM (v0.51.657): expanded shell tool card shows full command + broadened redaction (#4926, #4925)
2026-06-25 11:11:36 -07:00
nesquena-hermes 773a36dd91 Release XL (v0.51.656): stream writeback timing diagnostics (#4923, #4918)
Release XL (v0.51.656): stream writeback timing diagnostics (#4923, #4918)
2026-06-25 09:58:27 -07:00
nesquena-hermes c33657434f Release XK (v0.51.655): avoid repeated session loads in live usage metering (#4922, #4918)
Release XK (v0.51.655): avoid repeated session loads in live usage metering (#4922, #4918)
2026-06-25 09:38:20 -07:00
nesquena-hermes 1fcb61cc04 Release XJ (v0.51.654): narrow session-index save LOCK window (#4921, #4918)
Release XJ (v0.51.654): narrow session-index save LOCK window (#4921, #4918)
2026-06-25 09:07:47 -07:00
nesquena-hermes cdb70ee547 Release XI (v0.51.653): keep gateway approval failures actionable (#4917, closes #4771)
Release XI (v0.51.653): keep gateway approval failures actionable (#4917, closes #4771)
2026-06-25 06:35:12 -07:00
nesquena-hermes 584dfa3c45 Release XH (v0.51.652): deliver async_delegation subagent completions to chat (#4912)
Release XH (v0.51.652): deliver async_delegation subagent completions to chat (#4912)
2026-06-25 04:56:07 -07:00
nesquena-hermes 56931500a7 Release XG (v0.51.651): force update non-fatal on undeletable untracked files (#4914)
Release XG (v0.51.651): force update non-fatal on undeletable untracked files (#4914)
2026-06-25 04:26:05 -07:00
nesquena-hermes 6403c8d459 Release XF (v0.51.650): protect table-cell pipes inside inline code (#4896)
Release XF (v0.51.650): protect table-cell pipes inside inline code (#4896)
2026-06-25 01:40:06 -07:00
nesquena-hermes aaa70157fd Release XE (v0.51.649): activate gallery-installed extensions + fix subdir asset URLs (#4907)
Release XE (v0.51.649): activate gallery-installed extensions + fix subdir asset URLs (#4907)
2026-06-25 00:24:20 -07:00
nesquena-hermes cea9244460 Release XD (v0.51.648): restore tool-card result body on settled rebuild path (#4904, #4622)
Release XD (v0.51.648): restore tool-card result body on settled rebuild path (#4904, #4622)
2026-06-25 00:06:18 -07:00
nesquena-hermes a64978c7ca Release XC (v0.51.647): restore mobile-PWA task-detail action buttons (#4891)
Release XC (v0.51.647): restore mobile-PWA task-detail action buttons (#4891)
2026-06-24 23:37:05 -07:00
nesquena-hermes 10b9ba7429 test: class-level regression guard for the #4856 mobile-transcript-collapse family
test: class-level regression guard for the #4856 mobile-transcript-collapse family
2026-06-24 22:54:11 -07:00
nesquena-hermes 0ac52cba42 Release XB (v0.51.646): mobile transcript scrolls again — overflow-x:clip (#4898, closes #4856)
Release XB (v0.51.646): mobile transcript scrolls again — overflow-x:clip (#4898, closes #4856)
2026-06-24 22:35:26 -07:00
nesquena-hermes 690b40c99b Release XA (v0.51.645): cache sidebar-projection sidecar reads + hoist cron per-row I/O (#4889, #4842)
Release XA (v0.51.645): cache sidebar-projection sidecar reads + hoist cron per-row I/O (#4889, #4842)
2026-06-24 22:12:36 -07:00
nesquena-hermes 09b19152ab Release WZ (v0.51.644): extensions gallery browse/install/uninstall (#4879, closes #4746)
Release WZ (v0.51.644): extensions gallery browse/install/uninstall (#4879, closes #4746)
2026-06-24 21:49:39 -07:00
nesquena-hermes ed5a217ae1 Release WX (v0.51.643): show unassigned tasks as explicit lane on mobile Kanban (#4853)
Release WX (v0.51.643): show unassigned tasks as explicit lane on mobile Kanban (#4853)
2026-06-24 21:19:58 -07:00
nesquena-hermes 5a46ec9bd2 Release WW (v0.51.642): steer failure reasons + Retry/Dismiss recovery bar (#4850, closes #4749)
Release WW (v0.51.642): steer failure reasons + Retry/Dismiss recovery bar (#4850, closes #4749)
2026-06-24 20:50:41 -07:00
nesquena-hermes ff110458fd Release WV (v0.51.641): dark-mode disabled-plugin badge contrast + active-first sort (#4848, closes #4713)
Release WV (v0.51.641): dark-mode disabled-plugin badge contrast + active-first sort (#4848, closes #4713)
2026-06-24 20:20:46 -07:00
nesquena-hermes 98e13bc92a Release WU (v0.51.640): cache Claude Code transcript parses on the profile-switch path (#4718, #4662)
Release WU (v0.51.640): cache Claude Code transcript parses on the profile-switch path (#4718, #4662)
2026-06-24 19:51:14 -07:00
nesquena-hermes 703d44b168 Release WT (v0.51.639): persist + session-scope approval-card dismissal (#4846, closes #4754)
Release WT (v0.51.639): persist + session-scope approval-card dismissal (#4846, closes #4754)
2026-06-24 19:43:44 -07:00
nesquena-hermes b66356ed67 Release WS (v0.51.638): bound continuation-fallback sidecar reads (#4882)
Release WS (v0.51.638): bound continuation-fallback sidecar reads (#4882)
2026-06-24 19:01:23 -07:00
nesquena-hermes 031856b3b5 Release WR (v0.51.637): widen continuation-prompt filter to all 3 variants (#4880, closes #4875)
Release WR (v0.51.637): widen continuation-prompt filter to all 3 variants (#4880, closes #4875)
2026-06-24 18:37:36 -07:00
nesquena-hermes 9d8e5d6de4 Release WQ (v0.51.636): suppress Android Chromium scroll re-anchoring during DOM rebuild (#4878, closes #4856)
Release WQ (v0.51.636): suppress Android Chromium scroll re-anchoring during DOM rebuild (#4878, closes #4856)
2026-06-24 18:20:38 -07:00
nesquena-hermes 87fb8ed9ec Release WP (v0.51.635): drop noisy parse-failed note on JSON/YAML fragments (#4858, #484)
Release WP (v0.51.635): drop noisy parse-failed note on JSON/YAML fragments (#4858, #484)
2026-06-24 15:28:30 -07:00
nesquena-hermes 7043b45f5d Release WO (v0.51.634): cache profile skill stats with mtime probe (#4847, closes #4783)
Release WO (v0.51.634): cache profile skill stats with mtime probe (#4847, closes #4783)
2026-06-24 15:11:46 -07:00
nesquena-hermes d13da425e9 Release WN (v0.51.633): collapsed tool cards preview result not call args (#4851, closes #4752)
Release WN (v0.51.633): collapsed tool cards preview result not call args (#4851, closes #4752)
2026-06-24 13:49:19 -07:00
nesquena-hermes 159d362750 Release WM (v0.51.632): new conversations use configured default model (#4867, closes #4728)
Release WM (v0.51.632): new conversations use configured default model (#4867, closes #4728)
2026-06-24 13:32:08 -07:00
nesquena-hermes b553c2d084 Release WL (v0.51.631): reconnect chronology keeps prior content ordered (#4849, closes #4811)
Release WL (v0.51.631): reconnect chronology keeps prior content ordered (#4849, closes #4811)
2026-06-24 13:02:17 -07:00
nesquena-hermes 9a8b353239 Release WK (v0.51.630): surface real git fetch errors on update failure (#4862, closes #4694)
Release WK (v0.51.630): surface real git fetch errors on update failure (#4862, closes #4694)
2026-06-24 12:34:57 -07:00
nesquena-hermes 25dc1dcd2a Release WJ (v0.51.629): macOS workspace drag-drop now lands (#4845, closes #4757)
Release WJ (v0.51.629): macOS workspace drag-drop now lands (#4845, closes #4757)
2026-06-24 12:27:36 -07:00
nesquena-hermes f61de2a178 Release WI (v0.51.628): no ghost messages after edit/retry/undo (#4772, closes #4767)
Release WI (v0.51.628): no ghost messages after edit/retry/undo (#4772, closes #4767)
2026-06-24 11:53:00 -07:00
nesquena-hermes 3917400c80 Release WH (v0.51.627): cron Task APIs survive a shadowing top-level cron package (#4855)
Release WH (v0.51.627): cron Task APIs survive a shadowing top-level cron package (#4855)
2026-06-24 10:56:25 -07:00
nesquena-hermes f22affb638 Release WG (v0.51.626): restore mobile streaming scroll-jank guard (#4857)
Release WG (v0.51.626): restore mobile streaming scroll-jank guard (#4857)
2026-06-24 10:48:15 -07:00
nesquena-hermes c70105cf35 Merge pull request #4840 from nesquena/stage/4813-cron-prefix
Release v0.51.625 — cron job model override no longer keeps the @provider: display prefix (#4813)
2026-06-24 04:13:39 -07:00
nesquena-hermes adacf2fb17 Merge pull request #4839 from nesquena/stage/4832-kanban-height
Release v0.51.624 — bound the Kanban column card-list height (#4832)
2026-06-24 03:54:37 -07:00
nesquena-hermes a287980799 Merge pull request #4838 from nesquena/fix/4702-portrait-scroll-bottom
Release v0.51.623 — iOS portrait: opening a conversation lands at the bottom (#4702)
2026-06-24 03:28:54 -07:00
nesquena-hermes dabbf06575 Merge pull request #4837 from nesquena/fix/4768-cron-graceful-degrade
Release v0.51.622 — Tasks tab no longer 500s when the cron package is absent (#4768)
2026-06-24 02:41:04 -07:00
nesquena-hermes 853c367241 Merge pull request #4835 from nesquena/stage/4241-vietnamese
Release v0.51.621 — Vietnamese UI language (#4241)
2026-06-24 02:15:14 -07:00
nesquena-hermes d2a64d7fb9 Merge pull request #4831 from nesquena/fix/4808-streaming-sessions-cache-ttl
Release v0.51.620 — fix /api/sessions CPU spike + slowness during streaming (#4808)
2026-06-24 01:23:07 -07:00
nesquena-hermes 916395108b Merge pull request #4830 from nesquena/stage/4828-reasoning-echo
Release v0.51.619 — stop final-answer text leaking into the Worklog as reasoning (#4827)
2026-06-24 01:12:23 -07:00
nesquena-hermes 27b6cd436e Merge pull request #4829 from nesquena/stage/4809-worklog-dur
Release v0.51.618 — preserve processed Worklog duration after session merge (#4809)
2026-06-24 00:54:02 -07:00
nesquena-hermes 6b52b06954 Merge pull request #4824 from nesquena/stage/4818-mobile-scroll
Release v0.51.617 — fix mobile scroll-jank to top during streaming (#4818)
2026-06-24 00:27:50 -07:00
nesquena-hermes 0dba861f74 Merge pull request #4819 from nesquena/stage/4803-recycle-harden
Release v0.51.616 — harden recycled assistant turns + scrollbar-drag detection (#4793)
2026-06-23 23:54:28 -07:00
nesquena-hermes 517fa5ed4d Merge pull request #4816 from nesquena/stage/4798-model-refresh
Release v0.51.615 — refresh stale model catalogs on session visit (#4756)
2026-06-23 23:41:43 -07:00
nesquena-hermes e182a0ec54 Merge pull request #4807 from nesquena/stage/2814-kanban-view
Release v0.51.614 — Kanban consolidated view toggle (#2814)
2026-06-23 17:08:09 -07:00
nesquena-hermes 2b00bad5ce Merge pull request #4806 from nesquena/stage/4800-stream-perf
Release v0.51.613 — eliminate O(DOM) streaming render freeze on long answers (#4800)
2026-06-23 16:20:37 -07:00
nesquena-hermes f04bd9fd8c Merge pull request #4802 from nesquena/stage/rodboev-4797-4796
Release v0.51.612 — background-tab notifications + profile default workspace (#4753, #4755)
2026-06-23 15:36:43 -07:00
nesquena-hermes 1083239eb2 Merge pull request #4801 from nesquena/stage/4788-json-view
Release v0.51.611 — configurable JSON/YAML code-block default view (#484)
2026-06-23 15:21:06 -07:00
nesquena-hermes 6f39bb6d08 Merge pull request #4795 from nesquena/stage/4656-escape-readonly
Release v0.51.610 — read-only access to escape-target symlinks in the workspace tree (#4582)
2026-06-23 13:54:20 -07:00
nesquena-hermes 5c9c42a944 Merge pull request #4794 from nesquena/stage/4781-worklog-collapse
Release v0.51.609 — collapse the live Compact Worklog mid-stream (#4781)
2026-06-23 13:42:28 -07:00
nesquena-hermes d5b2b0e5d9 Merge pull request #4792 from nesquena/stage/4478-dom-recycle
Release v0.51.608 — recycle DOM nodes during virtual-scroll re-renders (#4346)
2026-06-23 13:18:12 -07:00
nesquena-hermes f1eafdda4f Merge pull request #4789 from nesquena/stage/4748-empty-skeleton
Release v0.51.607 — empty-profile loading skeleton (#4717)
2026-06-23 12:06:37 -07:00
nesquena-hermes 46f5fb93fe Merge pull request #4787 from nesquena/stage/4741-backend-caching
Release v0.51.606 — backend hot-path caching (profile-switch perf #4662 phase 2+3, #4741)
2026-06-23 10:39:11 -07:00
nesquena-hermes d5f49392b3 Merge pull request #4786 from nesquena/gate/4782-sidebar-trim
Release v0.51.605 — trim hidden/empty rows from sidebar payload (#4775)
2026-06-23 10:01:39 -07:00
nesquena-hermes d613345887 Merge pull request #4785 from nesquena/stage/livestream-chat-scroll-4778-4777-4780
Release v0.51.604 — live-stream worklog scroll/dedup + mobile session-switch scroll (#4778, #4777, #4780)
2026-06-23 09:41:05 -07:00
nesquena-hermes 8a98626967 Merge pull request #4776 from nesquena/stage-4774-release
Release v0.51.603 — Release VJ (cache app-shell template, #4774)
2026-06-23 06:42:54 -07:00
nesquena-hermes 2d857f8b5a Merge pull request #4773 from nesquena/stage-4769-release
Release v0.51.602 — Release VI (sidebar fetches only active source bucket, #4766/#4769)
2026-06-23 05:23:22 -07:00
nesquena-hermes fa3d612a4e Merge pull request #4764 from nesquena/stage-4451-release
Release v0.51.601 — Release VH (sidebar lineage running/unread state when continuation hidden, #4451)
2026-06-22 23:21:45 -07:00
nesquena-hermes 34d8470009 Merge pull request #4763 from nesquena/stage-4474-release
Release v0.51.600 — Release VG (suppress footer jitter during virtual-scroll measurement, #4474)
2026-06-22 22:54:00 -07:00
nesquena-hermesandnesquena-hermes 0953e7ca8e test(#4740): fix two order/load-dependent full-suite flakes (test-only) (#4762)
* test(#4740): pin HERMES_HOME in readonly-scope pool test to fix order-dependent flake

test_active_request_readonly_scope_blocks_pool_env_seed failed only under
full-suite ordering (passed in isolation). Root cause, captured via an
assertion-time diagnostic: the readonly scope correctly blocks the process-env
credential fallback (branch 2 returns ''), but _has_explicit_pool_credentials
(branch 3) calls read_credential_pool, which falls back to the GLOBAL-root
auth.json via get_default_hermes_root() — and that reads os.environ['HERMES_HOME']
DIRECTLY, not the thread-local/scoped home. Under suite ordering HERMES_HOME
pointed at the shared persistent test state dir, where an earlier test had
persisted an openrouter credential_pool entry (source: env:OPENROUTER_API_KEY)
into auth.json. The global-root fallback found that leaked entry, so
_provider_has_key('openrouter') returned True and the assertion failed.

Fix: monkeypatch.setenv('HERMES_HOME', <tmp base>) so the global-root fallback
resolves to this test's own empty tmp dir with no leaked auth.json. Test-only;
no product change. Verified: passes in isolation AND the target test now passes
under the full suite (the only remaining full-suite reds were unrelated
subprocess-timeout SIGKILLs in test_tls_support under load, which pass on re-run).

* test(#4740): retry config-probe subprocesses in test_tls_support under load

The 3 TestTLSConfigFlag tests spawn a 'python -c' subprocess that imports
api.config (heavyweight) with a 10s timeout. Under the fully parallel full
suite the box can be saturated enough that the import exceeds 10s and the
runner SIGKILLs the child (returncode -9) — a pure resource-contention flake
(passes in isolation). Add _run_config_probe(): 60s timeout + retry on
TimeoutExpired/SIGKILL, returning a real non-zero exit immediately so genuine
failures still surface. Zero-flake-tolerance sweep (#4740).

---------

Co-authored-by: nesquena-hermes <agent@nesquena-hermes>
2026-06-22 22:41:42 -07:00
nesquena-hermes 45c8113f8b Merge pull request #4760 from nesquena/stage-4758-release
Release v0.51.599 — Release VF (dedupe live progress reasoning echoes, #4758)
2026-06-22 22:14:37 -07:00
nesquena-hermes 529eb51932 Merge pull request #4751 from nesquena/stage-4743-release
Release v0.51.598 — Release VE (preserve scroll across live worklog rebuilds, #4743)
2026-06-22 21:39:12 -07:00
nesquena-hermes 9570b9bce4 Merge pull request #4744 from nesquena/stage-footer-wrap
Release v0.51.597 — Release VD (message footer wraps instead of overflowing, #4724-followup)
2026-06-22 21:10:14 -07:00
nesquena-hermes 6a0a215b55 Merge pull request #4739 from nesquena/stage-4729-release
Release v0.51.596 — Release VC (throttle reasoning SSE, #4729)
2026-06-22 20:05:21 -07:00
nesquena-hermes 81f5ecc82d Merge pull request #4736 from nesquena/stage-4727-release
Release v0.51.595 — Release VB (TLS handshake no longer stalls accept loop, #4727)
2026-06-22 19:05:36 -07:00
nesquena-hermes f1c0ae47f2 Merge pull request #4735 from nesquena/stage-4671-release
Release v0.51.594 — Release VA (profile-switch loading skeletons, #4671/#4662)
2026-06-22 18:43:23 -07:00
nesquena-hermes 3d2cd8bce5 Merge pull request #4734 from nesquena/stage-4730b-release
Release v0.51.593 — Release UZ (gateway-poll listener cleanup, #4730 follow-up)
2026-06-22 16:53:22 -07:00
nesquena-hermes 9430bda43d Merge pull request #4733 from nesquena/stage-4730-release
Release v0.51.592 — Release UY (gateway-poll skip + smd re-init, #4730)
2026-06-22 16:46:18 -07:00
nesquena-hermes 3bf0e194f5 Merge pull request #4726 from nesquena/stage-4721-release
Release v0.51.591 — Release UX (stop transcript jumping to first message, #4721/#4720)
2026-06-22 14:31:35 -07:00
nesquena-hermes acae87c3cb Merge pull request #4725 from nesquena/stage-4544-release
Release v0.51.590 — Release UW (close cross-profile credential leak, #4544/#3961)
2026-06-22 14:11:18 -07:00
nesquena-hermes 80d6514c9d Merge pull request #4716 from nesquena/stage-4695-release
Release v0.51.589 — Release UV (guard state.db replay after compressed anchors, #4695)
2026-06-22 11:41:07 -07:00
nesquena-hermes 1e47baf0f0 Merge pull request #4715 from nesquena/stage-4711-release
Release v0.51.588 — Release UU (preserve Thinking detail scroll, #4711)
2026-06-22 11:25:01 -07:00