Commit Graph

1578 Commits

Author SHA1 Message Date
Hypatia May
66585635c8 fix: serialize paginated session searches 2026-07-24 19:47:23 +08:00
Turtle
0ffa8f9740 docs: sync canonical retry docs with EMPTY_RESPONSE default
Address ds-review-bot: the bounded-request-recovery Agent Note stated the
shipped default carried four transient codes, and the llm-streaming contract
omitted the new cross-adapter empty-response classification. Update both
current-state contract docs to the five-code default and cross-link the
empty-response bug-fix note.
2026-07-24 19:45:35 +08:00
Turtle
800bafda3b refactor(cli): parse dsh argv through one Commander adapter
Replace the dsh CLI's three hand-rolled parsing idioms (raw argv[0]/includes
dispatch in bin.ts, per-mode node:util parseArgs in headless.ts/web.ts, and the
bespoke parseResumeArg scanner in dsh-app-boot) with a single Commander adapter
in apps/cli/src/args.ts. parseDshArgs resolves argv into a discriminated
DshInvocation union; bin.ts switches on the mode and dynamic-imports the chosen
module, which now consumes already-parsed values.

- web is a real subcommand; --host uses choices and --port an argParser range
  check, moving validation into the parser.
- --resume rejects empty and repeated forms; --prompt rejects empty; a config
  positional after --prompt and a root flag placed before web fail loud.
- adds --help/--version; removes parseResumeArg from dsh-app-boot.
- new apps/cli/tests/args.spec.ts (apps/*/tests added to vitest include,
  apps/cli/tests to tsconfig.host.json); the tui-agent keyless PTY smoke covers
  bin.ts dispatch end to end unchanged.
2026-07-24 19:43:59 +08:00
Tianyi Cui
985aceaa75 Merge branch 'master' into feat/send-unify 2026-07-24 19:40:38 +08:00
_Kerman
8d30062a17 Merge branch 'master' into xtr/rfc-context-injection-semantics 2026-07-24 19:37:30 +08:00
Tianyi Cui
f1fd9940c3 Merge commit 'de939d19b95074595910f2e53e463810094a297c' into worktree/pr345-retarget-stack 2026-07-24 19:33:08 +08:00
Tianyi Cui
0c8733bf47 Merge commit 'fd85df3d7f1c4904b9efd2066af230957b6c468b' into worktree/pr344-retarget-stack 2026-07-24 19:32:53 +08:00
Tianyi Cui
86d16d15b6 Merge remote-tracking branch 'origin/master' into worktree/pr343-retarget-latest-master 2026-07-24 19:32:25 +08:00
Turtle
207aab9d8d fix(llm): classify empty model completions as retryable EMPTY_RESPONSE
A well-formed provider stream that ends with finish_reason stop and zero
content blocks previously became a successful empty assistant message: the
turn completed silently, and drivers like goal-session counted the no-op
round. Both adapters now map that degenerate completion to a finish
{kind:'error'} with the new canonical EMPTY_RESPONSE code from dsh-llm, and
dsh-llm-retry adds the code to its default retryable set, so the existing
closed-step recovery path retries it and fails loud once the budget is
exhausted.

Covered by adapter unit tests, an llm-retry default-policy test, and a new
authored keyless ACP snapshot (empty-response-retry) with a deterministic
1 ms zero-jitter retry overlay.
2026-07-24 19:23:12 +08:00
Tianyi Cui
e14bac2692 Merge branch 'master' into worktree/fix-python-sdk-nested-subagent-notifications 2026-07-24 19:17:03 +08:00
Tianyi Cui
fd6713b496 docs(testing): propose keyless browser e2e lane for the web GUI
Design study for a deterministic, keyless browser e2e lane over the real
assembled web chain (chromium -> SSE/HTTP wire -> apiproxy -> agent loop ->
persistence), replayed through dsh-llm-replay from recorded session-log
fixtures, with aria-tree goldens plus in-process world-state assertions.

Synthesized from an OSS prior-art survey (LibreChat, ai-chatbot, lobe-chat,
OpenHands, cline, aimock...), a repo seam deep-dive, and three adversarial
critiques (doctrine, flakiness, YAGNI). Records the settled shape (no new
package, no suite factory, seed via the real persistence API, whenIdle
barrier stack, no transient-DOM assertions) and the open questions (LLM
seam, Loader-izing dsh web, header pin, golden breadth, settled signal).
2026-07-24 18:55:37 +08:00
Tianyi Cui
b65421431b docs(i18n): complete Agent Note translation fidelity 2026-07-24 18:38:27 +08:00
_Kerman
fb0ef82aa6 Merge remote-tracking branch 'origin/feat/send-unify' into xtr/agent-loop-message-machine
# Conflicts:
#	packages/client/runtime/src/client/sessions/fold-adapter.ts
2026-07-24 18:24:28 +08:00
_Kerman
879bc71864 refactor(agent): require explicit send options 2026-07-24 18:23:24 +08:00
Hypatia May
fec4ce52cc fix: batch cancellable title reads 2026-07-24 18:13:11 +08:00
Tianyi Cui
da3c12e548 docs(i18n): clarify subagent shutdown escalation 2026-07-24 18:12:16 +08:00
Tianyi Cui
0191a014dd docs(i18n): preserve authority constraints 2026-07-24 17:39:22 +08:00
_Kerman
1d9662a020 refactor(agent-loop): unify pending message representation 2026-07-24 17:23:33 +08:00
Turtle
081bb1a8fd Merge remote-tracking branch 'origin/master' into feat/send-unify
# Conflicts:
#	packages/client/runtime/src/client/sessions/fold-adapter.ts
2026-07-24 17:17:35 +08:00
Tianyi Cui
5860950d0a Merge refreshed #344 into docs/i18n-batch-rfc 2026-07-24 17:16:38 +08:00
Tianyi Cui
190240a133 Merge refreshed #343 into docs/i18n-batch-cds-postmortem 2026-07-24 17:14:57 +08:00
Tianyi Cui
c62ca61ccb Merge latest master into docs/i18n-batch-core 2026-07-24 17:13:25 +08:00
Hypatia May
96c5696f80 Merge remote-tracking branch 'origin/master' into session-query-tool
# Conflicts:
#	docs/architecture.i18n.yaml
#	docs/cordis-catalog/services.md
2026-07-24 17:12:03 +08:00
_Kerman
76d0e450ce fix(agent): preserve thrown error values 2026-07-24 17:11:58 +08:00
Tianyi Cui
bcb2bd2795 Merge refreshed #344 into docs/i18n-batch-rfc 2026-07-24 17:10:05 +08:00
07akioni
65e6a2adbe Merge branch 'master' into feat/trajectory 2026-07-24 17:06:25 +08:00
_Kerman
90e69a3123 refactor(agent): minimize inbox message contract 2026-07-24 17:00:42 +08:00
Turtle
d2b2539f3e Merge remote-tracking branch 'origin/feat/send-unify' into feat/send-unify
# Conflicts:
#	docs/architecture.i18n.yaml
#	docs/architecture.md
2026-07-24 16:58:32 +08:00
Tianyi Cui
c962db28da Merge refreshed #343 into docs/i18n-batch-cds-postmortem 2026-07-24 16:57:46 +08:00
Tianyi Cui
b040c6a1c9 Merge latest master into docs/i18n-batch-core 2026-07-24 16:55:08 +08:00
Turtle
80bbe959a7 Merge remote-tracking branch 'origin/master' into feat/send-unify 2026-07-24 16:52:46 +08:00
_Kerman
b3c1abac67 refactor(agent-loop): rely on eager session persistence 2026-07-24 16:40:33 +08:00
Hypatia May
6be11539e2 fix: bind session authorization to observations 2026-07-24 16:40:08 +08:00
Tianyi Cui
f5fe71d34a docs(i18n): fix final Agent Note semantics 2026-07-24 16:36:34 +08:00
_Kerman
6945a2c37d Merge remote-tracking branch 'origin/feat/send-unify' into xtr/agent-loop-message-machine 2026-07-24 16:31:49 +08:00
Turtle
bb124c2869 Merge branch 'master' into feat/send-unify 2026-07-24 16:31:00 +08:00
ZiyaZhang
33ee34b58e fix(tui): make resume picker full-screen 2026-07-24 01:29:35 -07:00
Turtle
c440217fde refactor(tui): defer cross-process resume locking 2026-07-24 01:29:35 -07:00
NI0317
54d986ed87 fix(tui): close resume handoff races 2026-07-24 01:29:35 -07:00
NI0317
2ae9f4fdf3 feat(tui): add safe session resume flow 2026-07-24 01:29:35 -07:00
Tianyi Cui
2db7342fc6 docs(i18n): address final Agent Note review 2026-07-24 16:13:20 +08:00
07akioni
6f5321cb37 feat: workspace select menu 2026-07-24 16:09:58 +08:00
_Kerman
31fb3a3f44 docs(agent): propose context injection semantics 2026-07-24 16:08:54 +08:00
_Kerman
45fc7fda3d refactor(agent-loop): separate injected context from turns 2026-07-24 16:05:52 +08:00
Tianyi Cui
d2b514030e Merge #344 into #345 2026-07-24 15:51:46 +08:00
Tianyi Cui
c53f9324bc Merge #343 into #344 2026-07-24 15:51:35 +08:00
Tianyi Cui
445bb89f03 docs(i18n): complete core batch review contract 2026-07-24 15:51:06 +08:00
Tianyi Cui
90a789c03a docs(i18n): preserve cancellation quiescence 2026-07-24 15:41:14 +08:00
Hypatia May
b488147c95 docs: correct session-query verification record (round 2) 2026-07-24 15:19:53 +08:00
Tianyi Cui
8e84aa6218 docs(i18n): normalize Agent Note terminology 2026-07-24 15:10:55 +08:00