Skip to content

Own Chatroom room header, timeline and member navigation - #76

Draft
NWYLZW wants to merge 7 commits into
mainfrom
codex/chatroom-74-page
Draft

NWYLZW wants to merge 7 commits into
mainfrom
codex/chatroom-74-page

Conversation

@NWYLZW

@NWYLZW NWYLZW commented Sep 7, 2026

Copy link
Copy Markdown
Member

Chatroom’s plugin page now owns the room header, timeline and inspector interactions previously rendered by the Host conversation shell. Authors and unique prose mentions are actionable, history reading keeps its scroll position, and approval/message menus preserve copying, keyboard access and readable status. The inspector restores the 900px drawer boundary, full-height panel, scrim, resizing, search clearing and focus behavior.

Related to #74. This draft is an incremental integration candidate for the coordinating #78 task. Do not merge independently.

product-impact:product-impacting
preview-status:required

Final scope

  • Page/header, composite-avatar publication, timeline, local Markdown prose rendering, member navigation and inspector layout. Timeline entries are split into a cohesive module.
  • Message author @, unique inline aliases, same-Agent/revision grouping, historical stopped/failed/pending status, reaction and presence descriptions, log/status semantics. Runtime running remains derived from actual activeRuns matched to sessionId; replay runState never creates a live badge.
  • Message/approval body and avatar context menus, keyboard invocation, exact body/timestamp copying through standard browser writeText from plugin-owned gestures, honest missing/rejected clipboard feedback. Reviewer approval authority and no-cancel policy remain intact; individual decision availability, duplicate submission protection, diagnostics and completion focus are preserved.
  • Markdown is parsed as one GFM AST. Only unique boundary-matched prose mentions become buttons; existing links and code are untouched. Raw HTML is sanitized, external http(s) links retain safe new-window behavior, and complete code/picture/video nodes delegate to public MarkdownViewer for highlighting/theme behavior.
  • Member role/name/id search, clear button, first Escape clears search, back preserves query, repeated mentions use authoritative membership aliases. The full-height inspector uses a 900px container threshold with scrim/inert background and pointer/keyboard resizing.
  • Minimal page wiring for coordinator-owned ChatroomRoomActions and RoomSettings.onSaved. The coordinator owns leaf services, actual Room actions/confirmation, exact identity Settings, registration, dependencies and final cutover.

Integration dependencies

Formal plugin base: c92fe8bdb7633c56ad8ed02e8637f81495bfa42b.

Prior page increments: ad14a06c91a728904183ee19181a93dc8d279700, 1a956596103cf88fa532450094e3b7aa58c5f359, 597a2259bb51cb7f2fd76a6f00fa53006618e3c2. Latest parity increment: d34a2916e208b22044cb3f08ddb167b05cca82d5.

The branch contains development-dependency cherries for coordinator details/settings 3e5ff90, Composer c7b4d2b, and runtime badge fix 6eb641a (local cac4e9a). The coordinator already owns these; cherry-pick only missing page increments. Latest page import additionally requires coordinator-owned ChatroomRoomActions and RoomSettings.onSaved. This commit alone on the old baseline is not independently buildable.

The coordinator adds exact react-markdown 10.1.0, remark-gfm 4.0.1, rehype-raw 7.0.0 and rehype-sanitize 6.0.0 package/lock declarations. Composer’s newer authoritative-alias behavior is owned by #75. No Room/Session storage, source/projection ordering, controller, lock or execution code is changed here.

Evidence and acceptance limits

Old formal Host 5836c52a78a544945c644fa5d06395ccc9f0306c was audited against candidate 0122f724f0178c0e9f4a1c7d056150e36c9903b2 and plugin candidates. The actual old Header More also consumed navigation actions: model.headerActions=[] does not mean it had no production actions. Header copy-link capability and exact Agent Settings remain coordinator integration responsibilities. Generic custom-message actions/presence retry and the old unavailable-identity target indicator remain explicit audit differences, not silently declared equivalent.

  • Latest increment: 16 focused tests pass (10 deterministic page/timeline handler/effect tests, 3 approval source-contract checks, 3 actual Markdown SSR tests). The final search-ID change was followed by another successful 10-test page run.
  • Changed-file dprint and ESLint, CSS dprint/Malva 0.16.0 and Stylelint 17.15.0 / Project Wallace 0.7.0, and whitespace diff checks pass. CSS checks use isolated tool configuration because this development base predates the coordinator’s repository-native CSS setup.
  • Early ad14a06 baseline passed full typecheck/build and 303 tests. That historical result does not cover latest changes. Per explicit machine-resource scheduling, no new full typecheck/build/test/browser matrix was started; the coordinator owns the combined final gate.
  • No App/window was operated. Native geometry, dark/light, focus/accessibility, clipboard permissions, actual session/approval/stop/history, theme media/highlighting and lazy CSS timing remain required acceptance. This PR is not full 将 Chatroom 业务 UI 从 Host Shell 移回插件:明确职责边界并移除旧实现 #74 acceptance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant