Commit Graph
10873 Commits
Author SHA1 Message Date
creatixchu 97a9ec5a0e fix(review): bound E2B readBytes at the seam, prove conditional-registration disposal, and align read_image contracts
- E2BFileSystem.readBytes now short-circuits on the stat size before any
  content transfer and streams the remote object, cancelling at the first
  chunk past the cap, honoring the seam's bounded-buffering contract; the
  fs-e2b README pair documents the new primitive.
- The tool-fs HMR test now proves the attachments-scoped registration:
  disposing the store withdraws read_image while read/write/edit stay,
  remounting restores it, and disposing the plugin withdraws everything.
- read_image caps reads at the smaller of maxImageBytes and
  maxMessageImageBytes, records an absent observation for a missing
  target like its sibling read, widens the mismatch remedy to cover
  out-of-family formats, and renames the gate's parameter to
  requestedPath; module/apply/registration JSDoc now match the shipped
  composition. zh terminology aligned; the examples manifest keeps its
  literal arrow.
2026-08-10 15:35:33 +08:00
creatixchu 1861a3fc7c feat(fs): add a minimal read_image tool over the attachment and fs seams
The model reads a PNG/JPEG/WebP/GIF file, the bytes commit through the
durable attachment lifecycle, and the tool result carries the real
ImageBlock so the image enters context from the next request onward.
FileSystem gains a bounded readBytes primitive (local + E2B providers);
registration is conditional on the attachment store, and a strict
execution gate refuses routes that do not declare image input, so a
text route's durable history stays free of image blocks. llm-replay
models may declare inputModalities, letting keyless ACP snapshots pin
both the sha256-referenced success and the verbatim refusal.

Supersedes the withdrawn route-scoped design of PR #598; the decision
record is .agents/notes/implemented/feature/2026-08-10-minimal-read-image-tool.md.
2026-08-10 15:09:07 +08:00
creatixchu 3764ce62a5 Merge remote-tracking branch 'origin/master' into codex/pr-555-ci-fix
# Conflicts:
#	docs/config-catalog.i18n.yaml
#	docs/config-catalog.md
#	docs/config-catalog.zh.md
#	docs/module-graph.i18n.yaml
#	docs/module-graph.md
#	docs/module-graph.zh.md
#	examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
#	packages/client/connection/src/client/fixture.ts
#	packages/host/apiproxy/src/api-proxy.ts
2026-08-10 12:33:36 +08:00
creatixchu 12c971d4b9 test(attachment): exclude POSIX fsync on Windows 2026-08-10 12:06:01 +08:00
Yichen Jiang b87e2240bf Merge pull request #1543 from deepseek-harness/stack/agent-profiles-8-authoring
feat(web): author agent presets from a settings page
2026-08-10 11:55:58 +08:00
creatixchu fb37107ca4 test(attachment): skip POSIX modes on Windows 2026-08-10 11:48:49 +08:00
Yichen Jiang 803f1fe876 Merge branch 'stack/agent-profiles-5-web-ui' into stack/agent-profiles-8-authoring 2026-08-10 11:42:16 +08:00
Yichen Jiang 0d9b97bf7b docs(core): regenerate the cordis catalog for the recompose binding contract
The re-link now runs through the mount-time binding, and the method's
JSDoc says so; the generated core surface and the runtime API catalog
follow it.
2026-08-10 11:42:06 +08:00
Yichen Jiang c9eee0302d Merge branch 'stack/agent-profiles-3-wire' into stack/agent-profiles-5-web-ui 2026-08-10 11:41:09 +08:00
Yichen Jiang 75d140265b test(web): address the hermetic skills probe through the layered registry
The scaffold's ambient-root isolation proof still resolved a preset-realm
service; under the host registry it is a scope read on the composed
agent's view, and what it proves is unchanged.
2026-08-10 11:41:07 +08:00
creatixchu 52df428a10 Merge remote-tracking branch 'origin/master' into codex/pr-555-ci-fix 2026-08-10 11:28:25 +08:00
Yichen Jiang 2be0e6c522 Merge branch 'stack/agent-profiles-5-web-ui' into stack/agent-profiles-8-authoring
# Conflicts:
#	packages/preset/agent-presets/src/index.ts
#	packages/preset/agent-presets/tests/mount.spec.ts
2026-08-10 11:25:14 +08:00
Yichen Jiang bdcf940eea fix(agent-presets): re-link recompose through the mount-time binding
The auto-merge kept recompose on the removed open re-link. It now moves
the binding this roster kept from the agent's mount; an agent that never
composed one has nothing to re-link, so the switch is its first bind —
exactly a mount — and once bound only the kept binding can move it.
2026-08-10 11:23:49 +08:00
Yichen Jiang 39982843f6 Merge branch 'stack/agent-profiles-3-wire' into stack/agent-profiles-5-web-ui 2026-08-10 11:18:49 +08:00
Yichen Jiang 68f1488770 Merge branch 'stack/agent-profiles-1-seam' into stack/agent-profiles-3-wire
# Conflicts:
#	packages/preset/agent-presets/src/index.ts
2026-08-10 11:18:41 +08:00
Yichen Jiang 1eb9acaba9 refactor(scope): bind the parent link once and gate re-linking behind the binding
setScopeParent could re-link any key from anywhere, leaving the
blank-session-only recompose rule entirely to caller discipline. The
relation now binds once — a second bind throws — and re-linking exists
only on the ScopeParentBinding returned to the original binder, the
private-capability shape the package conventions prescribe for a
single-caller operation. The preset roster keeps each composed agent's
binding in a WeakMap keyed by the agent, making it the sole authority
that can move an agent between standing compositions; the blank-session
contract itself stays with the gateway, which alone can see what a
session logged.
2026-08-10 11:17:04 +08:00
Tianyi Cui abaf8f5061 Merge pull request #2086 from deepseek-harness/worktree/ci-native-windows-multicore-20260809
ci: accelerate native Windows on multicore runners
2026-08-10 11:11:25 +08:00
creatixchu 6a72a0873c fix(ci): repair fixture turns and module graph 2026-08-10 11:08:35 +08:00
Tianyi Cui b653f48ca8 Merge remote-tracking branch 'origin/worktree/ci-native-windows-coverage-20260808' into worktree/ci-native-windows-multicore-20260809 2026-08-09 23:53:48 +08:00
Tianyi Cui 723e428c3b test(web): await fork title projection 2026-08-09 23:50:46 +08:00
Yichen Jiang e637f95d78 docs: regenerate the module graph after the headless roster-dependency removal
The direct-profile alignment dropped the headless bundle's agent-presets
dependency edge; the generated graph follows it.
2026-08-09 23:50:05 +08:00
Yichen Jiang 37dc08067d Merge branch 'stack/agent-profiles-5-web-ui' into stack/agent-profiles-8-authoring 2026-08-09 23:43:09 +08:00
Yichen Jiang d2aa66c4d6 fix(agent-presets): unify the session event entrypoint and re-address the hermetic skills probe
The persistence catalog recognizes SessionEventMap augmentations of
'@deepseek-ai/dsh-session/types' alone, so the selected event's old
root-specifier declaration compiled but silently vanished from the
generated catalog. The hermetic scaffold e2e still addressed the skill
registry as a preset-realm service; under the layered host registry the
composed agent's view is a scope read, and the ambient-root isolation it
proves is unchanged.
2026-08-09 23:42:44 +08:00
Yichen Jiang b77bbb1526 docs(packages): keep package index within budget 2026-08-09 23:38:37 +08:00
Yichen Jiang f59368e2e1 Merge remote-tracking branch 'origin/master' into worktree/web-multimodal-image-input 2026-08-09 23:33:44 +08:00
Yichen Jiang c06f9041fc Merge remote-tracking branch 'origin/master' into worktree/web-multimodal-image-input
# Conflicts:
#	.agents/notes/implemented/architecture/2026-07-05-reconstructable-requests.i18n.yaml
#	docs/config-catalog.md
#	docs/cordis-catalog/events.md
#	docs/cordis-catalog/services.md
#	docs/core-data-structures/core.md
#	docs/core-data-structures/core.zh.md
#	docs/core-data-structures/llm-streaming.i18n.yaml
#	docs/core-data-structures/llm-streaming.md
#	docs/core-data-structures/llm-streaming.zh.md
#	docs/event-producer-consumer.md
#	docs/module-graph.md
#	docs/subsystems/attachment.i18n.yaml
#	docs/subsystems/attachment.md
#	docs/subsystems/attachment.zh.md
#	docs/subsystems/core.i18n.yaml
#	examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
#	packages/README.i18n.yaml
#	packages/README.md
#	packages/README.zh.md
#	packages/client/runtime/package.json
#	packages/client/ui-conversation/package.json
#	packages/client/ui-conversation/src/client/chat/AssistantMarkdown.tsx
#	packages/client/ui-conversation/src/client/chat/ChatView.tsx
#	packages/client/ui-conversation/src/client/chat/MessageItem.tsx
#	packages/client/ui-conversation/src/client/index.ts
#	packages/client/ui-conversation/tests/input-bar.spec.tsx
#	packages/compact/compact-basic/README.i18n.yaml
#	packages/compact/compact-basic/README.md
#	packages/compact/compact-basic/README.zh.md
#	packages/host/apiproxy/src/api-proxy.ts
#	packages/host/apiproxy/src/api/index.ts
#	packages/host/apiproxy/src/api/sessions.ts
#	packages/host/apiproxy/src/index.ts
#	packages/host/apiproxy/tests/api-proxy-models.spec.ts
#	packages/self-modification/tool-cordis/src/api-catalog.ts
#	pnpm-lock.yaml
#	scripts/type-equiv.manifest.json
2026-08-09 23:33:35 +08:00
Tianyi Cui 92a00d6593 Merge remote-tracking branch 'origin/worktree/ci-native-windows-coverage-20260808' into worktree/ci-native-windows-multicore-20260809 2026-08-09 23:27:08 +08:00
Tianyi Cui 2e6adac082 Merge remote-tracking branch 'origin/master' into worktree/ci-native-windows-coverage-20260808 2026-08-09 23:26:01 +08:00
Tianyi Cui 5ba7455091 test(settings): make invalid watcher edit atomic 2026-08-09 23:25:38 +08:00
Yichen Jiang 98fe3892fb Merge branch 'stack/agent-profiles-5-web-ui' into stack/agent-profiles-8-authoring 2026-08-09 23:18:47 +08:00
Yichen Jiang 1eb5d6ba46 Merge branch 'stack/agent-profiles-3-wire' into stack/agent-profiles-5-web-ui 2026-08-09 23:18:45 +08:00
Yichen Jiang e4b18b0179 docs(notes): drop the internal repository link from the layered-skill-registry note
verify-public-repository-links rejects deepseek-harness URLs in committed
prose; the bypass reference stands on its own.
2026-08-09 23:18:37 +08:00
Yichen Jiang feac8ab1ac fix(agent-presets): declare the selected event on the unified session types entrypoint
The persistence catalog recognizes augmentations of
'@deepseek-ai/dsh-session/types' alone, so the old root-specifier
declaration compiled but silently vanished from the generated catalog; the
Agent Note also drops its internal repository link for the public-links
gate, and the persistence catalog pair re-records with the restored
agent-preset section.
2026-08-09 23:18:05 +08:00
Tianyi Cui b27cf7726f Merge pull request #2120 from deepseek-harness/worktree-skill-trim-cot-review-fixes
docs(skills): fix dsh-trim-cot-leakage review findings from #2117
2026-08-09 23:13:28 +08:00
Yichen Jiang d5af34b022 fix(headless): align the one-shot runner with the direct rosterless profile
The shipped headless profile is base + headless (the direct-core front
door), and its installation-owned migration rewrites the old three-bundle
tuple down to that template, so a one-shot run composes no preset roster.
The runner's optional preset composition was compensating in the wrong
direction: it re-added roster reads the shipped profile never satisfies,
and its golden pinned a header field only a roster-bearing deployment
produces. The runner, the headless bundle manifest, and the dsh-run golden
return to the direct shape; skills in a direct run flow through the base
host rows' global layer, which is what the repository-plugin e2e proves.
2026-08-09 23:12:29 +08:00
Tianyi Cui 48c18f0f8b Merge remote-tracking branch 'origin/worktree/ci-native-windows-coverage-20260808' into worktree/ci-native-windows-multicore-20260809 2026-08-09 23:02:41 +08:00
Yichen Jiang 7dcefeda50 Merge branch 'stack/agent-profiles-5-web-ui' into stack/agent-profiles-8-authoring
# Conflicts:
#	apps/cli/tests/web-agent-presets.e2e.ts
#	packages/client/connection/README.i18n.yaml
#	packages/client/connection/README.md
#	packages/client/connection/README.zh.md
#	packages/client/ui-conversation/src/client/contract/slots.ts
#	packages/client/ui-primitives/tests/icons.spec.tsx
#	packages/client/ui-settings/src/client/contract/slots.ts
#	packages/host/apiproxy/tests/api-proxy-agent-preset.spec.ts
2026-08-09 23:02:37 +08:00
Tianyi Cui c68e5a363c Merge remote-tracking branch 'origin/master' into worktree/ci-native-windows-coverage-20260808 2026-08-09 23:02:09 +08:00
Tianyi Cui db7cfc117b Merge pull request #2063 from deepseek-harness/worktree/ci-native-windows-20260808
ci: run native Windows alongside required Wine
2026-08-09 22:58:17 +08:00
Yichen Jiang 877364f7a4 Merge branch 'stack/agent-profiles-3-wire' into stack/agent-profiles-5-web-ui
# Conflicts:
#	packages/client/ui-conversation/tests/input-bar.spec.tsx
2026-08-09 22:57:23 +08:00
Yichen Jiang 4926b296c4 Merge branch 'stack/agent-profiles-1-seam' into stack/agent-profiles-3-wire
# Conflicts:
#	docs/persistence-catalog.i18n.yaml
#	docs/persistence-catalog.md
#	docs/persistence-catalog.zh.md
2026-08-09 22:56:44 +08:00
Yichen Jiang 51ca900d4e Merge remote-tracking branch 'origin/master' into stack/agent-profiles-1-seam 2026-08-09 22:54:57 +08:00
Tianyi Cui 81206cd60c Merge remote-tracking branch 'origin/worktree/ci-native-windows-coverage-20260808' into worktree/ci-native-windows-multicore-20260809
# Conflicts:
#	.agents/notes/implemented/process/2026-08-08-native-windows-pull-request-ci.i18n.yaml
2026-08-09 22:50:48 +08:00
Tianyi Cui 4a7d437562 docs(skills): fix dsh-trim-cot-leakage review findings from #2117
The battery self-exclusion widens from references/ to the whole skill
directory (SKILL.md quotes the same leaked shapes), and the invocation
rules name the owning note's evidence self-hits; natural-language
battery lines gain -i so sentence-initial capitals hit; the actually/
wait false-positive family states that no committed line probes it.
The one test now says resolvability clears only this skill's bar —
current-state surfaces still reject resolvable change stories; the
never-deletion-alone rule is scoped to passages that carry factual
clauses. The first few-shot Fixed example links the real web
input-machine note path. The citations note's Verification exemption
(+zh, pair re-recorded) names the skill's files and the note's own
quoted evidence, making the claim mechanically honest.
2026-08-09 22:50:26 +08:00
Yichen Jiang d7605c62e9 test(cli): give the layered-skills e2e sessions run-unique ids
The suite composes over the ambient DSH home, so a fixed session id
collides with the log a previous run persisted once the tool-execution
path checks persisted identity.
2026-08-09 22:49:01 +08:00
Yichen Jiang 0d7106d902 Merge branch 'stack/agent-profiles-3-wire' into stack/agent-profiles-5-web-ui
# Conflicts:
#	apps/cli/tests/web-agent-presets.e2e.ts
#	packages/host/apiproxy/tests/api-proxy-agent-preset.spec.ts
2026-08-09 22:48:47 +08:00
Tianyi Cui 2b9b20836e Merge remote-tracking branch 'origin/worktree/ci-native-windows-20260808' into worktree/ci-native-windows-coverage-20260808 2026-08-09 22:44:50 +08:00
Tianyi Cui 7257ce3dc3 Merge remote-tracking branch 'origin/master' into worktree/ci-native-windows-20260808 2026-08-09 22:42:28 +08:00
Tianyi Cui 681f7c1315 test(windows): terminate worker fixtures from host 2026-08-09 22:41:38 +08:00
Tianyi Cui ddbc07a067 Merge pull request #2117 from deepseek-harness/worktree-skill-trim-cot-leakage
docs(skills): dsh-trim-cot-leakage — distill the CoT-leakage purge into a reusable audit skill
2026-08-09 22:35:40 +08:00