Move Room UI and delegated task flow into Chatroom - #78
Merged
Merged
Conversation
…ifest v12 (cherry picked from commit 80f4b2e)
NWYLZW
marked this pull request as ready for review
September 8, 2026 16:33
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Change
Chatroom renders its Room through a plugin-owned React page, including header actions, Markdown messages and composer, member search/details, Room settings and resizable inspector. Unused plugin Shell sources are removed. Existing opaque Room/Session associations remain the only business relationships.
Merge impact:
src/chatroom.tsregisters the plugin-owned page directly, so future builds from Chatroommainuse this page instead of selecting the Host Shell adapter. This owner-code promotion does not publish npm, update CordisXMono gitlinks, start a runtime, migrate or delete user data, or remove the Host Shell from the Host repository. Native product acceptance remains pending and is tracked separately from the formal owner merge.Historical Session details use the public v2 reference/navigation contract. Replay is read-only, queues invalidations during hydration and deduplicates messages using their existing durable display association. Activity badges require an available running Agent observation. Agent reports and stored lifecycle never imply current activity.
The new task dialog selects an existing Leader and requires task text plus an explicit working directory. It calls the existing room.prepare/task.start commands, preserves existing Sessions, and retries uncertain results with the same operation and payload. Entity Settings resolves the exact persisted identity through the public service. Copy link uses the Host-generated canonical route link. Room actions share the existing sidebar command definitions and deletion requires confirmation.
The integrated delegated-task path covers the CLI delegate, task.start, retry, query and report flow while preserving the exact operation, working context and Room/run associations. A real native single create-and-submit plus report round trip remains part of product acceptance.
Tracks #73 and #74. Contributions from #75, #76 and #79 are integrated here; those PRs must not merge independently.
Dependencies and validation
The tracked compatible set now pins formal Host 65aae075f2614a1d38efcadf827439f41c7fe9f3 and formal Protocol c2f6f8e4bf4a638bf4627c9c567792f2fedbcfd6. The Host merge passed its 1663-test full gate, release/package checks and installed-package validation. Protocol contains the manifest v12 and task-scoped approval contracts consumed here. The task permission manifest preserves the existing route scopes.
Formal Host 65aae075f2614a1d38efcadf827439f41c7fe9f3 descends the reviewed Room UI Host and differs from fad2ad126be680b5d04e59d79a7e10682d67c433 only in the native Vite dependency optimizer and two Host test files. It settles cold plugin dependency discovery before validating generated module URLs. With the formal pins installed through normal lifecycle scripts, this repository passes CSS lint, typecheck, build, all 373 tests, formatting and full-source ESLint. Its package dry run contains 256 files.
PR head 0ddc66b passed the remote owner check, formatting, shared quality configuration and scope jobs. The owner check used the exact lock with lifecycle-enabled transitive Git dependencies and completed in 10 minutes 47 seconds. Its full, cache-miss CI artifact records base 50afbbb and 373 passing tests.
Explicit task refusal codes, including permission-denied, appear in the form and durable task details while preserving retry identity. Exact-run presence filtering suppresses obsolete creating indicators after a delegation result without rewriting stored lifecycle or presenting refusal as a running Session. The formal Host authorization implementation passed its complete CI gate; real native approval and refusal behavior remains part of product acceptance.
The direct page now re-resolves current ordinary message actions and executes them through owner-bound public commands. It renders the first two actions inline and the remainder in the existing overflow menu, with tested disabled, current, pending, error and retry behavior. Current production producers emit empty action arrays; tests inject protocol-valid actions only, without fabricated product data.
Still required: real isolated native Room behavior, CLI/approvals and cold restart; historical Session/Back; Markdown editor/theme/IME; sidebar/actions; responsive layout; product preview acceptance. Original user-accepted Room data/config remains unidentified and cannot be replaced by a fabricated history fixture. Existing Host Shell retirement is a later gate after equivalence; no issue closure or npm release.
The restored manual acceptance packet remains intentionally frozen on Chatroom 06150e3 and Host fad2ad126be680b5d04e59d79a7e10682d67c433 until the new formal Host pin receives a separate isolated assembly refresh. Both trees contain the same Chatroom product implementation; this PR's newer Host adds the cold dependency-optimizer fix.
Formal owner merge: squash commit e249110 has tree 167ab5baa036d768ac709f7930653a0cac0bec34, exactly matching reviewed head 0ddc66b. Main run 34251878734 passed its cache-miss owner gate with 373/373 tests; main formatting and shared quality configuration also passed. This records owner-code integration only. Native acceptance, Host Shell retirement, release and CordisXMono integration remain pending.
Product impact: product-impacting (Room renderer, composer and navigation ownership). Preview status: required; native validation and user acceptance remain incomplete because Computer Use is explicitly denied access to the Codex app in the retained isolated scene.
CSS ownership
Chatroom owns component CSS, loaded alongside the lazy page graph. No Host/native selectors are overridden. Header copy selectors no longer style nested dialog text, actions wrap in a separate row, and the delete confirmation uses a native modal dialog. Team CSS remains on its existing entry; formatting preserved its normalized css-tree AST. Native focus, theme and responsive acceptance remains pending.