Commit graph

4183 commits

Author SHA1 Message Date
nesquena-hermes
0e7cf6c388 Merge #4032 2026-06-12 07:07:33 +00:00
nesquena-hermes
fd28024cc4 Merge #4021 2026-06-12 07:07:33 +00:00
nesquena-hermes
95c84204d8
Merge pull request #4034 from nesquena/release/stage-md2
Release v0.51.366 — Release ME (assistant turn anchor source normalizer Slice 2, #3980)
2026-06-11 23:56:04 -07:00
nesquena-hermes
39e9790597 Release v0.51.366 — Release ME (assistant turn anchor source normalizer Slice 2, #3980) 2026-06-12 06:45:02 +00:00
Mohamed Habib
7359f85c64 fix: align transparent thinking event header 2026-06-12 09:05:22 +03:00
ai-ag2026
de3b756558 fix: merge missing webui lineage display rows 2026-06-12 08:00:11 +02:00
Frank Song
d701828d72 fix(anchor): harden normalizer identity handling 2026-06-12 13:57:54 +08:00
Frank Song
2abff38ee1 fix(anchor): harden normalizer payload shaping 2026-06-12 13:57:54 +08:00
Frank Song
36123628d5 feat(anchor): add assistant turn source normalizer 2026-06-12 13:57:54 +08:00
hinotoi-agent
4dca506858 Bind profile cookie to auth session 2026-06-12 10:52:56 +08:00
Frank Song
02e72163a6 Fix tool-limit terminal failure annotation 2026-06-12 10:25:18 +08:00
Mohamed Habib
306a148fbf merge: sync transparent stream branch with master 2026-06-12 05:09:01 +03:00
Frank Song
136568fe81 fix(streaming): tighten tool limit terminal guards 2026-06-12 10:03:31 +08:00
Frank Song
08ba5a6676 Fix tool-limit terminal detection 2026-06-12 10:03:31 +08:00
Frank Song
ec23dac922 Handle tool limit terminal state 2026-06-12 10:03:31 +08:00
Mohamed Habib
fcfaa4686a feat: add transparent stream activity display 2026-06-12 04:45:41 +03:00
Rod Boev
891f392922 test(#3895): drop stale import after review cleanup 2026-06-11 21:17:50 -04:00
Rod Boev
819346304c test(#3895): replace brittle wiring assertions 2026-06-11 21:13:11 -04:00
Rod Boev
6e50e94649 test(#3895): cover credential self-heal runtime resolution 2026-06-11 21:10:48 -04:00
Rod Boev
6e133a4f44 fix(#3895): carry target model through credential self-heal 2026-06-11 21:08:24 -04:00
Rod Boev
e62a31e463 fix(#3895): preserve configured base-url fallback through self-heal 2026-06-11 21:06:16 -04:00
Rod Boev
1753cc0c60 fix(commands): hide CLI-only slash collisions from autocomplete (#3969) 2026-06-11 20:58:51 -04:00
Rod Boev
a692314acf fix(#3895): honor runtime target model and base_url in WebUI streaming 2026-06-11 20:56:22 -04:00
Rod Boev
220d255d5c fix(#4005): preserve expanded lineage segments during streaming refresh 2026-06-11 20:55:35 -04:00
Rod Boev
9d1e3910ee Scope shutdown i18n assertions to the relevant DOM 2026-06-11 20:45:54 -04:00
Rod Boev
f6ed8f7302 Make browser TTS watchdog checks brace-aware 2026-06-11 20:42:51 -04:00
Rod Boev
a8137ff21c Guard watchdog recovery from duplicate voice-mode resume 2026-06-11 19:24:57 -04:00
Rod Boev
22f9e5c973 Keep link-label rendering compatible with the autolink source guard 2026-06-11 19:08:28 -04:00
Rod Boev
4ba4f77343 Keep the Edge-branch guard test aligned with branch scope 2026-06-11 19:04:26 -04:00
Rod Boev
12e13d4680 Initialize markdown link-label sanitizing before use 2026-06-11 19:04:26 -04:00
nesquena-hermes
c275db0970
Merge pull request #4019 from nesquena/stage-md-fixes
Release MD — v0.51.365 — lineage-segment open + reasoning chip fixes (#4009, #4015)
2026-06-11 16:01:18 -07:00
Rod Boev
09f19d1233 Prevent duplicate voice-mode rearm after watchdog recovery 2026-06-11 18:58:12 -04:00
Rod Boev
be75d41857 Keep the renderer fixture import lint-clean 2026-06-11 18:58:12 -04:00
nesquena-hermes
fbd7f82478 docs(changelog): stamp #4009 + #4015 fix batch as v0.51.365 (Release MD) 2026-06-11 22:55:04 +00:00
Rod Boev
0ff3860186 fix(#4002): split shutdown i18n text from static code spans 2026-06-11 18:53:39 -04:00
Rod Boev
e3765a389c fix(#4001): preserve inline code inside markdown link labels 2026-06-11 18:50:54 -04:00
Rod Boev
f4a6544121 fix(#3983): re-arm browser voice mode when speechSynthesis drops onend 2026-06-11 18:48:58 -04:00
nesquena-hermes
ff3de220d8 Merge #4015 — keep reasoning effort status on the active session model (#3958) 2026-06-11 22:48:36 +00:00
nesquena-hermes
8a849a1bb8 Merge #4009 — open clicked lineage segments without sid rewrite (#4003) 2026-06-11 22:48:36 +00:00
Rod Boev
a82eb1622f fix(#3958): keep reasoning effort status on the active session model 2026-06-11 18:46:17 -04:00
nesquena-hermes
b2482913e9
Merge pull request #4014 from nesquena/stage-3993
Release MC — v0.51.364 — self-heal stuck session loads (#3993)
2026-06-11 15:45:43 -07:00
nesquena-hermes
cb93a8014e docs(changelog): stamp #3993 session-load self-heal as v0.51.364 (Release MC) 2026-06-11 22:43:07 +00:00
nesquena-hermes
952ac146e0 test(#3993): re-anchor _load_session_error_block past the new stale-load guard
The stale-load guard (#3993 Codex race fix) adds an early  at the top
of the loadSession catch block; the test helper anchored  on the first
 after the catch, which now truncated at the guard. Anchor the body
extraction past the guard (from ) so it captures the 404/non-404
self-heal body as before. Behavior unchanged.
2026-06-11 22:37:09 +00:00
nesquena-hermes
8e7d3b086d fix(#3993): add stale-load guard before self-heal so a superseded boot load can't wipe a healthy session (Codex CORE race)
currentSid is snapshotted before the awaited /api/session fetch; if the user
clicks a healthy session while a boot-time restore is in flight and that boot
load then fails non-404, _clearStuckSessionOnBoot(sid, null) would wipe the
healthy session's localStorage/URL. Guard the catch block on
_loadingSessionId !== sid (a newer load superseded this one) — re-arm the active
stream and bail before any self-heal/DOM mutation. Protects both the non-404 and
404 inline self-heal paths. + regression test.
2026-06-11 22:27:01 +00:00
nesquena-hermes
7e341a0d70 test(#3993): cover _clearStuckSessionOnBoot self-heal guards (clears on boot-failure, preserves a live session) 2026-06-11 22:20:57 +00:00
nesquena-hermes
63c62194a1 Merge #3993 — self-heal stuck session loads on non-404 failures 2026-06-11 22:19:14 +00:00
nesquena-hermes
8669b6b8b5
Merge pull request #4013 from nesquena/stage-3994
Release MB — v0.51.363 — materialize CLI sessions on rename/move/update (#3994, fixes #3985)
2026-06-11 14:54:06 -07:00
nesquena-hermes
1e61aea10e docs(changelog): stamp #3994 materialize-CLI-sessions fix as v0.51.363 (Release MB) 2026-06-11 21:51:29 +00:00
nesquena-hermes
7a5c3bc374 fix(#3994): scope happy-path guard to read_only flag; complete #1436 mock stub
Refined the Codex-CORE fix: the happy-path (already-stored session) guard rejects
only an explicit read_only flag — a stored messaging session already owns its
sidecar, so the messaging-fork risk is specific to the materialize FALLBACK
(which creates a sidecar) where the _is_messaging_session_record check stays.
Also completed test_issue1436's _stub_session MagicMock (read_only=False,
_loaded_metadata_only=False) — bare MagicMock auto-attrs were truthy, tripping
the new read-only guard + _ensure_full_session_before_mutation reload.
2026-06-11 21:45:36 +00:00
nesquena-hermes
6f41fe7490 fix(#3994): reject read-only + messaging sessions on BOTH happy-path and materialize fallback (Codex CORE x2)
Codex caught two data-integrity gaps in the contributor's guard: (1) the
get_session() happy path returned a stored session without checking read_only/
messaging, so an already-imported read-only session could be mutated via
rename/update/move; (2) the fallback only checked cli_meta.read_only, but agent
rows normalize messaging sources WITHOUT setting read_only — materializing a
writable sidecar for a state.db-owned messaging session forks its title/state.
Now reject getattr(s,'read_only') OR _is_messaging_session_record on the happy
path, and cli_meta.read_only OR _is_messaging_session_record(cli_meta) in the
fallback. Replaced the messaging-stub test with 3 regression tests (stored
read-only, stored messaging, messaging cli_meta without read_only flag).
2026-06-11 21:41:51 +00:00