Commit Graph

10984 Commits

Author SHA1 Message Date
_Kerman
b2eb133e19 Merge branch 'master' into fix/web-favicon-dark-mode 2026-08-10 15:47:58 +08:00
Yichen Jiang
086a8d7c98 Merge pull request #555 from deepseek-harness/worktree/web-multimodal-image-input
feat(gui): add multimodal image attachments
2026-08-10 15:41:28 +08:00
creatixchu
76c6e14c8b Merge remote-tracking branch 'origin/master' into codex/pr-555-ci-fix 2026-08-10 15:26:23 +08:00
Yichen Jiang
6a1b89f3d2 Merge pull request #2146 from deepseek-harness/fix/web-slash-catalog-follows-preset
修复 preset 切换后 / 面板不跟随与切不回原 preset
2026-08-10 15:25:28 +08:00
creatixchu
2fea703d67 Merge remote-tracking branch 'origin/master' into codex/pr-555-ci-fix
# Conflicts:
#	docs/module-graph.i18n.yaml
#	docs/module-graph.md
#	docs/module-graph.zh.md
#	packages/client/ui-conversation/src/client/input/hub.ts
#	packages/client/ui-conversation/tests/input-bar.spec.tsx
#	packages/client/ui-conversation/tests/service-orchestration.spec.ts
2026-08-10 15:19:32 +08:00
Yichen Jiang
298ae62a17 docs(scripts): name the event-matrix collector's client-face blind spot
The generated matrix under-reports client-face listeners because the program
is seeded from the host aggregate alone, so `session/preset-changed` lists
`ui-command` without `ui-skill` — the same shape as the existing
`connection/reset` and `models/changed` rows. Record it where the collector
lives, with what closing it actually takes.
2026-08-10 15:16:53 +08:00
Yichen Jiang
0be9bf312a fix(web): fold the preset frame into the session row for every client
The frame carried `agentPreset` for surfaces that label the session, but
nothing consumed it: `noteAgentPreset` ran only in the switching tab's RPC
callback, so a second connected client refetched its catalogs while its
session row — the header label's source, and the hero chip's no-op input —
kept the composition the session had replaced.

`SessionManager.handleHostEnvelope` now folds the frame like the other
session frames. Re-applying the switching tab's own frame is a no-op: the
merge lowers `blank` only and keeps the row's `updatedAt`.
2026-08-10 15:12:07 +08:00
Yichen Jiang
ec8cbd7513 Merge remote-tracking branch 'origin/master' into fix/web-slash-catalog-follows-preset 2026-08-10 15:07:15 +08:00
Yichen Jiang
86bcd3af47 Merge pull request #2144 from deepseek-harness/worktree/fix-windows-preset-ci
fix(agent-presets): repair Windows preset CI
2026-08-10 15:04:05 +08:00
Yichen Jiang
801c41fddc Merge branch 'master' into worktree/fix-windows-preset-ci 2026-08-10 14:52:19 +08:00
Yichen Jiang
6a830f1779 test(web): stabilize preset-aware steering snapshots 2026-08-10 14:44:37 +08:00
Yichen Jiang
f895ee22d0 Merge remote-tracking branch 'origin/master' into fix/web-slash-catalog-follows-preset
# Conflicts:
#	packages/host/apiproxy/README.i18n.yaml
#	packages/host/apiproxy/README.md
#	packages/host/apiproxy/README.zh.md
2026-08-10 14:38:17 +08:00
Yichen Jiang
259d998455 fix(web): follow a blank session's preset switch in the slash catalog
Presets own the rows that decide what a session's `/` menu contains, but
both browser catalogs cache per session and had no invalidation edge for a
recompose: `commands/changed` is registry-wide and recomposing registers
nothing, so the menu kept serving the composition the session no longer ran.

The host stream now frames the logged `agent-preset/selected` commit as
`host/session-preset-changed`; the runtime bridges it to the typed
`session/preset-changed` event, `ui-command` soft-refreshes that session's
directory key and `ui-skill` invalidates its catalog entry.

Reaching the host on a second switch was a separate defect: the list-row
identity guard compared every summary field except `agentPreset`, and the
merge keeps the row's `updatedAt`, so a switched row looked unchanged and
served its cached instance forever. The hero chip compares the pick against
that row, so switching back to the creation-time preset sent no RPC at all.
2026-08-10 14:35:13 +08:00
Yichen Jiang
52fafa012e test(agent-presets): stabilize generation race coverage 2026-08-10 14:30:02 +08:00
Turtle
71ac961da4 Merge pull request #502 from deepseek-harness/codex/replace-front-door-with-front-end
Replace front door terminology with front end and entry point
2026-08-10 14:29:31 +08:00
Yichen Jiang
75100ad2e5 fix(agent-presets): repair Windows preset CI 2026-08-10 14:22:55 +08:00
_Kerman
cf7acd0b2d docs: restore the install manifest note to the SVG-only contract
The PNG fallback is gone, so the note's manifest facts, the raster-variant
alternative, and the cross-link to the archived favicon decision revert to
the pre-PNG wording; the manifest is SVG-only again.
2026-08-10 14:17:24 +08:00
_Kerman
c74482401d revert(web): drop the 32x32 PNG favicon fallback
The SVG media query alone fixes the dark-mode icon for every SVG-capable
browser (Chrome, Edge, Firefox, Safari 26+); the PNG only served Safari
versions before 26, which is a shrinking legacy audience not worth a second
asset, its manifest/link declarations, and the extra test surface. index.html
and the manifest are back to the single SVG icon.
2026-08-10 14:17:17 +08:00
Turtle
a7fc81d745 docs: replace front door terminology 2026-08-10 13:07:46 +08:00
_Kerman
9d5386893a docs: archive the web favicon dark-mode note
The one-off favicon fix is complete and its rationale is unlikely to guide
future work, so the implemented note is sealed under archived/bug-fix/ with
the Archived line and its sidecar hashes re-recorded; the install-manifest
note now cites the archived snapshot. Pre-commit pairing hook skipped with
--no-verify: the hook rejects archived .i18n.yaml anchors that the pairing
corpus excludes by design; verify-archived-agent-notes and
verify-translation-pairing both pass.
2026-08-10 12:58:52 +08:00
imccyu
6648ff984a Merge pull request #1817 from deepseek-harness/feat/web-queue-steer-all
feat(web): 空输入时 Ctrl/Cmd+Enter 将当前排队消息全部插话发送
2026-08-10 12:58:20 +08:00
_Kerman
7628b9cc4d docs: qualify the favicon fallback for older Safari and state manifest facts in present tense
Safari 26 and iOS 26 render SVG favicons, so the PNG fallback serves Safari
versions before 26; both Agent Notes now say so instead of claiming Safari
never renders SVG. The install-manifest Consequences section drops the
change narration and states the current manifest contract in present tense.
2026-08-10 12:56:31 +08:00
_Kerman
c4203677c0 test(web): pin favicon fallback format, order, and media-query binding
The pwa-manifest e2e now asserts the shipped 32x32 PNG is a valid non-empty
PNG of the declared dimensions, that the PNG link precedes the SVG link in
the built index.html (the spec selects the last equally appropriate icon),
and that the light fill lives inside the dark-scheme media query while the
light-mode default stays black.
2026-08-10 12:56:24 +08:00
Huanqi Cao
4cedc69966 Merge pull request #1990 from deepseek-harness/feat/windows-acl-sandbox
feat(sandbox): Windows ACL write-restriction sandbox (restricted-token runner)
2026-08-10 12:51:31 +08:00
Huanqi Cao
beefa3c43b Merge pull request #1829 from deepseek-harness/feat/windows-pwsh-default
feat(bundle): default Windows hosts to the pwsh shell stack
2026-08-10 12:51:00 +08:00
Huanqi Cao
c9285753de Merge branch 'merge/1829-master' into merge/1990-1829
# Conflicts:
#	docs/module-graph.i18n.yaml
#	docs/module-graph.md
#	docs/module-graph.zh.md
2026-08-10 12:35:32 +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
Huanqi Cao
2a6aba0f48 Merge remote-tracking branch 'origin/master' into merge/1829-master
# Conflicts:
#	apps/cli/package.json
#	pnpm-lock.yaml
2026-08-10 12:32:14 +08:00
Huanqi Cao
0b9f4844c2 fix(config): drop the obsolete lsp-local coverage exclusions
Master's native Windows coverage lane now covers the LSP sources, and its
ci-workflow spec asserts the exclusion paths are absent from vitest.config.ts;
keeping them (as carried over in the merge) fails both the coverage and the
native Windows lanes. The sandbox-windows-acl exclusion stays: that package
is win32-only and the Linux lane cannot cover it.
2026-08-10 12:30:46 +08:00
Huanqi Cao
ad54135d43 fix(sandbox-local): block-body the default rmTempDir fallback
The arrow shorthand implicitly returns rmSync's void, which the
no-confusing-void-expression rule forbids; the block body keeps the
fallback without the violation.
2026-08-10 12:30:39 +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
_Kerman
e8f884ba35 fix(web): make the favicon follow the color scheme
favicon.svg embeds @media (prefers-color-scheme: dark) so the DeepSeek
mark turns white under a dark browser scheme; index.html and the install
manifest gain a 32x32 PNG fallback (brand blue) for Safari, which cannot
render SVG favicons. pwa-manifest.e2e.ts pins the PNG link, both manifest
icons, and the dark media query.
2026-08-10 11:50:33 +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
_Kerman
85ebb03c00 test(web): wait for the reasoning row before the steer-all mid snapshot
The mid golden was racing the reasoning block's stream: captureStableAria
could freeze on the pre-render gap between steering acceptance and the
assistant step, pinning a snapshot without the Think row. Wait for the
[data-variant=think] row so the golden captures the complete assistant step.
2026-08-10 11:30:33 +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
Huanqi Cao
a3a91aa654 Merge branch 'merge/1829-master' into merge/1990-1829
# Conflicts:
#	vitest.config.ts
2026-08-10 11:24:58 +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
Huanqi Cao
a7b973757b Merge remote-tracking branch 'origin/master' into merge/1829-master 2026-08-10 11:23:08 +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
Huanqi Cao
ee38c2540b Merge branch 'merge/1829-master' into merge/1990-1829 2026-08-10 11:12:52 +08:00
Huanqi Cao
2474b6e638 Merge remote-tracking branch 'origin/master' into merge/1829-master
# Conflicts:
#	scripts/project-doc-site.spec.ts
2026-08-10 11:12:39 +08:00
_Kerman
0306aefaa9 test(web): refresh steer-all mid golden against merged master UI 2026-08-10 11:12:36 +08:00