Commit Graph
3417 Commits
Author SHA1 Message Date
Dudu-0223 4eda48d002 fix: address codex review round 2
- Wire the control service and send_message tool into every shipped
  composition with a resumable provider and background enabled
  (headless-agent, tui-agent, and the SDK helper's subagent feature
  base resources); jsonrpc-agent disables background and is unchanged.
- Resolve the send_message availability check in the CALLER's tool
  scope so a restriction that removes the follow-up tool from one
  agent also blocks that agent's continuable start.
- Control-service disposal now cancels live activations and awaits
  producer settlement instead of stranding them: TaskService keeps
  producer Tasks across a reload, so the disposing service aborts each
  activation-owned controller, resolves its terminal gate (the
  effect-scoped onTaskDone listener is already gone), and awaits done.
  A new test kills a mid-start activation through HMR disposal.
2026-08-02 04:34:15 +08:00
Dudu-0223 71570d7bec fix: address codex review round 1
- Strict steer now rejects the two windows where an acknowledged
  message would be silently dropped: the closed-turn durability-flush
  window (status still running, loop strands drained steering) and a
  committed structured capture (terminal turn-stop discards late
  steering). Seam JSDoc, catalog doc, README, and the Agent Note
  bilingual pair state the tightened contract; new keyless tests pin
  both rejections.
- Continuable background delegation now fails loud when the advertised
  send_message tool is not registered, instead of starting a durable
  child the model cannot continue. The acp-agent example already loads
  the control tool; the tool-catalog boot recipe is unaffected because
  capability wording is harvested at mount.
2026-08-02 04:34:15 +08:00
Dudu-0223 99a778d63f feat(subagent): continuable background subagents
Implement the continuable background subagents RFC: a durable child
session with a series of Task-backed activations, each disposing its
run before the Task settles.

- dsh-subagent: rename SubagentRun.sendMessage to strict steer, drop
  run-level resume, add SubagentProvider.resume dispatch via
  SubagentService.resume, the continuation start field, and the
  versioned model-hidden subagent/descriptor session event.
- dsh-subagent-inprocess/-spawn/-fork: publish the control-allocated
  child id, append the descriptor inside the initial turn, implement
  cold resume from the child's own transcript under the live parent
  scope, and strict running-only steer.
- dsh-subagent-control (new): SubagentControlService owning stable
  child ids, descriptor snapshot/fold/authorization, Task-backed
  activation with settle-then-dispose ordering, the process-local
  active-run association, and steer-or-resume sendMessage routing.
- dsh-tool-subagent: background route branches on the provider's
  resume capability (continuable via the control service; one-shot
  task for ACP), returning both child and task ids.
- dsh-tool-subagent-control (new): the globally named send_message
  tool rendering steered/started routes.

Keyless coverage spans Task ownership and disposal ordering, running
delivery, cold follow-up, descriptor rejection and rollback, known-id
reconstruction, kill during lookup, admission races, and a new
subagent-continuable ACP snapshot scenario.
2026-08-02 04:34:15 +08:00
Tianyi Cui 9a07380c23 adopt native GitHub stack workflow 2026-08-02 03:17:42 +08:00
Tianyi Cui b6284c8467 fix(review): audit prepared-wrapper activation and pin generated shapes
ds-review-bot round 1 on the DSH-home integration:
- generated wrappers now inject the services their manifest needs (skills/
  tools beside loader), and loadPreparedRepository rejects a wrapper fiber
  that settles anything but ACTIVE — a composition missing a required
  service fails the repository transaction instead of committing an ACTIVE
  row over a silently PENDING child (critical finding)
- the github: source ref segment excludes '#', so 'a#b' refs fail at the
  config parser with the promised syntax instead of inside pnpm
- watchPersonalPatches re-reads the include's non-patch options per refresh
  instead of a registration-time snapshot
- the TUI smoke's cache-seeded wrapper is produced by the real
  prepareDshPlugin (cache LAYOUT stays a deliberate external pin)
- new Loader integration test drives a live repositories update through
  entry.update: generation swap, old skills removed, failed candidate
  rolled back to the previous generation
2026-08-02 01:29:04 +08:00
Tianyi Cui 2448496803 feat: configure repository plugins from DSH home 2026-08-02 01:29:04 +08:00
Tianyi Cui 0664b25cd9 fix(review): validate skill roots at mount and isolate provider default roots
ds-review-bot round 1 on the repository-plugin runtime:
- a manifest-declared skill root absent or non-directory in the installed
  package now fails the plugin load (skill-local treats a missing root as
  legitimately empty, which silently mounted a skill-less plugin)
- includeDefaultRoots: false no longer inherits $DSH_BUNDLED_SKILL_DIR, so
  isolated repository providers see only their explicit roots
- prepared wrapper baseUrl schema requires the file: scheme, failing hostile
  URLs at the declared validation boundary
- preparedPath reuses format.ts's isOutside; SERVER_NAME_PATTERN is exported
  and pinned equal to dsh-mcp-client's, with the restatement justified (the
  prepare bin keeps a zod-only module graph); the unexplained `as never`
  cast now carries its schemastery rationale
- the import-free wrapper assertion also rejects dynamic import(
- the headless fixture wrapper is regenerated by the real prepareDshPlugin
  and a drift test pins fixture == generator output
- prepareDshPlugin JSDoc states the non-atomic publish repair contract
2026-08-02 01:25:02 +08:00
Tianyi Cui fa7051a9d1 feat: add static repository plugin format 2026-08-02 01:25:02 +08:00
Tianyi Cui 195f7fa9af fix(cordis): make config reload transactional 2026-08-02 01:25:01 +08:00
Tianyi Cui 0758839b00 Merge fix/web-agent-runtime-context into fix/web-gui-feedback-loop 2026-08-01 22:15:36 +08:00
Turtle 20e51abd4e feat: rename experimental-meta/-upgrade to meta/upgrade behind --experimental gate 2026-07-31 23:37:53 +08:00
Tianyi Cui e1c6fc3db4 Merge pull request #1032 from deepseek-harness/xtr/trajectory-timeline-polish
fix(trajectory): polish timeline timing and layering
2026-07-31 20:25:08 +08:00
Turtle 60a0bcd358 feat(cli): mark meta and upgrade commands experimental 2026-07-31 20:16:19 +08:00
_Kerman dd98d15b1d Merge remote-tracking branch 'github/master' into xtr/trajectory-timeline-polish
# Conflicts:
#	packages/client/ui-trajectory/src/client/timeline.ts
#	packages/client/ui-trajectory/tests/views.spec.tsx
2026-07-31 20:01:16 +08:00
Tianyi Cui d64b032311 Merge pull request #1082 from deepseek-harness/worktree/fix-web-duplicate-folder-names-20260731
fix(workspace): allow same-basename folders in Web
2026-07-31 19:37:38 +08:00
hypatiamay dcc9e50f84 Merge pull request #1026 from deepseek-harness/feat/compaction-progress-visibility
feat(tui): show live compaction progress
2026-07-31 19:17:43 +08:00
Tianyi Cui 678ad97f9a Allow same-basename Workspace paths 2026-07-31 18:37:34 +08:00
Tianyi Cui 20cb7e7360 Merge latest master into manual compaction 2026-07-31 17:58:30 +08:00
Tianyi Cui 6e26f9fd83 Merge latest master into manual compaction
# Conflicts:
#	apps/cli/README.i18n.yaml
#	docs/architecture.i18n.yaml
#	docs/event-producer-consumer.md
#	docs/module-graph.md
#	examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
#	packages/compact/compact-basic/README.i18n.yaml
#	packages/pty/pty-local/tests/index.spec.ts
2026-07-31 17:57:11 +08:00
Tianyi Cui 2692d2fef7 Merge commit 'refs/codex/pr948/master-current' into worktree/retarget-pr948-current-20260731
# Conflicts:
#	README.i18n.yaml
#	scripts/snapshots/translation-prompt-v4/request-response.expected.json
2026-07-31 17:44:13 +08:00
Tianyi Cui 6cab262f00 Merge commit 'refs/codex/pr956/master-live' into worktree/retarget-pr956-current-20260731
# Conflicts:
#	packages/client/ui-conversation/README.i18n.yaml
#	packages/client/ui-conversation/README.zh.md
2026-07-31 17:25:49 +08:00
Tianyi Cui ab6d77a12d Merge remote-tracking branch 'origin/master' into fix/web-transcript-projection
# Conflicts:
#	apps/web/tests/queue-actions.e2e.ts
#	packages/client/ui-conversation/README.i18n.yaml
#	packages/client/ui-conversation/src/client/chat/MessageItem.tsx
2026-07-31 17:17:00 +08:00
Hypatia May a23a6bdd15 Merge origin/master into codex/status-bar-token-metrics
Resolve the agent-loop import conflict by retaining both durable request context and runtime policy context. Refresh the combined session fixtures and regenerate documentation catalogs. Mark PDF artifacts as binary so staged whitespace checks do not parse PDF bytes as text.
2026-07-31 16:53:03 +08:00
Tianyi Cui 1352c4ecd2 Merge remote-tracking branch 'origin/master' into worktree/pr962-mergeable-20260731 2026-07-31 16:03:36 +08:00
Wenlu Wang 9e11f438f3 Merge pull request #1035 from deepseek-harness/codex/web-default-search
feat(web): enable default search
2026-07-31 16:01:26 +08:00
Shigma ea93cf85f1 docs: add cordis paper 2026-07-31 15:54:36 +08:00
imccyu abc77e707e Merge remote-tracking branch 'origin/feat/manual-compact-single-lock' into feat/compaction-progress-visibility 2026-07-31 15:51:17 +08:00
imccyu b2cd3d26da Merge remote-tracking branch 'origin/fix/web-transcript-projection' into feat/manual-compact-single-lock 2026-07-31 15:50:54 +08:00
imccyu 9ca02b4fc8 Merge remote-tracking branch 'origin/master' into fix/web-transcript-projection 2026-07-31 15:48:26 +08:00
NI0317 ee404357a4 Merge origin/master into codex/sandbox-policy-context 2026-07-31 15:46:42 +08:00
Tianyi Cui 7906c1032f Merge pinned master into status bar token metrics 2026-07-31 15:41:52 +08:00
Hypatia May b14c9daed2 Merge branch 'feat/manual-compact-single-lock' into feat/compaction-progress-visibility 2026-07-31 15:37:06 +08:00
Hypatia May 1114a80a45 Merge branch 'fix/web-transcript-projection' into feat/manual-compact-single-lock
# Conflicts:
#	examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
2026-07-31 15:36:49 +08:00
Hypatia May d67de808b0 Merge remote-tracking branch 'origin/master' into fix/web-transcript-projection
# Conflicts:
#	packages/client/ui-conversation/README.i18n.yaml
2026-07-31 15:32:36 +08:00
kingwl c08e8d00f7 Merge origin/master into codex/web-default-search
# Conflicts:
#	apps/web/tests/scaffold.ts
2026-07-31 15:26:29 +08:00
Tianyi Cui b2146d6298 Merge branch 'master' into pr/adapter-registration-race 2026-07-31 15:24:43 +08:00
Chinesezjc 1c58d8daeb Merge pull request #974 from deepseek-harness/feat/search-presenter
feat(fs): add a search render-intent card for grep and glob results
2026-07-31 15:24:22 +08:00
Tianyi Cui 81e5ee7e3e Merge branch 'master' into pr/adapter-registration-race 2026-07-31 15:22:35 +08:00
NI0317 1beb38554e fix(review): align runtime-context diagnostics and docs 2026-07-31 15:19:59 +08:00
NI0317 1b2f05d438 Merge remote-tracking branch 'origin/master' into codex/sandbox-policy-context 2026-07-31 15:04:11 +08:00
NI0317 3da219461c Merge origin/master into codex/sandbox-policy-context 2026-07-31 15:03:11 +08:00
imccyu 95c238a74f Merge remote-tracking branch 'origin/master' into mergebot/pr1016 2026-07-31 14:51:15 +08:00
imccyu ef01e2e9af Merge pull request #1046 from deepseek-harness/worktree-infdev01
Shared anonymous user id from $DSH_HOME/.userid, reported as OTel Resource user.id
2026-07-31 14:49:00 +08:00
imccyu 4c01550833 Merge remote-tracking branch 'origin/master' into mergebot/pr1016 2026-07-31 14:43:03 +08:00
Chinesezjc 62275b6cd6 Merge remote-tracking branch 'origin/master' into feat/search-presenter
# Conflicts:
#	docs/config-catalog.md
#	docs/cordis-catalog/events.md
#	docs/cordis-catalog/services.md
#	docs/core-data-structures/tools.i18n.yaml
#	docs/core-data-structures/tools.md
#	docs/core-data-structures/tools.zh.md
#	docs/event-producer-consumer.md
#	examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
#	packages/cordis/tool-cordis/src/api-catalog.ts
#	packages/core/tools/README.i18n.yaml
#	packages/core/tools/README.md
#	packages/core/tools/README.zh.md
#	packages/core/tools/src/index.ts
#	packages/core/tools/src/presentation.ts
#	packages/ui/tui/src/components/transcript.ts
2026-07-31 14:40:29 +08:00
Tianyi Cui 57e56915de Merge latest manual compaction parent into compaction progress 2026-07-31 14:40:12 +08:00
Tianyi Cui e371311203 Merge latest Web transcript parent into manual compaction
# Conflicts:
#	examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
#	packages/client/runtime/README.i18n.yaml
2026-07-31 14:39:20 +08:00
imccyu ec3761f66e fix: ci 2026-07-31 14:33:39 +08:00
Tianyi Cui 3dc2a449e5 Merge latest master into web transcript projection 2026-07-31 14:32:03 +08:00
Tianyi Cui 5c394b1743 Merge latest master into web transcript projection
# Conflicts:
#	packages/client/runtime/README.i18n.yaml
2026-07-31 14:31:14 +08:00