Commit Graph
100 Commits
Author SHA1 Message Date
d6e5dc302d Release Batch D: terminal resource-leak fix + fsync atomic writers (#5835, #5843) (#5848)
Phase 2 backend reliability/data-integrity batch. Each byte-verified vs PR head,
Codex SAFE, 20 own + 355 regression tests pass, disjoint files.

- #5835 (ai-ag2026): stop leaking fd + reader thread + shell on client/shell exit (#4633 family)
- #5843 (ai-ag2026): fsync atomic JSON writers (oauth/passkeys/discoverability) + thread-safe temp

Co-authored-by: t <a@b>
Co-authored-by: ai-ag2026 <ai-ag2026@users.noreply.github.com>
2026-07-09 10:54:06 -07:00
7a1a122e6e Release Batch C: hidden-tab dashboard poll + SSE write-deadline + rate-limit map bound (#5840, #5841, #5842) (#5847)
Phase 2 low-risk backend/perf batch (ai-ag2026 reliability cluster). Each byte-verified
vs PR head, Codex SAFE, 33 own + 720 regression tests pass, disjoint routes.py regions.

- #5840: skip dashboard status poll while tab hidden (perf; forced polls unaffected)
- #5841: arm write deadline on session-events invalidation SSE (stuck-client teardown)
- #5842: bound client rate-limit maps by sweeping stale keys (long-uptime memory)

Co-authored-by: t <a@b>
Co-authored-by: ai-ag2026 <ai-ag2026@users.noreply.github.com>
2026-07-09 10:38:47 -07:00
1e275d04ed Release: queue gateway-owned steer fallback (#5823) (#5845)
Steering a live gateway-owned run had no process-local agent in SESSION_AGENT_CACHE,
so it errored with "No agent cached" and dropped the typed text. Now detects the live
gateway ACTIVE_RUNS stream and queues the steer as the next turn (model/provider/profile
snapshotted first), updates the queue badge, clears the draft, shows a toast — without
cancelling the stream. Gateway sibling of the shipped #5597 fallback.

Codex SAFE + Fable SHIP-UX; byte-identical to PR head; 66 steer/busy-input tests pass;
Nathan visual-approved (desktop + mobile screenshots).

Co-authored-by: t <a@b>
Co-authored-by: rodboev <rodboev@users.noreply.github.com>
2026-07-09 10:04:21 -07:00
91606a15e0 Release Batch B: OPTIONS preflight framing + session-index bytes-parse (#5828, #5834) (#5838)
Phase 1 low-risk backend batch (on top of Batch A). Both byte-verified vs PR head,
Codex SAFE, 64 own + 749 regression tests pass, coexists with Batch A's #5833.

- #5828 (ai-ag2026): frame CORS OPTIONS preflight with Content-Length: 0 (keep-alive hang fix)
- #5834 (ai-ag2026): parse session _index.json from bytes not decoded str (all 10 sites)

Co-authored-by: t <a@b>
Co-authored-by: ai-ag2026 <ai-ag2026@users.noreply.github.com>
2026-07-09 09:19:14 -07:00
0d3ee7de9f Release Batch A: worktree cli-shadow + atomic settings.json + state.db read-only (#5832, #5829, #5833) (#5837)
Phase 1 low-risk backend reliability batch. Three independent contributor fixes
on distinct files, each byte-identical to its PR head, Codex SAFE, 691+16 tests pass.

- #5832 (silent-reader-cn): importlib-load agent cli.py by absolute path so a
  shadowing cli/ namespace package can't brick worktree creation
- #5829 (ai-ag2026): atomic settings.json writes (temp+fsync+os.replace, mode-preserving)
- #5833 (ai-ag2026): open the remaining 8 state.db read projections read-only

Co-authored-by: t <a@b>
Co-authored-by: silent-reader-cn <silent-reader-cn@users.noreply.github.com>
Co-authored-by: ai-ag2026 <ai-ag2026@users.noreply.github.com>
2026-07-09 09:04:59 -07:00
nesquena-hermes 819949fd8c Merge pull request #5825 from nesquena/release/stage-5789
Release: gateway SSE terminal idle-timeout, honor Stop (#5789)
2026-07-09 01:10:12 -07:00
nesquena-hermes 531525269e Merge pull request #5824 from nesquena/release/stage-5557
Release: centralize WebUI static asset resolution (#5557)
2026-07-08 23:37:35 -07:00
nesquena-hermes 66d3b6476d Merge pull request #5822 from nesquena/release/stage-5803
Release: session-load latency perf (#5803)
2026-07-08 23:10:54 -07:00
nesquena-hermes 216eb77ade Merge pull request #5821 from nesquena/release/stage-5800
Release: document lock-free GIL contract for STREAM_* buffers (#5800)
2026-07-08 22:55:01 -07:00
nesquena-hermes 0c49ed832f Merge pull request #5820 from nesquena/release/stage-5768
Release: localize process wakeup label (#5768)
2026-07-08 21:40:10 -07:00
nesquena-hermes d4e80b4549 Merge pull request #5819 from nesquena/release/stage-5798
Release: single-flight remote gateway health probe (#5798)
2026-07-08 20:58:55 -07:00
nesquena-hermes b3496c3cde Merge pull request #5818 from nesquena/release/stage-5799
Release: cache run-journal next-seq per path (#5799)
2026-07-08 20:53:25 -07:00
nesquena-hermes 4781f0f594 Merge pull request #5817 from nesquena/release/stage-5801
Release: clearInterval (not clearTimeout) for login connectivity retry (#5801)
2026-07-08 20:48:32 -07:00
nesquena-hermes a61d7bd3a6 Merge pull request #5815 from nesquena/release/stage-5766
Release: render background wakeups as status rows (#5766)
2026-07-08 20:26:12 -07:00
nesquena-hermes 432f596cfb Merge pull request #5814 from nesquena/release/stage-5762
Release: derive service tier from agent fast-mode metadata (#5762)
2026-07-08 20:21:11 -07:00
nesquena-hermes 4111e097c8 Merge pull request #5813 from nesquena/release/stage-5773
Release: keep live reasoning on one renderer path (#5773)
2026-07-08 20:16:18 -07:00
nesquena-hermes 45575f588a Merge pull request #5812 from nesquena/release/stage-5770
Release: contain streaming code block layout (#5770)
2026-07-08 20:12:05 -07:00
nesquena-hermes 862a121b24 Merge pull request #5811 from nesquena/release/stage-5721
Release: workspace switcher screen reader accessibility (#5721)
2026-07-08 19:46:24 -07:00
nesquena-hermes d6e6e91de4 Merge pull request #5810 from nesquena/release/stage-5729
Release: keep child streams from moving parent sidebar bucket (#5729)
2026-07-08 19:40:04 -07:00
nesquena-hermes 522e90b5b8 Merge pull request #5809 from nesquena/release/stage-5786
Release: handle terminal output EventSource transport errors (#5786)
2026-07-08 19:35:21 -07:00
nesquena-hermes 9765f0e45b Merge pull request #5808 from nesquena/release/stage-5761
Release: refresh OpenCode Go static catalog (#5761)
2026-07-08 18:28:43 -07:00
nesquena-hermes f8f60d5fdd Merge pull request #5807 from nesquena/release/stage-5782
Release: back off bg drain loop instead of silent tight-spin (#5782)
2026-07-08 18:22:36 -07:00
nesquena-hermes 8e00277ce5 Merge pull request #5805 from nesquena/release/stage-5785
Release: frame passkey-login 200 with Content-Length (#5785)
2026-07-08 18:10:07 -07:00
nesquena-hermes 9dacbe60de Merge pull request #5804 from nesquena/release/stage-5787
Release: pair metering begin_session with end_session teardown (#5787)
2026-07-08 17:55:24 -07:00
nesquena-hermes 4fc637d8d0 Merge pull request #5790 from nesquena/feat/update-channels
Release channels: stable / experimental self-updater
2026-07-08 17:12:50 -07:00
nesquena-hermes 3730a4a551 Merge pull request #5796 from nesquena/release/stage-5784
Release: evict run-journal writer-lock cache on journal delete (#5784)
2026-07-08 14:23:09 -07:00
nesquena-hermes 6ab95bffa4 Merge pull request #5794 from nesquena/release/stage-5783
Release: serialize daemon-thread start under a lifecycle lock (#5783)
2026-07-08 14:03:05 -07:00
nesquena-hermes 460f3eb47d Merge pull request #5793 from nesquena/release/stage-5781
Release: sweep completion-dedup map by delivery lifecycle (#5781)
2026-07-08 13:47:35 -07:00
nesquena-hermes c008e4443a Merge pull request #5791 from nesquena/release/stage-5780
Release: open state.db read-only for lineage reads + watcher (#5780)
2026-07-08 13:22:57 -07:00
nesquena-hermes 16272dd646 Merge pull request #5777 from nesquena/release/stage-5772
Release: scope MCP list config reads to active profile (#5772)
2026-07-08 09:23:22 -07:00
nesquena-hermes 07b9708cde Merge pull request #5756 from nesquena/release/stage-5751
Release: non-virtualized transcript scroll jump-back (#5751)
2026-07-07 14:27:32 -07:00
nesquena-hermes 923cadcb80 Merge pull request #5754 from nesquena/release/stage-5742
Release: desktop stale-snapshot scroll compensation (#5742)
2026-07-07 13:19:28 -07:00
nesquena-hermes 57aa5be2ed Merge pull request #5753 from nesquena/release/stage-5463-v2
Release: mirror WebUI usage counters to state.db (#5463)
2026-07-07 13:12:06 -07:00
nesquena-hermes 1b58e4df47 Merge pull request #5750 from nesquena/release/stage-5744
Release: clear dead steer busy state (#5723)
2026-07-07 09:45:35 -07:00
nesquena-hermes c3ff9f41c7 Merge pull request #5741 from nesquena/release/stage-5738
Release: keep the composer above iPad keyboards (#5701)
2026-07-06 22:20:06 -07:00
nesquena-hermes 021bc1280f Merge pull request #5740 from nesquena/release/stage-5737
Release: drop empty tool_calls arrays before API send (#5737)
2026-07-06 21:56:50 -07:00
nesquena-hermes ad7d0abf44 Merge pull request #5736 from nesquena/release/stage-tlsflake
test(tls): drain full stdout for the TLS-fallback assertion (flake fix)
2026-07-06 21:14:27 -07:00
nesquena-hermes b0c79fd4d3 Merge pull request #5735 from nesquena/release/stage-5567-resolver
Release: #5567 model-picker provider resolution fix
2026-07-06 20:56:50 -07:00
nesquena-hermes 1d8208026c Merge pull request #5728 from nesquena/release/stage-5419
Release: auto-switch profiles for cross-profile session links (#5419)
2026-07-06 19:39:22 -07:00
nesquena-hermes 243c0f698d Merge pull request #5725 from nesquena/release/stage-5692
Release: Windows git subprocess console-window fix (#5692)
2026-07-06 19:25:03 -07:00
nesquena-hermes 8fee7da3ee Merge pull request #5724 from nesquena/release/stage-5717
Release: iteration-limit graceful summary (#5717)
2026-07-06 18:48:36 -07:00
nesquena-hermes c4a3d4f816 Merge pull request #5716 from nesquena/release/stage-5664
Release: preserve workspace file-tree scroll position (#5664)
2026-07-06 16:29:05 -07:00
nesquena-hermes 5ecd248e92 Merge pull request #5708 from nesquena/release/stage-5688b
Release: self-update .git/index.lock recovery (#5688)
2026-07-06 14:52:25 -07:00
nesquena-hermes 8d5d28903c Merge pull request #5546: add Czech (cs) locale support
Complete Czech locale (1642/1642 key parity, all function values, login screen, test guard). Rebased + translation-quality fixes by maintainer; original author @ostravajih. Gate: full suite + Codex SAFE TO SHIP.
2026-07-06 14:42:12 -07:00
nesquena-hermes bb0439dcfa Merge pull request #5707 from nesquena/fix/last-two-flakes
Fix the last 2 chronic local full-suite test-isolation flakes (test-only)
2026-07-06 14:24:13 -07:00
nesquena-hermes ade6de5294 Merge pull request #5704 from nesquena/fix/5696-profiles-ttl
fix(#5696): revert profiles cache TTL to 4s (stale profile rows)
2026-07-06 13:44:17 -07:00
nesquena-hermes 116d81d3c8 Merge pull request #5703 from nesquena/release/stage-5696
Release: session-load latency fix (#5696)
2026-07-06 13:36:48 -07:00
nesquena-hermes e785264e4e Merge pull request #5702 from nesquena/release/stage-flakefix
Fix chronic full-suite test-isolation flakes (hermes_cli __path__ poison, 8 tests)
2026-07-06 12:57:23 -07:00
nesquena-hermes 40ac0c6be2 Merge pull request #5697 from nesquena/release/stage-5674
Release: stabilize sidebar lineage grouping across live refreshes (#5674)
2026-07-06 11:25:36 -07:00
nesquena-hermes 93b7ed90bf Merge pull request #5695 from nesquena/release/stage-5672
Release: reserve real off-screen height for user rows (#5672)
2026-07-06 11:13:56 -07:00
nesquena-hermes c93672abee Merge pull request #5694 from nesquena/release/stage-5666
Release: refuse stale-anchor scroll restore during streaming, Android (#5666)
2026-07-06 10:56:52 -07:00
nesquena-hermes cfc0ffe102 Merge pull request #5693 from nesquena/release/stage-5681
Release: restore unpinned reader after mid-stream scroll clamp (#5681)
2026-07-06 10:45:24 -07:00
nesquena-hermes 501d7184ff Merge pull request #5691 from nesquena/release/stage-5685
Release: stop pinned tail-follower mid-stream scroll jitter (#5685)
2026-07-06 10:33:39 -07:00
nesquena-hermes 426f12ce51 Merge pull request #5690 from nesquena/release/stage-5673
Release: proxy-auth PWA caveat docs (#5673)
2026-07-06 10:13:02 -07:00
nesquena-hermes 26a829c952 docs: weekly contributor tally refresh (20260706) (#5689) 2026-07-06 09:29:07 -07:00
nesquena-hermes f80e641a9a Merge pull request #5670 from nesquena/release/stage-5668
Release: shared layout-assertion test helpers (#5668)
2026-07-05 23:19:11 -07:00
nesquena-hermes 79d3b5996d Merge pull request #5669 from nesquena/release/stage-visible-2026-07-06
Release: visible-UI batch — mobile nav (#5605), mermaid mobile (#5560), steer upload scope (#5630), header font-scale (#5633), three-panel floor (#5594)
2026-07-05 22:53:31 -07:00
nesquena-hermes 7721e530fb fix(#5657): preserve workspace file-tree scroll position across re-render
renderFileTree() clears its scroll container with box.innerHTML='' and rebuilds
every row. Detaching the rows collapses scrollHeight, so the browser clamps
scrollTop to 0 — every folder expand/collapse, breadcrumb nav, refresh, and
hidden-files toggle that re-runs the renderer teleported the reader to the top of
a long tree, losing their place (the dominant interaction in the panel).

Fix: capture box.scrollTop before the innerHTML='' wipe and restore it after the
normal render tail (after _renderTreeItems repaints and the container is tall
again). A plain scrollTop restore is sufficient and correct here — expand/collapse
insert or remove rows BELOW the clicked disclosure, so the clicked row keeps its
offset from the top; no getBoundingClientRect anchor delta is needed (that's only
for the prepend-above case in the chat messages list). The reporter's data-path
anchor sketch is deliberately NOT used: _renderTreeItems rows carry no data-path,
so that selector would match nothing.

The two early-return paths (no-workspace hides the box; empty-dir has nothing to
scroll) are left untouched — they legitimately reset. The restore guards only the
normal render tail. loadDir's two-render sequence (initial + post-expanded-dirs
prefetch) is handled correctly: each renderFileTree() call independently captures
then restores its own pre-wipe scrollTop across the await.

Test: tests/test_issue5657_filetree_scroll_preserve.py — static guards that the
capture precedes the wipe and the restore follows _renderTreeItems (per the
maintainer test plan; drops the getBoundingClientRect anchor assertion since the
fix deliberately doesn't use it). Fail-without-fix verified; 355 workspace-tree
regression tests green.

Closes #5657.
2026-07-06 04:36:13 +00:00
nesquena-hermes 3403870ef9 Merge pull request #5663 from nesquena/release/stage-phase1-2026-07-06
Release: Phase-1 batch — table whitespace (#5644), empty error-hint guard (#5653), Playwright CI (#5661)
2026-07-05 21:17:40 -07:00
nesquena-hermes 90102892e0 Merge pull request #5662 from nesquena/review-5655
Release: compression-recovery card on reloaded sessions (#5655)
2026-07-05 20:08:56 -07:00
nesquena-hermesandnesquena-hermes 9738ebb614 fix(tests): sync on subscriber count in multitab SSE test (#5628) (#5660)
test_same_stream_in_two_tabs_receives_identical_token_sequence started both
SSE-handler threads then immediately put_nowait'd the tokens + stream_end
without waiting for both threads to subscribe. StreamChannel.put_nowait()
buffers events only while there are zero subscribers and clears that buffer
the moment the first subscriber attaches and broadcasts live — so producing
events in the window after tab A subscribes but before tab B does orphans
tab B (subscribes to a cleared buffer, never sees stream_end, hangs ->
thread.join timeout -> 'every tab should finish' fails). ~20% timing flake
on slow CI runners (3.11 shard-4).

Wait until len(stream._subscribers) == len(handlers) (bounded 5s) before
producing events, so delivery is deterministic regardless of thread-start
timing. Test-only; no production change (buffer-then-broadcast is correct for
the real reconnect case).

Verified: original flakes 2/30 under CPU contention; fixed 30/30.

Fixes #5628

Co-authored-by: nesquena-hermes <nesquena-hermes@users.noreply.github.com>
2026-07-05 19:52:16 -07:00
nesquena-hermes 7990b7412a Merge pull request #5659 from nesquena/review-5645
Release: reload config cache on profile switch (#5645, fixes #5619)
2026-07-05 19:37:58 -07:00
nesquena-hermes d5bd28b49a Merge pull request #5656 from nesquena/review-5555
Release: fork read-only cron sessions into a new writable chat (#5555)
2026-07-05 19:07:04 -07:00
nesquena-hermes 89b6ab5c34 Merge pull request #5654 from nesquena/review-5554
Release: redesign cron preset schedule builder — sentence UI (#5554)
2026-07-05 18:40:07 -07:00
nesquena-hermes 8cdb4ea27b Merge pull request #5652 from nesquena/review-5506
Release: restore prose-level fade for Transparent Stream (#5506)
2026-07-05 17:35:47 -07:00
nesquena-hermes de1ff837e3 Merge pull request #5650 from nesquena/review-5502
Release: reuse the rich model picker in Preferences (#5502)
2026-07-05 16:26:14 -07:00
nesquena-hermes 2f3e42dc64 Merge pull request #5648 from nesquena/review-5548
Release: copyable workspace relative paths (#5548)
2026-07-05 15:31:01 -07:00
nesquena-hermes 6d0ff92fa7 Merge pull request #5647 from nesquena/release/stage-tiny
Release: sidebar auto-refresh (#5632) + composer-divider fix (#5499)
2026-07-05 14:48:29 -07:00
nesquena-hermes 1870f77839 Merge pull request #5646 from nesquena/ship-5538
Release: compression-recovery action — focused continuation on compression_exhausted (#5538)
2026-07-05 14:19:03 -07:00
nesquena-hermes 9b18ea9f99 Merge pull request #5643 from nesquena/release/stage-i18n2
Release: complete 664 UI translations across 8 locales (#5535)
2026-07-05 10:48:54 -07:00
nesquena-hermes bb0d33d343 Merge pull request #5642 from nesquena/release/stage-mobile2
Release: fix live mobile scroll jump-back regression (#5638, #5635)
2026-07-05 10:36:12 -07:00
nesquena-hermes 866a25b253 Merge pull request #5640 from nesquena/release/stage-lr1
Release: low-risk docs+tests batch (#5536, #5549, #5537, #5589)
2026-07-05 10:24:13 -07:00
nesquena-hermes 8dc47b83c0 Merge pull request #5629 from nesquena/release/stage-5626
release #5626: ignore inactive compacted state-db rows in context replay
2026-07-05 02:18:28 -07:00
nesquena-hermes 35464be634 Merge pull request #5627 from nesquena/fix/5588-auth-cache-isolation
fix(#5588): reset memoized password-hash cache around every test (isolation flake)
2026-07-05 01:53:12 -07:00
nesquena-hermes c922f179f7 Merge pull request #5625 from nesquena/release/stage-5582
release #5582: keep fork children out of compression stitch
2026-07-05 01:20:03 -07:00
nesquena-hermes f1f4514799 Merge pull request #5623 from nesquena/release/stage-5459
release #5459: include attachments in steer submissions
2026-07-05 00:24:21 -07:00
nesquena-hermes abdf6c7ae3 Merge pull request #5620 from nesquena/fix/mobile-sidebar-header-icon-align
fix(ui): align mobile sidebar close/new-conversation header icons
2026-07-04 23:49:05 -07:00
nesquena-hermes 58e857ec95 Merge pull request #5617 from nesquena/release/stage-5602
release #5602: iOS PWA session-switch instant sidebar close + race guard
2026-07-04 22:46:39 -07:00
nesquena-hermes b0340a7b3e Merge pull request #5616 from nesquena/release/stage-5611
release #5611: opencode-go uses curated static model list (no probe 404s)
2026-07-04 22:18:12 -07:00
nesquena-hermes 0bbf7c3d37 Merge pull request #5615 from nesquena/release/stage-5505
release #5505: improve session-list retry feedback
2026-07-04 22:01:28 -07:00
nesquena-hermes bbcd6d19cd Merge pull request #5613 from nesquena/release/stage-5539
release #5539: increase approval card height cap on mobile
2026-07-04 21:25:57 -07:00
nesquena-hermes 035e84ae00 Merge pull request #5612 from nesquena/release/stage-5534
release #5534: CORS preflight echoes only same-origin or allowlisted origins
2026-07-04 19:48:27 -07:00
nesquena-hermes 49a9560c45 Merge pull request #5610 from nesquena/release/stage-5584
release #5584: skip clear-sentinel backups during recovery
2026-07-04 19:15:06 -07:00
nesquena-hermes 03b64ebeb1 Merge pull request #5609 from nesquena/release/stage-5573
release #5573: guard viewport anchor key against lone surrogates
2026-07-04 19:09:34 -07:00
nesquena-hermes daf5cc1bb0 Merge pull request #5607 from nesquena/release/stage-5593
release #5593: keep active CLI sessions visible before final output
2026-07-04 18:33:40 -07:00
nesquena-hermes 73f77cb42a Merge pull request #5606 from nesquena/release/stage-5592
release #5592: preserve completed assistant replies during settle
2026-07-04 18:19:31 -07:00
nesquena-hermes 5eb081d30e Merge pull request #5603 from nesquena/release/stage-5565
release #5565: distinct Mermaid fullscreen toolbar icon
2026-07-04 18:10:58 -07:00
nesquena-hermes 1bbecb9f2c Merge pull request #5600 from nesquena/release/stage-5559
release #5559: classify credential-pool exhaustion with an actionable hint
2026-07-04 17:39:14 -07:00
nesquena-hermes 94e5778feb Merge pull request #5599 from nesquena/release/stage-5579-r2
release #5578: stop login next= param nesting / URL explosion
2026-07-04 17:27:27 -07:00
nesquena-hermes 1f68c8cfa5 Merge pull request #5596 from nesquena/release/stage-5577
release #5567: context-local HERMES_HOME override for background workers
2026-07-04 16:55:18 -07:00
nesquena-hermes 73643f21b6 Merge pull request #5595 from nesquena/release/stage-5564
release #5564: mint stable per-message ids for large-session fork alignment
2026-07-04 16:28:22 -07:00
nesquena-hermes b504fe3057 Merge pull request #5591 from nesquena/release/stage-5562
release #5562: refresh sidebar recency after missed session events
2026-07-04 15:38:58 -07:00
nesquena-hermes 2cc2eb2b3c Merge pull request #5590 from nesquena/release/stage-5558
release #5558: keep Transparent Stream final replies visible after settle
2026-07-04 15:23:21 -07:00
nesquena-hermes f09d9bd446 Merge pull request #5586 from nesquena/release/stage-5541-r3
release #5541: iOS PWA streaming freeze + SSE reconnect reliability
2026-07-04 15:06:02 -07:00
nesquena-hermes 56a133cc72 Merge pull request #5581 from nesquena/release/stage-5543-r3
release #5543: fire-and-forget memory commit + drain-safe managed stop
2026-07-04 14:44:22 -07:00
nesquena-hermes 04717ad305 Merge pull request #5580 from nesquena/release/stage-5544-r3
release #5544: re-pin auto-scroll at true bottom after scroll-to-bottom
2026-07-04 14:39:02 -07:00
nesquena-hermes 627c6a173c Merge pull request #5576 from nesquena/release/stage-5563-r2
release #5563: align forked context to display for large/compacted sessions
2026-07-04 14:15:49 -07:00
nesquena-hermes 4dfeb78bd0 Merge pull request #5574 from nesquena/release/stage-5532b
Release — clear-conversation P0 data-loss (#5532, #5556, #5553)
2026-07-04 13:18:48 -07:00
nesquena-hermes 4154f949fb Merge pull request #5569 from nesquena/fix/5542-debrittle-rfc-anchors
fix(#5542): de-brittle SSE-contract RFC anchors — cite by symbol, not line number
2026-07-04 12:54:58 -07:00
nesquena-hermes 4c89fcfaab Merge pull request #5566 from nesquena/release/stage-5547
Release — Transparent Stream running-tool status (#5547, #5523)
2026-07-04 12:25:01 -07:00