Commit Graph
11815 Commits
Author SHA1 Message Date
imccyu 77ccffa35e feat(api-remotes): enforce the forwardable shape and resolve the invariant companion
The allowlist's satisfies assertion is active again, so a name that is not a
declared event, binds a Scope, or is not one-way fails at the allowlist rather
than on the wire; the owner packages' ./types imports are what give it a real
event vocabulary to judge. The companion's own paths entry lets its test resolve
it from source instead of a built artifact, matching the api-gateway entry.
2026-08-11 19:25:40 +08:00
imccyu 04b2f7bcc9 test(web): keep the browser e2e out of the Client build graph
These e2e boot a real harness and read Host services, so they type-check in the
Host aggregate; importing a Client package there pulls its whole project — and
everything it references — into the Host build phase, where a Client project
waiting on generated artifacts cannot compile. The welcome-notice constants are
mirrored in the scaffold instead, which lets apps/cli drop the Client project
references that only served as their owner map.
2026-08-11 19:25:40 +08:00
imccyu d88f771e19 feat(remote): deliver allowlisted Host events through ctx.remote.$on
api/remotes owns the allowlist and its type projection; type-meta owns the shape
predicate, the selection seat, and the internal remote/host-event carrier
signal; api/gateway's Client half turns that signal into $on callbacks through a
private dispatch. apiproxy forwards each allowlisted emission verbatim in one
host/remote-event frame, registered ahead of the derived invalidation frames so
frame order is unchanged, and drops the three per-event variants it replaces.
Owner packages move their Events declarations into client-safe ./types exports,
so a consumer's listener signature is the Host's own declaration.
2026-08-11 19:25:40 +08:00
imccyu b64da061a8 docs: record the forwarded-event surface and its face boundaries
Each owner package's README states which of its cordis events are forwarded and
that the declaration now lives in the client-safe ./types export. api/remotes
documents the allowlist as the single control point and the deliberate
both-faces listing of src/types.ts; development.md keeps the split-tsconfig rule
current.
2026-08-11 19:25:40 +08:00
imccyu 7c8ee81818 docs(agent-note): propose Remote event delivery via ctx.remote.$on
An allowlist in api/remotes drives verbatim forwarding of Host cordis events
that bind no AgentScope, wrapped in one host/remote-event frame on the existing
host stream. Consumers subscribe through ctx.remote.$on, whose listener type is
the owner package's own Events declaration, so the payload contract holds by
construction rather than through a restated table.
2026-08-11 19:25:39 +08:00
Yichen Jiang d73ffc272d Merge pull request #2118 from deepseek-harness/worktree/docs-homepage-copy
Refine documentation homepage positioning
2026-08-11 19:25:19 +08:00
Tianyi Cui 7028df46e4 Merge worktree/schedule-explicit-at into worktree/schedule-fixed-rate 2026-08-11 19:23:20 +08:00
ZiyaZhang a8092699b1 fix(ci): refresh pairing after master merge 2026-08-11 04:23:13 -07:00
creatixchu 3beb138b3f Merge remote-tracking branch 'origin/master' into worktree/multimodal-ui 2026-08-11 19:23:04 +08:00
Tianyi Cui 035f3e5a65 Merge worktree/schedule-conversational-after into worktree/schedule-explicit-at 2026-08-11 19:20:38 +08:00
Tianyi Cui 32a9a0ac61 Merge remote-tracking branch 'origin/master' into worktree/schedule-conversational-after 2026-08-11 19:10:26 +08:00
Ziya ef565fe7f4 Merge branch 'master' into feat/produced-files-folder 2026-08-11 19:10:11 +08:00
Tianyi Cui 274c3c13c4 Merge remote-tracking branch 'origin/master' into worktree/schedule-conversational-after 2026-08-11 19:06:02 +08:00
pku-xht 7957c0f491 Merge pull request #2179 from deepseek-harness/codex/workflow-runs-chat-node-f6
feat(workflow): show durable run records in Chat
2026-08-11 19:05:44 +08:00
Tianyi Cui 3f01ff8291 Merge remote-tracking branch 'origin/master' into worktree/schedule-conversational-after 2026-08-11 19:05:13 +08:00
Turtle 35b4214e4e Merge pull request #2260 from deepseek-harness/codex/add-contributing-guide
docs: add contribution guide
2026-08-11 19:04:42 +08:00
Yichen Jiang f92161d705 Merge remote-tracking branch 'origin/master' into worktree/web-plugin-config 2026-08-11 19:04:03 +08:00
Yichen Jiang 9333fad6e1 test(web): carry the plugin-config nav item into the models-settings golden
Master regenerated this dialog golden on its own side, where the section does
not exist; the refreshed file differs from it by exactly the one nav row.
2026-08-11 18:58:37 +08:00
pku-xht 53ee85308e Merge commit '001af891c33ef1466caa64539be0afa5fe7d2191' into codex/workflow-runs-chat-node-f6 2026-08-11 18:56:12 +08:00
creatixchu 4e639b1ac4 Merge remote-tracking branch 'origin/master' into worktree/multimodal-ui 2026-08-11 18:55:35 +08:00
Tianyi Cui eb83e0c615 Merge pull request #2258 from deepseek-harness/worktree/pr2177-export-fixes-20260811
fix(web): harden session-log downloads
2026-08-11 18:43:05 +08:00
pku-xht 8e3418e925 test(workflow): avoid unbound view builder reference 2026-08-11 18:41:10 +08:00
Yichen Jiang 06ae6714ce Merge remote-tracking branch 'origin/master' into worktree/web-plugin-config 2026-08-11 18:31:49 +08:00
pku-xht fba82eb87a Merge commit 'ee223e65457ca717a2596b33afcaf604c94ba774' into codex/workflow-runs-chat-node-f6 2026-08-11 18:29:19 +08:00
Yichen Jiang 8efb2bc9a2 Merge origin/master into worktree/web-plugin-config
Three seams: the tsconfig path map gained a mapping on each side and keeps
both; the event-producer matrix is generated, so it was regenerated rather
than hand-merged row by row.
2026-08-11 18:27:53 +08:00
Tianyi Cui d29a8261e0 fix(vendor): realign the rescope log anchor
PR #2239 removed the old in-memory activation entry and renumbered the local-modification log so Cordis source publication is item 16 and the rescope is item 17. It updated vendor/README.md but left this exact edit expecting the rescope before an item 18, so the current master post-state matched neither side and pnpm run hygiene failed.

Treat item 16 as the pre-rescope anchor and append item 17 in the replacement. The forward edit now produces the checked-in ordering, while reversing it removes only the rescope entry and preserves the independent Cordis publication note.

Verified with the rescope-vendor unit suite, pnpm run rescope-vendor:check, pnpm run hygiene, and git diff --cached --check.
2026-08-11 18:24:17 +08:00
creatixchu 2838087ec4 chore: merge master and refresh module graph for ui-attachment 2026-08-11 18:23:36 +08:00
Ziya 540a6b4375 Merge branch 'master' into feat/produced-files-folder 2026-08-11 18:23:31 +08:00
pku-xht 2e2ca4f5bb Merge commit 'e03b51d7db18bffe4b1988a8a5d35e01c18fc2c1' into codex/workflow-runs-chat-node-f6 2026-08-11 18:20:37 +08:00
creatixchu 0d380d29c4 Merge remote-tracking branch 'origin/master' into worktree/multimodal-ui 2026-08-11 18:20:35 +08:00
Tianyi Cui 7df8bad6a0 merge(master): checkpoint post-review base movement
Master advanced from e03b51d7db to ee223e6545 after bot-thread resolution and the PR-body policy fix. Merge-forward preserves the reviewed issue commits and explicit checkpoint history instead of rewriting the branch.

The only textual conflict was the generated translation-pairing record for docs/config-catalog. Regenerate the English catalog from the combined source tree and re-record the bilingual hashes so current-master command-line changes and this PR's compression configuration coexist.

Verified with pnpm run verify-config-catalog, pnpm run verify-translation-pairing docs/config-catalog.md, and git diff --cached --check.
2026-08-11 18:19:35 +08:00
Turtle 8e1c1faaad Merge pull request #2239 from deepseek-harness/refactor/trim-cmdline-seams
refactor(cmdline): trim the command-line seams to existing interfaces
2026-08-11 18:17:46 +08:00
Turtle 8a6c3736e4 docs: separate contribution links from license 2026-08-11 18:16:29 +08:00
Tianyi Cui 5931afaf87 docs(session-persistence): bind raw capability to its reader
The abstract capability flag forces every backend to state whether it owns per-session raw artifacts, but TypeScript cannot express that a true flag requires replacing the concrete unsupported default. Without an implementer-facing obligation, a backend could advertise support and then fail with a contradictory unsupported diagnostic on first use.\n\nDocument the required pairing at the capability declaration. Keep readRaw concrete so backends that correctly report false inherit one fail-loud implementation instead of duplicating rejection code.
2026-08-11 18:10:28 +08:00
pku-xht b38e02462b Merge commit '5427cbcc19cfd1ce9f3af1ae22207852cc5740fa' into codex/workflow-runs-chat-node-f6 2026-08-11 18:09:43 +08:00
Turtle a11081ac84 test: refresh contribution pairing snapshot 2026-08-11 18:09:16 +08:00
creatixchu 8adcd473fe Merge remote-tracking branch 'origin/master' into worktree/multimodal-ui 2026-08-11 18:04:23 +08:00
Turtle e5b8b36471 test(e2e): disable the always-on client-hmr row in the preset boot
The suite disables the webserver and browser roster rows; the reload
chain waits on both, so the activation audit failed the boot.
2026-08-11 18:01:25 +08:00
Turtle 149a5674be fix(cli): contain app-exit races in watcher setup; sync watch docs
A fast one-shot can request exit through ctx.appExit while the launcher
still awaits its watcher setup; the failure guard now also swallows the
resulting rejections when the tree is no longer live, not only on
signal shutdown. Sync the app-boot README and headless bundle comment
with unconditional patch watching, and bring the two Agent Notes still
asserting the --dev row append and the headlessIo slot current.
2026-08-11 18:01:25 +08:00
Turtle 341051603f refactor(web): remove --dev; mount the reload chain unconditionally
The client-hmr row joins the web bundle as an ordinary always-on roster
row: without a rebuild watcher rewriting client bundles it polls
unchanged files and stays idle. This deletes the --dev flag, the web
runtime's mode config, the mode-forked prompt contract, the DSH_WEB_MODE
bash variable, and the post-settlement row-creation machinery the
conditional row required. dsh web + pnpm run dev:web remains the
development loop.
2026-08-11 18:01:25 +08:00
creatixchu dc42e6b822 feat(web): toast anchoring and model-selection rejection banner
The toast sits 120px from the viewport top and centers over its anchor —
the composer card, so it centers on the chat column rather than the window;
a rejected model selection (e.g. picking a text-only model while the
session holds images) announces through the same banner while the in-menu
strip with Retry stays the catalog-load surface. The attachment rail
consumes every wheel tick with a vertical component: a diagonal pan keeps
its horizontal intent and nothing scrolls the conversation behind the
composer.
2026-08-11 18:00:56 +08:00
Yichen Jiang 3c8cf3a564 fix(client-ui-plugin-config): refresh the key badge when the Host reports the credential changed
The card read the credential only when its settings scope published, and a
credential is not part of any settings section: a key written from the Models
page — which addresses the same reference — left this badge reporting a state
the Host had already replaced. It now re-reads on credentials/changed for the
reference it watches, and ignores the event for any other reference.
2026-08-11 18:00:24 +08:00
Turtle fb301ace65 fix(web-app): defer to a user-configured client-hmr row
The whole-tree name scan (entries() recurses into subtrees) already
skips creation when any patch layer carries the row, including a
disabled one; make that contract explicit in the comment, pin it with a
test, and record it in the Agent Note.
2026-08-11 18:00:15 +08:00
Turtle c598989d08 refactor(cmdline): trim the command-line seams to existing interfaces
The web runtime creates its dev-mode client-hmr row in the root tree
after Loader settlement with plain loader.create, deleting the vendored
Entry.enableRuntime state machine and dsh-cmdline's enableRow export.
Include declares the existing EntryGroup.key tree-carrier marker instead
of the EntryConfigResolver protocol (its own path stays literal; nothing
used a dynamic path). The launcher recognizes no app row: SIGTERM exits
0 on every surface, every boot watches its user patch layers, and the
headless runner exits through ctx.appExit, deleting ctx.headlessIo. Also
restores the vendor README rescope entry to the position the
rescope-vendor exact-edit anchor requires, fixing the master hygiene
regression.
2026-08-11 18:00:15 +08:00
ZiyaZhang ed4b27e1af Merge remote-tracking branch 'upstream/master' into feat/produced-files-folder
# Conflicts:
#	docs/module-graph.i18n.yaml
#	docs/module-graph.md
#	docs/module-graph.zh.md
2026-08-11 02:59:50 -07:00
Tianyi Cui b52ddb2887 fix(apiproxy): omit an unresolved compression option
ApiProxyDefaults uses an exact optional property, so passing config.sessionExportCompressionLevel directly made the service object carry an explicit undefined that is not assignable to the resolved request shape. The full host build caught this distinction after the redundant fallback was removed.\n\nConditionally omit the property when Cordis has not supplied a value. Direct createApiProxy callers still receive the implementation-owned default, while configured plugin values pass through without introducing another defaulting site.
2026-08-11 17:59:07 +08:00
kingwl 5e629f7004 test: fix packed install closure and macOS paths 2026-08-11 17:58:08 +08:00
Yichen Jiang 57b094c48d Merge master into worktree/docs-homepage-copy 2026-08-11 17:56:42 +08:00
Turtle 2f4bf08798 docs: add Chinese contribution guide 2026-08-11 17:55:49 +08:00
Turtle 00c4664370 test: refresh translation prompt snapshot 2026-08-11 17:55:49 +08:00