docs: purge chain-of-thought leakage from prose

Delete design-session citations (decision/audit/plan ordinals, stack
positions), change narration, review choreography, and reviewer-addressed
justification from comments, JSDoc, docs, READMEs, Agent Notes, tests, and
generator templates; restate every affected fact as current-state contract
prose. Fix generated docs at their sources and regenerate the catalogs and
cordis-surface regions; re-paste type-equiv blocks; update every bilingual
counterpart and re-record the pairs. Record the citation rule in the
committed-artifact-citations Agent Note.
This commit is contained in:
Tianyi Cui
2026-08-09 15:09:19 +08:00
parent 793f6f55df
commit 25dcd7293c
763 changed files with 2705 additions and 1710 deletions

View File

@@ -2,5 +2,5 @@
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write packages/client/web-react/README.md
README.md: 8f1a525af1e249282f2cc473e7f9652f68f914a8
README.zh.md: 55ed3a0fec4bfba4c4934db8728bc6fa23a7321a
README.md: ada2a1384427f5a54c51e9fca8bbf9595e4d3403
README.zh.md: 40cd70c689b87a5935e0249df47899982e898be8

View File

@@ -2,7 +2,7 @@
English | [中文](README.zh.md)
Shell-side React glue for the slot terminal design: createSlotRenderer (the SlotRenderer implementation the shell installs into the runtime SlotsService), SessionProvider (framework-wired render prop, also injected as a standard seat to entries declaring session-scope children), bindSnapshotSelector (the one hook constructor — hosts and engines traffic in bare observable sources; every hook binds here, cached per source), useInvoke. Chain-slot outlets run the registered selectors in chain order at render time and mount only the elected entry, its select return joining the props as `matched`; the `renderSlotChain` binding is per-entry cached like `renderSlot`. The snapshot-store engine and defineStore live in runtime (store relocation); business plugins depend on ui-slots types only, never on this package.
Shell-side React glue for the slot terminal design: createSlotRenderer (the SlotRenderer implementation the shell installs into the runtime SlotsService), SessionProvider (framework-wired render prop, also injected as a standard seat to entries declaring session-scope children), bindSnapshotSelector (the one hook constructor — hosts and engines traffic in bare observable sources; every hook binds here, cached per source), useInvoke. Chain-slot outlets run the registered selectors in chain order at render time and mount only the elected entry, its select return joining the props as `matched`; the `renderSlotChain` binding is per-entry cached like `renderSlot`. The snapshot-store engine and defineStore live in runtime; business plugins depend on ui-slots types only, never on this package.
## Model Experience

View File

@@ -2,7 +2,7 @@
[English](README.md) | 中文
slot 终端设计的外壳侧 React 胶水createSlotRenderer外壳安装到运行时 SlotsService 的 SlotRenderer 实现、SessionProvider由框架接入的 render prop也作为标准 seat 注入到声明会话 scope 子 slot 的配置项、bindSnapshotSelector唯一的钩子构造器主机与引擎只传递裸 observable source每个钩子在此绑定并按 source 缓存、useInvoke。链式 slot outlet 在渲染时按链顺序运行已注册 selector只挂载被选中的配置项其 select 返回值以 `matched` 加入 props`renderSlotChain` 绑定与 `renderSlot` 一样按配置项缓存。快照 store 引擎与 defineStore 位于运行时store 已迁移);业务插件只依赖 ui-slots 类型,绝不依赖该包。
slot 终端设计的外壳侧 React 胶水createSlotRenderer外壳安装到运行时 SlotsService 的 SlotRenderer 实现、SessionProvider由框架接入的 render prop也作为标准 seat 注入到声明会话 scope 子 slot 的配置项、bindSnapshotSelector唯一的钩子构造器主机与引擎只传递裸 observable source每个钩子在此绑定并按 source 缓存、useInvoke。链式 slot outlet 在渲染时按链顺序运行已注册 selector只挂载被选中的配置项其 select 返回值以 `matched` 加入 props`renderSlotChain` 绑定与 `renderSlot` 一样按配置项缓存。快照 store 引擎与 defineStore 位于运行时;业务插件只依赖 ui-slots 类型,绝不依赖该包。
## 模型体验

View File

@@ -650,7 +650,7 @@ function SlotOutlet({ slotKey, ownerProps, opts }: {
const spec = host.specOf(slotKey)
// Undeclared (or no-longer-declared) keys render empty: a declaring entry's
// unload returns the slot to the undeclared state while retained elements
// may still be mounted — natural empty, not an ownership failure (§9).
// may still be mounted — natural empty, not an ownership failure.
if (!spec) return null
const strictSessionAbsent = spec.scope === 'session' && sessionInfo.sessionId === undefined
if (strictSessionAbsent && (spec.kind !== 'chain' || !opts?.overlay)) {
@@ -776,7 +776,7 @@ function SlotOutlet({ slotKey, ownerProps, opts }: {
return <>{list.map(item => guarded(item.entry, entryKeyOf(item.entry)))}</>
}
/** Root outlet: the shell's single ctx-level render entry — an unregistered 'root' is a boot-order failure, never a silent blank (§1). */
/** Root outlet: the shell's single ctx-level render entry — an unregistered 'root' is a boot-order failure, never a silent blank. */
function RootOutlet({ ownerProps }: { ownerProps: object }) {
const host = useHost()
useSyncExternalStore(

View File

@@ -84,7 +84,7 @@ function useAbsentSnapshot<S>(_selector: (snapshot: never) => S, _equal?: (a: S,
}
/**
* The useProjection framework seat (session-projection RFC), one bound
* The useProjection framework seat (docs/subsystems/session-projection.md), one bound
* function per provide bundle (cached by info identity — components may hold
* it across renders). Key-addressed: the key resolves a per-session value
* face off the projection store; the bound selector hook comes from the same

View File

@@ -135,8 +135,8 @@ function makeHost() {
host,
list,
workspaces,
// Same driver surface as the old current cell: set(id) publishes the
// resolved bundle (or the absent projection) through the provide source.
// Driver surface: set(id) publishes the resolved bundle (or the absent
// projection) through the provide source.
current: {
set: (id: string | undefined) => {
currentId = id

View File

@@ -57,8 +57,8 @@ function makeHost(bodies: { root: (rp: (key: string, owner: object) => React.Rea
}
return {
host,
// Same driver surface as the old current cell: set(id) publishes the
// resolved bundle (or the absent projection) through the provide source.
// Driver surface: set(id) publishes the resolved bundle (or the absent
// projection) through the provide source.
current: {
set: (id: string | undefined) => {
currentId = id

View File

@@ -1,6 +1,7 @@
// @vitest-environment jsdom
/**
* useProjection standard-kit delivery (session-projection RFC): the fifth
* useProjection standard-kit delivery (session-projection subsystem page:
* docs/subsystems/session-projection.md): the fifth
* framework hook seat rides the same provide channel as useSession — a
* session slot component receives `useProjection` in its kit, key-addressed
* over the bundle's projection face; unresolved keys (no value, no face, no