Commit Graph
11509 Commits
Author SHA1 Message Date
Yichen Jiang 6093c266c6 Merge branch 'stack/agent-profiles-1-seam' into stack/agent-profiles-3-wire 2026-08-07 15:41:09 +08:00
Yichen Jiang 23fea5e70d Merge remote-tracking branch 'origin/master' into stack/agent-profiles-1-seam 2026-08-07 15:41:03 +08:00
Turtle d3af1d79b8 Merge origin/master into codex/dsh-badge-plugin 2026-08-07 15:33:56 +08:00
Turtle a5a135e269 Merge branch 'task/command-feedback-master' into codex/otel-feedback-levels 2026-08-07 15:28:12 +08:00
Turtle d9a3ae4c3a Merge remote-tracking branch 'origin/master' into task/command-feedback-master 2026-08-07 15:28:07 +08:00
Yichen Jiang bb43ff4f37 feat(ui): make a session that cannot send refuse to accept one
A default naming a route the Models page has since removed left the
composer saying 选择模型 while the input still accepted a message, which
then failed inside the adapter mid-turn.

`session.prompt` now refuses with `model-unavailable` before opening a
turn. That is the enforcement boundary: the method stays callable no
matter what a client disables. `session.models` reports the same fact as
`routable`, and ui-model pushes a block through the new
`ctx.conversation.blocks` registry so the bar renders the disabled
textarea it already renders without a workspace, carrying the blocker's
own reason. The push direction is forced — ui-model already depends on
ui-conversation, so ui-conversation cannot read it back.

The gate is `routable`, not "matches no advertised group": catalog
membership is advisory, so a route serving a model it stopped advertising
is missing from the groups yet perfectly usable, and `null` before the
first load never blocks so a slow Host cannot lock a working composer.

The scaffold gains a route-only adapter for fixture-less keyless
scenarios. Registering zero providers is a test artifact — every product
composition mounts one — and the goldens that froze the seat's fallback
label now show the model those scenarios actually route to.
2026-08-07 15:26:42 +08:00
creatixchu 46365798de Merge remote-tracking branch 'origin/master' into worktree/drop-create-by-name 2026-08-07 15:22:17 +08:00
Yichen Jiang 7ce9c244ae Merge pull request #1810 from deepseek-harness/claude/docs-model-providers
docs(user): 新增「配置模型」入门文档,并让文档站点自带图片
2026-08-07 15:15:27 +08:00
Yichen Jiang 4f1c419fdc Merge branch 'stack/agent-profiles-8-authoring' into stack/agent-profiles-9-rename 2026-08-07 15:12:27 +08:00
Yichen Jiang d41e8d9da8 Merge branch 'stack/agent-profiles-6-cordis-agent' into stack/agent-profiles-7-docs 2026-08-07 15:12:27 +08:00
Yichen Jiang d6f540134a Merge branch 'stack/agent-profiles-7-docs' into stack/agent-profiles-8-authoring 2026-08-07 15:12:27 +08:00
Yichen Jiang 4c70e2e17c Merge branch 'stack/agent-profiles-5-web-ui' into stack/agent-profiles-6-cordis-agent 2026-08-07 15:12:27 +08:00
Yichen Jiang 67a681c9bd Merge branch 'stack/agent-profiles-4-settings' into stack/agent-profiles-5-web-ui
# Conflicts:
#	packages/preset/agent-presets/tests/mount.spec.ts
2026-08-07 15:12:16 +08:00
Yichen Jiang 44e9bfca75 test(agent-presets): keep one write regression after the merge
The lower layer now carries the same test, and the merge kept both copies.
2026-08-07 15:11:39 +08:00
Yichen Jiang f4cca95776 Merge branch 'stack/agent-profiles-8-authoring' into stack/agent-profiles-9-rename 2026-08-07 15:10:04 +08:00
Yichen Jiang e432428006 Merge branch 'stack/agent-profiles-6-cordis-agent' into stack/agent-profiles-7-docs 2026-08-07 15:10:04 +08:00
Yichen Jiang 23ea52859e Merge branch 'stack/agent-profiles-7-docs' into stack/agent-profiles-8-authoring 2026-08-07 15:10:04 +08:00
Yichen Jiang 4a18f1edbb Merge branch 'stack/agent-profiles-5-web-ui' into stack/agent-profiles-6-cordis-agent 2026-08-07 15:10:04 +08:00
Yichen Jiang a45beb1292 Merge branch 'master' into worktree/web-skill-tool-row 2026-08-07 15:06:42 +08:00
Yichen Jiang 8d94b99d58 test(agent-presets): drop the write regression this layer no longer introduces
The lower layer now carries it, and the merge kept both copies.
2026-08-07 15:06:05 +08:00
Yichen Jiang 61895808a6 Merge branch 'stack/agent-profiles-3-wire' into stack/agent-profiles-4-settings 2026-08-07 15:04:30 +08:00
Yichen Jiang 7b9783fb76 Merge branch 'stack/agent-profiles-4-settings' into stack/agent-profiles-5-web-ui 2026-08-07 15:04:30 +08:00
Yichen Jiang 6435463edc test(agent-presets): prove the write override where it is introduced
The regression for `PresetTree.write` lived two layers up, so this layer's own
assertion could not fail: it checked the file after an ordinary teardown, and
the Loader's unload listener returns early when the whole tree is being
disposed, so the override never ran. Moves the self-disposing-row test down to
the layer that adds the override, in a temp root so a committed fixture cannot
be damaged by the run that proves the bug.
2026-08-07 15:04:23 +08:00
Yichen Jiang 4f419a4fec Merge branch 'stack/agent-profiles-8-authoring' into stack/agent-profiles-9-rename 2026-08-07 15:02:01 +08:00
Yichen Jiang 41e092ba60 Merge branch 'stack/agent-profiles-7-docs' into stack/agent-profiles-8-authoring
# Conflicts:
#	packages/client/ui-agent-preset/src/client/settings-store.ts
#	packages/client/ui-agent-preset/tests/apply.spec.ts
#	packages/client/ui-agent-preset/tests/components.spec.tsx
#	packages/client/ui-agent-preset/tests/settings-store.spec.ts
2026-08-07 15:01:52 +08:00
Yichen Jiang 6a953fb674 Merge branch 'stack/agent-profiles-6-cordis-agent' into stack/agent-profiles-7-docs 2026-08-07 15:01:30 +08:00
Yichen Jiang 3d9ef4e0e4 Merge branch 'stack/agent-profiles-5-web-ui' into stack/agent-profiles-6-cordis-agent 2026-08-07 15:01:29 +08:00
Yichen Jiang c96b480bc4 test(ui-agent-preset): cover the surface where it is introduced
The package landed here with one store spec; the rest of its tests were written
three layers up, so this layer and the two above it failed the per-file
coverage gate on 191 locations while every test passed.

Adds the node half's invariant companion, the two components, the registration
apply, and the stores' failure paths. `currentValue` drops a `?? ''` that an
empty roster already returned before reaching — the same shape the later layer
arrived at, so the two converge instead of conflicting.
2026-08-07 14:58:03 +08:00
creatixchu b7fe3de8f1 chore(knip): drop the stale playwright ignore for the deleted hero script
The root-scripts workspace ignore existed only for
scripts/hero-composer-dom-continuity.mjs; apps/web declares its own
playwright dependency for the e2e lane.
2026-08-07 14:54:07 +08:00
creatixchu 40ee7f5e27 docs,test: settle review follow-ups for the create-by-name deletion
Rewrite the three sibling Agent Note pairs that still described create-by-name
as current (workspace-ui-product-flow, session-list-browsing-and-manual-order,
same-basename-workspace-adoption) and the one-route note's own alternative and
section title; delete scripts/hero-composer-dom-continuity.mjs, which drove the
name dialog removed by the one-route change; mark WorkspaceRegistry.create's
now test-only title parameter with a deletion TODO; pin the retired { name }
spelling as a schema rejection; align the workspace spec on stageDir and the
fixture spec title on path creates.
2026-08-07 14:48:26 +08:00
Yichen Jiang 0ed51eab01 Merge branch 'stack/agent-profiles-8-authoring' into stack/agent-profiles-9-rename 2026-08-07 14:47:52 +08:00
Yichen Jiang ab110c1da2 Merge branch 'stack/agent-profiles-7-docs' into stack/agent-profiles-8-authoring
# Conflicts:
#	.agents/notes/implemented/architecture/2026-08-03-per-session-agent-presets.i18n.yaml
#	apps/cli/tests/web-agent-presets.e2e.ts
2026-08-07 14:47:40 +08:00
Yichen Jiang ce468c87f2 chore(docs): re-record the agent-preset note pairing after the merge 2026-08-07 14:47:08 +08:00
Yichen Jiang c5f3dc3317 Merge branch 'stack/agent-profiles-6-cordis-agent' into stack/agent-profiles-7-docs
# Conflicts:
#	.agents/notes/implemented/architecture/2026-08-03-per-session-agent-presets.i18n.yaml
2026-08-07 14:46:46 +08:00
Yichen Jiang 51e1f48540 fix(cli): keep the subagent registry host-plane in the cordis preset
The cordis preset moved `bash-env`, the `subagents` registry, and its
spawn/fork backends into entry-local realms. A host row that injects a service
is the criterion for host-plane ownership: `apps/cli/src/web.ts` injects
`bash-env`, and `dsh-host-apiproxy` injects `subagents` to answer the
browser's cross-session queries, so both waited forever for a service only
sessions provided. A provider name also registers once, so the second session
would have collided regardless.

This layer introduces the preset, so it is where the plane belongs — a later
layer already corrected it, which left this layer and the docs one unmountable
on their own. The composition test stops disabling `api-gateway` with it: the
row whose pending injection names the break cannot be the row the test turns
off, so the boot audit now covers the whole host-plane injection graph.
2026-08-07 14:45:30 +08:00
Turtle 9ff11943bb Merge remote-tracking branch 'origin/task/command-feedback-master' into codex/otel-feedback-levels
# Conflicts:
#	docs/event-producer-consumer.md
2026-08-07 14:42:21 +08:00
Turtle 5e5664e668 Merge remote-tracking branch 'origin/master' into task/command-feedback-master
# Conflicts:
#	.agents/notes/proposed/architecture/2026-07-27-session-projection-and-command-log.i18n.yaml
#	apps/cli/config/base.cordis.yml
#	apps/cli/package.json
#	packages/README.i18n.yaml
#	pnpm-lock.yaml
2026-08-07 14:40:42 +08:00
creatixchu fbd3a6272b Merge remote-tracking branch 'origin/master' into worktree/drop-create-by-name
# Conflicts:
#	packages/host/apiproxy/README.i18n.yaml
2026-08-07 14:40:25 +08:00
NI0317 c44c6c93c8 feat(web): open workspace picker from composer 2026-08-07 14:38:58 +08:00
_Kerman 806ea97934 Merge pull request #1853 from deepseek-harness/feat/web-queue-steer-tooltip
feat(web): advertise whole-queue steering shortcut
2026-08-07 14:36:22 +08:00
Yichen Jiang 23a4c0a51e Merge pull request #1827 from deepseek-harness/worktree/charming-swartz-83bf33
fix(llm,web): validate API key format before it reaches an HTTP header
2026-08-07 14:36:04 +08:00
Yichen Jiang 20d7fe912e fix(cli): give the code preset's todo tool its required config
The last preset naming `tool-todo` without choosing
`allowParallelInProgress`, which master made mandatory.
2026-08-07 14:27:00 +08:00
creatixchu a7e43d4346 refactor: drop the create-by-name workspace route
The Web picker collapsed onto the directory flow (see the one-route-to-add-a-workspace
Agent Note), leaving workspace.create({ name }) with no product consumer. Delete the
whole feed line: the wire schema's name member and WorkspaceApi spelling, the gateway's
workspaceRoot config/default and the mkdir branch, the client seam that carried the name
(WorkspaceCreateInput, WorkspacesService.create, intentName), the dsh web
--workspace-root flag, and the fixture's name handling. workspace-name-conflict stays as
workspace.rename's duplicate-title error.
2026-08-07 14:26:50 +08:00
Yichen Jiang d7c8d197ea Merge branch 'stack/agent-profiles-7-docs' into stack/agent-profiles-8-authoring 2026-08-07 14:26:33 +08:00
Yichen Jiang c068729f28 Merge branch 'stack/agent-profiles-8-authoring' into stack/agent-profiles-9-rename 2026-08-07 14:26:33 +08:00
Yichen Jiang 17adcf8557 Merge branch 'stack/agent-profiles-6-cordis-agent' into stack/agent-profiles-7-docs 2026-08-07 14:26:32 +08:00
Yichen Jiang f1ac260a70 fix(cli): give the cordis preset's todo tool its required config
Same required field as the standard preset: master made
`allowParallelInProgress` mandatory on dsh-tool-todo, and a preset that names
the row owns the choice.
2026-08-07 14:26:27 +08:00
Yichen Jiang 6c315d2cb6 Merge branch 'stack/agent-profiles-3-wire' into stack/agent-profiles-4-settings 2026-08-07 14:25:59 +08:00
Yichen Jiang 5ee6b13ecb Merge branch 'stack/agent-profiles-4-settings' into stack/agent-profiles-5-web-ui 2026-08-07 14:25:59 +08:00
Yichen Jiang 04e97d16e3 Merge branch 'stack/agent-profiles-5-web-ui' into stack/agent-profiles-6-cordis-agent 2026-08-07 14:25:59 +08:00