Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
155 commits
Select commit Hold shift + click to select a range
083f8a6
feat(agent): unified deadline layer — bounded execution primitive + t…
kshitijk4poor Aug 13, 2026
8ac9ff1
fix(agent): harden deadline layer per self-review
kshitijk4poor Aug 13, 2026
8b38796
fix(agent): suppress windows-footgun lint on POSIX-only killpg branch
kshitijk4poor Aug 13, 2026
54cc39a
fix(models): don't trust foreign catalog pricing for custom/unknown p…
dpersek Aug 14, 2026
f2678b8
test: registry cost-guard passthrough uses a models.dev-trusted provider
teknium1 Aug 14, 2026
1e18f68
chore: map contributor email for @dpersek
teknium1 Aug 14, 2026
83d373a
fix(cli): guard expensive startup model overrides
lkz-de Jul 23, 2026
6f53373
fix(cli): route startup guard through the selection-guard registry; c…
teknium1 Aug 14, 2026
3c5fd91
feat(sdk): warmProfile — background socket pre-dial for roster UIs (#…
teknium1 Aug 14, 2026
16b54e2
fix(tests): resolve cost-guard fixture collision between pricing dist…
teknium1 Aug 14, 2026
4bbc6f2
feat(gateway): share_auth on profiles.create + MCP servers in describ…
teknium1 Aug 14, 2026
56a4171
fix: persist provider on model switch and add billing_provider fallback
webtecnica Aug 14, 2026
f84f1dd
fix(tests): return Path from get_hermes_home mock in slash_worker pro…
Aug 14, 2026
1f8fdc7
chore: map contributor email for @infocentr
kshitijk4poor Aug 14, 2026
e37a032
fix(approval): show CLI Dangerous Command prompt when ask-mode has no…
xxxigm Aug 14, 2026
d6b4083
test(approval): cover CLI EXEC_ASK leak and fix slash-worker Path mock
xxxigm Aug 14, 2026
1b19757
test: use tmp_path fixture for import test HERMES_HOME
kshitijk4poor Aug 14, 2026
8c05906
ci(desktop): shard the UI vitest suite 3 ways to cut the merge-gate c…
kshitijk4poor Aug 14, 2026
a163c2b
refactor(desktop): single-source the ui test command in the shard scr…
kshitijk4poor Aug 14, 2026
a66a643
ci(desktop): derive shard index from the script name via a guarded ru…
kshitijk4poor Aug 14, 2026
c896c09
fix(desktop): windows-safe spawn + surface spawn errors in the shard …
kshitijk4poor Aug 14, 2026
29d0cc2
fix(dashboard): treat Ctrl+C serve shutdown as a clean exit (supersed…
austinpickett Aug 14, 2026
f56a9a1
ci(js-tests): cache the installed node_modules tree, not just the npm…
kshitijk4poor Aug 14, 2026
de0abc0
ci(js-tests): drop dead electron download-cache path, skip redundant …
kshitijk4poor Aug 14, 2026
0a8765a
fix(gateway): model inheritance gated on the model section, not confi…
teknium1 Aug 14, 2026
cc1c125
fix(gateway): honest capability surfaces for profile editors (#86227)
teknium1 Aug 14, 2026
11c5aae
fix(compaction): gate checkpoint replay/prune on current request elig…
JoaoMarcos44 Aug 14, 2026
ed653d3
fix(gateway): profile editors hide opt-in toolsets the profile hasn't…
teknium1 Aug 14, 2026
642b735
feat(website): Skills Hub picker embed mode (?embed=picker) (#86243)
teknium1 Aug 14, 2026
0e4e8ba
add deepseek v5 pro 0813 to model catalog (#86256)
rob-maron Aug 14, 2026
0c6761c
fix(gateway): restart_after_turn_timeout default 6h -> 30min (#79133)
thatssoheil Aug 6, 2026
afe09c7
fix(gateway): exclude wedged turns from the restart after-turn wait
teknium1 Aug 14, 2026
a90d536
feat(gateway): dump wedged worker stacks when the turn reaper fires
teknium1 Aug 14, 2026
d6a5cb9
Merge pull request #85147 from kshitijk4poor/feat/unified-deadline-layer
kshitijk4poor Aug 14, 2026
1169fb5
fix: install Browser Use CLI for every browser backend except Camofox
teknium1 Aug 14, 2026
3885c10
fix(gateway): stop internal bookkeeping writes from advancing the ses…
teknium1 Aug 14, 2026
6625c72
fix(cli): use _suspend_output_history for interrupt marker instead of…
AIalliAI Jul 26, 2026
a22fbba
fix(cli): don't replay transcript on the session's first benign SIGWINCH
halaprix Jul 16, 2026
0e1cba3
fix(cli): honor persisted status bar visibility
angeon922-collab Jul 6, 2026
88a1a9f
fix(cli): let redraw recovery rebuild scrollback
angeon922-collab Jul 6, 2026
c3d7f6e
fix(cli): recover prompt_toolkit paint after tmux attach
Aug 11, 2026
3bd98ec
fix(cli): redraw on terminal focus regain + docs for scrollback rebui…
teknium1 Aug 14, 2026
c2bf1ac
chore: contributor email mappings for salvaged PRs
teknium1 Aug 14, 2026
294071b
fix(banner): stop fabricating '1 commit behind' on SSH-official remotes
gkd2323c Jul 8, 2026
54bd47b
fix(desktop): show 'update available' instead of fake '1 change inclu…
Dolverin Aug 10, 2026
3dbdea8
fix(desktop): make shallow update status presence-only
metamindedu Jul 14, 2026
9442a71
fix(update-check): recover the real behind-count via the GitHub compa…
teknium1 Aug 14, 2026
cc9358e
chore: map contributor emails for salvaged commits
teknium1 Aug 14, 2026
bf10349
chore: lint fixes (blank line, useMemo dep)
teknium1 Aug 14, 2026
8b06f7d
fix: attach RPCs no longer wait on the deferred agent build
OutThisLife Aug 14, 2026
7de5634
test: attach RPCs complete while the agent is still building
OutThisLife Aug 14, 2026
9d4ba40
perf: benches for the image attach path
OutThisLife Aug 14, 2026
c59e30f
perf: cover all six attach RPCs and report surface exposure
OutThisLife Aug 14, 2026
d29abb7
fix(browser): discover browser-use from user-level tool directories
kimyxx Aug 14, 2026
d8d7cc0
fix(update): stop reporting bogus 'Found 9980 new commit(s)' on shall…
teknium1 Aug 14, 2026
c7a243d
feat(desktop): tag each sidebar project row with data-sessions-project
OutThisLife Aug 14, 2026
f79440e
feat: /loop — recurring in-session wakeups (Claude Code parity)
teknium1 Jul 27, 2026
cd104ed
fix(desktop): let you type spaces and arrows in the session rename di…
OutThisLife Aug 14, 2026
ca1b3f8
fix(windows): avoid locale-sensitive update timestamps
AlexMnrs Aug 12, 2026
29760fe
perf(desktop): reuse the chip preview bytes at image submit
teknium1 Aug 14, 2026
898d786
fix(update): count real behind commits in SSH fast path
andyst-dev Aug 12, 2026
3f39f80
fix(update-check): never flag local-ahead checkouts as updates (deskt…
teknium1 Aug 14, 2026
5bfb7ee
fix(desktop-update): drive the Windows hand-off through the venv pyth…
Aug 13, 2026
f696380
test(desktop-update): guard the Windows hand-off python.exe contract
OutThisLife Aug 14, 2026
6f49bc7
chore: map contributor email for the salvaged Windows updater commit
OutThisLife Aug 14, 2026
20e5d51
fix(browser): managed-first browser-use CLI resolution
teknium1 Aug 14, 2026
96e794a
fix(tui): redraw after terminal focus regain
John-Lussier May 14, 2026
6356dc3
fix(ui-tui): redraw after session resume
LeonSGP43 Jul 10, 2026
2912093
fix(dashboard): redraw TUI after PTY reattach
algf Jul 20, 2026
4fe5090
chore: contributor email mappings for salvaged PRs
teknium1 Aug 14, 2026
ededa8c
fix(agent): bound sequential tool calls
fangliquanflq Aug 12, 2026
82a1b5a
fix(agent): suppress late timeout observer events
fangliquanflq Aug 12, 2026
61645cd
fix(agent): exempt clarify from sequential tool deadline
fangliquanflq Aug 13, 2026
367f0c2
feat(agent): resolve sequential tool deadline via timeouts.tools.sequ…
kshitijk4poor Aug 14, 2026
e14248a
fix(cron): self-heal leaked in-flight claim so a wedged recurring job…
Aug 14, 2026
50febe9
fix: follow-up for salvaged PR #86129 — config.yaml, eliminate redund…
kshitijk4poor Aug 14, 2026
24a9203
chore: map contributor email devops@sycamore.group → sycamoregroupltd
kshitijk4poor Aug 14, 2026
9240749
perf: precompute intervals outside lock, cache croniter, use _ensure_…
kshitijk4poor Aug 14, 2026
0b36a5b
bye bye
kshitijk4poor Aug 14, 2026
2f25dec
fix(agent): scope the skills index + active-profile line to the agent…
teknium1 Aug 14, 2026
8fd0f9c
fix(agent): derive profile name from the hermes ROOT, not the ambient…
teknium1 Aug 14, 2026
a0c3465
test(agent): cover agent-in-profile-A with ambient home bound to prof…
teknium1 Aug 14, 2026
30e9449
fix(agent): keep legacy ambient home strings byte-identical when no a…
teknium1 Aug 14, 2026
126acbf
fix(agent): stop doubling the profile path in the system-prompt hint
jeff-mettel Jul 30, 2026
4691eb5
test(agent): drive the profile hint through the real resolver chain
jeff-mettel Jul 30, 2026
8134aad
chore: add SeashoreShi to contributor email map
kshitijk4poor Aug 14, 2026
1f1b4d9
fix(agent): scope SOUL.md load to the agent's own profile home (#50233)
teknium1 Aug 14, 2026
6d51c83
fix(file_tools): refuse plain-text writes that corrupt binary documents
teknium1 Aug 10, 2026
5c988e2
fix: cover remaining anydoc-extracted container formats
kshitijk4poor Aug 14, 2026
9f004c8
refactor: hoist binary_extensions import to module level
kshitijk4poor Aug 14, 2026
befc406
Merge pull request #86358 from kshitijk4poor/chore/author-map-seashor…
kshitijk4poor Aug 14, 2026
4d6f4a6
fix(desktop): local & remote profiles reuse the default socket after …
OutThisLife Aug 14, 2026
237abc1
feat(desktop): resolve the user's terminal emulator and TUI resume argv
OutThisLife Aug 14, 2026
867eb1a
feat(desktop): expose openSessionInTerminal over the capability bridge
OutThisLife Aug 14, 2026
3d34b19
feat(desktop): add 'Open in terminal' to the session menu
OutThisLife Aug 14, 2026
5bc13cf
fix(gateway): tolerate list-shaped gateway.platforms from setup (#83185)
SeashoreShi Aug 14, 2026
1347e31
fix(gateway/relay): guard platforms dict access when config is a list
kshitijk4poor Aug 14, 2026
518bc90
fix(agent): bound HERMES_HOME override wins over shared session-db home
teknium1 Aug 14, 2026
56f1afc
feat(dashboard-auth): extend RFC 8252 native sign-in to password prov…
buffpesos Aug 14, 2026
e1098cb
fmt(js): `npm run fix` on merge (#86379)
hermes-seaeye[bot] Aug 14, 2026
b66b4a5
test(desktop): cover the torn-renderer-bundle detector
OutThisLife Aug 14, 2026
253d4aa
fix(desktop): add focus to ZOOM_REASSERT_WINDOW_EVENTS for high-DPI d…
Jul 25, 2026
5269c8f
chore: contributor email mapping for salvaged PR #50873
teknium1 Aug 14, 2026
58e4bb0
fix(desktop): make get-windows optional dep so Linux build doesn't br…
webtecnica Aug 13, 2026
689a4be
fix(desktop): degrade get-windows on Windows ARM64
fangliquanflq Aug 9, 2026
a373a1b
fix(desktop): tolerate omitted get-windows on ARM64
helix4u Aug 14, 2026
6e929a9
fix(sessions): serialize turns across processes
fangliquanflq Aug 12, 2026
3b09456
fix(sessions): surface wait status for cross-process turn leases
fangliquanflq Aug 12, 2026
5e2be43
fix(sessions): harden cross-process turn lease wait and refresh
fangliquanflq Aug 12, 2026
c21efee
fix(sessions): keep turn lease across inherited-marker compressions
fangliquanflq Aug 12, 2026
f1025b2
fix(sessions): fence transcript writes with the turn-lease holder
fangliquanflq Aug 12, 2026
19b1204
fix(sessions): revive uncontested expired turn leases
fangliquanflq Aug 14, 2026
967391c
fix(sessions): stop lease refresher at turn boundary
fangliquanflq Aug 14, 2026
6b25e67
fix(sessions): scope refresh interrupts to active turns
fangliquanflq Aug 14, 2026
d729019
fix(sessions): harden turn lease refresher and skip unnecessary reloads
kshitijk4poor Aug 14, 2026
c925b52
test: simulate contended wait for resolve+reload path
kshitijk4poor Aug 14, 2026
82e05b2
fix(dashboard): scroll terminal to bottom when resuming session
VBS2004 Jul 6, 2026
4406d8c
test(dashboard): cover resume-scroll stick-to-bottom logic
VBS2004 Jul 18, 2026
7f7ca89
fix(dashboard): weave resume follow-scroll into sanitizer write path …
teknium1 Aug 14, 2026
5821691
test(dashboard): extend ChatPage Terminal fake with onScroll/buffer/s…
teknium1 Aug 14, 2026
3abe6cc
fix(gateway): bind profile HERMES_HOME override in ephemeral agent th…
davidgut1982 Aug 14, 2026
8606867
fix(tui): reduce status bar flicker during streaming
liuhao1024 Jun 7, 2026
513f683
fix(tui): widen usage comparator to key union + regression tests
teknium1 Aug 14, 2026
4d1ef7f
style: satisfy curly + padding-line eslint rules in usage comparator
teknium1 Aug 14, 2026
308bb56
fix(gateway): bind profile override in _persist_live_session_system_p…
maxmilian Jun 21, 2026
802a60a
test(gateway): pin restoration of pre-existing HERMES_HOME override
maxmilian Jul 15, 2026
d509e6d
fix(tui): don't trust DEC 2026 synchronized output under Zellij
brian717 Jul 17, 2026
5d8569d
fix(tui): gate BSU/ESU on capability for ALL write paths, not just al…
teknium1 Aug 14, 2026
3f7140f
chore: contributor email mapping for salvaged PR #66538
teknium1 Aug 14, 2026
eb20188
style: import order + padding lines in terminal.test.ts
teknium1 Aug 14, 2026
31e571a
fmt(js): `npm run fix` on merge (#86407)
hermes-seaeye[bot] Aug 14, 2026
7d96537
fix(desktop): the main agent's model pick persists as the profile def…
teknium1 Aug 14, 2026
8e509c7
fmt(js): `npm run fix` on merge (#86430)
hermes-seaeye[bot] Aug 14, 2026
452465b
fix(tests): reap leaked TUI notification pollers between tests
teknium1 Aug 14, 2026
d275b96
feat(gateway): per-profile MCP server lifecycle RPCs (mcp.servers.*) …
teknium1 Aug 14, 2026
47fd2eb
fix(browser): strip PYTHONPATH/PYTHONHOME from browser-use CLI subpro…
n1majne3 Aug 14, 2026
73b4e41
fix(tui): prepend Hermes venv and user-local bin to slash_worker PATH…
webtecnica Aug 11, 2026
f92accd
fix(tui): lead slash_worker PATH with Hermes' managed bin dir
teknium1 Aug 14, 2026
cbfe186
fix(config): canonicalize legacy api_mode spellings instead of silent…
SHL0MS Aug 14, 2026
b21e0bd
fix(providers): honor per-provider TLS on custom /models and pricing …
SHL0MS Jul 17, 2026
44d5806
test(providers): tolerate stream kwarg in metadata probe mock
SHL0MS Aug 13, 2026
661a4c4
fix streaming provider error events
KhanCold Jul 1, 2026
0fcebb2
fix streaming bare data error payloads
KhanCold Jul 2, 2026
5cbc645
fix: require terminal signal for streamed errors
KhanCold Jul 16, 2026
04bc532
fix: preserve non-JSON provider stream errors
KhanCold Jul 31, 2026
b55dd04
fix(streaming): adapt provider errors to relay
KhanCold Aug 7, 2026
2eda129
chore: map contributor email for #56522 salvage
teknium1 Aug 14, 2026
90253cc
fix(providers): route Actual's fetch_models through the credential-re…
pierrenode Aug 6, 2026
167dd48
fix(models): trust certifi for credentialed catalogs (E-1002)
Aug 11, 2026
832eb56
chore: map contributor email
Aug 11, 2026
50d98fc
feat(delegation): raise subagent iteration cap default 50 -> 250 (+mi…
teknium1 Aug 14, 2026
25d1c8d
fix(desktop): context gauge reads the session it is on, not the last …
OutThisLife Aug 14, 2026
c83061b
test(desktop): cover the context gauge fetching before a turn runs
OutThisLife Aug 14, 2026
bab9a85
fmt(js): `npm run fix` on merge (#86533)
hermes-seaeye[bot] Aug 15, 2026
1fa00fc
Sync upstream hermes-agent main into NousAI-Assistant (154 commits, t…
claude Aug 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions .coderabbit.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# CodeRabbit configuration.
#
# Auto-review is DISABLED repo-wide: the app was enabled at the org level on
# 2026-08-14 and immediately began reviewing every opened PR. This repo's
# merge gate is CI ("All required checks pass") plus maintainer review —
# CodeRabbit reviews carry no merge weight (protect-main ruleset requires
# 0 approving reviews), so auto-firing on the full PR firehose adds comment
# noise without gating value.
#
# The bot stays installed and summonable on demand: comment
# `@coderabbitai review` on any PR to request a one-off review, or
# `@coderabbitai ignore` to mute it on a PR it has already joined.
#
# To re-enable auto-review, flip `enabled: true` below (or delete this file —
# the app default is on).
reviews:
auto_review:
enabled: false
50 changes: 48 additions & 2 deletions .github/workflows/js-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,33 @@ jobs:

- name: grab npm 12
run: |
npm i -g npm@12
# No-op once the bundled npm is already 12.x — saves ~5-15s/job and
# keeps the installed major aligned with the npm12 cache-key tag.
npm --version | grep -q '^12\.' || npm i -g npm@12

# ``setup-node``'s ``cache: npm`` only caches the ~/.npm tarball cache;
# every job still re-extracts the full workspace node_modules and reruns
# postinstalls (including the Electron binary fetch). Cache the installed
# tree itself, keyed on the lockfile, and skip ``npm ci`` on an exact
# hit. No restore-keys: a partial hit would leave a stale tree, so
# anything but an exact lockfile match reinstalls from scratch.
# The discovery job installs with --ignore-scripts, so its tree differs
# from the check jobs' — hence the distinct ``-noscripts`` key.
- name: Restore node_modules
id: node-modules-cache
uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
with:
path: |
node_modules
apps/*/node_modules
ui-tui/node_modules
ui-tui/packages/*/node_modules
tests-js/node_modules
web/node_modules
key: node-modules-noscripts-${{ runner.os }}-node26-npm12-${{ hashFiles('package-lock.json') }}

- uses: ./.github/actions/retry
if: steps.node-modules-cache.outputs.cache-hit != 'true'
with:
command: npm ci --ignore-scripts
- id: set-matrix
Expand Down Expand Up @@ -71,9 +95,31 @@ jobs:

- name: grab npm 12
run: |
npm i -g npm@12
# No-op once the bundled npm is already 12.x — saves ~5-15s/job and
# keeps the installed major aligned with the npm12 cache-key tag.
npm --version | grep -q '^12\.' || npm i -g npm@12

# Same rationale as the discovery job's cache above, but this ``npm ci``
# runs WITH install scripts, so the tree includes postinstall artifacts
# (electron's postinstall unpacks its binary into node_modules/electron/
# dist, which lives inside the cached tree — the ~/.cache/electron
# download cache is deliberately NOT cached: with npm ci skipped on hit
# it would never be read, only inflate the archive).
- name: Restore node_modules
id: node-modules-cache
uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
with:
path: |
node_modules
apps/*/node_modules
ui-tui/node_modules
ui-tui/packages/*/node_modules
tests-js/node_modules
web/node_modules
key: node-modules-scripts-${{ runner.os }}-node26-npm12-${{ hashFiles('package-lock.json') }}

- uses: ./.github/actions/retry
if: steps.node-modules-cache.outputs.cache-hit != 'true'
with:
command: npm ci
- run: npm run --prefix ${{ matrix.package }} ${{ matrix.script }}
9 changes: 8 additions & 1 deletion agent/auxiliary_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -1500,8 +1500,15 @@ def create(self, **kwargs) -> Any:
# build_kwargs, so they need the same guard applied independently.
_host_for_input = str(getattr(self._client, "base_url", "") or "")
_is_github_for_input = base_url_host_matches(_host_for_input, "githubcopilot.com")
# Auxiliary calls never send ``context_management`` (native
# compaction is a main-turn feature), so they must never replay a
# compaction checkpoint from the replayed history nor let one
# restructure this request — the summarizer/aggregator model is
# usually not even the one that minted the blob.
input_items = _chat_messages_to_responses_input(
replay_messages, is_github_responses=_is_github_for_input,
replay_messages,
is_github_responses=_is_github_for_input,
native_compaction_eligible=False,
)

resp_kwargs: Dict[str, Any] = {
Expand Down
Loading
Loading