Commit Graph
100 Commits
Author SHA1 Message Date
nesquena-hermes bac8a5205b docs(changelog): stamp #7420 + #7814 2026-09-26 05:11:46 +00:00
nesquena-hermes 728472cacb Merge PR #7814 (@happy5318): Chinese remote-access guide 2026-09-26 05:06:30 +00:00
nesquena-hermes 0265bd0880 Merge PR #7420 (@taljeon): README leads with Tailscale Serve 2026-09-26 05:06:30 +00:00
nesquena-hermesandhappy5318 94539cf074 docs(zh): correct the .env precedence note for start.ps1
The new "改完密码先验证一下" note said start.sh, start.ps1 and bootstrap.py all let
repo-.env values override an inline HERMES_WEBUI_PASSWORD. That holds for start.sh
(`set -a; source .env` runs before anything else), but start.ps1 skips any .env key that
is already set in the environment (start.ps1:70-72), so on native Windows the
`$env:HERMES_WEBUI_PASSWORD` shown in this section wins. start.ps1 runs server.py
directly, so the suggested HERMES_WEBUI_PRESERVE_ENV=1 did not apply to it either.

Keep the useful advice (check the login page actually asks for the new password, and
look for a stale value in .env), state the correct precedence for each launcher, and
drop the PRESERVE_ENV suggestion.

Co-authored-by: happy5318 <34227488+happy5318@users.noreply.github.com>
2026-09-26 05:01:24 +00:00
nesquena-hermes 24dd1fbd58 docs(zh): correct the public-exposure note (WebUI does rate-limit logins; the gap is plaintext HTTP) 2026-09-24 19:47:45 +00:00
nesquena-hermes ae05896eb5 docs(changelog): #7785 gateway turns survive a WebUI restart 2026-09-24 19:15:19 +00:00
nesquena-hermes 15ac01e2c3 Merge PR #7785 into stage/0924-o 2026-09-24 19:15:12 +00:00
nesquena-hermes 1317ba0148 docs(changelog): #7789 console-noise fixes 2026-09-24 19:01:38 +00:00
nesquena-hermes 016a04c0b6 Merge PR #7789 into stage/0924-n 2026-09-24 19:01:31 +00:00
nesquena-hermes 8622bdfb31 docs(changelog): #6659 project-assigned CLI sessions survive the recent cap 2026-09-24 18:50:08 +00:00
nesquena-hermes 145cab958d Merge PR #6659 into stage/0924-m 2026-09-24 18:49:38 +00:00
nesquena-hermes 57e8693739 docs(changelog): #7577 stop cross-client clobber of unread state 2026-09-24 17:53:40 +00:00
nesquena-hermes 96921c2cfc Merge PR #7577 into stage/0924-l 2026-09-24 17:53:18 +00:00
nesquena-hermes a07f18617f docs(changelog): #7632 keep per-profile models cache across profile switch 2026-09-24 16:53:40 +00:00
nesquena-hermes b26839b996 Merge PR #7632 into stage/0924-k 2026-09-24 16:53:13 +00:00
nesquena-hermes 1c4d5abf28 docs(changelog): #6717 virtual measurement retry budget no longer resets on window oscillation 2026-09-24 14:26:51 +00:00
nesquena-hermes 38c5c69b63 Merge PR #6717 into stage/0924-i 2026-09-24 14:26:32 +00:00
nesquena-hermes 28edb04ebd test: widen renderMessages() source window in R16d guard-order probe
The #6717 burst-reset call grows the renderMessages() preamble, pushing the
render-window reset past the probe's 1400-char slice. Widen it to 2400; the
guard-before-reset ordering assertion is unchanged and still passes on master.
2026-09-24 14:02:48 +00:00
nesquena-hermes 73d08d3cfb test: follow the #6717 render-scheduler signature; guard the burst reset for node harnesses
_scheduleMessageVirtualizedRender now takes (force, request), so the two
structural probes in test_issue4346_vscroll_footer_jitter.py matched nothing.
renderMessages() calls _resetMessageVirtualMeasurementBurst(), which node
harnesses that extract renderMessages() alone (test_compaction_current_summary_fallback.py)
don't define; guard it with typeof like the file's other optional helpers.
2026-09-24 13:43:12 +00:00
nesquena-hermes 82ee11c71f docs(changelog): #6895 custom-provider model prefix stripped before send 2026-09-24 13:25:26 +00:00
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 1633658fa5 test(#6717): assert the non-consecutive repeat condition
The production guard now ends the burst only on a non-consecutive repeat
(A -> B -> A), so a window needing a second re-measure is not mistaken for
oscillation. Update the structural assertion to that condition.
2026-09-24 12:57:14 +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-hermesandwebtecnica 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-hermesandwebtecnica 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