Commit Graph

4989 Commits

Author SHA1 Message Date
Tianyi Cui 1d066e0f74 Fix remaining PTY and bundle watch races
Keep inherited child prompt markers bounded by the normal silence fallback. Stage web-plugin rescans atomically and retain missing watch state until a successful rebuild.
2026-07-25 00:33:33 +08:00
Tianyi Cui f9a638b8a6 Stabilize master CI across platforms 2026-07-25 00:10:37 +08:00
Tianyi Cui 440384fdb4 Merge remote-tracking branch 'origin/master' into worktree/acp-automation-protocol
# Conflicts:
#	.agents/notes/implemented/architecture/2026-06-14-session-persistence.md
#	.agents/notes/implemented/architecture/2026-06-20-package-hierarchy.md
#	.agents/notes/implemented/architecture/2026-07-02-tool-render-intent-union.md
#	.agents/notes/implemented/feature/2026-06-14-acp-agent-client-protocol.md
#	.agents/notes/implemented/feature/2026-06-14-acp-multi-session.md
#	.agents/notes/implemented/feature/2026-06-18-acp-terminal-and-tool-rendering.md
#	.agents/notes/implemented/feature/2026-07-19-model-facing-goal-tools.i18n.yaml
#	.agents/notes/implemented/feature/2026-07-19-model-facing-goal-tools.md
#	.agents/notes/implemented/feature/2026-07-19-model-facing-goal-tools.zh.md
#	.agents/notes/implemented/simplification/2026-07-04-trim-acp-bridge-unreachable-surface.md
#	docs/architecture.i18n.yaml
#	docs/cookbook/extension-cookbook.i18n.yaml
#	docs/cookbook/extension-cookbook.md
#	docs/cookbook/extension-cookbook.zh.md
#	docs/core-data-structures/approval.md
#	docs/core-data-structures/user-interaction.md
#	docs/event-producer-consumer.md
#	docs/persistence-catalog.md
#	docs/testing.md
#	docs/tool-catalog.md
#	examples/acp-agent/tests/fixtures/live-mode-switching-2026-07-07.session.jsonl
#	examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/permission-switching/session.jsonl
#	packages/goal/tool-goal/README.md
#	packages/ui/acp/README.md
#	packages/ui/acp/acp-feature-support.md
#	packages/ui/acp/src/index.ts
#	packages/ui/acp/tests/bridge.spec.ts
#	packages/ui/acp/tests/dispose.spec.ts
#	packages/ui/acp/tests/edges.spec.ts
#	packages/ui/acp/tests/turns.spec.ts
2026-07-24 23:43:10 +08:00
Tianyi Cui d01474d1d0 Merge pull request #616 from deepseek-harness/worktree/acp-automation-review-fixes
fix(acp): review fixes for the automation-only reduction
2026-07-24 22:54:13 +08:00
Tianyi Cui 88f3933327 fix(docs): address Codex round-1 findings on the review-fix stack
- gen-doc-graphs still summarized the ACP demo as 'text-only'; say
  baseline-prompt and regenerate composition.md.
- The llm-catalog note claimed unit coverage for per-agent target
  isolation that no test pins directly; state the actual basis
  (agent-scoped listener installation) in both languages and re-record.
2026-07-24 22:36:06 +08:00
Tianyi Cui b97b1b4a3f Merge pull request #343 from deepseek-harness/docs/i18n-batch-core
docs(i18n): publish Chinese core documentation and Agent Notes
2026-07-24 22:28:46 +08:00
Tianyi Cui 90057b25f2 docs(acp): state both arms of the spec's version-negotiation rule 2026-07-24 22:19:10 +08:00
Tianyi Cui 5569f3f8ac docs: repair rewritten rationale and stale claims from the ACP reduction
The automation-only rewrite edited many implemented Agent Notes; several
edits replaced still-live or historical rationale instead of reframing:

- llm-model-catalog: restore the prompt/request consistency section and
  selection-ownership alternatives — installAgentLlmTarget and the TUI
  /model selector still ship that design; only the ACP wire is gone.
- plan-specific-collaboration-state, acp-multi-session, todo-write,
  ask-user-question: link the superseding automation-only note instead
  of silently rewriting the original decision or motivation; drop a
  paragraph duplicating the Web-provider facts stated two paragraphs up.
- sandbox: stop claiming unit coverage for turn-enclosed config writes
  (that mechanism left with the bridge) and retitle the commit-boundary
  paragraph accordingly.
- Fix the missing blank line before '## Consequences' in the
  plugin-command-registration pair, the JSON-RPC/Web render-intent
  consumer misattribution (the second consumer is the host/client
  runtime), stale bash_output/bash_kill names, and 'optional goals' in
  architecture.md.
- examples/acp-agent/README.md: point at the package contract instead
  of restating it; packages/ui/permission and plan-mode READMEs record
  the consumer-less preset service and the exit_plan_mode coverage gap
  under Known Limitations.
- 2026-06-19-acp-snapshot-tests: the new note defers the corpus
  migration rather than committing to it; say so.

Re-record the touched bilingual pairs.
2026-07-24 22:12:23 +08:00
Tianyi Cui 74d14f68bb fix(acp): accept baseline resource links and release a failed prompt slot
ACP v1 requires every agent to accept text AND resource_link prompt
content; the automation rewrite dropped the resource_link half of that
baseline. Restore the old bracketed-reference flattening in the codec,
reject only beyond-baseline blocks, and update the package contract and
Agent Note.

Also release the per-session prompt slot when agent.send() throws
synchronously (an agent disposed outside the bridge would otherwise
wedge the session into permanent 'already in flight' rejections),
drop the tautological version-negotiation branch, prove the scenario
env layer reaches the snapshot subprocess, pin bridge-side fail-closed
permission errors, and correct two overpromising test names.
2026-07-24 22:11:49 +08:00
Tianyi Cui 158c5e913a docs(i18n): refresh persistence docs after master merge 2026-07-24 21:27:22 +08:00
Tianyi Cui d847b48479 Merge remote-tracking branch 'origin/master' into worktree/pr343-retarget-latest-master 2026-07-24 21:21:22 +08:00
Tianyi Cui 2584f029bc Merge remote-tracking branch 'origin/master' into worktree/pr343-retarget-latest-master
# Conflicts:
#	docs/cookbook/extension-cookbook.i18n.yaml
#	docs/cookbook/extension-cookbook.zh.md
2026-07-24 21:20:17 +08:00
Tianyi Cui 478d9c17b2 Merge pull request #582 from deepseek-harness/codex/sqlite-metadata-contracts
fix(sqlite): preserve session metadata contracts
2026-07-24 21:14:06 +08:00
Tianyi Cui 46dfd503e0 Merge origin/master into codex/sqlite-metadata-contracts 2026-07-24 21:07:23 +08:00
Tianyi Cui 199f59dc5e Merge pull request #344 from deepseek-harness/docs/i18n-batch-cds-postmortem
docs(i18n): core-data-structures and postmortem batch — 22 bilingual pairs
2026-07-24 20:58:42 +08:00
Tianyi Cui 19117d68f1 Merge pull request #345 from deepseek-harness/docs/i18n-batch-rfc
docs(i18n): RFC tree batch — 146 bilingual pairs via the committed pipeline
2026-07-24 20:58:25 +08:00
Tianyi Cui aef844e2e6 Merge pull request #591 from deepseek-harness/fix/goal-completion-strict-fields
fix(goal): loosen restriction for toolcall arguments
2026-07-24 20:52:23 +08:00
Tianyi Cui 9e691d54c0 fix(goal): normalize strict-schema fillers 2026-07-24 20:45:23 +08:00
Tianyi Cui 145ba169f6 Merge commit 'refs/codex-unblock/20260724/pr591-base-current' into worktree/unblock-pr-591-ci-20260724 2026-07-24 20:32:02 +08:00
Tianyi Cui 15eb71fd7f Merge pull request #575 from deepseek-harness/feat/send-unify
feat(agent): unify send(target × wakeup) and coalesce context/message into user/message
2026-07-24 20:19:53 +08:00
Tianyi Cui 6a78b2cb2e Merge branch 'master' into feat/send-unify 2026-07-24 20:07:46 +08:00
_Kerman 6cb6d87ff3 Merge pull request #602 from deepseek-harness/xtr/rfc-context-injection-semantics
docs(agent): propose context injection semantics
2026-07-24 20:06:24 +08:00
Turtle ee5132c1e1 refactor(cli): dispatch web as a reserved token, drop parse machinery
Simplify the Commander adapter now that behavior can change: dispatch a leading
`web` token to its own parser instead of a subcommand of the root program, and
read opts()/processedArgs after parse() instead of action closures with a
mutable holder.

This removes enablePositionalOptions(), the parent-option leak guard, both
action closures, and the --resume/--prompt argParser threading. Behavior
changes: `dsh -p x web` is a headless prompt (extra positional dropped),
`dsh web -p x` fails loud (web has no -p), and a repeated --resume is natural
last-wins. The two real fail-loud invariants stay as post-parse checks: an empty
--resume= id (agent-loop treats '' as no-resume) and an empty -p task.

Trims args.spec.ts to the routing/fail-loud/help behavior that matters; the
tui-agent keyless PTY smoke still covers bin.ts dispatch end to end. Net ~114
fewer lines across adapter and tests.
2026-07-24 20:01:38 +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
Tianyi Cui 51f697db50 test(tui): wait for scoped file completion
The fake terminal retains earlier autocomplete frames, so the directory follow-up assertion could pass before the scoped lookup completed. Wait for the quoted file mention to be applied before submitting.
2026-07-24 19:38:31 +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
Tianyi Cui fe84b446b0 Merge pull request #584 from deepseek-harness/worktree/fix-python-sdk-nested-subagent-notifications
fix(python-sdk): track recursive subagent notifications
2026-07-24 19:30:48 +08:00
Tianyi Cui a229b095d6 Merge branch 'master' into fix/goal-completion-strict-fields 2026-07-24 19:19:57 +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 1731243fa0 Merge branch 'master' into feat/send-unify 2026-07-24 19:13:11 +08:00
Tianyi Cui e51ba79e53 Merge remote-tracking branch 'origin/docs/i18n-batch-cds-postmortem' into worktree/pr345-retarget-stack 2026-07-24 19:06:12 +08:00
Tianyi Cui 40ebf2e97f Merge remote-tracking branch 'origin/docs/i18n-batch-core' into worktree/pr344-retarget-stack 2026-07-24 19:05:26 +08:00
Tianyi Cui 572352fa0f Merge remote-tracking branch 'origin/master' into worktree/pr343-retarget-latest-master 2026-07-24 19:01:57 +08:00
Turtle 8975f12272 Merge pull request #593 from deepseek-harness/feat/examples-third-party-llm-docs
chore(examples): declare @deepseek-ai/dsh-llm-pi-ai as an example dep
2026-07-24 18:54:33 +08:00
Turtle e525b68106 Merge branch 'master' into feat/examples-third-party-llm-docs 2026-07-24 18:48:01 +08:00
Tianyi Cui 1769fae588 Merge remote-tracking branch 'origin/docs/i18n-batch-cds-postmortem' into worktree/pr345-retarget-stack 2026-07-24 18:38:52 +08:00
Tianyi Cui b65421431b docs(i18n): complete Agent Note translation fidelity 2026-07-24 18:38:27 +08:00
Tianyi Cui 6865b861d8 docs(site): preserve translated core fragment ids 2026-07-24 18:32:31 +08:00
Tianyi Cui cf1fcd6871 Merge remote-tracking branch 'origin/docs/i18n-batch-cds-postmortem' into worktree/pr345-retarget-stack 2026-07-24 18:12:45 +08:00
Tianyi Cui da3c12e548 docs(i18n): clarify subagent shutdown escalation 2026-07-24 18:12:16 +08:00
Tianyi Cui ac93d00541 docs(site): publish translated core data pages 2026-07-24 18:07:56 +08:00
Tianyi Cui da01b91c63 Merge refreshed #344 into docs/i18n-batch-rfc 2026-07-24 17:42:04 +08:00
Tianyi Cui b7a8a97034 Merge refreshed #343 into docs/i18n-batch-cds-postmortem 2026-07-24 17:39:54 +08:00
Tianyi Cui 0191a014dd docs(i18n): preserve authority constraints 2026-07-24 17:39:22 +08:00
Tianyi Cui 305930712b docs(i18n): bind authority terminology 2026-07-24 17:39:11 +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