Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
876 commits
Select commit Hold shift + click to select a range
4204e6d
Merge pull request #69519 from NousResearch/bb/desktop-preview-open
OutThisLife Jul 22, 2026
ca244e2
refine inline message actions: fork icon, sine-wave read-aloud, share…
OutThisLife Jul 22, 2026
9160f10
fix(desktop): tsc clean before dev / build
OutThisLife Jul 22, 2026
59614ef
Merge pull request #69505 from NousResearch/bb/inline-msg-actions
OutThisLife Jul 22, 2026
96560ee
fix(agent): recover pure-Latin search matches embedded in CJK text (#…
gnanam1990 Jun 28, 2026
b591afe
test(state): cover pure-Latin embedded-in-CJK recovery via the cjk index
teknium1 Jul 22, 2026
2b27c17
fix(redirect): cover the build-window and post-reconnect correction r…
OutThisLife Jul 22, 2026
3459461
fix(themes): broadcast live skin.changed to WS surfaces (desktop/dash…
OutThisLife Jul 22, 2026
fea838c
fix(auth): detect upstream Codex quota resets and lift stale pool coo…
teknium1 Jul 22, 2026
9dbad81
fix(themes): re-affirming the active skin repaints surfaces that miss…
OutThisLife Jul 22, 2026
02fa447
fix(desktop): validate gateway WebSocket URLs
ethernet8023 Jul 22, 2026
5a40fd3
Merge pull request #69453 from NousResearch/bb/stale-js-shadow-guard
ethernet8023 Jul 22, 2026
c07973a
chore(gitignore): ignore installer .install_method stamp (salvage of …
Bartok9 Jul 22, 2026
bb24364
Merge pull request #63104 from NousResearch/bb/active-turn-steering
OutThisLife Jul 22, 2026
0ec4a87
fmt(js): `npm run fix` on merge (#69562)
hermes-seaeye[bot] Jul 22, 2026
39f72e4
refactor(themes): DRY the event frame, type the transport registry, t…
OutThisLife Jul 22, 2026
e0b9ab5
Merge pull request #69533 from NousResearch/bb/skin-live-broadcast
OutThisLife Jul 22, 2026
afd0270
fix(themes): repaint the desktop on an in-place edit of the active skin
OutThisLife Jul 22, 2026
87088d1
Merge pull request #69581 from NousResearch/bb/skin-live-edit-repaint
OutThisLife Jul 22, 2026
1bdd478
fix(desktop): scope submit drift guard to genuine session switches (#…
ethernet8023 Jul 22, 2026
41e00dc
fix(desktop): salvage /compress cluster — session.compress RPC + dedi…
ethernet8023 Jul 22, 2026
681abcc
test(desktop): cover submit drift through e2e (#69599)
ethernet8023 Jul 22, 2026
0ee05d7
Nous portal model pricing (#69579)
rob-maron Jul 22, 2026
d84e11a
rip out brew + pip/PyPI wheel support (#68217)
ethernet8023 Jul 22, 2026
b5d8231
fix(desktop): keep first response layout stable
OutThisLife Jul 22, 2026
2a3e315
fix(ui-tui): themed input text — typed text tracked the HOST terminal…
OutThisLife Jul 22, 2026
0033cff
Merge pull request #69613 from NousResearch/bb/fix-first-response-nudge
OutThisLife Jul 22, 2026
d6080d4
Merge pull request #69616 from NousResearch/bb/tui-input-theme-color
OutThisLife Jul 22, 2026
2244be2
feat(devshell): add terminal UI capture tools (#69629)
ethernet8023 Jul 22, 2026
1f65221
fix(ui-tui): skin owns BOTH terminal defaults — OSC-10 foreground bes…
OutThisLife Jul 22, 2026
e0d62b5
Merge pull request #69632 from NousResearch/bb/skin-terminal-default-fg
OutThisLife Jul 22, 2026
7055385
fix(desktop): warm-route resume jitter from double setMessages (#69635)
ethernet8023 Jul 22, 2026
f9a8ecc
polish(desktop/billing): auto-poll, no-card notice, grouped card layout
OutThisLife Jul 22, 2026
1b8e34e
fmt(js): `npm run fix` on merge (#69644)
hermes-seaeye[bot] Jul 22, 2026
73c7f68
fix(desktop): avoid duplicate inflight user rows on resume (#69649)
ethernet8023 Jul 22, 2026
15dc65e
fmt(js): `npm run fix` on merge (#69651)
hermes-seaeye[bot] Jul 22, 2026
592effc
feat(tts): provider-agnostic streaming core with a shared sentence ch…
OutThisLife Jul 22, 2026
8da98ce
feat(tts): route the speaker pipeline through the streaming core
OutThisLife Jul 22, 2026
d8f30b1
fix(stt): flag empty transcripts as no_speech
OutThisLife Jul 22, 2026
8ce18d2
feat(voice): barge-in detector with pre-roll utterance capture
OutThisLife Jul 22, 2026
b135a8b
feat(voice): stream any provider in the CLI, with barge-in capture
OutThisLife Jul 22, 2026
68e1fed
feat(voice): stream turn deltas through the TUI gateway, with barge-in
OutThisLife Jul 22, 2026
93e9061
feat(voice): desktop speech-stream sessions with barge-in capture
OutThisLife Jul 22, 2026
83456d0
docs(voice): streaming TTS + barge-in across surfaces
OutThisLife Jul 22, 2026
393c100
feat(voice): speech-interrupted latch in the TTS streaming core
OutThisLife Jul 22, 2026
05b3637
feat(voice): CLI + TUI tell the model when its spoken reply was cut
OutThisLife Jul 22, 2026
177a57f
feat(voice): desktop flags interrupted submits
OutThisLife Jul 22, 2026
68abf0b
test(desktop): add E2E coverage for session lifecycle (#69580)
ethernet8023 Jul 22, 2026
54aaff1
fmt(js): `npm run fix` on merge (#69669)
hermes-seaeye[bot] Jul 22, 2026
960d339
feat(billing): shared cross-surface out-of-credits signal
OutThisLife Jul 22, 2026
d0c4a82
feat(desktop): billing toast + in-chat status-row banner with smart CTA
OutThisLife Jul 22, 2026
9c274db
feat(tui): billing wall opens a confirm dialog
OutThisLife Jul 22, 2026
dd3bd70
feat(cli): out-of-credits panel below the response
OutThisLife Jul 22, 2026
e762ea1
fix(ui-tui): a skin that authors a background owns its polarity
OutThisLife Jul 22, 2026
0ac07fd
Merge pull request #69511 from NousResearch/bb/voice-streaming
OutThisLife Jul 22, 2026
9024835
Merge pull request #69602 from NousResearch/bb/voice-interrupt-note
OutThisLife Jul 22, 2026
55759cb
fix(desktop): refresh composer branch after worktree creation (#69657)
ethernet8023 Jul 22, 2026
c4acc4d
feat(desktop): add prefix/suffix adornments to Input primitive; use $…
OutThisLife Jul 22, 2026
8d6e045
Merge pull request #69671 from NousResearch/bb/skin-owns-polarity
OutThisLife Jul 22, 2026
4336730
ci: surface E2E screenshots in review comment (#69631)
ethernet8023 Jul 22, 2026
6283a33
fix(desktop): show steer glyph in busy composer (#69612)
ethernet8023 Jul 22, 2026
066b53b
fix(desktop): narrow billing custom top-up input (w-20 -> w-16)
OutThisLife Jul 22, 2026
93c9707
fix(desktop): prevent stale optimistic tails after compression (#69682)
ethernet8023 Jul 22, 2026
e4b2b77
refactor(desktop): extract shared Progress primitive; billing uses it
OutThisLife Jul 22, 2026
24e4c6f
fix(acp): flag replayed compaction summaries via _meta
israellot Jul 5, 2026
50026fb
test(compression): pin classify_summary_content agreement with summar…
teknium1 Jul 22, 2026
7fa795a
fix(cron): finalize compressed session tips (86e2darn2)
colingreig Jul 18, 2026
1f4eaec
test(cron): assert no-rotation tip resolution is a finalize no-op
teknium1 Jul 22, 2026
8c74531
fix(desktop): synchronize context usage and compaction status
yingliang-zhang Jul 21, 2026
711f1c2
fix(search): surface compaction-archived and compression-parent sessi…
MacroAnarchy Jul 12, 2026
98c0d8b
fix(search): require compacted=1 not just active=0, scope delegation-…
MacroAnarchy Jul 16, 2026
e907ecc
test(search): prove discovery scope and bookend bounding work togethe…
teknium1 Jul 22, 2026
a007ac5
fix(compress): allow manual /compress when auto-compaction is disable…
bnikanjam Jul 13, 2026
7580bc6
fix(acp): align salvaged /compact wording and test with current /comp…
teknium1 Jul 22, 2026
c35fe29
test(compress): pin manual-compress-allowed-when-auto-disabled on eve…
teknium1 Jul 22, 2026
3651627
fix(desktop): skip bootstrap for explicit Nix backend (#69688)
ethernet8023 Jul 23, 2026
ccb5cb3
fix(gateway): suppress pre-API compression chatter
matt-strawbridge Jul 22, 2026
a2068c6
chore: map matt-strawbridge contributor email for attribution CI
teknium1 Jul 22, 2026
9981242
fix(gateway): widen compression noise filter to all routine status lines
teknium1 Jul 22, 2026
fae3ba2
test(gateway): pin routine-suppression + visible-carve-out contracts
teknium1 Jul 22, 2026
43787da
feat(desktop/settings): DOM-shaped skeleton loaders on every settings…
OutThisLife Jul 22, 2026
deadb43
fix(desktop): show composer action shortcuts (#69707)
ethernet8023 Jul 23, 2026
a23e39f
test(desktop): cover correction resume without duplicate prompts (#69…
ethernet8023 Jul 23, 2026
e5b8363
feat(relay): egress typing indicators through the connector (op="typi…
benbarclay Jul 23, 2026
2a24745
test(desktop): cover queued prompt turn boundary (#69729)
ethernet8023 Jul 23, 2026
6d17b2a
fix(desktop): preserve active correction on warm resume (#69725)
ethernet8023 Jul 23, 2026
da3c506
Merge pull request #69691 from NousResearch/bb/desktop-billing-polish
OutThisLife Jul 23, 2026
2c1d585
Merge pull request #69655 from NousResearch/bb/out-of-credits-ux
OutThisLife Jul 23, 2026
8a21df1
fix(desktop): place steer messages before redirected replies (#69739)
ethernet8023 Jul 23, 2026
6326b30
fix(desktop): open branched chat in a new tab and switch to it
OutThisLife Jul 23, 2026
957ea64
fix(ci): publish inline E2E evidence (#69699)
ethernet8023 Jul 23, 2026
a0a24ba
fix(desktop): use fork icon for branch in session context menu
OutThisLife Jul 23, 2026
35cdc63
fix(desktop): use repo-forked codicon (git-fork has no glyph)
OutThisLife Jul 23, 2026
8b96fc5
feat(desktop): skipped clarify keeps its choices visible and answerable
SHL0MS Jul 23, 2026
efa002d
refactor(desktop): share the clarify choice row and fix skip copy
OutThisLife Jul 23, 2026
b162371
fix(ci): retain delayed and composite-action jobs in review (#69768)
ethernet8023 Jul 23, 2026
d63a1c4
fix(desktop): separate workspace defaults from live cwd (#69765)
ethernet8023 Jul 23, 2026
bf21ba0
fix(desktop): resolve tab title and project color for sessions outsid…
OutThisLife Jul 23, 2026
30f6fc8
fix(desktop): keep ever-active tab panes mounted so revisiting a tab …
OutThisLife Jul 23, 2026
305a3c7
fix(relay): restore streaming delivery, Slack command parity, and sta…
benbarclay Jul 23, 2026
e80e036
fix(desktop): use <Tip> instead of native title= on clarify skip buttons
OutThisLife Jul 23, 2026
f91d5b2
chore(desktop): dedupe session-color precedence, tighten tileStoredRow
OutThisLife Jul 23, 2026
6d76f5c
Merge pull request #69769 from NousResearch/bb/salvage-69720-clarify-…
OutThisLife Jul 23, 2026
5c4d358
Merge pull request #69750 from NousResearch/bb/desktop-fork-new-tab
OutThisLife Jul 23, 2026
067cb9e
feat(desktop): shift next tab into main on ⌘W + always-shown new-sess…
OutThisLife Jul 23, 2026
dbf4f69
fix(desktop): queue prompts during context compaction (#69783)
ethernet8023 Jul 23, 2026
4baf2ed
fix(ci): authenticate gh-image installation (#69793)
ethernet8023 Jul 23, 2026
9f5e568
fix(desktop): prevent stale worktree status (#69781)
ethernet8023 Jul 23, 2026
7d96e60
fmt(js): `npm run fix` on merge (#69805)
hermes-seaeye[bot] Jul 23, 2026
3f9944b
fix(ci): run trusted Docker publish directly (#69803)
ethernet8023 Jul 23, 2026
87aaf87
fix(desktop): render session status dot from one primitive (sidebar, …
OutThisLife Jul 23, 2026
66747f1
fix(desktop): auto-expand a lane when starting a session in it, and s…
OutThisLife Jul 23, 2026
4db2f78
fix(desktop): honor optimistic session tombstones on list & tree refresh
OutThisLife Jul 23, 2026
56b2b5a
fix(desktop): mark session delete/archive in-flight so the row can't …
OutThisLife Jul 23, 2026
702f5f1
fix(agent): pass api_key_hint to mark_exhausted_and_rotate in credent…
liuhao1024 Jun 10, 2026
ad8c060
test: cover api_key_hint in strict pool doubles + real-pool routing r…
teknium1 Jul 22, 2026
ef8936d
fix(slack): handle leading-space text commands
nu476 Jul 2, 2026
5f3f194
fix(slack): dispatch mentioned bang commands in threads
cypres0099 Jul 13, 2026
a83ec95
fix(slack): avoid rich-text duplication in commands + keep slash thre…
th3wingman Jul 22, 2026
02f5ced
fix(slack): pass event-derived chat_type to _has_active_session_for_t…
drafish Jun 5, 2026
f36c748
fix(slack): stop consuming slash reply context outside slash sends
soynchux Jul 22, 2026
f8aef2e
Bound Slack response_url error reads
ooiuuii Jun 30, 2026
5243fca
fix(slack): surface retryable + Retry-After on send() rate-limit erro…
srojk34 Jun 25, 2026
0a53663
fix(slack): preserve typed command integrity across enrichment paths
PavelTajdus Jul 22, 2026
2a8d487
fix(slack): never silently drop or truncate slash replies (#19688)
teknium1 Jul 22, 2026
dcd3e91
chore(contributors): add email mappings for slack command salvage aut…
teknium1 Jul 22, 2026
1593bb8
test(slack): adapt salvaged tests to current main
teknium1 Jul 22, 2026
7989678
chore(contributors): map PavelTajdus bare-noreply email
teknium1 Jul 22, 2026
700c8bf
fix(slack): fall back to chat.postEphemeral, never public channel, fo…
teknium1 Jul 22, 2026
7337a9d
fix(cron): clear inherited thread_id for in_channel delivery
vb3 Jul 16, 2026
141d5db
fix(cron): scope in_channel thread_id clear to the live-send/seed gate
vb3 Jul 18, 2026
b8939e8
fix(slack): guard _resolve_thread_ts against async/cron deliveries us…
wesleysimplicio Jul 5, 2026
0c07a19
fix(cron): keep bare platform delivery on home target
wesleysimplicio Jul 6, 2026
f279f7f
Preserve Slack cron thread origin
jakelongvu-bot Jun 1, 2026
4f726ed
fix(slack): preserve media in standalone cron delivery
kandotrun Jul 21, 2026
c7b9dfa
fix(slack): resolve user IDs to DM channels in standalone cron delivery
Esther-Zhu023 Jul 22, 2026
a4795da
chore(contributors): map esther@feedmob.com -> Esther-Zhu023
teknium1 Jul 22, 2026
d8cd7ac
fix(relay): declare explicit relevance policy when require_mention is…
benbarclay Jul 23, 2026
4fb1796
fix(slack): evict oldest tracked thread timestamps
markoub Jun 22, 2026
91693f9
fix(slack): cap _user_name_cache to prevent unbounded growth
AhmetArif0 Jul 22, 2026
d42b295
fix(slack): bound _thread_context_cache with eviction on overflow
AhmetArif0 Jul 22, 2026
533e541
fix(slack): bound remaining per-message/per-user tracking structures …
teknium1 Jul 22, 2026
90d6296
chore(contributors): map markoub email for C16 cache-bounds salvage
teknium1 Jul 22, 2026
88a9557
Merge pull request #69812 from NousResearch/bb/desktop-tab-close-shift
OutThisLife Jul 23, 2026
2ebeede
fmt(js): `npm run fix` on merge (#69823)
hermes-seaeye[bot] Jul 23, 2026
406d7a6
fix(desktop): split steer and queue keyboard shortcuts (#69797)
ethernet8023 Jul 23, 2026
3f08201
Fix Slack peer bot status routing loops
Jun 23, 2026
2168df3
fix(slack): harden parent-text wake check against None + restore fixt…
teknium1 Jul 22, 2026
69e15d6
fix(slack): filter unlabeled app and bot authored events
ahmadashfq May 31, 2026
49497bc
fix(slack): handle edited-in bot mentions
Jul 15, 2026
8ed7660
style(slack): wrap edited mention conditionals
Jul 15, 2026
7f9cab1
feat(slack): add ignore_other_user_mentions option
tavva Jul 7, 2026
286ec6a
fix(slack): count pipe-form bot mentions as mentioned in ignore gate
tavva Jul 16, 2026
f50e1e9
docs(slack): document ignore_other_user_mentions
tavva Jul 16, 2026
094c883
Add Slack thread mention gating
Jun 30, 2026
3886332
Harden gateway mass mention handling
YLChen-007 May 16, 2026
b416907
feat(slack): require_mention_channels per-channel force-mention override
teknium1 Jul 22, 2026
0bbf679
test(slack): add peer-agent smoke target
LeonSGP43 Jun 24, 2026
2c159f0
chore(contributors): add email mappings for slack C10 reply-storm sal…
teknium1 Jul 22, 2026
f31c10a
test/docs(slack): force-clear new gating env vars; document new options
teknium1 Jul 22, 2026
ff6d86e
chore(contributors): map YLChen-007 bare-noreply email
teknium1 Jul 22, 2026
f320f3e
fix(computer-use): prefer X11 active window when z_index ties
HexLab98 Jul 23, 2026
a57bab1
test(computer-use): cover Linux X11 active-window selection
HexLab98 Jul 23, 2026
9881328
fix(computer-use): skip X11 active-window probe for exact targets
HexLab98 Jul 23, 2026
b0b7f15
test(computer-use): assert exact capture skips X11 active-window probe
HexLab98 Jul 23, 2026
c428e72
fix(cli): honor custom_providers in preflight shrink warning
HexLab98 Jul 23, 2026
125fac7
test(cli): cover custom provider false shrink warning
HexLab98 Jul 23, 2026
b3ff5fc
fix(vision): resolve namespaced custom provider overrides
helix4u Jul 23, 2026
390b03c
fix(cli): persist provider on global model switch
helix4u Jul 23, 2026
936b407
fix(desktop): free code-block scrollbar & last-line selection from th…
OutThisLife Jul 23, 2026
3dd9d5e
fix(tui_gateway): tolerate late clarify + terminal.read replies after…
OutThisLife Jul 23, 2026
507d479
fix(clarify): one canonical timeout across CLI, TUI/desktop, and gate…
OutThisLife Jul 23, 2026
7d28e84
fix(gateway): deliver assistant prose before the clarify poll (#69775)
OutThisLife Jul 23, 2026
d21165c
fix(desktop): keep clarify answerable across reconnect/hydration + to…
OutThisLife Jul 23, 2026
46fb102
Merge pull request #69841 from NousResearch/bb/salvage-69428-expandab…
OutThisLife Jul 23, 2026
dc86196
fix(desktop): clarify options defensive rendering and layout fix (#69…
OutThisLife Jul 23, 2026
328e4f5
fmt(js): `npm run fix` on merge (#69852)
hermes-seaeye[bot] Jul 23, 2026
5fccc9a
fix(desktop): stop model-switch dup + route recovery resumes to the o…
OutThisLife Jul 23, 2026
6096f73
feat(desktop): add keyboard navigation to clarify choices (#69799)
OutThisLife Jul 23, 2026
143942d
fix(desktop): scope the remembered session id per profile
OutThisLife Jul 23, 2026
62bfba5
fix(gateway): hide [System:] bookkeeping markers from every transcript
OutThisLife Jul 23, 2026
5f4c952
fix(slack): support MEDIA attachments in send_message
HexLab98 Jul 19, 2026
8df8f86
test(slack): cover send_message MEDIA delivery
HexLab98 Jul 19, 2026
57f8ba3
fix(slack): open DMs for user send targets
davesecops May 3, 2026
40351d0
fix(slack): resolve file events with cached workspace team
robzolkos May 22, 2026
f54e870
fix(platforms): block image upload redirects to private URLs
necoweb3 Jul 12, 2026
5bb933e
fix(slack): reject unauthorized users before event construction
necoweb3 Jun 29, 2026
c83a196
fix(slack): gate message files before metadata fetch
necoweb3 Jun 29, 2026
4ab4894
fix(gateway): make post-stream media delivery explicit-only
teknium1 Jul 22, 2026
994a405
fix(slack): resolve bare user targets to DMs across all adapter send …
teknium1 Jul 22, 2026
527c68b
chore(contributors): add email mapping for slack media salvage (robzo…
teknium1 Jul 22, 2026
b0358cf
fix(slack): unify DM-resolution caches and bound wave-2 caches (C16 p…
teknium1 Jul 23, 2026
8e01309
fix(tui_gateway): preserve websocket batch order (#69684)
helix4u Jul 23, 2026
e1367b4
fix(desktop): let clarify choices and overlays keep their keys from t…
OutThisLife Jul 23, 2026
e59dcf4
fix(desktop): end the #67603 model-switch dup, cross-profile session …
OutThisLife Jul 23, 2026
ca16a8e
fmt(js): `npm run fix` on merge (#69879)
hermes-seaeye[bot] Jul 23, 2026
7cbdcf1
fix(desktop): render remote markdown images in chat (#57944)
helix4u Jul 23, 2026
a014991
fix(tui_gateway): skip credential warning for keyless custom providers
OutThisLife Jul 23, 2026
58ffc10
fix(desktop): stop spurious provider onboarding from credential warnings
OutThisLife Jul 23, 2026
c3602f7
fix(desktop): route tiled session resumes to the owning profile
OutThisLife Jul 23, 2026
c1b0f6f
feat(kanban): per-task model dropdown — set/override worker model+pro…
teknium1 Jul 23, 2026
26f1f6a
feat(desktop): improve tool call detail views (#69868)
ethernet8023 Jul 23, 2026
61e7db2
Merge pull request #69887 from NousResearch/bb/tile-resume-profile
OutThisLife Jul 23, 2026
0721d2e
Merge pull request #69884 from NousResearch/bb/salvage-55707-onboarding
OutThisLife Jul 23, 2026
a8e6c0f
fix(dashboard): isolate Desktop-inherited env from standalone launch …
OutThisLife Jul 23, 2026
030822b
fix: resolve cua-driver from user-local install paths
zengzheqing Jun 30, 2026
2f9d88c
fix: resolve cua-driver across computer-use surfaces
zengzheqing Jul 21, 2026
be96f22
fix(computer_use): probe resolved cua-driver path in post_setup
OutThisLife Jul 23, 2026
8ceada6
fix(computer_use): pass --no-overlay to cua-driver on Linux/WSL2 to p…
DavidMetcalfe Jun 27, 2026
f43ff5b
fix(computer_use): mock _cua_no_overlay in existing tests, fix platfo…
DavidMetcalfe Jun 28, 2026
8d4f7a0
fix(computer_use): refine auto-detect to headless/WSL2 only, add driv…
DavidMetcalfe Jun 28, 2026
f7a6c7a
fix(computer_use): add explicit encoding to /proc/version open()
DavidMetcalfe Jun 28, 2026
3d84689
fix(computer_use): address sweeper feedback on --no-overlay subproces…
DavidMetcalfe Jul 17, 2026
de5ece9
fix(ci): report E2E evidence upload failures (#69901)
ethernet8023 Jul 23, 2026
f957fe3
fix(computer_use): default --no-overlay on macOS for idle CPU
OutThisLife Jul 23, 2026
12ad13d
perf(computer_use): cap capture size and cache vision routing
OutThisLife Jul 23, 2026
8b6d34a
test(computer_use): pin resolved driver for update-check tests
OutThisLife Jul 23, 2026
cdc123e
fix(computer_use): only disable agent cursor after session handshake
OutThisLife Jul 23, 2026
a217254
Merge pull request #69902 from NousResearch/bb/salvage-cua-driver-path
OutThisLife Jul 23, 2026
58e3d41
fix(desktop): render agent credit notices as toasts (#69808)
OutThisLife Jul 23, 2026
b8a2b9b
feat(desktop): native OS credit alerts + billing-page nudge (#69808)
OutThisLife Jul 23, 2026
69b97a9
Merge remote-tracking branch 'origin/main' into bb/salvage-53841-no-o…
OutThisLife Jul 23, 2026
59a735b
feat(credits): report $used of $cap instead of % in the usage notice
OutThisLife Jul 23, 2026
d010220
fix(desktop): de-dupe credit toast icon, band-color the figure, split…
OutThisLife Jul 23, 2026
664b131
fix(desktop): billing page always fetches fresh state (team-account d…
OutThisLife Jul 23, 2026
8cfc9e4
chore(desktop): dev-only credit-notice demo hotkey
OutThisLife Jul 23, 2026
d3d989c
feat(desktop): show credit-usage notices as toasts (#69808) (#69828)
OutThisLife Jul 23, 2026
93f8da5
Merge pull request #69903 from NousResearch/bb/salvage-53841-no-overlay
OutThisLife Jul 23, 2026
cc1765d
Merge remote-tracking branch 'origin/main' into bb/computer-use-perf
OutThisLife Jul 23, 2026
7168845
Merge pull request #69909 from NousResearch/bb/computer-use-perf
OutThisLife Jul 23, 2026
9859e1f
fix(voice): speak the whole turn, not just its first bubble; idle-flu…
OutThisLife Jul 23, 2026
3e163d2
Merge pull request #69936 from NousResearch/bb/voice-speak-whole-turn
OutThisLife Jul 23, 2026
7c9d052
fmt(js): `npm run fix` on merge (#69939)
hermes-seaeye[bot] Jul 23, 2026
813ddb4
fix(desktop): keep gateway session alive across Vite HMR
OutThisLife Jun 26, 2026
1943c1b
fix(desktop): dedup profile in HMR adoptBoot
OutThisLife Jun 26, 2026
cbea2ac
fix(desktop): gate HMR session-survival entirely out of prod builds
OutThisLife Jul 23, 2026
ecc6aec
fix(desktop): isolate gateway HMR survivor across vitest cases
OutThisLife Jul 23, 2026
44b171f
fmt(js): `npm run fix` on merge (#69941)
hermes-seaeye[bot] Jul 23, 2026
8fc2782
Merge pull request #69938 from NousResearch/bb/desktop-dev-fixes
OutThisLife Jul 23, 2026
953cbc0
fix(state): refuse WAL on SQLite builds with the WAL-reset bug
HexLab98 Jul 23, 2026
a94f8e6
test(state): cover SQLite WAL-reset version gate and doctor probe
HexLab98 Jul 23, 2026
7419de6
refactor: simplify WAL-reset gate warning dedup + tuple handling
Jul 23, 2026
8058e01
refactor: dedupe check_info call + fix trailing whitespace in doctor
Jul 23, 2026
9220c0c
fix(agent): close tool-result tails on invalid-tool and truncated-too…
fangliquanflq Jul 23, 2026
2841a9c
chore: add contributor email mapping for fangliquanflq
kshitijk4poor Jul 23, 2026
4c99a44
fix: hermes memory status now reads actual config instead of hardcode…
huajiang-tubi May 11, 2026
c82c578
test: cover config-aware memory status labels + AUTHOR_MAP entry
Jul 23, 2026
97d51ca
fix: use canonical _get_platform_tools resolver for memory tool status
Jul 23, 2026
91546b8
fix: preserve named custom provider vision overrides
wz-heng Jul 23, 2026
ac6de5a
feat(skills): add 7-agent-pipeline — mandatory multi-agent workflow
Jul 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 0 additions & 3 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -97,9 +97,6 @@ packaging/
plans/
.plans/

# ACP registry manifest (icon + agent.json) — not consumed at runtime
acp_registry/

# Repo-level dotfiles that are git-only or dev-tooling config
.env.example
.envrc
Expand Down
5 changes: 4 additions & 1 deletion .github/actions/detect-changes/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ description: >-

inputs:
github-token:
description: Token for the GitHub API (gh CLI). Pass secrets.AUTOFIX_BOT_PAT from the calling workflow.
description: Token for the GitHub API (gh CLI). Pass steps.app-token.outputs.token from the calling workflow.
required: false
default: ${{ github.token }}

Expand Down Expand Up @@ -39,6 +39,9 @@ outputs:
ci_review:
description: Require CI-sensitive file review label.
value: ${{ steps.classify.outputs.ci_review }}
ci_review_files:
description: JSON list of CI-sensitive files changed by the pull request.
value: ${{ steps.classify.outputs.ci_review_files }}

runs:
using: composite
Expand Down
69 changes: 69 additions & 0 deletions .github/actions/get-app-token/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: Get GitHub App Token
description: >-
Mint a short-lived (1-hour) installation access token from the repo's
GitHub App, replacing the long-lived AUTOFIX_BOT_PAT. App tokens get
5,000 req/hr per installation (vs 1,000 for the default GITHUB_TOKEN)
and are scoped to the App's installation permissions, not a user account.

Callers must source App credentials from a protected, main-only environment.
Never pass an App private key to a pull_request job, a local action, or a
reusable workflow resolved from an untrusted PR ref. The fallback keeps a
trusted caller functional when its protected environment is misconfigured.

Composite actions cannot access contexts directly, so callers pass the
public vars.APP_CLIENT_ID and protected secrets.APP_PRIVATE_KEY as inputs.
When the private key is empty, the fallback fires.

inputs:
client-id:
description: GitHub App Client ID. Pass vars.APP_CLIENT_ID from the calling workflow.
required: false
default: ''
private-key:
description: GitHub App private key PEM. Pass secrets.APP_PRIVATE_KEY from the calling workflow.
required: false
default: ''
owner:
description: GitHub App installation owner. Empty scopes the token to the current repository.
required: false
default: ''
repositories:
description: Comma- or newline-separated repositories to scope within the installation owner.
required: false
default: ''

outputs:
token:
description: A GitHub App installation access token (1-hour TTL), or GITHUB_TOKEN on forks.
value: ${{ steps.app-token.outputs.token || steps.fallback.outputs.token }}

runs:
using: composite
steps:
- name: Check if App credentials exist
id: check
shell: bash
env:
CLIENT_ID: ${{ inputs.client-id }}
run: |
if [ -n "$CLIENT_ID" ]; then
echo "has_app=true" >> "$GITHUB_OUTPUT"
else
echo "has_app=false" >> "$GITHUB_OUTPUT"
fi

- name: Create GitHub App token
id: app-token
if: steps.check.outputs.has_app == 'true'
uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
with:
client-id: ${{ inputs.client-id }}
private-key: ${{ inputs.private-key }}
owner: ${{ inputs.owner }}
repositories: ${{ inputs.repositories }}

- name: Fall back to GITHUB_TOKEN
id: fallback
if: steps.check.outputs.has_app != 'true'
shell: bash
run: echo "token=${{ github.token }}" >> "$GITHUB_OUTPUT"
Loading