1476 Commits

Author SHA1 Message Date
WK Wong
11eb9d8cc8 fix(agent): add wall-clock timeout for streaming LLM requests 2026-07-14 15:51:22 +08:00
chengyongru
b7048cf76a
feat(webui): support document attachments with ingress safeguards (#4771)
* feat: support document attachments in webui

* fix(webui): normalize document attachment MIME

* refactor(webui): move attachment policy out of channel

* fix(webui): reject oversized attachments before send

* fix(webui): align Portuguese attachment errors

* refactor(webui): separate ingress and transport limits

* fix(webui): reject malformed attachment payloads
2026-07-14 14:47:42 +08:00
chengyongru
1643aa7ef5 fix(shell): narrow PowerShell UTF-8 configuration
Avoid changing native pipeline input encoding and consolidate real PowerShell checks to reduce Windows runner startup flakiness.
2026-07-14 13:50:02 +08:00
chengyongru
9f8c2cb1bf test(shell): wait for Windows PowerShell sessions 2026-07-14 13:50:02 +08:00
chengyongru
61afbffc89 fix(shell): configure PowerShell UTF-8 output 2026-07-14 13:50:02 +08:00
adabarbulescu
9cdf17f5d5 Fix Windows exec UTF-16 output decoding 2026-07-14 13:50:02 +08:00
chengyongru
3b14d59dcd fix(telegram): fall back on overflow HTML rejection 2026-07-14 12:25:28 +08:00
chengyongru
a335ce07db fix(telegram): bound streamed HTML overflow chunks 2026-07-14 12:25:28 +08:00
chengyongru
6e462e62a6 fix(dream): limit newline normalization to CRLF 2026-07-14 00:30:50 +08:00
bingqilinweimaotai
ed47cf1562 fix(dream): ignore line-ending-only memory diffs 2026-07-14 00:30:50 +08:00
chengyongru
234e895e5a
fix(codex): align OAuth defaults and setup docs (#4910)
* fix(codex): align OAuth defaults and setup docs

* docs(codex): clarify provider settings key

* docs(codex): simplify OAuth setup guidance
2026-07-13 17:04:33 +08:00
chengyongru
8c9110fee3
fix(dream): filter non-Dream history commits (#4905)
* fix(dream): filter non-Dream history commits

* fix(dream): resolve filtered commit diffs
2026-07-13 17:04:12 +08:00
chengyongru
e864fba522
fix: align optional dependency contracts (#4907)
* fix: align optional dependency contracts

* ci: avoid duplicate test suite

* test: drop removed langsmith assertions

* test: rely on generic extra coverage

* test: restore existing plugin coverage
2026-07-13 16:58:19 +08:00
Xubin Ren
a65a6f334c test(gateway): cover slow health clients 2026-07-13 15:16:51 +08:00
Xubin Ren
3824206ab2 fix(gateway): harden health endpoint exposure 2026-07-13 15:16:51 +08:00
Xubin Ren
2c78976728
fix(cli): restore enter before webui prompts 2026-07-13 13:32:29 +08:00
Xubin Ren
fe0717b385
feat(webui): add guided setup flows
* feat(channels): add guided setup flows

* test(channels): preserve setup config values

* fix(channels): reflect saved setup state

* refactor(channels): simplify setup state metadata

* fix(channels): harden setup lifecycle

* refactor(channels): centralize setup contracts

* fix(channels): route setup actions through webui shim

* fix(channels): adapt settings for compact screens

* fix(models): preserve default preset display

* feat(models): add curated Codex catalog

* fix(webui): stop attached gateway on interrupt

* fix(webui): simplify apps catalog

* docs(webui): clarify apps and runtime features

* feat(settings): add guided capability setup

* fix(webui): harden setup and managed services

* test: keep managed runtime checks portable

* test: scope POSIX runtime coverage

* fix(webui): simplify file settings

* feat(files): bundle document reading

* fix(webui): harden setup request boundaries

* fix(webui): prevent channel setup status squeeze

* fix(settings): group provider compatibility aliases

* refactor(settings): remove redundant setup surfaces

* fix(webui): harden guided setup lifecycle

* fix(webui): preserve channel setup compatibility
2026-07-13 13:11:46 +08:00
chengyongru
791c7fd505 fix(memory): prune encoded Dream sessions 2026-07-13 12:07:29 +08:00
chengyongru
6d406d93c9 fix(discord): route unauthorized DMs to pairing 2026-07-13 12:05:04 +08:00
Xubin Ren
45d1caba1d fix(webui): prevent stale workspace scope restore 2026-07-12 22:08:27 +08:00
Xubin Ren
89acea6fe1 fix(webui): allow remote workspace access reduction 2026-07-12 22:08:27 +08:00
Xubin Ren
01e4f3762a fix(agent): keep runtime context within its lifecycle 2026-07-12 00:35:17 +08:00
chengyongru
c339ce8bba refactor(agent): remove obsolete MCP prompt annotations 2026-07-12 00:35:17 +08:00
chengyongru
93de413432 feat(agent): expose request routing metadata through my 2026-07-12 00:35:17 +08:00
chengyongru
d349b65713 test(agent): remove obsolete runtime context assertions 2026-07-12 00:35:17 +08:00
chengyongru
54b250430d fix(session): stop synthesizing MCP preset prompt context 2026-07-12 00:35:17 +08:00
chengyongru
e206ee4e70 refactor(agent): remove legacy image mode prompt injection 2026-07-12 00:35:17 +08:00
chengyongru
2eb7398f34 fix(agent): close runtime context persistence gaps 2026-07-12 00:35:17 +08:00
chengyongru
f75d3519db feat(agent): add persistent runtime context providers 2026-07-12 00:35:17 +08:00
chengyongru
7f8c3453e1 refactor(agent): gate sustained goals behind explicit /goal
Replace the legacy long-goal skill contract with command-scoped goal tools and runtime guidance. Keep goal state durable across continuations while restricting create and replace mutations to explicit user /goal turns.
2026-07-12 00:35:17 +08:00
Xubin Ren
edf78e7054 fix(mcp): keep transport cleanup in owner tasks 2026-07-11 11:45:20 +08:00
chengyongru
bd0dd85f44 test: isolate MCP reconnect DNS transport
Maintainer edit: the real MCP reconnect regression test can bind the class-level PinnedDNSAsyncTransport lock to its pytest event loop. Patch the MCP module to use a test-local transport subclass so later async tests do not inherit that loop-bound lock.
2026-07-11 11:45:20 +08:00
chengyongru
469d004773 test: add MCP reconnect crash regression
maintainer edit: port the real streamable-http idle-timeout reproduction from #4764 so this PR carries regression coverage for #4302's gateway crash path.

Co-authored-by: tjc0726 <49085201+tjc0726@users.noreply.github.com>
2026-07-11 11:45:20 +08:00
flyzstu
f3d1b9ca2d fix(mcp): defer stale stack cleanup during reconnect 2026-07-11 11:45:20 +08:00
Xubin Ren
c111aaa7ee fix(dream): gate periodic commits on content changes 2026-07-11 11:16:59 +08:00
Aleksander W. Oleszkiewicz (Alek)
9adcd3d923 adding tests to prevent regression 2026-07-11 11:16:59 +08:00
chengyongru
7675364eae fix(tools): enforce edit_file line hints 2026-07-11 01:14:50 +08:00
chengyongru
052fdc132d feat(tools): guard edit_file target lines 2026-07-11 01:14:50 +08:00
Eric Yang
9a1d1e64c7 fix(shell): harden kill path and add zombie reap tests
Skip process.kill() when returncode is already set so generic exception
handlers after a successful communicate() cannot raise ProcessLookupError.
Suppress race kill failures and still run the safety-net reap.

Add unit and integration coverage for owned-PID reaping on normal exit,
timeout, exception, and exec-session kill/poll paths.
2026-07-10 20:19:44 +08:00
chengyongru
45a6466c2c style: trim CSI-u shortcut comments
Maintainer edit: simplify the explanatory comments for the CSI-u shortcut while preserving the existing behavior and regression coverage.
2026-07-10 19:32:47 +08:00
wangjunwei
99e04c2da2 fix(cli): handle CSI-u Shift+Enter instead of dumping raw escapes
Terminals speaking the CSI-u (kitty / fixterms) keyboard protocol -- kitty,
Ghostty, WezTerm, and terminal panes that default to it -- encode Shift+Enter
as the escape sequence "\x1b[13;2u". prompt_toolkit 3.0 has no support for
that protocol and no default mapping for the sequence, so its Vt100Parser
fails to recognise it and dumps the raw bytes ("^[[13;2u") straight into the
prompt buffer. The multiline-input work kept only Alt+Enter, so on these
terminals Shift+Enter now leaks visible escape garbage into the input.

Register "\x1b[13;2u" (absent from prompt_toolkit's default ANSI_SEQUENCES,
so setdefault() overrides nothing) and bind it to insert a newline, matching
the Alt+Enter behaviour. This is best-effort: prompt_toolkit cannot negotiate
the protocol, so we only react to a CSI-u sequence a terminal already emits;
terminals that collapse Shift+Enter into plain Enter fall back to Alt+Enter,
which stays the primary shortcut.

Add a real-PromptSession regression test asserting the sequence inserts a
newline rather than leaking raw escape bytes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-10 19:32:47 +08:00
chengyongru
fe7d94359b fix(agent): preserve runtime compatibility contracts 2026-07-10 17:54:34 +08:00
chengyongru
10930f3902 Revert "test(agent): probe runtime change amplification"
This reverts commit 85c73779f9cb6c4cd707fb51f80cb4e363861861.
2026-07-10 17:54:34 +08:00
chengyongru
6b7470646f test(agent): probe runtime change amplification 2026-07-10 17:54:34 +08:00
chengyongru
21f58cbabf refactor(agent): make resolver sole runtime owner 2026-07-10 17:54:34 +08:00
chengyongru
c9d3e74342 refactor(agent): require runtime for consolidation 2026-07-10 17:54:34 +08:00
chengyongru
5bd3d1e0af refactor(agent): centralize runtime default mutations 2026-07-10 17:54:34 +08:00
chengyongru
af85c356b8 refactor(agent): capture subagent runtime before spawn 2026-07-10 17:54:34 +08:00
chengyongru
198fd9f869 refactor(agent): capture runtime at turn admission 2026-07-10 17:54:34 +08:00
chengyongru
45ace23580 test(agent): assert subagent runtime generation 2026-07-10 17:54:34 +08:00