Tianyi Cui
cecd0fedf5
docs(i18n): normalize seam consumer terminology
2026-07-23 17:48:50 +08:00
Tianyi Cui
8a7112af45
docs(i18n): translate turn and step in note comment
2026-07-23 15:06:47 +08:00
Tianyi Cui
7ab9947776
Merge branch 'worktree/pr344-retarget-stack' into worktree/pr345-retarget-stack
2026-07-23 14:53:11 +08:00
Tianyi Cui
9dea41e3ba
Merge branch 'worktree/pr343-retarget-latest-master' into worktree/pr344-retarget-stack
2026-07-23 14:53:06 +08:00
Tianyi Cui
e101a5774f
Merge branch 'worktree/pr344-retarget-stack' into worktree/pr345-retarget-stack
...
# Conflicts:
# .agents/notes/implemented/process/2026-06-17-ts-build-config.md
2026-07-23 14:51:21 +08:00
Tianyi Cui
a4d6c302f6
docs(i18n): align turn and step terminology
2026-07-23 14:37:01 +08:00
Tianyi Cui
fc1b308266
ci: keep required PR checks on portable runners
2026-07-23 14:31:01 +08:00
Tianyi Cui
2f2a095799
Merge branch 'worktree/pr343-retarget-latest-master' into worktree/pr344-retarget-stack
2026-07-23 14:22:44 +08:00
Tianyi Cui
c79b34bda5
Revert "chore: run primary CI before push"
2026-07-23 14:02:58 +08:00
imccyu
d430744dd8
Merge branch 'master' into worktree/fix-collapsed-sidebar-rail
2026-07-23 13:45:14 +08:00
imccyu
23e942029a
Merge remote-tracking branch 'origin/master' into worktree/fix-collapsed-sidebar-rail
2026-07-23 13:16:48 +08:00
Tianyi Cui
00d5b69882
chore: run primary CI before push
2026-07-23 13:09:52 +08:00
imccyu
698f46b0c9
feat(gui): morph the sidebar collapse instead of swapping renders
...
The collapse read as a hard cut: only the track width animated while the
panel content swapped instantly and the rail icons bore no relation to the
expanded layout. Now the four control rows persist across the transition —
collapse toggle, new session, new workspace, search, the same top-down
order as their expanded rows — and morph their geometry (row heights,
paddings, margins, capsule borders) on the deepsuite curve, so each rail
icon is its expanded control converging onto the 56px axis. Wide-only
content (brand, labels, input, session tree) cross-fades over 200ms, stays
mounted while the collapse animates, and unmounts at the 300ms settle,
still dropping the sessions subscription. The search query moves up to the
root and survives the round trip; rail search focuses the surviving input
after expand instead of remount-autofocus.
2026-07-23 13:03:32 +08:00
imccyu
e4d3f6fd53
Merge branch 'master' into worktree-webts
2026-07-23 11:50:08 +08:00
imccyu
5da8e3b787
feat(gui): animate sidebar collapse and grow the rail control set
...
The collapsed rail becomes a 56px icon column (24px controls between 16px
paddings) carrying expand, new session, search, and new workspace — each
aligned with its expanded counterpart; rail search expands the sidebar and
focuses the search box. Collapse/expand now animates: the frame transitions
grid-template-columns (and the surviving handle its left) on the deepsuite
sider curve — --ds-ease-in-out over --ds-transition-duration-slow, supplied
by ui-theme's base sheet. Transitions pause during drags (data-dragging on
the frame, set for the whole gesture) and under prefers-reduced-motion.
2026-07-23 11:45:54 +08:00
Tianyi Cui
c240f326c4
Merge branch 'master' into worktree-webslot2
2026-07-23 11:08:36 +08:00
imccyu
7e6f0128b5
fix(gui): keep sidebar controls when collapsed
...
A closed sidebar previously resolved to a zero-width grid track, clipping
the only toggle and the settings entry with no visible recovery; the closed
preference persisted across reloads, locking the sidebar shut.
- columns.ts maps the closed preference (width 0) to a fixed 60px
SIDEBAR_COLLAPSED rail through every step of the concession solve;
closed details still resolve to zero width.
- AppFrame derives data-sidebar-collapsed and the sidebar slot's collapsed
owner prop from the persisted preference instead of the resolved track
width, and drops the resize handle while collapsed.
- SidebarRoot reads the owner collapsed prop; the expanded-only body is a
separate component that unmounts while collapsed (dropping its sessions
subscription), leaving the expand toggle and Settings in the rail.
- The keyless web smoke gains the ui-sidebar bundle (six real bundles) and
pins the 60px rail collapse/expand round through the assembled client.
2026-07-23 10:51:57 +08:00
Tianyi Cui
08cc034128
Merge commit 'refs/codex-unblock/2026-07-23/base-511' into HEAD
2026-07-23 10:14:06 +08:00
imccyu
59a2fc408b
Merge remote-tracking branch 'origin/worktree-webslot2' into worktree/fix-collapsed-sidebar-rail
...
# Conflicts:
# apps/web/tests/smoke-fixture.e2e.ts
# packages/client/ui-layout/src/client/AppFrame.tsx
# packages/client/ui-layout/src/client/columns.ts
# packages/client/ui-layout/src/client/index.ts
# packages/client/ui-layout/tests/app-frame.spec.tsx
# packages/client/ui-layout/tests/columns.spec.ts
# packages/client/ui-sidebar/README.md
# packages/client/ui-sidebar/src/client/SidebarRoot.tsx
# packages/client/ui-sidebar/src/client/contract/slots.ts
# packages/client/ui-sidebar/src/client/index.ts
# packages/client/ui-sidebar/tests/apply.spec.tsx
# packages/client/ui-sidebar/tests/sidebar-root.spec.tsx
2026-07-23 04:25:01 +08:00
imccyu
90b05c7a2b
docs(i18n): re-record the web-client architecture pair after stacking on #538
2026-07-23 04:01:06 +08:00
imccyu
de5c68eb1a
docs(notes): retire current-state references to the deleted build graph
...
Three notes stated tsconfig.build.json as present-tense fact; the
aggregates (tsconfig.host.json / tsconfig.client.json) now own the
explicit reference lists and the root solution owns the emit graph.
Historical narration in dated notes is left untouched.
2026-07-23 03:59:35 +08:00
imccyu
21287abd78
docs(ts): bilingual pair for the solution-root Agent Note
2026-07-23 03:59:35 +08:00
imccyu
62125c0dcb
docs(ts): document the solution-root TypeScript project layout
...
New authoritative section docs/development.md#typescript-project-layout
(five files, three roles, the program-vs-resolution principle and its two
disciplines), two repo conventions in AGENTS.md, package tsconfig shape in
packages/AGENTS.md, cookbook touch-lists updated for the two aggregates,
test source-plane rule in docs/testing.md. Decision record: new Agent Note
2026-07-22-tsconfig-solution-root-two-aggregates; ts-build-config note
updated in place (tsc-first pipeline unchanged); the two GUI RFCs now name
tsconfig.host.json. All bilingual pairs re-recorded. Doc budget ceilings
raised: AGENTS.md 1680, docs/testing.md 1020, packages/AGENTS.md 660 (two
new one-line conventions and one new section on already-near-ceiling docs).
Mission spec for the code-side migration: missions/tsconfig-single-graph-migration.md.
2026-07-23 03:59:35 +08:00
imccyu
8b3d1ac943
refactor(gui): move the snapshot-store engine into the client runtime
...
The data layer no longer depends on the React glue package, and business
plugins no longer depend on web-react at all:
- The store engine (zustand vanilla + immer + persist + dev freeze),
defineStore, and shallowEqual move to @deepseek-ai/dsh-client-runtime,
exported from the ./client main entry — no ./store subpath survives on
either package (the web-react one is deleted, none is opened on runtime).
- Store products are bare snapshot sources: useSelector leaves
SnapshotStore/StoreInstance and Session; every hook is composed at the
binding site in web-react's renderer (per-source cached uSES binding).
The SlotRendererHost sessions face carries bare observables only.
- SessionProvider becomes a standard-kit seat: an entry whose children
declare a session-scope slot receives the framework component as a prop,
retiring the last value import of web-react from plugin packages.
UseSession and the session-area types now live in ui-slots.
- web-react shrinks to the shell-only React glue (renderer, providers,
uSES bridge); zustand/immer belong to runtime alone; the module-table
seed and tsdown externals drop the web-react/store seat.
- NODE_ENV replacement is defined once in the shared tsdown client preset
(browser bundles inline the engine and lost vite's define); the 3-line
process.env typecheck shim moves to runtime with the engine.
- Stray tsc artifacts (.js/.d.ts/.d.ts.map beside sources under src/)
swept repo-wide; they shadow real sources under vitest resolution.
Verified: both aggregate typecheck programs at zero; 604 client tests
green; repo-wide grep for web-react/store at zero; real-host playwright
run 7/7 including persist round-trip.
ci: fix test/docs
2026-07-23 03:30:06 +08:00
imccyu
1b0ea07bce
refactor(gui): slot system standard — single register, four props shares, framework store seat
...
The definitive slot model for the web client, replacing the first-generation
define/register two-step, ScopedSlots whitelist faces, and binding handles:
- 'root' is the only a-priori slot (SlotsService built-in); the shell renders
exactly ctx.slots.renderSlot('root', {}).
- register is the single API: children = slot declaration + render
authorization + runtime spec in one options object; misconfiguration fails
loud at load (duplicate declaration, undeclared contribution, one store
handle under two scopes).
- Component props arrive in four auto-derived shares: PropsRuntime<K>
(owner params + session/global standard kits via declare-merge),
PropsRenderSlots<S>, PropsStore<H>, and the inject business face.
sessionId is framework-supplied; hooks are framework-made only.
- Framework store seat: defineStore factories declare schema/actions/persist;
read = useStore, write = baked actions only; store scope derives from the
mounting entry; per-session persist keys and clearPersisted lifecycle.
- inject factories read the apply closure's own ctx (binding handles retired;
root-ctx back door closed); SessionProvider is self-wired render-prop.
- Rendering sits behind the SlotRenderer install seam; runtime stays
React-free; ownership ledger keyed to the single entry axis closes the
stale-authority window (StaleAuthorizationError probes).
Docs: the slot type-chain note is refreshed in place as the slot system
standard RFC (bilingual pair re-recorded); the web client architecture RFC
defers its slot sections there; packages/client/AGENTS.md gains the slot and
props discipline; gui-testing/web-styling notes drop missions/ references.
Tests: suites rewritten to the standard (props fed directly, real store
engines via createXXXStore().create(), no render machinery); load-time
negative samples for declaration/authorization/store conflicts; verified by
real-host playwright run (three columns, empty state, collapse, keyed session
remount, cross-slot selection sharing).
docs(ui-sidebar): point contract reference at the committed slot standard RFC
missions/ is workspace-local and never committed; the README must not cite it.
2026-07-23 03:25:11 +08:00
Tianyi Cui
d5f5517ec0
docs(i18n): address Agent Note review feedback
2026-07-23 01:11:59 +08:00
Tianyi Cui
c715612928
docs(i18n): sync compaction checkpoint translation
2026-07-23 00:22:36 +08:00
Tianyi Cui
4bea3032a1
Merge branch 'worktree/pr344-retarget-stack' into worktree/pr345-retarget-stack
2026-07-23 00:20:27 +08:00
Tianyi Cui
a5a0cad46a
Merge branch 'worktree/pr343-retarget-latest-master' into worktree/pr344-retarget-stack
...
# Conflicts:
# scripts/type-equiv.manifest.json
2026-07-23 00:19:53 +08:00
Tianyi Cui
744d65d63c
docs(i18n): refresh Agent Note translations after merge
2026-07-23 00:10:53 +08:00
Tianyi Cui
d5d6960184
Merge remote-tracking branch 'origin/master' into worktree/pr468-retarget-latest-master
...
# Conflicts:
# docs/architecture.i18n.yaml
# docs/module-graph.md
2026-07-22 23:17:02 +08:00
Tianyi Cui
cd17f8d23a
Merge refreshed docs/i18n-batch-cds-postmortem into docs/i18n-batch-rfc
...
# 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-11-custom-schema-dsl.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-11-custom-schema-dsl.zh.md
# .agents/notes/implemented/architecture/2026-06-11-dev-invariants-over-deep-readonly.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-11-dev-invariants-over-deep-readonly.zh.md
# .agents/notes/implemented/architecture/2026-06-11-event-sourced-sessions.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-11-event-sourced-sessions.zh.md
# .agents/notes/implemented/architecture/2026-06-11-microkernel-event-taxonomy.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-11-microkernel-event-taxonomy.zh.md
# .agents/notes/implemented/architecture/2026-06-11-runtime-arg-validation.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-11-runtime-arg-validation.zh.md
# .agents/notes/implemented/architecture/2026-06-11-structured-error-taxonomy.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-11-structured-error-taxonomy.zh.md
# .agents/notes/implemented/architecture/2026-06-11-tool-schemas-in-prompt-assembly.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-11-tool-schemas-in-prompt-assembly.zh.md
# .agents/notes/implemented/architecture/2026-06-13-capability-seams.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-13-capability-seams.zh.md
# .agents/notes/implemented/architecture/2026-06-13-twin-llm-adapters.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-13-twin-llm-adapters.zh.md
# .agents/notes/implemented/architecture/2026-06-14-session-persistence.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-14-session-persistence.zh.md
# .agents/notes/implemented/architecture/2026-06-15-turn-enclosure-invariant.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-15-turn-enclosure-invariant.zh.md
# .agents/notes/implemented/architecture/2026-06-17-filesystem-capability-seam.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-17-filesystem-capability-seam.zh.md
# .agents/notes/implemented/architecture/2026-06-18-agent-lifecycle-and-ownership-seams.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-18-agent-lifecycle-and-ownership-seams.zh.md
# .agents/notes/implemented/architecture/2026-06-18-session-surface.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-18-session-surface.zh.md
# .agents/notes/implemented/architecture/2026-06-18-shared-persistence-write-coordinator.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-18-shared-persistence-write-coordinator.zh.md
# .agents/notes/implemented/architecture/2026-06-20-branded-ids.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-20-branded-ids.zh.md
# .agents/notes/implemented/architecture/2026-06-20-extract-example-app-packages.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-20-extract-example-app-packages.zh.md
# .agents/notes/implemented/architecture/2026-06-20-package-hierarchy.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-20-package-hierarchy.md
# .agents/notes/implemented/architecture/2026-06-20-package-hierarchy.zh.md
# .agents/notes/implemented/architecture/2026-06-21-mandatory-app-attribution-headers.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-21-mandatory-app-attribution-headers.zh.md
# .agents/notes/implemented/architecture/2026-06-24-web-capability-seam.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-24-web-capability-seam.zh.md
# .agents/notes/implemented/architecture/2026-06-26-file-context-as-event-gate.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-26-file-context-as-event-gate.zh.md
# .agents/notes/implemented/architecture/2026-06-30-bash-stdin-env-trusted-plugin-surface.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-30-bash-stdin-env-trusted-plugin-surface.zh.md
# .agents/notes/implemented/architecture/2026-06-30-event-domain-semantics.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-30-event-domain-semantics.zh.md
# .agents/notes/implemented/architecture/2026-07-02-fs-per-session-cwd.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-02-fs-per-session-cwd.zh.md
# .agents/notes/implemented/architecture/2026-07-02-result-time-applied-hunk-diffs.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-02-result-time-applied-hunk-diffs.zh.md
# .agents/notes/implemented/architecture/2026-07-02-tool-render-intent-union.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-02-tool-render-intent-union.zh.md
# .agents/notes/implemented/architecture/2026-07-03-filesystem-directory-listing-seam.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-03-filesystem-directory-listing-seam.zh.md
# .agents/notes/implemented/architecture/2026-07-05-prompt-variables-and-tool-guidance-ownership.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-05-prompt-variables-and-tool-guidance-ownership.zh.md
# .agents/notes/implemented/architecture/2026-07-05-reconstructable-requests.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-05-reconstructable-requests.zh.md
# .agents/notes/implemented/architecture/2026-07-05-subagent-provider-lifecycle-events.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-05-subagent-provider-lifecycle-events.zh.md
# .agents/notes/implemented/architecture/2026-07-06-timeout-deadline-library.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-06-timeout-deadline-library.zh.md
# .agents/notes/implemented/architecture/2026-07-07-tool-call-timeout-policy.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-07-tool-call-timeout-policy.zh.md
# .agents/notes/implemented/architecture/2026-07-08-agent-scope-contexts.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-08-agent-scope-contexts.zh.md
# .agents/notes/implemented/architecture/2026-07-12-agent-scope-runtime-design.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-12-agent-scope-runtime-design.zh.md
# .agents/notes/implemented/feature/2026-06-14-acp-agent-client-protocol.i18n.yaml
# .agents/notes/implemented/feature/2026-06-14-acp-agent-client-protocol.zh.md
# .agents/notes/implemented/feature/2026-06-14-acp-multi-session.i18n.yaml
# .agents/notes/implemented/feature/2026-06-14-acp-multi-session.zh.md
# .agents/notes/implemented/feature/2026-06-15-code-mode.i18n.yaml
# .agents/notes/implemented/feature/2026-06-15-code-mode.zh.md
# .agents/notes/implemented/feature/2026-06-17-filesystem-tool-schemas.i18n.yaml
# .agents/notes/implemented/feature/2026-06-17-filesystem-tool-schemas.zh.md
# .agents/notes/implemented/feature/2026-06-18-acp-terminal-and-tool-rendering.i18n.yaml
# .agents/notes/implemented/feature/2026-06-18-acp-terminal-and-tool-rendering.zh.md
# .agents/notes/implemented/feature/2026-06-18-compaction-capability-seam.i18n.yaml
# .agents/notes/implemented/feature/2026-06-18-compaction-capability-seam.zh.md
# .agents/notes/implemented/feature/2026-06-21-subagent-capability-seam.i18n.yaml
# .agents/notes/implemented/feature/2026-06-21-subagent-capability-seam.md
# .agents/notes/implemented/feature/2026-06-21-subagent-capability-seam.zh.md
# .agents/notes/implemented/feature/2026-06-22-acp-subagent-backend.i18n.yaml
# .agents/notes/implemented/feature/2026-06-22-acp-subagent-backend.zh.md
# .agents/notes/implemented/feature/2026-06-25-ask-user-question.i18n.yaml
# .agents/notes/implemented/feature/2026-06-25-ask-user-question.zh.md
# .agents/notes/implemented/feature/2026-06-29-todo-write-tool.i18n.yaml
# .agents/notes/implemented/feature/2026-06-29-todo-write-tool.zh.md
# .agents/notes/implemented/feature/2026-06-30-hook-bridges.i18n.yaml
# .agents/notes/implemented/feature/2026-06-30-hook-bridges.zh.md
# .agents/notes/implemented/feature/2026-06-30-hook-protocol-lib.i18n.yaml
# .agents/notes/implemented/feature/2026-06-30-hook-protocol-lib.zh.md
# .agents/notes/implemented/feature/2026-06-30-interception-seams.i18n.yaml
# .agents/notes/implemented/feature/2026-06-30-interception-seams.zh.md
# .agents/notes/implemented/feature/2026-06-30-session-store-fork-api.i18n.yaml
# .agents/notes/implemented/feature/2026-06-30-session-store-fork-api.zh.md
# .agents/notes/implemented/feature/2026-06-30-subagent-observe-enrich.i18n.yaml
# .agents/notes/implemented/feature/2026-06-30-subagent-observe-enrich.zh.md
# .agents/notes/implemented/feature/2026-07-05-dynamic-workflows.i18n.yaml
# .agents/notes/implemented/feature/2026-07-05-dynamic-workflows.zh.md
# .agents/notes/implemented/feature/2026-07-05-skill-system.i18n.yaml
# .agents/notes/implemented/feature/2026-07-05-skill-system.zh.md
# .agents/notes/implemented/feature/2026-07-06-approval-seam.i18n.yaml
# .agents/notes/implemented/feature/2026-07-06-approval-seam.zh.md
# .agents/notes/implemented/feature/2026-07-06-explicit-tool-order.i18n.yaml
# .agents/notes/implemented/feature/2026-07-06-explicit-tool-order.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-07-mcp-client-plugin.i18n.yaml
# .agents/notes/implemented/feature/2026-07-07-mcp-client-plugin.zh.md
# .agents/notes/implemented/feature/2026-07-07-session-prefix.i18n.yaml
# .agents/notes/implemented/feature/2026-07-07-session-prefix.zh.md
# .agents/notes/implemented/feature/2026-07-08-repeat-tool-guard.i18n.yaml
# .agents/notes/implemented/feature/2026-07-08-repeat-tool-guard.zh.md
# .agents/notes/implemented/feature/2026-07-08-self-referential-cordis-toolset.i18n.yaml
# .agents/notes/implemented/feature/2026-07-08-self-referential-cordis-toolset.zh.md
# .agents/notes/implemented/feature/2026-07-10-session-query-service.i18n.yaml
# .agents/notes/implemented/feature/2026-07-10-session-query-service.zh.md
# .agents/notes/implemented/feature/2026-07-12-subagent-persona-tool-filter-and-depth.i18n.yaml
# .agents/notes/implemented/feature/2026-07-12-subagent-persona-tool-filter-and-depth.zh.md
# .agents/notes/implemented/process/2026-06-11-doc-sync-enforcement.i18n.yaml
# .agents/notes/implemented/process/2026-06-11-doc-sync-enforcement.zh.md
# .agents/notes/implemented/process/2026-06-11-quality-gates.i18n.yaml
# .agents/notes/implemented/process/2026-06-11-quality-gates.md
# .agents/notes/implemented/process/2026-06-11-quality-gates.zh.md
# .agents/notes/implemented/process/2026-06-11-tsdown-over-dumble.i18n.yaml
# .agents/notes/implemented/process/2026-06-11-tsdown-over-dumble.zh.md
# .agents/notes/implemented/process/2026-06-11-vendor-cordis-as-source.i18n.yaml
# .agents/notes/implemented/process/2026-06-11-vendor-cordis-as-source.zh.md
# .agents/notes/implemented/process/2026-06-16-pnpm-over-yarn.i18n.yaml
# .agents/notes/implemented/process/2026-06-16-pnpm-over-yarn.zh.md
# .agents/notes/implemented/process/2026-06-17-ts-build-config.i18n.yaml
# .agents/notes/implemented/process/2026-06-17-ts-build-config.zh.md
# .agents/notes/implemented/process/2026-06-18-markdown-cross-link-lint.i18n.yaml
# .agents/notes/implemented/process/2026-06-18-markdown-cross-link-lint.zh.md
# .agents/notes/implemented/process/2026-06-20-core-data-structures-catalog.i18n.yaml
# .agents/notes/implemented/process/2026-06-20-core-data-structures-catalog.zh.md
# .agents/notes/implemented/process/2026-06-20-generated-cordis-catalog.i18n.yaml
# .agents/notes/implemented/process/2026-06-20-generated-cordis-catalog.zh.md
# .agents/notes/implemented/process/2026-06-20-rfc-classification.i18n.yaml
# .agents/notes/implemented/process/2026-06-20-rfc-classification.zh.md
# .agents/notes/implemented/process/2026-07-02-tool-schema-catalog.i18n.yaml
# .agents/notes/implemented/process/2026-07-02-tool-schema-catalog.zh.md
# .agents/notes/implemented/process/2026-07-03-documentation-graph-atlas.i18n.yaml
# .agents/notes/implemented/process/2026-07-03-documentation-graph-atlas.zh.md
# .agents/notes/implemented/process/2026-07-04-cordis-jsdoc-completeness-gate.i18n.yaml
# .agents/notes/implemented/process/2026-07-04-cordis-jsdoc-completeness-gate.zh.md
# .agents/notes/implemented/process/2026-07-04-doc-tiers-and-budgets.i18n.yaml
# .agents/notes/implemented/process/2026-07-04-doc-tiers-and-budgets.zh.md
# .agents/notes/implemented/process/2026-07-04-generate-rfc-index-tables.i18n.yaml
# .agents/notes/implemented/process/2026-07-04-generate-rfc-index-tables.zh.md
# .agents/notes/implemented/process/2026-07-04-persistence-log-catalog.i18n.yaml
# .agents/notes/implemented/process/2026-07-04-persistence-log-catalog.zh.md
# .agents/notes/implemented/process/2026-07-05-uniform-rfc-format.i18n.yaml
# .agents/notes/implemented/process/2026-07-05-uniform-rfc-format.zh.md
# .agents/notes/implemented/process/2026-07-06-export-surface-jsdoc-gate.i18n.yaml
# .agents/notes/implemented/process/2026-07-06-export-surface-jsdoc-gate.zh.md
# .agents/notes/implemented/process/2026-07-06-generated-config-catalog.i18n.yaml
# .agents/notes/implemented/process/2026-07-06-generated-config-catalog.zh.md
# .agents/notes/implemented/process/2026-07-06-node-engine-floor.i18n.yaml
# .agents/notes/implemented/process/2026-07-06-node-engine-floor.zh.md
# .agents/notes/implemented/process/2026-07-06-parallel-github-ci-gates.i18n.yaml
# .agents/notes/implemented/process/2026-07-06-parallel-github-ci-gates.zh.md
# .agents/notes/implemented/process/2026-07-06-parallel-pre-push-gates.i18n.yaml
# .agents/notes/implemented/process/2026-07-06-parallel-pre-push-gates.zh.md
# .agents/notes/implemented/process/2026-07-10-readme-known-limitations-gate.i18n.yaml
# .agents/notes/implemented/process/2026-07-10-readme-known-limitations-gate.zh.md
# .agents/notes/implemented/process/2026-07-12-package-model-experience-contract.i18n.yaml
# .agents/notes/implemented/process/2026-07-12-package-model-experience-contract.zh.md
# .agents/notes/implemented/simplification/2026-06-19-drop-mutable-session-summary.i18n.yaml
# .agents/notes/implemented/simplification/2026-06-19-drop-mutable-session-summary.zh.md
# .agents/notes/implemented/simplification/2026-06-20-collapse-trace-only-session-events.i18n.yaml
# .agents/notes/implemented/simplification/2026-06-20-collapse-trace-only-session-events.zh.md
# .agents/notes/implemented/simplification/2026-06-20-drop-unconsumed-llm-adapter-change-event.i18n.yaml
# .agents/notes/implemented/simplification/2026-06-20-drop-unconsumed-llm-adapter-change-event.zh.md
# .agents/notes/implemented/simplification/2026-06-20-drop-unconsumed-llm-assembled-surfaces.i18n.yaml
# .agents/notes/implemented/simplification/2026-06-20-drop-unconsumed-llm-assembled-surfaces.zh.md
# .agents/notes/implemented/simplification/2026-06-20-prune-dead-seam-methods.i18n.yaml
# .agents/notes/implemented/simplification/2026-06-20-prune-dead-seam-methods.md
# .agents/notes/implemented/simplification/2026-06-20-prune-dead-seam-methods.zh.md
# .agents/notes/implemented/simplification/2026-06-20-public-agent-stop-surface.i18n.yaml
# .agents/notes/implemented/simplification/2026-06-20-public-agent-stop-surface.zh.md
# .agents/notes/implemented/simplification/2026-06-20-remove-agent-boundary-mirror-events.i18n.yaml
# .agents/notes/implemented/simplification/2026-06-20-remove-agent-boundary-mirror-events.zh.md
# .agents/notes/implemented/simplification/2026-06-26-fsspec-style-fs-seam.i18n.yaml
# .agents/notes/implemented/simplification/2026-06-26-fsspec-style-fs-seam.zh.md
# .agents/notes/implemented/simplification/2026-07-02-remove-stream-chunk-mirror.i18n.yaml
# .agents/notes/implemented/simplification/2026-07-02-remove-stream-chunk-mirror.zh.md
# .agents/notes/implemented/simplification/2026-07-04-drop-image-content-block.i18n.yaml
# .agents/notes/implemented/simplification/2026-07-04-drop-image-content-block.zh.md
# .agents/notes/implemented/simplification/2026-07-04-drop-inert-request-knobs.i18n.yaml
# .agents/notes/implemented/simplification/2026-07-04-drop-inert-request-knobs.zh.md
# .agents/notes/implemented/simplification/2026-07-04-drop-unconsumed-web-observation-surface.i18n.yaml
# .agents/notes/implemented/simplification/2026-07-04-drop-unconsumed-web-observation-surface.zh.md
# .agents/notes/implemented/simplification/2026-07-04-fold-stdio-ui-helper.i18n.yaml
# .agents/notes/implemented/simplification/2026-07-04-fold-stdio-ui-helper.md
# .agents/notes/implemented/simplification/2026-07-04-fold-stdio-ui-helper.zh.md
# .agents/notes/implemented/simplification/2026-07-04-prune-producerless-vocabulary-variants.i18n.yaml
# .agents/notes/implemented/simplification/2026-07-04-prune-producerless-vocabulary-variants.zh.md
# .agents/notes/implemented/simplification/2026-07-04-prune-write-only-fs-surface.i18n.yaml
# .agents/notes/implemented/simplification/2026-07-04-prune-write-only-fs-surface.zh.md
# .agents/notes/implemented/simplification/2026-07-04-remove-agent-steering-mirror.i18n.yaml
# .agents/notes/implemented/simplification/2026-07-04-remove-agent-steering-mirror.zh.md
# .agents/notes/implemented/simplification/2026-07-04-share-app-bin-boot-glue.i18n.yaml
# .agents/notes/implemented/simplification/2026-07-04-share-app-bin-boot-glue.zh.md
# .agents/notes/implemented/simplification/2026-07-04-tighten-hook-protocol-contract.i18n.yaml
# .agents/notes/implemented/simplification/2026-07-04-tighten-hook-protocol-contract.zh.md
# .agents/notes/implemented/simplification/2026-07-04-trim-acp-bridge-unreachable-surface.i18n.yaml
# .agents/notes/implemented/simplification/2026-07-04-trim-acp-bridge-unreachable-surface.zh.md
# .agents/notes/implemented/simplification/2026-07-12-drop-unconsumed-skill-provider-events.i18n.yaml
# .agents/notes/implemented/simplification/2026-07-12-drop-unconsumed-skill-provider-events.zh.md
# .agents/notes/implemented/simplification/2026-07-12-prune-unused-web-seam-fields.i18n.yaml
# .agents/notes/implemented/simplification/2026-07-12-prune-unused-web-seam-fields.zh.md
# .agents/notes/implemented/testing/2026-06-11-property-based-testing.i18n.yaml
# .agents/notes/implemented/testing/2026-06-11-property-based-testing.zh.md
# .agents/notes/implemented/testing/2026-06-19-acp-snapshot-tests.i18n.yaml
# .agents/notes/implemented/testing/2026-06-19-acp-snapshot-tests.zh.md
# .agents/notes/implemented/testing/2026-06-19-real-api-e2e-ci.i18n.yaml
# .agents/notes/implemented/testing/2026-06-19-real-api-e2e-ci.zh.md
# .agents/notes/implemented/testing/2026-06-20-remove-redundant-snapshot-log-goldens.i18n.yaml
# .agents/notes/implemented/testing/2026-06-20-remove-redundant-snapshot-log-goldens.zh.md
# .agents/notes/implemented/testing/2026-06-22-fork-child-replay-seed-boundary.i18n.yaml
# .agents/notes/implemented/testing/2026-06-22-fork-child-replay-seed-boundary.zh.md
# .agents/notes/implemented/testing/2026-06-22-fork-snapshot-scenarios.i18n.yaml
# .agents/notes/implemented/testing/2026-06-22-fork-snapshot-scenarios.zh.md
# .agents/notes/implemented/testing/2026-06-22-subagent-snapshot-replay.i18n.yaml
# .agents/notes/implemented/testing/2026-06-22-subagent-snapshot-replay.zh.md
# .agents/notes/implemented/testing/2026-07-04-hook-snapshot-matrix.i18n.yaml
# .agents/notes/implemented/testing/2026-07-04-hook-snapshot-matrix.zh.md
# .agents/notes/implemented/testing/2026-07-04-single-source-acp-replay-config.i18n.yaml
# .agents/notes/implemented/testing/2026-07-04-single-source-acp-replay-config.zh.md
# .agents/notes/implemented/testing/2026-07-06-pin-request-header-content-in-one-scenario.i18n.yaml
# .agents/notes/implemented/testing/2026-07-06-pin-request-header-content-in-one-scenario.zh.md
# .agents/notes/implemented/testing/2026-07-08-shared-acp-snapshot-package.i18n.yaml
# .agents/notes/implemented/testing/2026-07-08-shared-acp-snapshot-package.zh.md
# .agents/notes/proposed/architecture/2026-06-16-typed-event-schemas.i18n.yaml
# .agents/notes/proposed/architecture/2026-06-16-typed-event-schemas.zh.md
# .agents/notes/proposed/architecture/2026-06-20-generic-long-running-tool-runtime.i18n.yaml
# .agents/notes/proposed/architecture/2026-06-20-generic-long-running-tool-runtime.zh.md
# .agents/notes/proposed/feature/2026-06-30-pre-tool-input-rewrite.i18n.yaml
# .agents/notes/proposed/feature/2026-06-30-pre-tool-input-rewrite.zh.md
# .agents/notes/proposed/feature/2026-07-07-claude-code-and-codex-subagent-backends.i18n.yaml
# .agents/notes/proposed/feature/2026-07-07-claude-code-and-codex-subagent-backends.zh.md
# .agents/notes/proposed/feature/2026-07-08-interactive-side-sessions.i18n.yaml
# .agents/notes/proposed/feature/2026-07-08-interactive-side-sessions.zh.md
# .agents/notes/proposed/feature/2026-07-10-sqlite-session-query-provider.i18n.yaml
# .agents/notes/proposed/feature/2026-07-10-sqlite-session-query-provider.zh.md
# .agents/notes/proposed/feature/2026-07-13-stream-workflow-progress-through-tool-calls.i18n.yaml
# .agents/notes/proposed/feature/2026-07-13-stream-workflow-progress-through-tool-calls.zh.md
# .agents/notes/proposed/process/2026-06-11-api-extractor-reports.i18n.yaml
# .agents/notes/proposed/process/2026-06-11-api-extractor-reports.md
# .agents/notes/proposed/process/2026-06-11-api-extractor-reports.zh.md
# .agents/notes/proposed/process/2026-06-11-architectural-conformance.i18n.yaml
# .agents/notes/proposed/process/2026-06-11-architectural-conformance.zh.md
# .agents/notes/proposed/process/2026-06-11-supply-chain-and-vendor-drift.i18n.yaml
# .agents/notes/proposed/process/2026-06-11-supply-chain-and-vendor-drift.zh.md
# .agents/notes/proposed/process/2026-06-20-discover-package-inventory.i18n.yaml
# .agents/notes/proposed/process/2026-06-20-discover-package-inventory.zh.md
# .agents/notes/proposed/simplification/2026-06-20-unify-agent-and-session-id.i18n.yaml
# .agents/notes/proposed/simplification/2026-06-20-unify-agent-and-session-id.zh.md
# .agents/notes/proposed/simplification/2026-07-04-prune-dead-core-spine-surface.i18n.yaml
# .agents/notes/proposed/simplification/2026-07-04-prune-dead-core-spine-surface.zh.md
# .agents/notes/proposed/simplification/2026-07-12-simplify-session-log-representation.i18n.yaml
# .agents/notes/proposed/simplification/2026-07-12-simplify-session-log-representation.zh.md
# .agents/notes/proposed/testing/2026-06-11-deterministic-and-stress-testing.i18n.yaml
# .agents/notes/proposed/testing/2026-06-11-deterministic-and-stress-testing.zh.md
# .agents/notes/proposed/testing/2026-06-11-mutation-testing.i18n.yaml
# .agents/notes/proposed/testing/2026-06-11-mutation-testing.zh.md
# .agents/notes/rejected/architecture/2026-06-11-immutable-public-surfaces.i18n.yaml
# .agents/notes/rejected/architecture/2026-06-11-immutable-public-surfaces.zh.md
# .agents/notes/rejected/architecture/2026-06-20-providerless-example-base.i18n.yaml
# .agents/notes/rejected/architecture/2026-06-20-providerless-example-base.zh.md
# .agents/notes/rejected/simplification/2026-06-20-assembled-assistant-messages-only.i18n.yaml
# .agents/notes/rejected/simplification/2026-06-20-assembled-assistant-messages-only.zh.md
# .agents/notes/rejected/simplification/2026-06-20-drop-acp-session-load.i18n.yaml
# .agents/notes/rejected/simplification/2026-06-20-drop-acp-session-load.zh.md
# .agents/notes/rejected/simplification/2026-06-20-drop-acp-terminal-meta.i18n.yaml
# .agents/notes/rejected/simplification/2026-06-20-drop-acp-terminal-meta.zh.md
# .agents/notes/rejected/simplification/2026-06-20-drop-bash-output-spill-files.i18n.yaml
# .agents/notes/rejected/simplification/2026-06-20-drop-bash-output-spill-files.zh.md
# .agents/notes/rejected/simplification/2026-06-20-drop-durable-step-boundaries.i18n.yaml
# .agents/notes/rejected/simplification/2026-06-20-drop-durable-step-boundaries.zh.md
# .agents/notes/rejected/simplification/2026-06-20-drop-unused-session-lineage.i18n.yaml
# .agents/notes/rejected/simplification/2026-06-20-drop-unused-session-lineage.zh.md
# .agents/notes/rejected/simplification/2026-06-20-fold-session-persistence-interface.i18n.yaml
# .agents/notes/rejected/simplification/2026-06-20-fold-session-persistence-interface.zh.md
# .agents/notes/rejected/simplification/2026-06-20-generic-tool-rendering.i18n.yaml
# .agents/notes/rejected/simplification/2026-06-20-generic-tool-rendering.zh.md
# .agents/notes/rejected/simplification/2026-06-20-retire-mid-turn-steering.i18n.yaml
# .agents/notes/rejected/simplification/2026-06-20-retire-mid-turn-steering.zh.md
# .agents/notes/rejected/simplification/2026-06-20-single-session-acp-bridge.i18n.yaml
# .agents/notes/rejected/simplification/2026-06-20-single-session-acp-bridge.zh.md
# .agents/notes/rejected/simplification/2026-06-20-truncate-interrupted-turns.i18n.yaml
# .agents/notes/rejected/simplification/2026-06-20-truncate-interrupted-turns.zh.md
# .agents/notes/rejected/simplification/2026-07-04-prune-unimplemented-subagent-vocabulary.i18n.yaml
# .agents/notes/rejected/simplification/2026-07-04-prune-unimplemented-subagent-vocabulary.zh.md
# .agents/notes/rejected/simplification/2026-07-12-collapse-workflow-to-foreground-core.i18n.yaml
# .agents/notes/rejected/simplification/2026-07-12-collapse-workflow-to-foreground-core.zh.md
# .agents/notes/rejected/simplification/2026-07-12-prune-unused-skill-registry-surface.i18n.yaml
# .agents/notes/rejected/simplification/2026-07-12-prune-unused-skill-registry-surface.zh.md
# docs/rfc/implemented/architecture/2026-06-18-agent-lifecycle-and-ownership-seams.md
# docs/rfc/implemented/architecture/2026-06-18-session-surface.md
# docs/rfc/implemented/architecture/2026-06-20-branded-ids.md
# docs/rfc/implemented/architecture/2026-07-02-fs-per-session-cwd.md
# docs/rfc/implemented/feature/2026-06-18-compaction-capability-seam.md
# docs/rfc/implemented/feature/2026-07-07-session-prefix.md
# docs/rfc/implemented/process/2026-06-20-rfc-classification.md
# docs/rfc/implemented/process/2026-07-04-generate-rfc-index-tables.md
# docs/rfc/implemented/process/2026-07-05-uniform-rfc-format.md
# docs/rfc/implemented/process/2026-07-06-parallel-github-ci-gates.md
# docs/rfc/implemented/process/2026-07-06-parallel-pre-push-gates.md
# docs/rfc/implemented/process/2026-07-12-package-model-experience-contract.md
# docs/rfc/implemented/simplification/2026-06-20-remove-agent-boundary-mirror-events.md
# docs/rfc/implemented/simplification/2026-07-04-prune-producerless-vocabulary-variants.md
# docs/rfc/implemented/testing/2026-06-20-remove-redundant-snapshot-log-goldens.md
# docs/rfc/implemented/testing/2026-07-08-shared-acp-snapshot-package.md
# docs/rfc/proposed/architecture/2026-06-20-generic-long-running-tool-runtime.md
# docs/rfc/proposed/simplification/2026-06-20-unify-agent-and-session-id.md
# docs/rfc/proposed/simplification/2026-07-12-simplify-session-log-representation.md
# docs/rfc/rejected/simplification/2026-07-04-prune-unimplemented-subagent-vocabulary.md
# scripts/translation-pairing.manifest.json
2026-07-22 23:07:14 +08:00
Tianyi Cui
995362c7e1
Merge remote-tracking branch 'origin/master' into worktree/pr468-retarget-latest-master
2026-07-22 23:01:30 +08:00
Tianyi Cui
b65afd320a
Merge remote-tracking branch 'origin/master' into worktree/pr468-retarget-latest-master
...
# Conflicts:
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/event-producer-consumer.md
2026-07-22 23:00:05 +08:00
Tianyi Cui
f24664e1d4
Merge latest docs/i18n-batch-core into docs/i18n-batch-cds-postmortem
2026-07-22 22:59:43 +08:00
Tianyi Cui
01622abde7
docs(i18n): refresh core data translations after merge
2026-07-22 22:58:05 +08:00
Tianyi Cui
cf5dfe46e7
Merge remote-tracking branch 'origin/rfc/pty' into worktree/pr467-retarget-latest-master
2026-07-22 22:50:55 +08:00
Tianyi Cui
17988a88e0
Merge remote-tracking branch 'origin/master' into worktree/pr433-retarget-latest-master
2026-07-22 22:50:02 +08:00
Tianyi Cui
d99094b1ac
Merge updated rfc/pty into feature/persistent-pty-sessions
...
# Conflicts:
# docs/architecture.i18n.yaml
# docs/core-data-structures/core.md
# pnpm-lock.yaml
# scripts/gen-cordis-catalog.ts
2026-07-22 22:43:20 +08:00
Tianyi Cui
58ba7cf15b
Merge latest master into rfc/pty
2026-07-22 22:38:40 +08:00
Tianyi Cui
e962642926
Merge remote-tracking branch 'origin/master' into worktree/pr468-retarget-latest-master
...
# Conflicts:
# docs/architecture.i18n.yaml
# docs/config-catalog.md
# docs/event-producer-consumer.md
# docs/module-graph.md
# packages/examples/acp-demo/README.md
# packages/examples/acp-demo/src/index.ts
# packages/examples/acp-demo/tests/built-bin.e2e.ts
# packages/examples/tui-demo/package.json
# packages/examples/tui-demo/src/index.ts
# packages/examples/tui-demo/tests/tui-agent.spec.ts
2026-07-22 22:38:17 +08:00
Tianyi Cui
b0f5d9e313
Merge commit 'refs/codex-unblock/20260722-pr338-master' into HEAD
...
# Conflicts:
# docs/event-producer-consumer.md
# examples/acp-agent/tests/acp.snapshot.ts
# packages/core/session/src/index.ts
# packages/examples/acp-demo/src/index.ts
# packages/session-persistence/session-persistence-jsonl/src/format.ts
# vitest.config.ts
2026-07-22 22:37:16 +08:00
Tianyi Cui
58a531ebf5
Merge refreshed docs/i18n-batch-core into docs/i18n-batch-cds-postmortem
...
# Conflicts:
# .agents/notes/README.i18n.yaml
# .agents/notes/README.zh.md
# docs/core-data-structures/bash.md
# docs/core-data-structures/code-runtime.md
# docs/core-data-structures/compaction.md
# docs/core-data-structures/scope.md
# docs/core-data-structures/session-query.md
# docs/core-data-structures/user-interaction.md
# docs/core-data-structures/web.md
# docs/rfc/README.md
# scripts/translation-pairing.manifest.json
# scripts/type-equiv.manifest.json
2026-07-22 22:26:24 +08:00
Tianyi Cui
53c3ab135d
test(snapshot): cover all packed chunk row kinds
2026-07-22 22:14:16 +08:00
Tianyi Cui
7a8d5da3d3
Merge remote-tracking branch 'origin/master' into worktree/pr468-retarget-latest-master
2026-07-22 22:02:53 +08:00
Tianyi Cui
a3d17feb8c
Merge latest master into worktree/semantic-session-checkpoints
2026-07-22 22:01:38 +08:00
Tianyi Cui
277b65aa8c
Merge remote-tracking branch 'origin/master' into worktree/pr468-retarget-latest-master
...
# Conflicts:
# pnpm-lock.yaml
2026-07-22 22:00:00 +08:00
Tianyi Cui
f967537177
Merge remote-tracking branch 'origin/master' into worktree/web-bind-address
...
# Conflicts:
# apps/cli/src/bin.ts
2026-07-22 21:51:05 +08:00
Tianyi Cui
3679b4d829
Merge master into worktree/semantic-session-checkpoints
2026-07-22 21:49:24 +08:00
Tianyi Cui
db21dcfeae
Merge remote-tracking branch 'origin/master' into codex/session-scoped-sandbox-roots
2026-07-22 21:41:53 +08:00