zhc
a5f1d4a16a
refactor(client): bind context menus at their Slot consumers
...
Merge master and preserve pinned-row visibility. Remove redundant Chat and tool-tree menu forwarding, unify trigger names, and bind file targets at the consuming Slot. Address CI static and coverage gaps without changing upstream scroll assertions.
2026-10-28 19:15:45 +08:00
zhc
49e9d42a00
refactor(context-menu): inject shared trigger bindings through slots
2026-10-28 17:08:06 +08:00
lsdsjy and lsdsjy
0e49f443dd
feat(ui-conversation,ui-chat): 基于 user-text 支持富文本引用与草稿恢复 ( #3206 )
...
* feat(ui-chat,ui-conversation): 通过通用文本交互支持原文引用
* refactor(message-quotes): 插件化引用交互与文本扫描豁免
* test(message-quotes): 补齐插件装配预期与交互分发覆盖
* refactor(ui-conversation): 移除引用删除文案的语言切换刷新
* refactor(message-quotes): 移除引用扫描豁免并收窄文本交互接口
* fix(ui-chat): 修复引用浮层的滚动遮挡与恢复
* fix(ui-chat): 对齐 master 的聊天流注入与界面快照
* test(message-quotes): 补齐 Host 入口覆盖并固定子会话回放时序
* refactor(message-quotes): 清理文本依赖特例并修正引用按钮
* fix(ui-primitives): 让引用原文弹层按内容收缩
* fix(ui-primitives): 修复相邻引用悬停弹层重叠与误切换
* fix(message-quotes): 为引用悬停样式限定设备能力
---------
Co-authored-by: lsdsjy <[email protected] >
2026-10-21 14:41:41 +08:00
imccyu
b967475c66
feat(client-ui): add remote access hooks
2026-10-13 23:01:38 +08:00
imccyu
40c6a37ad0
test(web): adapt user content fixtures to text node factories
2026-10-10 22:43:55 +08:00
imccyu
2c684c51c9
refactor(web): compose native message image factories
2026-10-10 22:43:53 +08:00
imccyu
a0a9aef5ec
feat(ui-chat): add independent collapse timing and viewport-scoped flow
2026-10-09 13:35:16 +08:00
Turtle
47fa8e8b1a
Merge pull request #5639 from deepseek-harness/turtle/agent-team-status-e1e8f04e4663
...
fix(workflow-run): keep background workflow runs running after their step closes
2026-10-08 11:33:35 +08:00
Tianyi Cui
9dcc8fa985
Merge master into unified subagent activations
...
Integrate master 78ae4fc2d4d8ecaebb4b674028f781a358b92cc9 after the four
independent review fixes. Keep this base update separate from those fixes
and from subsequent review changes so the integration is independently
reviewable and the observed-master checkpoint remains preserved.
Retain activation-owned execution, caller-independent local discovery,
and unconditional parent final-answer delivery. Preserve master's preset
scoped scheduling tools and all delegated-child schedule deny rules. Move
the new scheduling regression from the removed driver package into the
surviving subagent package and run it through a real Spawn activation.
Preserve master's removal of runtime invariant plugins, dependencies,
exports, and test mounts. Keep context disposal before fixture directory
cleanup. Combine Python workflow ordering with activation/catalog events
without inventing unsupported source-plane import paths.
Keep all frozen Agent Note archives byte-for-byte identical to master;
do not accept Git's automatic edits to renamed archived notes. Retain
current lifecycle and delivery facts in active documentation, repair its
links, and regenerate catalogs/persistence schemas from merged source.
All 62 master persistence roots remain; only subagent/catalog gains the
PR's external membership extension. Keep master's third-party lock graph
and update only workspace dependency changes.
Validation before this checkpoint: 683 focused tests passed, seven
Windows-only cases skipped; 2,772 archived artifacts verified. Generated
catalog and active-pair checks passed. Fresh artifact build and remaining
build-dependent documentation checks continue before publication.
2026-10-05 23:49:47 +08:00
Turtle
d3c2b3e642
fix(workflow-run): infer interruption only from crash or fork closers
...
Replace the persisted background marker with a client-only rule. A
foreground run writes run-end before its Tool Step ends and a background
run outlives that Step, so only a Turn closed after a crash or at a fork
boundary shows a run without run-end as interrupted.
2026-10-03 10:16:11 +08:00
Turtle
a4af361ed7
fix(workflow): keep background workflow runs running after their step closes
...
A background workflow run outlives the Tool Step that started it, so the
Web workflow node inferred interruption as soon as that Step closed and
showed live members as interrupted. Mark background runs on
tool-workflow/run-start and infer interruption only for foreground runs.
Refs #5638
2026-10-03 02:16:21 +08:00
imccyu
e400349e3a
feat(client): initialize session prompts and preserve structured drafts
2026-09-30 14:54:36 +08:00
Dudu-0223
3254ed611d
Merge master and preserve catalog-recursive subagent discovery
2026-09-27 15:23:31 +08:00
Dudu-0223
8b43d44cc6
refactor(subagent): limit discovery to parent-delivery children
2026-09-23 17:59:35 +08:00
imccyu
4b78b6577c
feat(client): inject reset-aware disclosure hooks
2026-09-22 00:45:45 +08:00
Turtle
601d6761e4
feat(settings): project volatile Config through profile-backed forms ( #4587 )
2026-09-21 18:26:03 +08:00
Dudu-0223
55cbf441d0
Merge origin/master into refactor/subagent
2026-09-21 15:07:47 +08:00
Dudu-0223
c17a1fa189
refactor(subagent): represent external catalog entries by mode
2026-09-21 15:03:34 +08:00
Yichen Jiang
dc1f87e890
Merge branch 'master' of github.com:deepseek-harness/deepseek-harness into worktree/process-plugin-streaming-72f9b3
2026-09-21 12:03:46 +08:00
Yichen Jiang
61719629fc
Merge remote-tracking branch 'origin/master' into worktree/process-plugin-streaming-72f9b3
...
# Conflicts:
# apps/web/tests/expected/agent-preset-selection/header.expected.md
# docs/architecture.i18n.yaml
# docs/config-catalog.i18n.yaml
# docs/config-catalog.md
# docs/event-producer-consumer.i18n.yaml
# docs/event-producer-consumer.md
# docs/event-producer-consumer.zh.md
# docs/module-graph.i18n.yaml
# docs/module-graph.md
# docs/module-graph.zh.md
# docs/persistence-catalog.i18n.yaml
# docs/persistence-catalog.md
# docs/persistence-catalog.zh.md
# docs/persistence-schema.json
# docs/subsystems/web-client.i18n.yaml
# packages/api/README.i18n.yaml
# packages/api/README.md
# packages/api/README.zh.md
# packages/api/session-controller/README.i18n.yaml
# packages/api/session-controller/README.md
# packages/api/session-controller/README.zh.md
# packages/api/session-controller/src/client/sessions/manager.ts
# packages/api/session-controller/src/client/sessions/service.ts
# packages/api/session-controller/tests/manager.client.spec.ts
# packages/client/locale/tests/language-row.client.spec.tsx
# packages/client/ui-chat/tests/chat-view.client.spec.tsx
# packages/client/ui-chat/tests/transcript-view-row.client.spec.tsx
# packages/client/ui-conversation/tests/conversation-registry.client.spec.ts
# packages/client/ui-conversation/tests/enter-behavior-row.client.spec.tsx
# packages/client/ui-conversation/tests/input-bar.client.spec.tsx
# packages/client/ui-conversation/tests/input-matrix.client.spec.tsx
# packages/client/ui-conversation/tests/input-scenarios.client.spec.tsx
# packages/client/ui-conversation/tests/skeleton.client.spec.tsx
# packages/client/ui-deliverables/tests/deliverables.client.spec.tsx
# packages/client/ui-jobs/tests/job-list-action.client.spec.tsx
# packages/client/ui-layout/tests/app-frame.client.spec.tsx
# packages/client/ui-layout/tests/document-title.client.spec.tsx
# packages/client/ui-open-in-app/tests/open-in-app-action.client.spec.tsx
# packages/client/ui-primitives/README.i18n.yaml
# packages/client/ui-session/tests/ui-session.client.spec.ts
# packages/client/ui-settings-general/tests/settings-root.client.spec.tsx
# packages/client/ui-settings-unarchive-sessions/tests/components.client.spec.tsx
# packages/client/ui-subagent/README.i18n.yaml
# packages/client/ui-subagent/README.md
# packages/client/ui-subagent/README.zh.md
# packages/client/ui-subagent/src/client/SubagentHeaderLineage.tsx
# packages/client/ui-subagent/tests/conversation-ui.client.spec.tsx
# packages/client/ui-theme/tests/appearance-row.client.spec.tsx
# packages/client/ui-theme/tests/font-size-row.client.spec.tsx
# packages/client/ui-tool/tests/coverage-tails.client.spec.tsx
# packages/client/ui-tool/tests/diff-card.client.spec.tsx
# packages/client/ui-tool/tests/image-card.client.spec.tsx
# packages/client/ui-tool/tests/read-card.client.spec.tsx
# packages/client/ui-tool/tests/terminal-card.client.spec.tsx
# packages/client/ui-trajectory/tests/views.client.spec.tsx
# packages/client/ui-user-questions/tests/plan-review-panel.client.spec.tsx
# packages/client/ui-user-questions/tests/user-questions-composer.client.spec.tsx
# packages/client/ui-workflow-run/tests/workflow-run.client.spec.tsx
# packages/client/ui-workspace/tests/apply.client.spec.ts
# packages/client/ui-workspace/tests/tree.client.spec.ts
# packages/client/ui-workspace/tests/workspace-browser.client.spec.tsx
# packages/client/ui-workspace/tests/workspace-picker.client.spec.tsx
# packages/client/ui-workspace/tests/workspaces-service.client.spec.ts
# packages/extensions/cordis-client-runner/src/client/slot-catalog.ts
# packages/jobs/tool-jobs/src/index.ts
# packages/shell/tool-bash/README.i18n.yaml
# packages/test-support/client-runtime/src/sessions.ts
2026-09-21 11:34:20 +08:00
Yichen Jiang
0aa6f94749
feat(web): expose input plugin extension hooks
2026-09-21 11:11:21 +08:00
Dudu-0223
1e00ab89a7
refactor(subagent): keep catalog entries as creation facts
2026-09-20 17:43:31 +08:00
Dudu-0223
955c9d255a
fix(subagent): align catalog consumers and integration coverage
2026-09-19 21:04:01 +08:00
Yichen Jiang
5c10701df2
Merge remote-tracking branch 'origin/master' into worktree/jobs-api-review-3052
...
# Conflicts:
# apps/web/tests/expected/agent-preset-selection/header.expected.md
# packages/client/ui-chat/src/client/chat/ContextInjectionRow.tsx
# packages/client/ui-jobs/package.json
# packages/client/ui-jobs/src/client/JobListAction.module.css
# packages/client/ui-jobs/src/client/JobListAction.tsx
# packages/client/ui-jobs/tests/job-list-action.client.spec.tsx
# packages/client/ui-subagent/README.i18n.yaml
# packages/client/ui-subagent/README.md
# packages/client/ui-subagent/README.zh.md
# packages/client/ui-subagent/src/client/SubagentHeaderLineage.tsx
2026-09-19 10:35:09 +08:00
Tianyi Cui
8306ddaa14
merge: refresh session-log-v4 base from master
...
Merge master 0fdadce5189dcf13a00c2ed8293be95b9bb29c2c into the reviewed
Session V4 integration base. Preserve its V4 persistence and direct-catalog
subagent navigation while carrying forward current UI controls, decorative
icons, Desktop signing/runtime changes, and upstream tests.
Resolve lineage conflicts by retaining interaction-time catalog authority,
known-leaf handling and row order together with the shared status icons.
Keep both Desktop shell-routing regressions and one production route; master
now includes the route repair previously carried by this integration branch.
The full build, 41 documentation gates, two Desktop shell tests and 34 focused
Client lineage tests pass. Further built Web and packaging checks precede
publication. Preserve this pinned merge checkpoint before taking a newer
master tip, and propagate it through the reorganized feature stack.
2026-09-18 13:11:25 +08:00
zhc
fb2be52104
fix(client): compact conversation headers without view tabs
2026-09-18 11:03:07 +08:00
zhc
4429a672b7
refactor(client): keep developer preference in settings scope
2026-09-18 11:03:06 +08:00
zhc
caaaf89b1e
fix(client): separate developer tool policy and harden static previews
2026-09-18 11:03:06 +08:00
zhc
012f993ed4
fix: address developer tools preference review
2026-09-18 11:03:06 +08:00
Yichen Jiang
321bce2627
Merge remote-tracking branch 'origin/master' into worktree/jobs-api-review-3052
...
# Conflicts:
# packages/api/session-controller/src/client/sessions/manager.ts
# packages/api/session-controller/src/client/sessions/service.ts
# packages/api/session-controller/tests/manager.client.spec.ts
# packages/api/session-controller/tests/sessions-service.client.spec.ts
# packages/client/locale/tests/language-row.client.spec.tsx
# packages/client/ui-chat/tests/chat-view.client.spec.tsx
# packages/client/ui-chat/tests/transcript-view-row.client.spec.tsx
# packages/client/ui-conversation/tests/conversation-registry.client.spec.ts
# packages/client/ui-conversation/tests/enter-behavior-row.client.spec.tsx
# packages/client/ui-conversation/tests/input-bar.client.spec.tsx
# packages/client/ui-conversation/tests/skeleton.client.spec.tsx
# packages/client/ui-deliverables/tests/deliverables.client.spec.tsx
# packages/client/ui-jobs/tests/job-list-action.client.spec.tsx
# packages/client/ui-layout/tests/app-frame.client.spec.tsx
# packages/client/ui-layout/tests/document-title.client.spec.tsx
# packages/client/ui-session/tests/ui-session.client.spec.ts
# packages/client/ui-settings-unarchive-sessions/tests/components.client.spec.tsx
# packages/client/ui-subagent/tests/conversation-ui.client.spec.tsx
# packages/client/ui-theme/tests/appearance-row.client.spec.tsx
# packages/client/ui-theme/tests/font-size-row.client.spec.tsx
# packages/client/ui-tool/tests/coverage-tails.client.spec.tsx
# packages/client/ui-tool/tests/diff-card.client.spec.tsx
# packages/client/ui-tool/tests/read-card.client.spec.tsx
# packages/client/ui-tool/tests/terminal-card.client.spec.tsx
# packages/client/ui-trajectory/tests/views.client.spec.tsx
# packages/client/ui-user-questions/tests/plan-review-panel.client.spec.tsx
# packages/client/ui-user-questions/tests/user-questions-composer.client.spec.tsx
# packages/client/ui-workflow-run/tests/workflow-run.client.spec.tsx
# packages/client/ui-workspace/tests/tree.client.spec.ts
# packages/client/ui-workspace/tests/workspace-browser.client.spec.tsx
# packages/client/ui-workspace/tests/workspace-picker.client.spec.tsx
# packages/client/ui-workspace/tests/workspaces-service.client.spec.ts
# packages/test-support/client-runtime/src/sessions.ts
2026-09-17 11:11:25 +08:00
Tianyi Cui
c840ac431d
fix(client): settle preset selections and isolate generation stores
2026-09-17 10:43:21 +08:00
Tianyi Cui
5c25efba91
merge: integrate Client Session references into session-log-v4
2026-09-17 08:59:42 +08:00
imccyu
6d3b5d4526
test(client): migrate Session reference coverage
2026-09-17 05:28:19 +08:00
Dudu-0223
e55093b47d
feat(subagent): migrate direct catalog consumers to parent projections
2026-09-16 22:05:17 +08:00
Yichen Jiang
1596097147
Merge remote-tracking branch 'origin/master' into worktree/jobs-api-review-3052
...
# Conflicts:
# apps/web/tsconfig.json
# docs/event-producer-consumer.i18n.yaml
# docs/event-producer-consumer.md
# docs/event-producer-consumer.zh.md
# docs/module-graph.i18n.yaml
# docs/module-graph.md
# docs/module-graph.zh.md
# packages/api/remotes/package.json
# packages/api/remotes/src/client/index.ts
# packages/api/session-controller/tests/client-apply.client.spec.ts
# packages/api/session-controller/tests/control-jobs.host.spec.ts
# packages/api/session-controller/tests/fake-api.client.ts
# packages/api/session-controller/tests/manager.client.spec.ts
# packages/client/ui-jobs/package.json
# packages/extensions/cordis-client-runner/src/client/slot-catalog.ts
# packages/jobs/jobs-local/README.i18n.yaml
# packages/jobs/jobs-local/README.md
# packages/jobs/jobs-local/README.zh.md
# packages/jobs/jobs-local/src/index.ts
# packages/jobs/jobs-local/tests/jobs.spec.ts
# packages/jobs/tool-jobs/tests/tool-jobs.spec.ts
# packages/shell/shell/README.i18n.yaml
# packages/shell/shell/README.md
# packages/shell/shell/README.zh.md
# packages/shell/tool-bash/README.i18n.yaml
# packages/shell/tool-bash/README.md
# packages/shell/tool-bash/README.zh.md
# packages/shell/tool-bash/src/background.ts
# packages/shell/tool-bash/src/index.ts
# packages/shell/tool-pwsh/src/background.ts
# packages/shell/tool-pwsh/src/index.ts
2026-09-16 15:53:02 +08:00
Yichen Jiang
11d6bd05f3
feat(web): preview file and skill references in the sidebar
2026-09-10 11:31:27 +08:00
Yichen Jiang
b211c87150
Merge remote-tracking branch 'origin/master' into worktree/jobs-api-review-3052
...
# Conflicts:
# apps/web/tests/agent-preset-selection.e2e.ts
# apps/web/tests/expected/agent-preset-selection/header.expected.md
# docs/event-producer-consumer.i18n.yaml
# docs/event-producer-consumer.md
# docs/module-graph.i18n.yaml
# docs/module-graph.md
# docs/module-graph.zh.md
# docs/persistence-catalog.i18n.yaml
# docs/persistence-catalog.zh.md
# packages/api/session-controller/README.i18n.yaml
# packages/api/session-controller/README.md
# packages/api/session-controller/README.zh.md
# packages/api/session-controller/package.json
# packages/client/ui-jobs/package.json
# packages/jobs/jobs/README.i18n.yaml
# packages/jobs/jobs/README.md
# packages/jobs/jobs/README.zh.md
# pnpm-lock.yaml
2026-09-09 14:42:11 +08:00
imccyu
f95e781f3d
test(client): migrate panel navigation fixtures and snapshots
2026-09-09 00:26:29 +08:00
Yichen Jiang
1242fdfdef
Merge remote-tracking branch 'origin/master' into worktree/process-plugin-streaming-72f9b3
...
# Conflicts:
# docs/event-producer-consumer.i18n.yaml
# docs/event-producer-consumer.md
# docs/event-producer-consumer.zh.md
# docs/module-graph.i18n.yaml
# docs/module-graph.md
# docs/module-graph.zh.md
# docs/subsystems/shell.i18n.yaml
# docs/subsystems/shell.md
# docs/subsystems/shell.zh.md
# packages/api/remotes/package.json
# packages/api/remotes/src/client/index.ts
# packages/api/session-controller/src/control.ts
# packages/api/session-controller/tests/control-jobs.host.spec.ts
# packages/bundle/web-app/cordis.patch.yml
# packages/bundle/web-app/package.json
# packages/client/ui-chat/src/client/details/DetailsPanel.tsx
# packages/client/ui-chat/src/client/details/tool-node-reader.ts
# packages/client/ui-chat/tests/gate-branch-tails.client.spec.tsx
# packages/client/ui-jobs/package.json
# packages/client/ui-tool/tests/diff-card.client.spec.tsx
# packages/client/ui-tool/tests/read-card.client.spec.tsx
# packages/client/ui-tool/tests/search-card.client.spec.tsx
# packages/client/ui-tool/tests/terminal-card.client.spec.tsx
# packages/client/ui-tool/tests/web-card.client.spec.tsx
# packages/shell/bash-local/README.i18n.yaml
# packages/shell/bash-local/README.md
# packages/shell/bash-local/README.zh.md
# packages/shell/bash-local/src/index.ts
# packages/shell/bash-local/tests/executor.spec.ts
# packages/shell/pwsh-local/README.i18n.yaml
# packages/shell/pwsh-local/README.md
# packages/shell/pwsh-local/README.zh.md
# packages/shell/pwsh-local/src/index.ts
# packages/shell/shell/README.i18n.yaml
# packages/shell/shell/README.md
# packages/shell/shell/README.zh.md
# packages/shell/shell/src/types.ts
# packages/terminal/tool-terminal/tests/tools.spec.ts
# tsconfig.client.json
2026-09-08 13:34:53 +08:00
imccyu
bd4199f48c
test: cover filesystem resources and Sidebar domain behavior
2026-09-07 21:29:42 +08:00
Yichen Jiang
d3b1f2d1bc
Merge remote-tracking branch 'origin/master' into worktree/process-plugin-streaming-72f9b3
...
# Conflicts:
# docs/event-producer-consumer.i18n.yaml
# docs/event-producer-consumer.md
# docs/event-producer-consumer.zh.md
# docs/module-graph.i18n.yaml
# docs/module-graph.md
# docs/module-graph.zh.md
# packages/api/remotes/package.json
# packages/api/remotes/src/client/index.ts
# packages/api/session-controller/README.i18n.yaml
# packages/api/session-controller/README.md
# packages/api/session-controller/README.zh.md
# packages/api/session-controller/tsconfig.host.json
# packages/client/ui-approval/src/client/contract/slots.ts
# packages/client/ui-chat/src/client/chat/MessageItem.tsx
# packages/client/ui-chat/src/client/conversation-nodes/assistant.ts
# packages/client/ui-chat/src/client/conversation-nodes/partial.ts
# packages/client/ui-chat/src/client/conversation-nodes/tool.ts
# packages/client/ui-chat/src/client/model/tool-call-tree.ts
2026-09-04 17:28:12 +08:00
Yichen Jiang
2132b7beeb
refactor(session-controller): drop the job roster from the control stream
...
The control baseline and frames carry queues and projections only; the
SessionJob row type, the jobs frame, the registry subscription, and the
client jobsBySession mirror are gone, and every client fixture drops the
empty mirror. The roster moves to dsh-api-job-controller's job.rows
stream in the next change.
2026-09-03 16:43:15 +08:00
creatixchu
8d1289420b
Merge remote-tracking branch 'origin/master' into worktree/2984-generic-file-upload
...
# Conflicts:
# packages/client/ui-attachment/README.i18n.yaml
# packages/client/ui-attachment/README.md
# packages/client/ui-attachment/README.zh.md
2026-09-02 14:05:03 +08:00
creatixchu
e9b7ed0aab
test: cover generic file submission flows
2026-09-01 16:11:43 +08:00
Chinesezjc
a23c3dd64e
Merge branch 'origin/master' into feat/toolcard-image-result
2026-09-01 14:45:24 +08:00
Chinesezjc
5bb2c46453
Merge branch 'master' into feat/toolcard-image-result
2026-08-31 17:11:15 +08:00
Turtle
a7f5b6e638
Merge remote-tracking branch 'origin/master' into turtle/omit-unneeded-invariants
2026-08-31 17:01:06 +08:00
imccyu
4203317e18
perf(client): materialize conversation targets on demand
2026-08-31 15:44:23 +08:00
Chinesezjc
a4d4404708
feat(ui-tool): render read_image results as the image
...
A settled top-level `read_image` call printed its raw attachment object as
literal text in the tool card — `{"type":"image","attachment":{…}}` —
instead of the image, because no presentation metadata told a client card
how to present the reference and the tool-card layer had no image concept.
Host: `read_image` declares an `output.presentationMeta` persisting
`{ path }` only. The attachment reference deliberately lives in the
settled result content — the single record a `tools/post-execute`
replacement rewrites — not in `meta`; the id is opaque and
provider-owned, checked for existence only.
Client: `imageCardModel` derives the card from the call head, the meta
path, the result's own image block, and a shape-matched envelope. ToolRow
gains an `image` card slot; the `read_image` toolview declares the
Tool-owned `tool.call.images` slot as its child and dispatches the
gallery through it. ui-chat down-threads the session-authorized loader
(`ChatNodeOwnerProps.loadImage`), so the tool layer supplies only derived
references plus the loader and never imports an attachment
implementation; ui-attachment fills the slot with its message gallery
renderer. The card keeps the envelope text below the gallery for the
no-attachment-plugin deployment. An image-bearing tool registers a keyed
toolview; the generic fallback keeps its flattened text. `read_image`
joins the read variant with its own locale title key; both rows share
`read-family-row.tsx`.
Verification: `read-image.spec.ts` (metadata projection, envelope by
shape, reference narrowing, real-execution round trip, rejection
branches incl. non-digest ids), `image-card.client.spec.tsx` (derivation,
row render site dispatching the slot, keyed registration with the
child-slot declaration, empty-slot fallbacks, media-type enum), keyless
snapshots (`read-image-gif` added; read-image/-dimension/-reencode
updated to the `{path}` meta), five injected-defect negative controls,
and a demo GIF recorded from this PR's head through the official
image-capable model.
2026-08-29 17:41:05 +08:00
Turtle
15f2997bcb
cleanup: omit unneeded invariant companions
2026-08-28 13:12:52 +08:00