Peter Steinberger
8e09568bc7
perf: expand base vitest thread lanes
2026-03-22 11:59:38 -07:00
Peter Steinberger
7d1ab5baca
fix: restore CI type and baseline checks
2026-03-22 18:46:50 +00:00
Peter Steinberger
1ceaad18a6
test: harden vitest no-isolate coverage
2026-03-22 10:48:21 -07:00
Peter Steinberger
14074d3337
fix: restore repo-wide gate after upstream sync
2026-03-22 17:16:43 +00:00
Peter Steinberger
49091ebcbd
chore: update dependencies except carbon
2026-03-22 08:37:03 -07:00
Peter Steinberger
8727338372
perf: extract lightweight runtime seams
2026-03-22 05:03:10 +00:00
Vincent Koc
397b0d85f5
fix(tui): split assistant error formatting seam
2026-03-20 00:06:12 -07:00
liyuan97
b64f4e313d
MiniMax: add M2.7 models and update default to M2.7 ( #49691 )
...
* MiniMax: add M2.7 models and update default to M2.7
- Add MiniMax-M2.7 and MiniMax-M2.7-highspeed to provider catalog and model definitions
- Update default model from MiniMax-M2.5 to MiniMax-M2.7 across onboard, portal, and provider configs
- Update isModernMiniMaxModel to recognize M2.7 prefix
- Update all test fixtures to reflect M2.7 as default
Made-with: Cursor
* MiniMax: add extension test for model definitions
* update 2.7
* feat: add MiniMax M2.7 models and update default (#49691 ) (thanks @liyuan97)
---------
Co-authored-by: George Zhang <georgezhangtj97@gmail.com >
2026-03-18 09:24:37 -07:00
Nimrod Gutman
9aac55d306
Add /btw side questions ( #45444 )
...
* feat(agent): add /btw side questions
* fix(agent): gate and log /btw reviews
* feat(btw): isolate side-question delivery
* test(reply): update route reply runtime mocks
* fix(btw): complete side-result delivery across clients
* fix(gateway): handle streamed btw side results
* fix(telegram): unblock btw side questions
* fix(reply): make external btw replies explicit
* fix(chat): keep btw side results ephemeral in internal history
* fix(btw): address remaining review feedback
* fix(chat): preserve btw history on mobile refresh
* fix(acp): keep btw replies out of prompt history
* refactor(btw): narrow side questions to live channels
* fix(btw): preserve channel typing indicators
* fix(btw): keep side questions isolated in chat
* fix(outbound): restore typed channel send deps
* fix(btw): avoid blocking replies on transcript persistence
* fix(btw): keep side questions fast
* docs(commands): document btw slash command
* docs(changelog): add btw side questions entry
* test(outbound): align session transcript mocks
2026-03-14 17:27:54 +02:00
Peter Steinberger
72ba05504e
test: resolve rebase conflicts in gateway coverage
2026-03-13 01:38:19 +00:00
Peter Steinberger
4dd4e36450
build: update deps and fix vitest 4 regressions
2026-03-13 01:02:00 +00:00
Peter Steinberger
d5bffcdeab
feat: add fast mode toggle for OpenAI models
2026-03-12 23:31:31 +00:00
lisitan
f3c00fce15
fix: prevent duplicate assistant messages in TUI ( fixes #35278 ) ( #35364 )
...
* fix: prevent duplicate assistant messages in TUI (fixes #35278 )
When startAssistant() is called multiple times with the same runId,
it was creating duplicate AssistantMessageComponent instances instead
of reusing the existing one. This caused messages to appear twice in
the terminal UI.
The fix checks if a component already exists for the runId before
creating a new one. If it exists, we update its text instead of
appending a duplicate component.
Test coverage includes verification that:
- Only one component is created when startAssistant is called twice
- The second text replaces the first
- Component count remains 1 (prevents regression)
Generated with [Claude Code](https://claude.ai/code )
via [Happy](https://happy.engineering )
Co-Authored-By: Claude <noreply@anthropic.com >
Co-Authored-By: Happy <yesreply@happy.engineering >
* Changelog: add TUI duplicate-render fix entry
---------
Co-authored-by: 沐沐 <mumu@example.com >
Co-authored-by: Claude <noreply@anthropic.com >
Co-authored-by: Happy <yesreply@happy.engineering >
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-03-12 02:59:42 -04:00
Peter Steinberger
5ca780fa78
feat: expose runtime version in gateway status
2026-03-12 02:55:31 +00:00
Vincent Koc
a3dc4b5a57
fix(tui): improve color contrast for light-background terminals ( #40345 )
...
* fix(tui): improve colour contrast for light-background terminals (#38636 )
Detect light terminal backgrounds via COLORFGBG and apply a WCAG
AA-compliant light palette. Adds OPENCLAW_THEME=light|dark env var
override for terminals without auto-detection.
Uses proper sRGB linearisation and WCAG 2.1 contrast ratios to pick
whichever text palette (dark or light) has higher contrast against
the detected background colour.
Co-authored-by: ademczuk <ademczuk@users.noreply.github.com >
* Update CHANGELOG.md
---------
Co-authored-by: ademczuk <andrew.demczuk@gmail.com >
Co-authored-by: ademczuk <ademczuk@users.noreply.github.com >
2026-03-08 16:17:28 -07:00
arceus77-7
492fe679a7
feat(tui): infer workspace agent when launching TUI ( #39591 )
...
Merged via squash.
Prepared head SHA: 23533e24c4
Co-authored-by: arceus77-7 <261276524+arceus77-7@users.noreply.github.com >
Co-authored-by: altaywtf <9790196+altaywtf@users.noreply.github.com >
Reviewed-by: @altaywtf
2026-03-08 13:31:11 +03:00
Vincent Koc
6cb889da8c
TUI: type setSession test mocks
2026-03-07 18:33:46 -08:00
Peter Steinberger
46008178d1
fix: isolate TUI /new sessions per client
...
Landed from contributor PR #39238 by @widingmarcus-cyber.
Co-authored-by: Marcus Widing <widing.marcus@gmail.com >
2026-03-08 02:31:15 +00:00
Peter Steinberger
265367d99b
fix(gateway): land #28428 from @l0cka
...
Landed from contributor PR #28428 by @l0cka.
Co-authored-by: Daniel Alkurdi <danielalkurdi@gmail.com >
2026-03-07 22:51:08 +00:00
Peter Steinberger
b9dd6e99b6
fix(daemon): avoid freezing Windows PATH in task scripts ( #39139 , thanks @Narcooo)
...
Co-authored-by: majx_mac <mjxnarco@pku.edu.cn >
2026-03-07 21:15:01 +00:00
Peter Steinberger
66de964c59
refactor(tui): dedupe mode-specific exec secret fixtures
2026-03-07 17:58:31 +00:00
Peter Steinberger
e60b28fd1f
refactor(tui): dedupe gateway token resolution path
2026-03-07 17:58:31 +00:00
Vincent Koc
42e3d8d693
Secrets: add inline allowlist review set ( #38314 )
...
* Secrets: add inline allowlist review set
* Secrets: narrow detect-secrets file exclusions
* Secrets: exclude Docker fingerprint false positive
* Secrets: allowlist test and docs false positives
* Secrets: refresh baseline after allowlist updates
* Secrets: fix gateway chat fixture pragma
* Secrets: format pre-commit config
* Android: keep talk mode fixture JSON valid
* Feishu: rely on client timeout injection
* Secrets: allowlist provider auth test fixtures
* Secrets: allowlist onboard search fixtures
* Secrets: allowlist onboard mode fixture
* Secrets: allowlist gateway auth mode fixture
* Secrets: allowlist APNS wake test key
* Secrets: allowlist gateway reload fixtures
* Secrets: allowlist moonshot video fixture
* Secrets: allowlist auto audio fixture
* Secrets: allowlist tiny audio fixture
* Secrets: allowlist embeddings fixtures
* Secrets: allowlist resolve fixtures
* Secrets: allowlist target registry pattern fixtures
* Secrets: allowlist gateway chat env fixture
* Secrets: refresh baseline after fixture allowlists
* Secrets: reapply gateway chat env allowlist
* Secrets: reapply gateway chat env allowlist
* Secrets: stabilize gateway chat env allowlist
* Secrets: allowlist runtime snapshot save fixture
* Secrets: allowlist oauth profile fixtures
* Secrets: allowlist compaction identifier fixture
* Secrets: allowlist model auth fixture
* Secrets: allowlist model status fixtures
* Secrets: allowlist custom onboarding fixture
* Secrets: allowlist mattermost token summary fixtures
* Secrets: allowlist gateway auth suite fixtures
* Secrets: allowlist channel summary fixture
* Secrets: allowlist provider usage auth fixtures
* Secrets: allowlist media proxy fixture
* Secrets: allowlist secrets audit fixtures
* Secrets: refresh baseline after final fixture allowlists
* Feishu: prefer explicit client timeout
* Feishu: test direct timeout precedence
2026-03-06 19:35:26 -05:00
Vignesh Natarajan
726ef48c2a
fix(tui): accept canonical session-key aliases in chat event routing
2026-03-05 22:01:06 -08:00
Vignesh Natarajan
8d4a2f2c59
fix(tui): preserve credential-like tokens in render sanitization
2026-03-05 21:06:07 -08:00
Vignesh Natarajan
6084c26d00
fix(tui): render final event error when assistant output is empty ( #14687 )
2026-03-05 18:16:43 -08:00
Josh Avant
fb289b7a79
Memory: handle SecretRef keys in doctor embeddings ( #36835 )
...
Merged via squash.
Prepared head SHA: c1a3d0caae
Co-authored-by: joshavant <830519+joshavant@users.noreply.github.com >
Co-authored-by: joshavant <830519+joshavant@users.noreply.github.com >
Reviewed-by: @joshavant
2026-03-05 20:05:59 -06:00
Vignesh Natarajan
cec5535096
fix(tui): prevent stale model indicator after /model
2026-03-05 17:39:19 -08:00
Josh Avant
72cf9253fc
Gateway: add SecretRef support for gateway.auth.token with auth-mode guardrails ( #35094 )
2026-03-05 12:53:56 -06:00
Lynn
9d941949c9
fix(tui): normalize session key to lowercase to match gateway canonicalization ( #34013 )
...
Merged via squash.
Prepared head SHA: cfe06ca131
Co-authored-by: lynnzc <6257996+lynnzc@users.noreply.github.com >
Co-authored-by: altaywtf <9790196+altaywtf@users.noreply.github.com >
Reviewed-by: @altaywtf
2026-03-04 09:53:38 +03:00
Peter Steinberger
6b85ec3022
docs: tighten subscription guidance and update MiniMax M2.5 refs
2026-03-03 00:02:37 +00:00
Peter Steinberger
8e48f7e353
fix(tui): honor explicit gateway auth for url overrides
2026-03-02 19:48:02 +00:00
Peter Steinberger
45888276a3
test(integration): dedupe messaging, secrets, and plugin test suites
2026-03-02 07:13:11 +00:00
Vincent Koc
b7615e0ce3
Exec/ACP: inject OPENCLAW_SHELL into child shell env ( #31271 )
...
* exec: mark runtime shell context in exec env
* tests(exec): cover OPENCLAW_SHELL in gateway exec
* tests(exec): cover OPENCLAW_SHELL in pty mode
* acpx: mark runtime shell context for spawned process
* tests(acpx): log OPENCLAW_SHELL in runtime fixture
* tests(acpx): assert OPENCLAW_SHELL in runtime prompt
* docs(env): document OPENCLAW_SHELL runtime markers
* docs(exec): describe OPENCLAW_SHELL exec marker
* docs(acp): document OPENCLAW_SHELL acp marker
* docs(gateway): note OPENCLAW_SHELL for background exec
* tui: tag local shell runs with OPENCLAW_SHELL
* tests(tui): assert OPENCLAW_SHELL in local shell runner
* acp client: tag spawned bridge env with OPENCLAW_SHELL
* tests(acp): cover acp client OPENCLAW_SHELL env helper
* docs(env): include acp-client and tui-local shell markers
* docs(acp): document acp-client OPENCLAW_SHELL marker
* docs(tui): document tui-local OPENCLAW_SHELL marker
* exec: keep shell runtime env string-only for docker args
* changelog: note OPENCLAW_SHELL runtime markers
2026-03-01 20:31:06 -08:00
Vignesh Natarajan
fca0467082
TUI: guard SIGTERM shutdown against setRawMode EBADF
2026-02-28 14:56:01 -08:00
Peter Steinberger
675764e866
refactor(tui): simplify stream boundary-drop modes
2026-02-26 20:54:29 +01:00
Peter Steinberger
b01273cfc6
fix: narrow finalize boundary-drop guard ( #27711 ) (thanks @scz2011)
2026-02-26 19:50:06 +00:00
AI Assistant
d6cbaea434
fix(tui): preserve streamed text during tool call transitions
...
Fixes #27674
The TUI was erasing already-streamed assistant text when tool calls
were triggered. This happened because the finalize() method in
TuiStreamAssembler was not using the protectBoundaryDrops option
when updating run state.
Now finalize() applies the same boundary drop protection as
ingestDelta(), ensuring that streamed text before tool calls is
preserved when the final payload drops earlier content blocks.
2026-02-26 19:50:06 +00:00
Peter Steinberger
2d6d6797d8
test: fix post-merge config and tui command-handler tests
2026-02-24 04:38:21 +00:00
Workweaver Ralph
b9e587fb63
fix(tui): guard sendMessage when disconnected; reset readyPromise on close
...
(cherry picked from commit df827c3eef )
2026-02-24 04:33:51 +00:00
Peter Steinberger
1c753ea786
test: dedupe fixtures and test harness setup
2026-02-23 05:45:54 +00:00
Phineas1500
331b728b8d
fix(tui): add OSC 8 hyperlinks for wrapped URLs ( #17814 )
...
* feat(tui): add OSC 8 hyperlinks to make wrapped URLs clickable
Long URLs that exceed terminal width get broken across lines by pi-tui's
word wrapping, making them unclickable. Post-process rendered markdown
output to add OSC 8 terminal hyperlink sequences around URL fragments,
so each line fragment links to the full URL. Gracefully degrades on
terminals without OSC 8 support.
* tui: harden OSC8 URL extraction and prefix resolution
* tui: add changelog entry for OSC 8 markdown hyperlinks
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-02-22 19:09:07 -05:00
Tak Hoffman
f8171ffcdc
Config UI: tag filters and complete schema help/labels coverage ( #23796 )
...
* Config UI: add tag filters and complete schema help/labels
* Config UI: finalize tags/help polish and unblock test suite
* Protocol: regenerate Swift gateway models
2026-02-22 15:17:07 -06:00
Peter Steinberger
38752338dc
refactor(tui): dedupe handlers and formatter test setup
2026-02-22 14:08:51 +00:00
Vignesh Natarajan
b4cdffc7a4
TUI: make Ctrl+C exit behavior reliably responsive
2026-02-22 01:28:55 -08:00
Vignesh Natarajan
b9e9fbc97c
TUI: preserve RTL text order in terminal output
2026-02-22 01:10:03 -08:00
Peter Steinberger
0c1a52307c
fix: align draft/outbound typings and tests
2026-02-22 08:03:29 +00:00
Peter Steinberger
0511e28a27
test(ui): use lightweight clears in theme and telegram media retry setup
2026-02-22 08:01:16 +00:00
Peter Steinberger
185fba1d22
refactor(agents): dedupe plugin hooks and test helpers
2026-02-22 07:44:57 +00:00
Peter Steinberger
b55979844b
test(tui): dedupe local bind loopback assertions
2026-02-22 07:35:55 +00:00