Turtle
93a1b569ac
Merge remote-tracking branch 'origin/master' into codex/remove-cordis-catalog-line-numbers
...
# Conflicts:
# docs/subsystems/agent-team.i18n.yaml
# docs/subsystems/approval.i18n.yaml
# docs/subsystems/client-modules.i18n.yaml
# docs/subsystems/client-modules.md
# docs/subsystems/client-modules.zh.md
# docs/subsystems/code-runtime.i18n.yaml
# docs/subsystems/commands.i18n.yaml
# docs/subsystems/commands.md
# docs/subsystems/commands.zh.md
# docs/subsystems/compaction.i18n.yaml
# docs/subsystems/compaction.md
# docs/subsystems/compaction.zh.md
# docs/subsystems/core.i18n.yaml
# docs/subsystems/core.md
# docs/subsystems/core.zh.md
# docs/subsystems/credentials.i18n.yaml
# docs/subsystems/credentials.md
# docs/subsystems/credentials.zh.md
# docs/subsystems/feedback.i18n.yaml
# docs/subsystems/filesystem.i18n.yaml
# docs/subsystems/goal.i18n.yaml
# docs/subsystems/http-server.md
# docs/subsystems/http-server.zh.md
# docs/subsystems/invariants.i18n.yaml
# docs/subsystems/invariants.md
# docs/subsystems/invariants.zh.md
# docs/subsystems/jobs.i18n.yaml
# docs/subsystems/llm-streaming.i18n.yaml
# docs/subsystems/llm-streaming.md
# docs/subsystems/llm-streaming.zh.md
# docs/subsystems/permission-presets.md
# docs/subsystems/permission-presets.zh.md
# docs/subsystems/persistence.i18n.yaml
# docs/subsystems/persistence.md
# docs/subsystems/persistence.zh.md
# docs/subsystems/plan.i18n.yaml
# docs/subsystems/plan.md
# docs/subsystems/plan.zh.md
# docs/subsystems/sandbox.i18n.yaml
# docs/subsystems/sandbox.md
# docs/subsystems/sandbox.zh.md
# docs/subsystems/schedule.i18n.yaml
# docs/subsystems/session-projection.i18n.yaml
# docs/subsystems/session-projection.md
# docs/subsystems/session-projection.zh.md
# docs/subsystems/session-query.i18n.yaml
# docs/subsystems/session-reference.i18n.yaml
# docs/subsystems/session-reference.md
# docs/subsystems/session-reference.zh.md
# docs/subsystems/session-telemetry.md
# docs/subsystems/session-telemetry.zh.md
# docs/subsystems/session-title.i18n.yaml
# docs/subsystems/session.i18n.yaml
# docs/subsystems/session.md
# docs/subsystems/session.zh.md
# docs/subsystems/settings.i18n.yaml
# docs/subsystems/settings.md
# docs/subsystems/settings.zh.md
# docs/subsystems/shell.i18n.yaml
# docs/subsystems/shell.md
# docs/subsystems/shell.zh.md
# docs/subsystems/skills.i18n.yaml
# docs/subsystems/skills.md
# docs/subsystems/skills.zh.md
# docs/subsystems/spill.i18n.yaml
# docs/subsystems/storage.i18n.yaml
# docs/subsystems/subagent.i18n.yaml
# docs/subsystems/subagent.md
# docs/subsystems/subagent.zh.md
# docs/subsystems/subprocess.i18n.yaml
# docs/subsystems/system-prompt.i18n.yaml
# docs/subsystems/system-prompt.md
# docs/subsystems/system-prompt.zh.md
# docs/subsystems/tasks.md
# docs/subsystems/tasks.zh.md
# docs/subsystems/terminal.md
# docs/subsystems/terminal.zh.md
# docs/subsystems/token-meter.i18n.yaml
# docs/subsystems/tools.i18n.yaml
# docs/subsystems/tools.md
# docs/subsystems/tools.zh.md
# docs/subsystems/typert.i18n.yaml
# docs/subsystems/typert.md
# docs/subsystems/typert.zh.md
# docs/subsystems/user-interaction.i18n.yaml
# docs/subsystems/user-questions.i18n.yaml
# docs/subsystems/user-questions.md
# docs/subsystems/user-questions.zh.md
# docs/subsystems/web.i18n.yaml
# docs/subsystems/workflow.i18n.yaml
# docs/subsystems/workflow.md
# docs/subsystems/workflow.zh.md
# docs/subsystems/workspace.i18n.yaml
# docs/subsystems/workspace.md
# docs/subsystems/workspace.zh.md
# packages/typert/generator/tests/cordis-catalog.spec.ts
2026-08-20 19:48:43 +08:00
pku-xht
84cbec28e9
Merge remote-tracking branch 'origin/master' into codex/localized-chinese-doc-links
...
# Conflicts:
# .agents/notes/implemented/architecture/2026-06-11-content-block-vocabulary.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-11-content-block-vocabulary.zh.md
# .agents/notes/implemented/architecture/2026-06-18-shared-persistence-write-coordinator.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-10-single-file-executable-sdk-runtime-distribution.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-10-single-file-executable-sdk-runtime-distribution.zh.md
# .agents/notes/implemented/bug-fix/2026-07-29-pnpm-setup-runner-isolation.i18n.yaml
# .agents/notes/implemented/bug-fix/2026-07-29-pnpm-setup-runner-isolation.zh.md
# .agents/notes/implemented/bug-fix/2026-08-18-request-image-payload-bound.i18n.yaml
# .agents/notes/implemented/bug-fix/2026-08-18-request-image-payload-bound.zh.md
# .agents/notes/implemented/feature/2026-07-06-sandbox.i18n.yaml
# .agents/notes/implemented/feature/2026-07-06-sandbox.zh.md
# .agents/notes/implemented/feature/2026-07-16-persistent-pty-sessions.i18n.yaml
# .agents/notes/implemented/feature/2026-07-21-cross-session-references.i18n.yaml
# .agents/notes/implemented/feature/2026-07-21-cross-session-references.zh.md
# .agents/notes/implemented/feature/2026-07-22-web-multimodal-image-input-and-durable-attachments.i18n.yaml
# .agents/notes/implemented/feature/2026-07-22-web-multimodal-image-input-and-durable-attachments.zh.md
# .agents/notes/implemented/feature/2026-07-27-web-subagent-conversations.i18n.yaml
# .agents/notes/implemented/feature/2026-07-31-permission-default-for-new-sessions.i18n.yaml
# .agents/notes/implemented/feature/2026-08-03-web-search-source-scroll.i18n.yaml
# .agents/notes/implemented/feature/2026-08-03-web-search-source-scroll.zh.md
# .agents/notes/implemented/feature/2026-08-04-claude-code-and-codex-subagent-backends.i18n.yaml
# .agents/notes/implemented/feature/2026-08-04-claude-code-and-codex-subagent-backends.zh.md
# .agents/notes/implemented/feature/2026-08-05-agent-teams.i18n.yaml
# .agents/notes/implemented/feature/2026-08-05-agent-teams.zh.md
# .agents/notes/implemented/feature/2026-08-11-workspace-sidebar-order-and-folding.i18n.yaml
# .agents/notes/implemented/feature/2026-08-15-product-subagent-noninteractive-permissions.i18n.yaml
# .agents/notes/implemented/process/2026-07-21-serial-cross-platform-ci-reference.i18n.yaml
# .agents/notes/implemented/process/2026-07-21-serial-cross-platform-ci-reference.zh.md
# .agents/notes/implemented/process/2026-07-22-evidence-based-larger-hosted-runners.i18n.yaml
# .agents/notes/implemented/process/2026-07-22-evidence-based-larger-hosted-runners.zh.md
# .agents/notes/implemented/process/2026-07-23-portable-required-pull-request-ci.i18n.yaml
# .agents/notes/implemented/process/2026-07-23-portable-required-pull-request-ci.zh.md
# .agents/notes/implemented/testing/2026-07-24-web-gui-browser-e2e-lane.i18n.yaml
# .agents/notes/implemented/testing/2026-07-24-web-gui-browser-e2e-lane.zh.md
# .agents/notes/implemented/testing/2026-07-30-web-browser-snapshot-ci-gate.i18n.yaml
# .agents/notes/implemented/testing/2026-07-30-web-browser-snapshot-ci-gate.zh.md
# .agents/notes/proposed/architecture/2026-07-27-session-projection-and-command-log.i18n.yaml
# README.i18n.yaml
# README.zh.md
# docs/architecture.i18n.yaml
# docs/architecture.zh.md
# docs/development.i18n.yaml
# docs/development.zh.md
# docs/persistence-catalog.i18n.yaml
# docs/persistence-catalog.zh.md
# docs/subsystems/README.i18n.yaml
# docs/subsystems/README.zh.md
# docs/subsystems/agent-team.i18n.yaml
# docs/subsystems/agent-team.zh.md
# docs/subsystems/client-modules.i18n.yaml
# docs/subsystems/client-modules.zh.md
# docs/subsystems/commands.i18n.yaml
# docs/subsystems/commands.zh.md
# docs/subsystems/persistence.i18n.yaml
# docs/subsystems/persistence.zh.md
# docs/subsystems/session-reference.i18n.yaml
# docs/tool-catalog.i18n.yaml
# docs/tool-catalog.zh.md
# docs/user/guide/providers.i18n.yaml
# docs/user/guide/providers.zh.md
# packages/README.i18n.yaml
# packages/README.zh.md
# packages/bundle/web-app/README.i18n.yaml
# packages/bundle/web-app/README.zh.md
# packages/client/README.i18n.yaml
# packages/client/README.zh.md
# packages/client/connection/README.i18n.yaml
# packages/client/connection/README.zh.md
# packages/client/ui-conversation/README.i18n.yaml
# packages/client/ui-conversation/README.zh.md
# packages/client/ui-primitives/README.i18n.yaml
# packages/client/ui-primitives/README.zh.md
# packages/client/ui-sidebar/README.i18n.yaml
# packages/client/ui-sidebar/README.zh.md
# packages/client/ui-workspace/README.i18n.yaml
# packages/client/ui-workspace/README.zh.md
# packages/context/README.i18n.yaml
# packages/context/README.zh.md
# packages/core/agent-loop/README.i18n.yaml
# packages/credentials/README.i18n.yaml
# packages/credentials/README.zh.md
# packages/experimental/agent-team/README.i18n.yaml
# packages/experimental/agent-team/README.zh.md
# packages/experimental/tool-agent-team/README.i18n.yaml
# packages/experimental/tool-agent-team/README.zh.md
# packages/host/frontend-static/README.i18n.yaml
# packages/host/frontend-static/README.zh.md
# packages/host/webserver/README.i18n.yaml
# packages/host/webserver/README.zh.md
# packages/interaction/commands/README.i18n.yaml
# packages/interaction/commands/README.zh.md
# packages/plan/plan-mode/README.i18n.yaml
# packages/plan/plan-mode/README.zh.md
# packages/sandbox/sandbox-local/README.i18n.yaml
# packages/sandbox/sandbox-local/README.zh.md
# packages/session/README.i18n.yaml
# packages/session/README.zh.md
# packages/session/session-persistence-sqlite/README.i18n.yaml
# packages/session/session-persistence-sqlite/README.zh.md
# packages/session/session-projection-cache/README.i18n.yaml
# packages/session/session-projection-cache/README.zh.md
# packages/shell/tool-pwsh/README.i18n.yaml
# packages/shell/tool-pwsh/README.zh.md
# packages/subagent/subagent-codex/README.i18n.yaml
# packages/subagent/subagent-codex/README.zh.md
# packages/subagent/subagent/README.i18n.yaml
# packages/subagent/subagent/README.zh.md
# packages/web/tool-web/README.i18n.yaml
# packages/web/tool-web/README.zh.md
# scripts/snapshots/translation-prompt-v4/request-response.expected.json
2026-08-20 19:15:33 +08:00
pku-xht
ad6516933b
fix(i18n): close automated review findings
2026-08-18 21:02:50 +08:00
pku-xht
8d3674695b
docs(i18n): localize Chinese internal links
2026-08-18 19:00:37 +08:00
creatixchu
1492b0cfee
Merge remote-tracking branch 'origin/master' into worktree/command-attachment-envelope
...
# Conflicts:
# apps/web/tests/assembled-boot.ts
2026-08-18 12:00:46 +08:00
creatixchu
0e39055121
fix(attachment): refuse oversized image sides at admission
...
An image with a side above the deployed routes' 2000px many-image bound
could be durably committed by read_image, ride every later request, and
permanently fail the session with provider 400s. Admission now enforces a
configurable maxImageDimension (default 2000) during the full decode, so
read_image surfaces a recoverable tool error naming the limit instead of
poisoning durable history; the Web composer gets dedicated copy for the
new IMAGE_DIMENSION_TOO_LARGE reason.
Fixes #2626
2026-08-17 20:49:08 +08:00
creatixchu
c530de9edc
Merge origin/master: fold admitEncodedImages onto AttachmentStore.saveImages
...
master introduced AttachmentStore.saveImages as the batch admission
(count/aggregate-byte/media-type limits, validate-all-before-save,
ordered commit). admitEncodedImages narrows to the shared wire entry:
canonical-base64 enforcement plus delegation to saveImages, keeping one
home for batch policy while both wire endpoints (prompt RPC and the
command executor) still call one function. Test doubles gain saveImages;
batch-limit error texts follow saveImages' wording.
2026-08-17 19:59:53 +08:00
creatixchu
8d9fee19f9
feat(commands): route composer image attachments through slash commands
...
A claimed slash command consumed only the text half of the composer
submission: /goal with reference images executed, cleared the draft, and
silently stranded the images in the rail. Model-visible attachment intent
had no route through the command plane.
The submission envelope is now modeled end to end. CommandDefinition
input.images declares acceptance; the declaration rides the descriptor to
every client, onto the minted CommandClaim, and into the input machine's
claim snapshot. commands.execute carries the submission's base64 images
and enforces the declaration in the executor: non-declaring commands, a
missing attachment store, and exceeded batch limits settle as logged
error results before the handler runs. Admission reuses the attachment
package's new admitEncodedImages, extracted from api-proxy's prompt path
so both wire endpoints share one limits/validation/commit sequence.
Producers own model visibility: /goal submits one user followup (image
blocks + a fixed reference line) after a successful create/edit so goal
rounds read the images from session history; /plan folds them into its
steered message. Grammar misfits (/goal pause, bare /plan, /plan off)
return direct errors and the composer keeps the images.
On the client, enter adjudication carries a SubmitEnvelope and every
command route that cannot consume images throws a localized refusal that
renders as one composer notice with draft and images retained; the
claimed pre-gate applies the same copy. An accepting claim serializes the
draft images, forwards them to commands.execute, and clears plus releases
them only on a success outcome.
The assembled web test roster gains the ui-input-trigger and ui-commands
plugins, mirroring the shipped composition, so slash submissions exercise
the command plane; a new keyless snapshot pins the refusal banner and the
accepting /goal flow over the built client graph.
2026-08-17 18:57:55 +08:00
Tianyi Cui
b3e2de873d
Merge master into worktree/fix-1463-rich-content-bridge
...
# Conflicts:
# .agents/notes/implemented/feature/2026-07-20-code-mode-typed-tool-returns.i18n.yaml
# .agents/notes/implemented/feature/2026-07-20-code-mode-typed-tool-returns.zh.md
# .agents/notes/implemented/feature/2026-07-22-web-multimodal-image-input-and-durable-attachments.i18n.yaml
# .agents/notes/implemented/feature/2026-07-22-web-multimodal-image-input-and-durable-attachments.zh.md
# .agents/notes/implemented/feature/2026-08-10-telemetry-default-off.i18n.yaml
# .agents/notes/implemented/feature/2026-08-10-telemetry-default-off.md
# .agents/notes/implemented/feature/2026-08-10-telemetry-default-off.zh.md
# .agents/notes/implemented/simplification/2026-07-23-acp-automation-only-protocol.i18n.yaml
# .agents/notes/implemented/simplification/2026-07-23-acp-automation-only-protocol.zh.md
# apps/web/tests/scaffold.ts
2026-08-12 21:25:26 +08:00
Tianyi Cui
de17206051
fix(attachment): type failure codes
2026-08-12 17:48:17 +08:00
Tianyi Cui
219d2a1fb9
feat(attachment): add ordered image batch admission
2026-08-12 17:48:17 +08:00
xjt
7b450d121e
docs(i18n): apply reviewed Chinese proofreading updates
2026-08-12 09:59:19 +08:00
Tianyi Cui
c10d74ba95
fix(apiproxy): cancel attachment reads during export
...
Response-consumer cancellation already stopped lineage reads, persistence reads, and ZIP production, but the final attachment phase called readImage without the producer signal. A slow or stalled attachment backend could therefore keep working after the browser abandoned the download and prevent the producer from settling.\n\nExtend the attachment read seam with optional cancellation, forward it through the local backend into Node's filesystem read, and preserve the abort reason rather than wrapping it as a storage failure. The exporter now passes its combined request/consumer signal to every attachment read.\n\nCover both ownership boundaries: the local-store test proves filesystem forwarding and cancellation identity, while the assembled export test cancels a reader during a pending attachment provider call. Regenerate the Cordis API catalog and paired documentation so implementers can rely on the new contract.
2026-08-11 17:52:24 +08:00
Turtle
0c708cb10d
refactor: replace overloaded surface terminology
2026-08-11 15:23:05 +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