Commit Graph
6353 Commits
Author SHA1 Message Date
Tianyi Cui 2e3afcbe82 Merge #344 review fixes into #345 2026-07-24 13:57:34 +08:00
Tianyi Cui c0eacae2ba docs(i18n): align Agent Note terminology 2026-07-24 13:57:16 +08:00
Turtle d3e24356ba refactor(goal): loosen executor presence checks 2026-07-24 13:53:06 +08:00
Tianyi Cui d6d50deb24 refactor(agent): expose resolved input acceptance 2026-07-24 13:52:25 +08:00
Turtle d613fdb073 fix(agent-loop): third review pass — disposal discard ordering, flush guard, docs
Address a fresh-eye review of the disposal/injection fixes:
- disposal now snapshots, clears, and marks disposed BEFORE emitting
  agent/inbox/discard (mirroring cancel's snapshot→clear→emit), so a
  re-entrant send/cancel from a discard listener throws 'disposed' or
  finds an empty inbox instead of leaking or double-discarding an id.
  The discard is unconditional (even on unpublished setup-rollback) to
  match send's unconditional enqueue, keeping every id balanced.
- restore the turnRecorded guard on the idle-injection flush: a
  turn/start rejected pre-commit (append reentrancy / internal-dispatch
  veto) records nothing and owes no flush; the previous unconditional
  flush emitted a phantom-turn agent/error. The isTurnOpen/turnRecorded
  branches are reachable (reentrant inject from a session/event
  listener) and now covered by a regression test rather than v8-ignored.
- rewrite the agent/inbox/discard event JSDoc to enumerate all three
  emitters (cancel, terminal turn-stop, disposal) — every enqueued id
  gets exactly one terminal dequeue-or-discard.

Per-file coverage stays 100%.
2026-07-24 13:39:06 +08:00
fz 2bc2534157 Merge branch 'codex/web-plan-wire' into codex/web-plan-mode 2026-07-24 13:38:33 +08:00
fz 14524880b6 Merge branch 'master' into codex/web-plan-wire 2026-07-24 13:37:42 +08:00
07akioni a4b4a4c53d fix: type check 2026-07-24 13:36:27 +08:00
07akioni 3babb2cd42 feat(trajectory): implement trajectory step cell and layout with bilingual support
- Added TrajectoryCell, TrajectoryGroupHeader, and TrajectoryTurn components for rendering trajectory steps and groups.
- Introduced bilingual support with English and Chinese translations for trajectory notes.
- Updated conversation session models to include timestamps for various message types.
- Enhanced layout logic to handle expanded assistant blocks and tool results with duration metrics.
- Added CSS styles for new components to ensure proper display and alignment.
2026-07-24 13:33:35 +08:00
fz cb633fd357 fix(web): expose plan selector state accessibly 2026-07-24 13:30:03 +08:00
NI0317 f97f9bcf8a chore(examples): declare @deepseek-ai/dsh-llm-pi-ai as an example dep
pi-ai is the library-backed twin adapter the tui-agent README already
points at ("swap one line to @deepseek-ai/dsh-llm-pi-ai"), and the
supported entry point for third-party providers (Anthropic, Google,
OpenRouter) mounted through the personal overlay under ~/.dsh. Making
it a declared workspace dep of the examples umbrella means
`pnpm install` resolves the symlink upstream so users configuring a
third-party provider via `~/.dsh/config.yaml` don't have to patch
`examples/package.json` locally (which their next git checkout would
wipe).

Placement matches the sibling llm-* cluster; workspace:* to match the
other adapters. No cordis.yml or README changes: mounting pi-ai
remains explicit and opt-in per the provider-routed-llm-adapters
Agent Note.
2026-07-24 13:23:28 +08:00
fz a0748ce560 fix(web): canonicalize fixture plan state 2026-07-24 13:22:33 +08:00
_Kerman 7d5c8b12c0 fix(agent-loop): preserve unified send contracts 2026-07-24 13:20:51 +08:00
fz 6135393a6b Merge branch 'codex/web-plan-wire' into codex/web-plan-mode 2026-07-24 13:17:41 +08:00
fz ced6ab9d14 fix(web): fence plan mode projection races 2026-07-24 13:16:26 +08:00
Turtle d94a4916f1 fix(goal): preserve normalized argument shape 2026-07-24 13:16:14 +08:00
Turtle d436074cc2 fix(goal): accept empty update fillers 2026-07-24 13:15:39 +08:00
Chinesezjc 65d29da8a1 Merge pull request #562 from deepseek-harness/fix/tui-cwd-first-frame-race
test(tui): await first-frame rendering in cwd variants
2026-07-24 13:13:06 +08:00
Turtle 0d41349002 Revert "fix(goal): tolerate strict provider filler fields"
This reverts commit 9a30dbb0f537f512180754c4778c15f9f94f1a95.
2026-07-24 13:09:13 +08:00
Turtle 2e1be7d4d7 Revert "test(goal): align master snapshots"
This reverts commit 028e63a9eee281a254f113f4721a67343e5521ca.
2026-07-24 13:09:13 +08:00
Tianyi Cui 1595f4c851 refactor(agent-loop): rename private input boundary 2026-07-24 13:01:48 +08:00
Turtle e27a1319ef test(goal): align master snapshots 2026-07-24 12:59:06 +08:00
fz 92bfbb8614 docs: refresh module graph 2026-07-24 12:58:28 +08:00
fz 9a69feeec0 feat(web): add plan mode controls 2026-07-24 12:55:23 +08:00
Turtle 218c98c2c2 fix(goal): tolerate strict provider filler fields 2026-07-24 12:50:28 +08:00
Chinesezjc 3510ef6b44 Merge remote-tracking branch 'origin/master' into fix/tui-cwd-first-frame-race 2026-07-24 12:47:01 +08:00
Chinesezjc bdff8573b6 ci: run coverage on in-house vm-backup pool
Coverage does not gate merges, so move it off the metered
dsh-enterprise-ubuntu-24-04-32core-test pool onto the in-house
self-hosted pool (vm-backup label, 64-core).

Also switch the pnpm store cache path to ~ so it resolves under
both /home/runner (hosted) and self-hosted home directories.

Verified on the self-hosted pool: the full coverage job (including
prepare-ci-bubblewrap and the exhaustive suite) completed green in
~5 min.
2026-07-24 12:44:00 +08:00
Tianyi Cui 086e454931 refactor(agent): name delivery methods by intent 2026-07-24 12:27:20 +08:00
Yichen Jiang 11eedca16e fix(python-sdk): preserve reused session ancestry 2026-07-24 12:21:10 +08:00
Tianyi Cui a96582e47a Merge docs/i18n-batch-core into docs/i18n-batch-cds-postmortem 2026-07-24 12:12:45 +08:00
Tianyi Cui 250162a2fc docs: align core catalog translations 2026-07-24 12:11:58 +08:00
Tianyi Cui 46ab745198 docs: align Goal Round step cardinality 2026-07-24 12:10:40 +08:00
fz bc63b5fe00 feat(web): project plan mode through host API 2026-07-24 12:09:04 +08:00
Turtle c7c1b97501 fix(agent-loop): address second-round review — disposal discard, injection validation, frozen payloads
Address the review bot's five genuinely-new findings on the current code:
- disposal now discards any still-pending inbox items before the loop
  exits, so every enqueued id gets a terminal lifecycle event.
- injection (next-step/no-wakeup) validates its payload up front, before
  opening the idle one-shot turn, honoring 'invalid input throws before
  any append'; and rejects attached contexts (which belong only to inbox
  messages) rather than silently dropping them.
- agentMessage() freezes the agent/inbox/* payload so a listener cannot
  mutate the shared correlation object mid-dispatch.
- refresh the package READMEs (compact, goal, guard, hook-protocol,
  plan-mode, time-context, workspace-context) that still referenced the
  removed context/message event, with the source-based user/message
  distinction.

The up-front injection validation makes two finally branches unreachable
(v8-ignored as the turn-enclosure backstop). Adds regression tests for
disposal discard, context rejection, up-front validation, and the frozen
payload; per-file coverage stays 100%.
2026-07-24 12:05:57 +08:00
Tianyi Cui d46471e11f Merge docs/i18n-batch-cds-postmortem into docs/i18n-batch-rfc 2026-07-24 11:59:02 +08:00
Tianyi Cui 5c893bcda1 Merge docs/i18n-batch-core into docs/i18n-batch-cds-postmortem 2026-07-24 11:56:13 +08:00
Tianyi Cui b65b9ad4a8 test: refresh translation prompt snapshot 2026-07-24 11:54:23 +08:00
Tianyi Cui d7ebe848dc Merge remote-tracking branch 'origin/master' into worktree/acp-automation-protocol 2026-07-24 11:51:17 +08:00
Tianyi Cui d07875947b Merge remote-tracking branch 'origin/master' into worktree/acp-automation-protocol
# Conflicts:
#	packages/examples/acp-demo/README.md
2026-07-24 11:50:56 +08:00
Tianyi Cui d45d999bb2 Merge latest master into docs/i18n-batch-core 2026-07-24 11:48:27 +08:00
_Kerman aaa42d5844 refactor(agent-loop): simplify message machine 2026-07-24 11:46:46 +08:00
Yichen Jiang b9f8eca10c fix(python-sdk): track recursive subagent notifications 2026-07-24 11:23:16 +08:00
Hypatia May dc2ea3a1b4 fix(sqlite): lock before ownership validation 2026-07-24 11:20:47 +08:00
Hypatia May e54a4ad986 fix(sqlite): match reserved object names literally 2026-07-24 11:11:45 +08:00
Hypatia May 352934b9ec fix(jsonl): reject negative-zero timestamps 2026-07-24 11:01:08 +08:00
Hypatia May 19b96037f6 fix(sqlite): enforce integer session metadata 2026-07-24 10:35:09 +08:00
Hypatia May 3b3a7232a7 Merge remote-tracking branch 'origin/master' into codex/sqlite-metadata-contracts 2026-07-24 09:48:06 +08:00
Tianyi Cui bc7a89b81f Merge pull request #578 from deepseek-harness/worktree-webload 2026-07-24 09:14:51 +08:00
imccyu e6b4a1ac6e fix: coverage 2026-07-24 02:14:00 +08:00
imccyu d5cd73a9d9 fix(gui): CI activation order + review-bot findings
The session-title snapshot exposed a real activation race: ui-trajectory
and ui-question register into conversation-declared slots but only
injected 'slots', so nothing ordered their applies after ui-conversation's
— register() into the undeclared slot threw and the entry FAILED. Both now
inject 'conversation' as an ordering edge (documented as such; specs stub
the service where the bench declares the slot itself).

Review-bot findings, all three applied: the module loader's load sink
cross-checks the handoff id against the arriving row (a mis-stamped bundle
can no longer register under another entry's identity); the default
execute seam removes the inline script node right after its synchronous
execution (repeated HMR rebuilds no longer accumulate dead nodes); a
throwing onRebuilt subscriber is contained per-listener and routed to
onError instead of escaping the fs.watchFile callback.
2026-07-24 02:09:43 +08:00