docs(notes): reconcile shell.leading note with the sessionless conversation.header.leading seat
Master's sessionless-sidebar work renamed the conversation leading seat to root-scoped conversation.header.leading instead of deleting it; the note now states both seats' current roles rather than claiming outright removal.
This commit is contained in:
1 parent
64556a1285
commit
6f77b92121
3 files changed
+6
-6
No files matched your search
+2
-2
@@ -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 .agents/notes/implemented/architecture/2026-09-17-frame-shell-leading-window-chrome-seat.md
|
||||
2026-09-17-frame-shell-leading-window-chrome-seat.md: d0d581b29ddafaa78a03f51bca9c0d5f9ac0bd60
|
||||
2026-09-17-frame-shell-leading-window-chrome-seat.zh.md: c670387363679d4053beb4e8085a2ec4f89134f1
|
||||
2026-09-17-frame-shell-leading-window-chrome-seat.md: cc3ef576900e38dc26c46438fd5d490ac4361be0
|
||||
2026-09-17-frame-shell-leading-window-chrome-seat.zh.md: c652f313d4f4863decc14e556a1674487d1d3fea
|
||||
+2
-2
@@ -14,7 +14,7 @@ The window chrome belongs to the frame, not to one panel. ui-layout declares a f
|
||||
|
||||
Under the same collapsed condition the frame publishes `--dsh-frame-leading-clearance: 160px` — the inline band the traffic lights plus the seat's two controls occupy, measured from the frame's left edge. Window fullscreen hides the traffic lights (the desktop preload mirrors the state onto `html[data-fullscreen]`): the seat moves to `left: 12px` into their vacated band and the clearance drops to `84px`. The conversation title row is the one consumer: it pads `max(0px, clearance - 20px)` (its header already pads 20px). Entry pages that start below the window strip in both sidebar states (the plugin manager's page head) instead pad their top by `--dsh-frame-top-clearance` (48px, published on the darwin frame unconditionally), which clears the strip vertically rather than indenting inline.
|
||||
|
||||
ui-sidebar registers `HeaderLeadingControls` into `shell.leading` instead of the conversation seat, reusing the shell's inject face and locale; the component renders unconditionally because the frame owns the mount condition, and its platform check and CSS collapse-gating are deleted. The conversation slot `conversation.session.header.leading` is removed outright — declaration, owner-props interface, children entry, header render seat, and CSS — per the pre-stable API rule (every consumer updated, no compatibility shim), which also drops ui-sidebar's dependency on ui-conversation.
|
||||
ui-sidebar registers `HeaderLeadingControls` into `shell.leading` instead of the conversation seat, reusing the shell's inject face and locale; the component renders unconditionally because the frame owns the mount condition, and its platform check and CSS collapse-gating are deleted. This also drops ui-sidebar's dependency on ui-conversation. The original `conversation.session.header.leading` slot is gone per the pre-stable API rule (every consumer updated, no compatibility shim); the conversation header now exposes its own sessionless `conversation.header.leading` seat (root-scoped, rendered without a Session) as a public extension point, empty in the shipped composition because the window-chrome controls live in `shell.leading`.
|
||||
|
||||
## Alternatives considered
|
||||
|
||||
@@ -29,7 +29,7 @@ ui-sidebar registers `HeaderLeadingControls` into `shell.leading` instead of the
|
||||
## Consequences
|
||||
|
||||
- Every current and future main panel keeps the reopen and New Session controls while the sidebar is hidden, at zero per-panel cost; the conversation opts into `--dsh-frame-leading-clearance`, and entry pages take the unconditional `--dsh-frame-top-clearance` instead.
|
||||
- `conversation.session.header.leading` no longer exists in the client catalog; `shell.leading` replaces it as a public root-scoped seat any package may occupy.
|
||||
- `conversation.session.header.leading` no longer exists in the client catalog; `shell.leading` carries the window chrome as a public root-scoped seat, while the conversation header's sessionless `conversation.header.leading` remains a separate public seat with no shipped occupant.
|
||||
- ui-sidebar no longer depends on ui-conversation (inject list, devDependency, and tsconfig reference removed).
|
||||
- The mount condition names darwin explicitly: Windows' `data-windows-titlebar` collapse also yields a zero-width column but keeps its own fixed caption controls, which a frame seat would duplicate. A platform that later hides its column without leaving its own chrome opts in by widening the condition.
|
||||
|
||||
|
||||
+2
-2
@@ -14,7 +14,7 @@ Status: implemented
|
||||
|
||||
在同一收起条件下框架发布 `--dsh-frame-leading-clearance: 160px`——红绿灯加座内两个控件占据的行内带宽,自框架左边缘起量。窗口全屏隐藏红绿灯(桌面 preload 把状态镜像到 `html[data-fullscreen]`):座移入其空出的带宽(`left: 12px`),避让量降到 `84px`。会话标题行是唯一消费者:它 pad `max(0px, clearance - 20px)`(其头部已 pad 20px)。两种侧栏状态下都始于窗口顶带之下的入口页(插件管理器页头)改用 `--dsh-frame-top-clearance`(48px,darwin 框架上无条件发布)做顶部内边距,纵向避开顶带而非行内缩进。
|
||||
|
||||
ui-sidebar 把 `HeaderLeadingControls` 改注册到 `shell.leading` 而非会话座,复用 shell 的 inject face 与 locale;因挂载条件归框架所有,组件无条件渲染,其平台判断与 CSS 收起门控被删除。会话 slot `conversation.session.header.leading` 按 pre-stable API 规则整体移除——声明、owner props 接口、children 条目、头部渲染座与 CSS(更新所有消费者,不留兼容垫层),同时解除 ui-sidebar 对 ui-conversation 的依赖。
|
||||
ui-sidebar 把 `HeaderLeadingControls` 改注册到 `shell.leading` 而非会话座,复用 shell 的 inject face 与 locale;因挂载条件归框架所有,组件无条件渲染,其平台判断与 CSS 收起门控被删除,同时解除 ui-sidebar 对 ui-conversation 的依赖。原 `conversation.session.header.leading` slot 按 pre-stable API 规则不复存在(更新所有消费者,不留兼容垫层);会话头现在自带无会话可用的 `conversation.header.leading` 座(root 作用域、无 Session 也渲染)作为公开扩展点,因窗口 chrome 控件已住进 `shell.leading`,出厂组合中它保持空置。
|
||||
|
||||
## Alternatives considered
|
||||
|
||||
@@ -29,7 +29,7 @@ ui-sidebar 把 `HeaderLeadingControls` 改注册到 `shell.leading` 而非会话
|
||||
## Consequences
|
||||
|
||||
- 侧边栏隐藏时,现有与未来的每个主面板都免费获得重新打开与 New Session 控件;会话接入 `--dsh-frame-leading-clearance`,入口页改用无条件发布的 `--dsh-frame-top-clearance`。
|
||||
- `conversation.session.header.leading` 从客户端目录中消失;`shell.leading` 取而代之,成为任何包都可占据的公开 root 作用域座。
|
||||
- `conversation.session.header.leading` 从客户端目录中消失;`shell.leading` 作为公开 root 作用域座承载窗口 chrome,会话头无会话可用的 `conversation.header.leading` 则是另一个公开座,出厂组合中无占用者。
|
||||
- ui-sidebar 不再依赖 ui-conversation(inject 列表、devDependency 与 tsconfig 引用均已移除)。
|
||||
- 挂载条件显式点名 darwin:Windows 的 `data-windows-titlebar` 收起同样得到零宽列,但保留自己的固定 caption 控件,框架座会与之重复。未来某平台若隐藏整列且不留自己的 chrome,通过放宽该条件接入。
|
||||
|
||||
|
||||
Reference in new issue
Block a user