nesquena-hermes
1cb16f6037
Merge PR #6895 into stage/0924-h
2026-09-24 13:25:15 +00:00
nesquena-hermes
3f76b8a3a9
docs(changelog): #6565 lineage reset/tool children stay separate
2026-09-24 13:04:39 +00:00
nesquena-hermes
30f12dc526
Merge PR #6565 into stage/0924-g
2026-09-24 13:04:21 +00:00
nesquena-hermes
5a2105684d
docs(changelog): stamp #7301 under [Unreleased]
2026-09-24 11:27:12 +00:00
nesquena-hermes
c2c8ef5fce
Merge PR #7301 from laitekin/fix/7299-hidden-session-poll
2026-09-24 11:26:41 +00:00
nesquena-hermes
cb7852cdc1
docs(changelog): stamp #7754 under [Unreleased]
2026-09-24 10:55:11 +00:00
nesquena-hermes
0adc1f6e4f
Merge PR #7754 from starship-s/fix/image-turn-display-context
2026-09-24 10:54:56 +00:00
nesquena-hermes
315ea7d3a8
fix(models): let a marked image row consume its replay slot
...
The row-id fast path for a marked native-image mirror row continued
without advancing state_replay_idx, unlike the ordinary and multimodal-
mirror replay paths. The edited checkpoint then never read as consumed,
so a rerun reply that exists only in state.db was truncated. Master (no
marker branch) keeps that reply.
Advance the replay index when the resolved sidecar row is the next
expected visible row, the same guard the mirror branch uses. Adds a
regression that fails without the fix: sidecar [u1,a1,img#42,a_img,uE],
state [.., marked img#42, a_img, u_old, a_old, uE, aE], watermark 900,
boundary 861 -> aE survives, u_old/a_old stay out.
Found by the release-manager advisor gate on #7754 .
2026-09-24 10:47:47 +00:00
nesquena-hermes
026bad541d
docs(changelog): stamp #7720 under [Unreleased]
2026-09-24 09:58:07 +00:00
nesquena-hermes
19908b5db4
Merge PR #7720 : scope MCP status, inventory and /reload-mcp to the request profile
2026-09-24 09:58:07 +00:00
nesquena-hermes
d261041a9a
test(mcp): import the fake server class under mcp 1.x and 2.x
...
mcp 2.x removed mcp.server.fastmcp (the high-level server is now
mcp.server.MCPServer), so the fake stdio server in this test failed to
start on hosts with mcp 2.x installed and four tests failed there. CI pins
mcp<2, so this only affected local runs. Try the 1.x import first and fall
back to the 2.x name.
2026-09-24 09:57:52 +00:00
nesquena-hermes
3f29a5be08
docs(changelog): stamp #6746 under [Unreleased]
2026-09-24 08:05:40 +00:00
nesquena-hermes
10faa69155
Merge PR #6746 from happy5318/fix/mobile-enter-newline
2026-09-24 08:05:12 +00:00
nesquena-hermes
60f61f9038
docs(changelog): stamp #7798 under [Unreleased]
2026-09-24 06:57:37 +00:00
nesquena-hermes
18cf0fa0ba
Merge PR #7798 from webtecnica/fix/7548-cli-archived-sessions-projection
2026-09-24 06:57:17 +00:00
nesquena-hermes and webtecnica
5ecf92382a
test( #7548 ): mark the monkeypatch-target import as intentional (ruff F401)
...
Co-authored-by: webtecnica <webtecnica@users.noreply.github.com >
2026-09-24 06:56:57 +00:00
nesquena-hermes and webtecnica
afcb1bf420
test( #7548 ): expect archived=None for a missing sidecar
...
The sidecar default is now 'no opinion' (None) so the projection can fall
back to state.db's archived flag. Update the #4842 perf test's missing-
sidecar expectation to match.
Co-authored-by: webtecnica <webtecnica@users.noreply.github.com >
2026-09-24 06:45:50 +00:00
nesquena-hermes
3116280dce
docs(changelog): stamp #7628 , #7493 , #6433 under [Unreleased]
2026-09-24 03:38:33 +00:00
nesquena-hermes
a1b3c068f7
docs: document HERMES_WEBUI_SETTINGS_FILE ( #6433 ) incl. restart-to-change note
2026-09-24 03:15:28 +00:00
nesquena-hermes
16acb63a6d
fix(notifications): auto-request 'default' permission at most once per page
...
A pending approval/clarify prompt re-surfaces on every 1.5s poll tick, and
with permission still 'default' (second browser/device) each tick issued a
non-gesture Notification.requestPermission() and toasted 'notifications
denied'. Auto requests are now made once per page; the explicit Send-test
path still always asks. Release-gate hardening on top of #7493 .
2026-09-24 03:15:09 +00:00
nesquena-hermes
ea5f7730be
Merge PR #6433 into stage/0924-a
2026-09-24 03:15:02 +00:00
nesquena-hermes
1c4072228e
Merge PR #7493 into stage/0924-a
2026-09-24 03:15:02 +00:00
nesquena-hermes
0b8d6d6fd8
Merge PR #7628 into stage/0924-a
...
# Conflicts:
# static/messages.js
2026-09-24 03:15:02 +00:00
nesquena-hermes
57eb9fc1f4
Merge master into stage/7765-subagent-project
...
# Conflicts:
# CHANGELOG.md
2026-09-23 21:56:19 +00:00
nesquena-hermes
fab2502928
Merge master into stage/7779-cron-provider-pin
...
# Conflicts:
# CHANGELOG.md
2026-09-23 21:44:20 +00:00
nesquena-hermes
a78680a341
Merge master (exp-v0.52.362) into stage/7765-subagent-project
...
# Conflicts:
# CHANGELOG.md
2026-09-23 21:38:12 +00:00
nesquena-hermes
8692e0d325
Merge master (exp-v0.52.362) into stage/7779-cron-provider-pin
...
# Conflicts:
# CHANGELOG.md
2026-09-23 21:36:55 +00:00
nesquena-hermes
3b5cd93309
Merge master (exp-v0.52.362) into stage/7610-oob-writeback
...
# Conflicts:
# CHANGELOG.md
2026-09-23 21:24:29 +00:00
nesquena-hermes
ac0a6d08a7
Merge master (exp-v0.52.361) into stage/7578-save-count
...
# Conflicts:
# CHANGELOG.md
2026-09-23 21:13:41 +00:00
nesquena-hermes
b85594f602
docs(changelog): #7765
2026-09-23 18:36:16 +00:00
nesquena-hermes
9dfd9d4e9f
docs(changelog): #7779
2026-09-23 18:36:16 +00:00
nesquena-hermes
c960ab601b
docs(changelog): #7610
2026-09-23 18:36:16 +00:00
nesquena-hermes
19693918fa
docs(changelog): #7578
2026-09-23 18:36:16 +00:00
nesquena-hermes
4f88aa1026
docs(changelog): #7682
2026-09-23 18:36:16 +00:00
nesquena-hermes
3f85d3bbc4
Merge PR #7765 into stage/7765-subagent-project
2026-09-23 18:23:46 +00:00
nesquena-hermes
d7530ab90a
Merge PR #7779 into stage/7779-cron-provider-pin
2026-09-23 18:23:39 +00:00
nesquena-hermes
ab130f2cd0
Merge PR #7610 into stage/7610-oob-writeback
2026-09-23 18:23:35 +00:00
nesquena-hermes
350e30ab26
Merge PR #7578 into stage/7578-save-count
2026-09-23 18:23:31 +00:00
nesquena-hermes
e3e304edae
Merge PR #7682 into stage/7682-stale-cancel
2026-09-23 18:23:27 +00:00
nesquena-hermes
6ba0a84bf0
Merge master (exp-v0.52.359) into stage/7767-runtime-model
...
# Conflicts:
# CHANGELOG.md
2026-09-23 16:59:54 +00:00
nesquena-hermes
b2b5ea282c
Merge master (exp-v0.52.358) into stage/7651-inflight-cursor
...
# Conflicts:
# CHANGELOG.md
2026-09-23 16:38:29 +00:00
nesquena-hermes
4c0cba898f
Merge master (exp-v0.52.357) into stage/7743-context-baseurl
...
# Conflicts:
# CHANGELOG.md
2026-09-23 16:26:14 +00:00
nesquena-hermes
4ca1754ba0
test( #7767 ): bind nonlocal closure state when extracting _agent_status_callback
...
#7767 makes _agent_status_callback declare 'nonlocal _last_runtime_model_identity'
(reset on a fallback warning). #7760 's test compiled the extracted callback alone
at module level, where a nonlocal has no binding -> SyntaxError, failing all six
relay tests. Wrap the callback in a scope that binds every nonlocal it declares.
Verified: 16/16 with and without the Agent on py3.11; still 16/16 against master's
callback (no nonlocal); reverting reproduces the 6 failures.
2026-09-23 16:17:17 +00:00
nesquena-hermes
a4b2264446
docs(changelog): #7651
2026-09-23 14:34:41 +00:00
nesquena-hermes
16bc5ab3ed
docs(changelog): #7743
2026-09-23 14:34:41 +00:00
nesquena-hermes
ef7d325a54
docs(changelog): #7774
2026-09-23 14:34:41 +00:00
nesquena-hermes
866cb31e6a
docs(changelog): #7767
2026-09-23 14:34:41 +00:00
nesquena-hermes
9b6f70c959
Merge PR #7767 into stage/7767-runtime-model
2026-09-23 14:11:17 +00:00
nesquena-hermes
d3a5e7579a
Merge PR #7651 into stage/7651-inflight-cursor
2026-09-23 14:11:13 +00:00
nesquena-hermes
7c9d3b53d6
Merge PR #7743 into stage/7743-context-baseurl
2026-09-23 14:11:09 +00:00
nesquena-hermes
889d9b1f5d
Merge PR #7774 into stage/7774-vanished-owner
2026-09-23 14:11:06 +00:00
nesquena-hermes
e577777051
Merge master (exp-v0.52.355) into stage/7760-lease-warnings
...
# Conflicts:
# CHANGELOG.md
2026-09-23 13:06:40 +00:00
nesquena-hermes
fbfb737f72
Merge master (exp-v0.52.354) into stage/7761-watcher-fence
...
# Conflicts:
# CHANGELOG.md
2026-09-23 12:57:23 +00:00
nesquena-hermes
ae081638d6
Merge master into stage/7760-lease-warnings
...
# Conflicts:
# CHANGELOG.md
2026-09-23 12:47:53 +00:00
nesquena-hermes
c5d8e5fe4f
Merge master into stage/7761-watcher-fence
...
# Conflicts:
# CHANGELOG.md
2026-09-23 12:47:36 +00:00
nesquena-hermes
4eef3f3bbf
Merge master into stage/7758-wakeup-budget
...
# Conflicts:
# CHANGELOG.md
2026-09-23 12:46:45 +00:00
nesquena-hermes
f159d6d219
Merge master (exp-v0.52.352) into stage/7730-browser-locale
...
# Conflicts:
# CHANGELOG.md
2026-09-23 11:41:53 +00:00
nesquena-hermes
002945c85a
Merge master (exp-v0.52.351) into stage/7730-first-visit-locale
2026-09-23 11:33:37 +00:00
nesquena-hermes
00cefff681
Merge master (exp-v0.52.351) into stage/7165-custom-allowlist
2026-09-23 11:33:37 +00:00
nesquena-hermes
9e8426236a
docs(changelog): #7760
2026-09-23 10:41:45 +00:00
nesquena-hermes
75554fd7d6
docs(changelog): #7761
2026-09-23 10:41:22 +00:00
nesquena-hermes
0327db23ef
docs(changelog): #7758
2026-09-23 10:41:22 +00:00
nesquena-hermes
86b95eadb7
Merge PR #7760 into stage/7760-lease-warnings
2026-09-23 10:29:33 +00:00
nesquena-hermes
ec78f8a80d
Merge PR #7761 into stage/7761-watcher-fence
2026-09-23 10:29:29 +00:00
nesquena-hermes
7f4668eb1a
Merge PR #7758 into stage/7758-wakeup-budget
2026-09-23 10:29:26 +00:00
nesquena-hermes
c767ac70b3
docs(changelog): #7730
2026-09-23 10:23:04 +00:00
nesquena-hermes
b43a3b4d43
docs(changelog): #7165
2026-09-23 10:23:03 +00:00
nesquena-hermes
aebcd96ff8
Merge PR #7730 into stage/7730-first-visit-locale
2026-09-23 10:22:45 +00:00
nesquena-hermes
dc554cbd1c
Merge PR #7165 into stage/7165-custom-allowlist
2026-09-23 10:22:41 +00:00
nesquena-hermes
0ff718bb11
docs(changelog): #7656 resolve-concurrency setting
2026-09-23 10:16:42 +00:00
nesquena-hermes
daad118675
Merge PR #7656 (@happy5318) into stage/7656-resolve-cap
2026-09-23 10:16:21 +00:00
nesquena-hermes
86d5b36898
Merge master (exp-v0.52.349) into stage/7708-media-backtick
...
# Conflicts:
# CHANGELOG.md
2026-09-23 08:50:25 +00:00
nesquena-hermes
69655b1fc6
Merge master (exp-v0.52.348) into stage/7749-terminal-handoff
...
# Conflicts:
# CHANGELOG.md
2026-09-23 08:37:23 +00:00
nesquena-hermes
d06ee674a3
Merge master (exp-v0.52.347) into stage/7708-media-backtick
...
# Conflicts:
# CHANGELOG.md
2026-09-23 08:29:47 +00:00
nesquena-hermes
adda410ec0
Merge master (exp-v0.52.347) into stage/7749-terminal-handoff
...
# Conflicts:
# CHANGELOG.md
2026-09-23 08:29:47 +00:00
nesquena-hermes
64106a790d
Merge master (exp-v0.52.347) into stage/7751-journal-seq
...
# Conflicts:
# CHANGELOG.md
# docs/rfcs/webui-run-state-consistency-contract.md
2026-09-23 08:28:18 +00:00
nesquena-hermes
398d9495ef
docs(changelog): #7749
2026-09-23 06:25:04 +00:00
nesquena-hermes
e1c707c6d4
Merge PR #7749 (contributor head bbca954c5c)
2026-09-23 06:24:37 +00:00
nesquena-hermes
167a932326
docs(changelog): #7708
2026-09-23 06:23:42 +00:00
nesquena-hermes
99e48f11c2
docs(changelog): #7751
2026-09-23 06:23:42 +00:00
nesquena-hermes
4437f5fb40
docs(changelog): #7748
2026-09-23 06:23:42 +00:00
nesquena-hermes
41dea5763b
test( #7708 ): point the chunk-boundary assertion at the normalized scan string
...
The PR moved the MEDIA: scan onto a backtick-normalized copy, so the guard
is now matchEnd===normalized.length. Behaviour is unchanged (Codex drove the
vendored parser across chunk splits); this was a stale source assertion that
made the PR's own CI red on shard 4.
2026-09-23 06:23:21 +00:00
nesquena-hermes
a028961133
Merge PR #7708 (contributor head 6455aa9b2b)
2026-09-23 06:22:22 +00:00
nesquena-hermes
071710354f
Merge PR #7751 (contributor head 68a068c2e5)
2026-09-23 06:22:20 +00:00
nesquena-hermes
aeed25b7d0
Merge PR #7748 (contributor head 861a10ec34)
2026-09-23 06:22:18 +00:00
nesquena-hermes
26f2456205
docs(changelog): #7744 #7742 flaky-test fixes
2026-09-23 03:51:35 +00:00
nesquena-hermes
fd0842cc4d
Merge #7742
2026-09-23 03:51:06 +00:00
nesquena-hermes
671905b89d
Merge #7744
2026-09-23 03:51:05 +00:00
nesquena-hermes
394ff790e5
Merge master (exp-v0.52.344) into stage/7436-reconnect-replay
...
# Conflicts:
# CHANGELOG.md
2026-09-23 03:21:30 +00:00
nesquena-hermes
77182f435a
docs(changelog): #7436 reconnect tool-card replay
2026-09-23 02:29:53 +00:00
nesquena-hermes
c5663e86a7
Merge PR #7436 from atchisonbrent: skip unchanged tool-card replay on reconnect
2026-09-23 02:29:39 +00:00
nesquena-hermes
f26f7926c6
docs(changelog): #7374 duplicate assistant answer render
2026-09-23 02:29:01 +00:00
nesquena-hermes
a6d6b3da85
Merge PR #7374 from Thireus: fix duplicate assistant answer render ( #2051 )
2026-09-23 02:28:29 +00:00
nesquena-hermes
34feb50c5b
docs(changelog): #7631 #7716 #7734
2026-09-23 00:44:29 +00:00
nesquena-hermes
8a2d79ca43
Merge PR #7734 (rebased onto master; maintainer conflict resolution + follow-ups) into stage/rm-343-batch
2026-09-23 00:43:14 +00:00
nesquena-hermes
087a2df4a2
Merge PR #7716 into stage/rm-343-batch
2026-09-23 00:43:14 +00:00
nesquena-hermes
d79640f6b1
Merge PR #7631 into stage/rm-343-batch
2026-09-23 00:43:13 +00:00
nesquena-hermes
090728c41d
test( #7520 ): teach the #7514 projection tests the one glm-4.5-flash remap slot
...
The #7514 tests pinned a pure namespace projection (same ids modulo zai/ ->
z-ai/, same labels). #7520 intentionally serves z-ai/glm-4.5-air in the
glm-4.5-flash slot because OpenRouter does not carry glm-4.5-flash. Encode that
single explicit remap in the reference translation; keep order, length and
every other label pinned.
2026-09-23 00:13:11 +00:00
nesquena-hermes
e3c21a386c
fix( #7520 ): drop the '(free)' label from z-ai/glm-4.5-air and make the regression test non-vacuous
...
OpenRouter bills z-ai/glm-4.5-air as a paid model (0.13/0.85 per 1M), so the
wizard must not label it free. Since #7514 the projection offers the dead id
as z-ai/glm-4.5-flash, not zai/glm-4.5-flash, so the original assertion passed
on master; assert the z-ai spelling (fails pre-fix, passes post-fix).
2026-09-22 23:56:38 +00:00
nesquena-hermes
e2a7acaf2e
fix( #7445 ): require the Agent schema_version marker and sessions(id) PK before indexing
...
Codex round-3: a look-alike chat DB carrying the seven indexed column names was indexed. Every Agent state.db since the first schema (440c244cac) has a schema_version row and sessions keyed on id; require both before any CREATE INDEX. Test oracles now ignore sqlite_autoindex_* (TEXT PRIMARY KEY).
2026-09-22 23:24:10 +00:00