Yichen Jiang
e72bf46f1b
Merge branch 'stack/agent-profiles-8-authoring' into stack/agent-profiles-9-rename
2026-08-07 01:01:51 +08:00
Yichen Jiang
45f1d439f6
fix(scripts): point the plane-separation gate at the bundle patches
...
The shipped host composition moved: `base.cordis.yml` and `web.cordis.yml`
are the dsh-base and dsh-web-app patch layers now. The gate still opened the
old paths and crashed on ENOENT — a gate that cannot read its inputs proves
nothing, loudly or otherwise.
Retargeting it also surfaced what the move implies for ownership: the web
bundle carries the roster and its browser plugin rows now, so the bundle's own
manifest is what must declare them. The gate's existing bare-plugin check said
so as soon as it could parse the file again.
2026-08-07 00:44:49 +08:00
Yichen Jiang
9eaa9d22a5
feat(tools): let one agent choose its tool presentation, and ship code
...
Code Mode was a deployment-wide field on the host `tools` row: a
deployment ran every session that way or none. The obvious product
shape — 代码模式 beside 标准/极简/创造 in the preset picker — had
nothing to hang on.
The registry itself cannot move into a preset; the agent loop's
scheduler, the api-proxy's presenters, and every tool plugin are its
consumers. So split the registry from its projection: `presentAs(mode)`
writes one cell on the calling agent's scope layer, exactly as
`restrict()` does, and the three reads that decided presentation take
that scope's mode instead of the service's. The config `mode` becomes
the default agents shadow rather than a process-wide fact.
Two consequences are load-bearing. `run_code` now enters a view only
for scopes whose own mode presents it — a native agent must not find it
dispatchable because another agent in the process does — and the
reserved name holds whatever the configured mode, since any agent may
select a code mode later.
`dsh-agent-tool-mode` is the row a preset carries to declare this. A
code mode waits for the host's `codeRuntime` rather than assuming it,
so a runtime-less deployment fails the preset at mount, naming the
row, instead of at the session's first request.
The shipped `code` preset is `standard` plus that row, ordered second.
2026-08-07 00:44:49 +08:00
fz
16beccf423
Merge branch 'codex/fix-compact-agents-reinjection' into codex/fix-resume-baseline-dedup
2026-08-06 22:42:35 +08:00
fz
c882c8be8b
Merge remote-tracking branch 'origin/master' into codex/fix-compact-agents-reinjection
...
# Conflicts:
# docs/architecture.i18n.yaml
2026-08-06 22:41:10 +08:00
Yichen Jiang
fe8a88c96a
Merge pull request #1803 from deepseek-harness/worktree/align-core-web-rl-prompt
...
fix(web): align core profile with RL prompt
2026-08-06 21:57:28 +08:00
Tianyi Cui
4b1528bcec
Merge retargeted parent into Claude Code subagent provider
2026-08-06 21:38:47 +08:00
Tianyi Cui
0748ebee39
Merge latest master into Codex subagent provider
2026-08-06 21:26:31 +08:00
Yichen Jiang
b5600e9376
Merge remote-tracking branch 'origin/master' into worktree/align-core-web-rl-prompt
...
# Conflicts:
# apps/cli/reference/README.i18n.yaml
# apps/cli/reference/README.md
# apps/cli/reference/README.zh.md
# apps/cli/src/app-cli-entry.ts
# apps/cli/src/dump-config.ts
# apps/cli/src/web.ts
# apps/cli/tests/built-bin.e2e.ts
# apps/cli/tests/web-prompt-context.spec.ts
# apps/web/tests/scaffold.ts
2026-08-06 20:34:57 +08:00
fz
6030af63fd
Merge branch 'codex/fix-compact-agents-reinjection' into codex/fix-resume-baseline-dedup
...
# Conflicts:
# examples/acp-agent/tests/snapshots/code-mode-workspace-context/session.jsonl
# examples/acp-agent/tests/snapshots/workspace-context/session.jsonl
2026-08-06 20:17:41 +08:00
fz
3acdf4a333
Merge remote-tracking branch 'origin/master' into codex/fix-compact-agents-reinjection
...
# Conflicts:
# docs/architecture.i18n.yaml
# examples/acp-agent/tests/snapshots/workspace-context/session.jsonl
2026-08-06 20:13:04 +08:00
Turtle
a51b88d2aa
Merge remote-tracking branch 'origin/master' into feat/profile-plugin-management
...
# Conflicts:
# apps/cli/src/headless.ts
# docs/event-producer-consumer.md
# packages/host/apiproxy/README.i18n.yaml
2026-08-06 20:03:22 +08:00
Yichen Jiang
0cf1ba7f87
fix(web): align core profile with RL prompt
2026-08-06 19:52:16 +08:00
Turtle
4d241d37e4
Merge pull request #1599 from deepseek-harness/codex/web-slash-fuzzy-search
...
feat(web): add fuzzy slash command discovery
2026-08-06 19:21:47 +08:00
_Kerman
b6b643c378
Merge branch 'master' into feat/agent-event-payload
2026-08-06 18:07:13 +08:00
Turtle
ef30572e63
fix: retire leftovers of the removed $DSH_HOME/config.yaml personal overlay
...
The profile rework left references to the old entry modes behind. Renames
the user patch-layer API and its spec file (watchPersonalPatches ->
watchUserPatches, personal-config.spec.ts -> user-patches.spec.ts) and
retargets the prose that still named `config.yaml`, `--config`, raw-config
mode, and surface overlays: repository-plugin and mcp-memory READMEs, the
credentials-local anchor into app-boot, vendor manifest items 12-13, the
vendored include/hmr comments, and install.sh.
Restores the boot-failure guard the rework dropped with raw mode: the
built-bin case now boots `--profile web --patch <invalid>` and asserts the
settled diagnostic and exit 1, so the HMR initial-scan deadlock stays
covered; its orphaned raw fixture is renamed and the unused one deleted.
The superseded personal-config Agent Note and its superseding profile note
are now cross-linked.
2026-08-06 17:28:58 +08:00
_Kerman
d0224d239c
Merge remote-tracking branch 'github/master' into feat/agent-event-payload
...
# Conflicts:
# docs/core-data-structures/core.i18n.yaml
2026-08-06 17:10:01 +08:00
GeeeekExplorer
ff2341a549
Merge branch 'master' into feat/session-completed-dot
2026-08-06 15:53:29 +08:00
07akioni
5b9d3f2b0d
Merge branch 'master' into feat/md-incre-2
2026-08-06 15:12:53 +08:00
Turtle
5f84e6dbc6
Merge remote-tracking branch 'origin/master' into codex/web-slash-fuzzy-search
2026-08-06 15:05:58 +08:00
GeeeekExplorer
bcbe5bfd0e
Merge remote-tracking branch 'github/master' into feat/session-completed-dot
2026-08-06 15:01:49 +08:00
Turtle
2711764e0e
Merge remote-tracking branch 'origin/master' into codex/web-slash-fuzzy-search
...
# Conflicts:
# packages/client/ui-command/README.i18n.yaml
2026-08-06 14:48:35 +08:00
07akioni
d1e4fb91d2
Merge remote-tracking branch 'origin/master' into feat/md-incre-2
...
Port the two master-side markdown fixes onto the mdast renderer:
cjkFriendlyStrong joins both parse.ts grammars as a micromark extension
(ex remark plugin), and inline-code HTTP(S) URLs gain the safe anchor in
render.tsx without normalizeUri. Re-record the two new web-e2e goldens
whose footer clock spacing diverged from the nine established goldens,
and drop the timing-flaky LLM duration segment one of them captured.
2026-08-06 14:37:56 +08:00
Ziya
71e8132e76
Merge branch 'master' into feat/web-preview-badge
2026-08-05 23:29:04 -07:00
ZiyaZhang
7c1ae32e55
fix(web): address preview badge review
2026-08-05 23:26:39 -07:00
07akioni
8d6824a84b
feat: markdown 增量解析
2026-08-06 13:56:43 +08:00
_Kerman
262d044642
fix(agent): route loop dispatches through prebuilt fused dispatcher
...
Address review feedback on PR #1738 :
- ReactLoopAgent builds its AgentEventDispatch once in the constructor and
routes every emit/serial/waterfall through it, so hot-path dispatches no
longer allocate a carrier and dispatcher per call; the public carrier
field is gone (fused dispatcher is private).
- agentEvents accepts an optional prebuilt carrier.
- The fused payload builder spreads the payload before the injected agent
so a structurally acceptable payload carrying an agent field can never
override the subject.
- Regenerate doc graphs; re-record core + architecture + affected Agent
Note translation pairs; add payload-object event contract Agent Note.
2026-08-06 13:44:23 +08:00
Tianyi Cui
aa1546ac0c
Merge branch 'master' into feat/session-completed-dot
2026-08-06 13:18:50 +08:00
Yichen Jiang
16ad5f3f86
Merge pull request #1732 from deepseek-harness/worktree/fix-1680-cjk-markdown
...
fix(web): render CJK emphasis and link code URLs
2026-08-06 13:15:50 +08:00
GeeeekExplorer
f11b1c60d4
Merge branch 'master' into feat/session-completed-dot
2026-08-06 12:15:44 +08:00
creatixchu
e90e419273
Merge remote-tracking branch 'origin/worktree/context-source-cards' into worktree/context-forms-remaining
2026-08-06 12:03:50 +08:00
creatixchu
851fe793c4
Merge remote-tracking branch 'origin/master' into worktree/context-source-cards
...
# Conflicts:
# packages/client/runtime/src/client/sessions/transcript-adapter.ts
# packages/client/ui-conversation/README.i18n.yaml
2026-08-06 12:03:15 +08:00
creatixchu
0996611cc2
Merge remote-tracking branch 'origin/worktree/context-source-cards' into worktree/context-forms-remaining
2026-08-06 11:57:49 +08:00
creatixchu
39d585e7ed
Merge remote-tracking branch 'origin/master' into worktree/context-source-cards
...
# Conflicts:
# packages/client/runtime/README.i18n.yaml
# packages/client/ui-conversation/README.i18n.yaml
2026-08-06 11:57:17 +08:00
imccyu
53293210e6
Merge remote-tracking branch 'origin/master' into mergebot/pr1667
2026-08-06 11:53:33 +08:00
creatixchu
cc06d3c04b
Merge remote-tracking branch 'origin/worktree/context-source-cards' into worktree/context-forms-remaining
...
# Conflicts:
# apps/web/tests/snapshots/queue-actions/layout.expected.md
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/core-data-structures/core.i18n.yaml
# docs/core-data-structures/goal.i18n.yaml
# docs/core-data-structures/goal.md
# docs/core-data-structures/goal.zh.md
# docs/event-producer-consumer.md
# examples/acp-agent/tests/goal-snapshots/goal-session/session.expected.jsonl
# examples/acp-agent/tests/goal-snapshots/goal-wrapup/session.expected.jsonl
# examples/acp-agent/tests/snapshots/advanced-toolchain/session.1.jsonl
# examples/acp-agent/tests/snapshots/advanced-toolchain/session.2.jsonl
# examples/acp-agent/tests/snapshots/advanced-toolchain/session.jsonl
# examples/acp-agent/tests/snapshots/bash-spill/session.jsonl
# examples/acp-agent/tests/snapshots/bash-tool-turn/session.jsonl
# examples/acp-agent/tests/snapshots/both-mode-turn/session.jsonl
# examples/acp-agent/tests/snapshots/cancel-tool-calls/session.jsonl
# examples/acp-agent/tests/snapshots/cancel/session.jsonl
# examples/acp-agent/tests/snapshots/code-mode-turn/session.jsonl
# examples/acp-agent/tests/snapshots/code-mode-workspace-context/session.jsonl
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
# examples/acp-agent/tests/snapshots/empty-response-retry/session.jsonl
# examples/acp-agent/tests/snapshots/error-finish/session.jsonl
# examples/acp-agent/tests/snapshots/escalation-approved/session.jsonl
# examples/acp-agent/tests/snapshots/escalation-rejected/session.jsonl
# examples/acp-agent/tests/snapshots/fs-edit/session.jsonl
# examples/acp-agent/tests/snapshots/fs-escalation-approved/session.jsonl
# examples/acp-agent/tests/snapshots/fs-policy-reject/session.jsonl
# examples/acp-agent/tests/snapshots/fs-read-window/session.jsonl
# examples/acp-agent/tests/snapshots/fs-read/session.jsonl
# examples/acp-agent/tests/snapshots/fs-write-overwrite/session.jsonl
# examples/acp-agent/tests/snapshots/fs-write/session.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-invalid-matcher/session.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-posttool-block/session.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-posttool-context/session.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-pretool-ask/session.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-pretool-deny/session.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-promptsubmit-context/session.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-stop-continue/session.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-invalid-matcher/session.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-posttool-block/session.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-posttool-context/session.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-pretool-block/session.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-promptsubmit-context/session.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-stop-continue/session.jsonl
# examples/acp-agent/tests/snapshots/lsp-definition/session.jsonl
# examples/acp-agent/tests/snapshots/missing-sandbox-runner/session.jsonl
# examples/acp-agent/tests/snapshots/multi-turn/session.jsonl
# examples/acp-agent/tests/snapshots/packed-chunks/session.jsonl
# examples/acp-agent/tests/snapshots/parallel-tool-calls/session.jsonl
# examples/acp-agent/tests/snapshots/partial-landlock-child-failure/session.jsonl
# examples/acp-agent/tests/snapshots/pty-tools/session.jsonl
# examples/acp-agent/tests/snapshots/repeat-tool-guard/session.jsonl
# examples/acp-agent/tests/snapshots/session-query-spill/session.jsonl
# examples/acp-agent/tests/snapshots/session-sandbox-root/session.jsonl
# examples/acp-agent/tests/snapshots/session-title-after-turn/session.jsonl
# examples/acp-agent/tests/snapshots/skill-load/session.jsonl
# examples/acp-agent/tests/snapshots/subagent-continuable/session.1.jsonl
# examples/acp-agent/tests/snapshots/subagent-continuable/session.jsonl
# examples/acp-agent/tests/snapshots/subagent-depth-two-rejection/session.1.jsonl
# examples/acp-agent/tests/snapshots/subagent-depth-two-rejection/session.2.jsonl
# examples/acp-agent/tests/snapshots/subagent-depth-two-rejection/session.jsonl
# examples/acp-agent/tests/snapshots/subagent-fork/session.1.jsonl
# examples/acp-agent/tests/snapshots/subagent-fork/session.jsonl
# examples/acp-agent/tests/snapshots/subagent-list-agents/session.1.jsonl
# examples/acp-agent/tests/snapshots/subagent-list-agents/session.jsonl
# examples/acp-agent/tests/snapshots/subagent-mixed/session.1.jsonl
# examples/acp-agent/tests/snapshots/subagent-mixed/session.2.jsonl
# examples/acp-agent/tests/snapshots/subagent-mixed/session.jsonl
# examples/acp-agent/tests/snapshots/subagent-multi/session.1.jsonl
# examples/acp-agent/tests/snapshots/subagent-multi/session.2.jsonl
# examples/acp-agent/tests/snapshots/subagent-multi/session.jsonl
# examples/acp-agent/tests/snapshots/subagent-published-run-failure/session.jsonl
# examples/acp-agent/tests/snapshots/subagent-report/session.1.jsonl
# examples/acp-agent/tests/snapshots/subagent-report/session.jsonl
# examples/acp-agent/tests/snapshots/subagent-spawn/session.1.jsonl
# examples/acp-agent/tests/snapshots/subagent-spawn/session.jsonl
# examples/acp-agent/tests/snapshots/text-turn/session.jsonl
# examples/acp-agent/tests/snapshots/todo-write/session.jsonl
# examples/acp-agent/tests/snapshots/tool-call-turn/session.jsonl
# examples/acp-agent/tests/snapshots/web-fetch/session.jsonl
# examples/acp-agent/tests/snapshots/workflow-run/session.1.jsonl
# examples/acp-agent/tests/snapshots/workflow-run/session.jsonl
# examples/acp-agent/tests/snapshots/workspace-context/session.jsonl
# examples/acp-agent/tests/snapshots/workspace-edit/session.jsonl
# examples/headless-agent/tests/snapshots/goal-tools/stream-json.expected.jsonl
# examples/headless-agent/tests/snapshots/pty-tools/session.jsonl
# examples/headless-agent/tests/snapshots/pty-tools/stream-json.expected.jsonl
# examples/headless-agent/tests/subagent-inheritance-snapshots/parent-override/child.expected.jsonl
# examples/headless-agent/tests/subagent-inheritance-snapshots/parent-override/parent.expected.jsonl
# examples/jsonrpc-agent/tests/snapshots/persistent-tools/notifications.expected.jsonl
# examples/jsonrpc-agent/tests/snapshots/persistent-tools/session.jsonl
# packages/bash/tool-bash/tests/integration.spec.ts
# packages/context/time-context/src/index.ts
# packages/context/tmux-context/src/index.ts
# packages/core/agent-loop/src/agent.ts
# packages/core/system-prompt/src/index.ts
# packages/goal/goal/src/domain.ts
# packages/goal/goal/src/index.ts
# packages/goal/goal/src/render.ts
# packages/plan/plan-mode/src/index.ts
2026-08-06 11:49:03 +08:00
Yichen Jiang
178eaf3973
fix(web): link inline-code URLs
2026-08-06 11:41:46 +08:00
Yichen Jiang
1b5f06ed0b
fix(web): render CJK-adjacent strong emphasis
2026-08-06 11:41:46 +08:00
creatixchu
6747c2d44d
Merge remote-tracking branch 'origin/master' into worktree/context-source-cards
...
# Conflicts:
# .agents/notes/implemented/simplification/2026-07-31-web-ui-no-steer-entry-or-interjection-chrome.i18n.yaml
# .agents/notes/implemented/simplification/2026-07-31-web-ui-no-steer-entry-or-interjection-chrome.md
# .agents/notes/implemented/simplification/2026-07-31-web-ui-no-steer-entry-or-interjection-chrome.zh.md
# apps/web/tests/seeded-history.e2e.ts
# apps/web/tests/snapshots/queue-actions/layout.expected.md
# docs/core-data-structures/core.i18n.yaml
# examples/acp-agent/tests/snapshots/code-mode-workspace-context/session.jsonl
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
# examples/acp-agent/tests/snapshots/skill-load/session.jsonl
# examples/acp-agent/tests/snapshots/workspace-context/session.jsonl
# examples/headless-agent/tests/snapshots/advanced-toolchain/session.1.jsonl
# examples/headless-agent/tests/snapshots/advanced-toolchain/session.2.jsonl
# examples/headless-agent/tests/snapshots/advanced-toolchain/session.jsonl
# examples/headless-agent/tests/snapshots/pty-tools/session.jsonl
# packages/client/runtime/README.i18n.yaml
# packages/client/runtime/tests/history-fold.spec.ts
# packages/client/ui-conversation/README.i18n.yaml
# packages/client/ui-conversation/src/client/chat/MessageItem.tsx
# packages/client/ui-conversation/tests/chat-branch-tails.spec.tsx
# packages/context/workspace-context/src/index.ts
# packages/context/workspace-context/tests/workspace-context.spec.ts
# packages/skill/tool-skill/README.i18n.yaml
# packages/skill/tool-skill/README.md
# packages/skill/tool-skill/README.zh.md
# packages/skill/tool-skill/src/index.ts
# packages/skill/tool-skill/tests/tool-skill.spec.ts
2026-08-06 11:28:48 +08:00
imccyu
86965b053c
feat(client): inject slot declaration lifetimes
2026-08-06 11:28:46 +08:00
GeeeekExplorer
7313be1d2d
docs: agent note for the session completion dot
2026-08-06 11:12:48 +08:00
fz
de8ec21f80
Merge remote-tracking branch 'origin/codex/fix-compact-agents-reinjection' into codex/fix-resume-baseline-dedup
...
# Conflicts:
# .agents/notes/implemented/feature/2026-06-24-workspace-context.i18n.yaml
# .agents/notes/implemented/feature/2026-06-24-workspace-context.md
# .agents/notes/implemented/feature/2026-06-24-workspace-context.zh.md
# docs/event-producer-consumer.md
# examples/acp-agent/tests/snapshots/code-mode-workspace-context/session.jsonl
# examples/acp-agent/tests/snapshots/workspace-context/session.jsonl
# packages/context/workspace-context/README.i18n.yaml
# packages/context/workspace-context/README.md
# packages/context/workspace-context/README.zh.md
# packages/context/workspace-context/src/index.ts
# packages/context/workspace-context/src/state.ts
# packages/context/workspace-context/tests/workspace-context.spec.ts
2026-08-06 10:37:43 +08:00
fz
dccd6bf79f
Merge remote-tracking branch 'origin/master' into codex/fix-compact-agents-reinjection
...
# Conflicts:
# .agents/notes/implemented/feature/2026-06-24-workspace-context.i18n.yaml
# .agents/notes/implemented/feature/2026-06-24-workspace-context.md
# .agents/notes/implemented/feature/2026-06-24-workspace-context.zh.md
# docs/architecture.i18n.yaml
# docs/architecture.md
# docs/architecture.zh.md
# docs/cordis-catalog/events.md
# docs/core-data-structures/system-prompt.i18n.yaml
# docs/event-producer-consumer.md
# examples/acp-agent/tests/snapshots/workspace-context/session.jsonl
# packages/context/workspace-context/README.i18n.yaml
# packages/context/workspace-context/README.md
# packages/context/workspace-context/README.zh.md
# packages/context/workspace-context/src/index.ts
# packages/context/workspace-context/tests/workspace-context.spec.ts
# packages/core/agent-loop/README.i18n.yaml
# packages/core/agent-loop/src/agent.ts
# packages/core/agent/README.i18n.yaml
# packages/core/agent/README.md
# packages/core/agent/README.zh.md
# packages/core/agent/tests/agent.spec.ts
# packages/core/system-prompt/README.i18n.yaml
2026-08-06 10:16:16 +08:00
Turtle
af5f528903
Merge remote-tracking branch 'origin/master' into feat/profile-plugin-management
...
# Conflicts:
# apps/cli/src/headless.ts
# packages/host/apiproxy/README.i18n.yaml
2026-08-06 06:55:42 +08:00
Turtle
07d24b005f
docs: profile scheme across guides, notes, and generated catalogs; Agent Note
...
Update every doc referencing base.cordis.yml/web.cordis.yml, --config, -p, or
$DSH_HOME/config.yaml to the profile vocabulary with bilingual counterparts
re-recorded; regenerate the catalogs and graphs; add the
profile-plugin-bundles Agent Note recording the design and its rejected
alternatives.
2026-08-06 06:29:06 +08:00
imccyu
aaca2fa52f
fix(web): localize stats and close stale context meter
2026-08-06 00:21:34 +08:00
imccyu
b0d1d9445e
Merge remote-tracking branch 'origin/master' into mergebot/pr1667
...
# Conflicts:
# apps/web/tests/snapshots/queue-actions/preserved.expected.md
# docs/cordis-catalog/services.md
# docs/core-data-structures/session.i18n.yaml
# packages/client/runtime/src/client/session-history/history-fold.ts
# packages/client/ui-conversation/README.i18n.yaml
# packages/core/session/src/index.ts
2026-08-05 22:56:57 +08:00
Huanqi Cao
17ff1e0d4a
Merge pull request #1624 from deepseek-harness/feat/pwsh-ui-parity
...
feat(pwsh): render pwsh calls as bash-shaped terminal cards in the Web UI
2026-08-05 22:20:11 +08:00
Huanqi Cao
ca65cf1e14
Merge remote-tracking branch 'origin/master' into feat/pwsh-ui-parity
...
# Conflicts:
# apps/web/tsconfig.json
2026-08-05 21:51:31 +08:00
_Kerman
207e32493c
Merge remote-tracking branch 'origin/master' into xtr/react-loop-simplification
...
Resolve translation-pairing hashes after the merge and adapt the
math-rendering e2e fixture to the simplified turn/start event shape.
2026-08-05 21:42:33 +08:00