Skip to content

Add non-default live room bridge#310

Merged
spytensor merged 1 commit into
mainfrom
codex/v0.9.4-305-live-room-bridge
May 24, 2026
Merged

Add non-default live room bridge#310
spytensor merged 1 commit into
mainfrom
codex/v0.9.4-305-live-room-bridge

Conversation

@spytensor
Copy link
Copy Markdown
Owner

@spytensor spytensor commented May 24, 2026

Linked Issue

Closes #305

Scope

Adds the first non-default unified room bridge behind cr console --live-room. This does not replace the default cr path and does not change cr console --snapshot; it creates a staged live room path where the composer and dashboard render together and submissions are routed through existing REPL parse semantics.

Implemented:

  • console_room bridge that routes composer submissions through repl::parse_line.
  • bare text dispatches to the configured host role.
  • explicit @role dispatches to the target role.
  • @all broadcast is recognized.
  • supported slash commands produce clear live-room bridge actions.
  • unsupported runtime-only slash commands produce clear guidance to use cr start until dogfood parity closes.
  • permission/action overlays can be surfaced without mutating snapshot conversation facts.
  • cr console --live-room non-default TTY path with composer/dashboard rendering together.
  • text-render test proving dashboard, conversation, task cards, composer, and bridge status render in one frame.

Acceptance Criteria

  • AC-1: Add an integrated full-screen room loop behind a non-default command/flag.
  • AC-2: Dispatch bare text to the configured host role and explicit @role text to the target role using existing routing semantics.
  • AC-3: Preserve slash commands required for normal operation or explicitly block unsupported commands with clear messaging.
  • AC-4: Surface permission prompts in the room without corrupting the dashboard or composer.
  • AC-5: Update dashboard panels from structured state, not UI-owned guesses.
  • AC-6: Keep cr console --snapshot read-only/debug mode unchanged.

Preserved / Deferred REPL Behavior Matrix

Behavior #305 status Evidence
bare user text -> host preserved in bridge live_room_routes_bare_text_to_host_and_preserves_public_user_turn
explicit @role -> target preserved in bridge live_room_routes_explicit_role_mentions_with_existing_repl_semantics
@all broadcast parse recognized by bridge LiveRoomAction::Broadcast
/help, /exit, /halt, /fresh, /refresh, /permissions, /allow, /deny, /host supported/staged with explicit bridge status live_room_command_specs, bridge route arms
/journal, /patch, /compact, /resume, /transcript, /stop, /welcome explicitly blocked in live-room preview live_room_blocks_runtime_only_slash_commands_with_clear_message
permission/action prompt overlay supported without snapshot mutation permission_overlay_stays_out_of_snapshot_conversation
actual engine role execution and permission bridge socket deferred to #306 dogfood/parity out of scope for #305
default cr entrypoint replacement deferred out of scope for #305

Changed Files

  • src/console_room.rs — non-default live room bridge and routing model.
  • src/console_tui.rscr console --live-room TTY loop and composer/dashboard rendering.
  • src/main.rs — adds non-default --live-room flag; keeps --snapshot read-only.
  • src/lib.rs — exports console_room.
  • tests/console_room_test.rs — integration-style bridge and render tests.

Validation

  • cargo fmt --all -- --check — pass
  • cargo test --test console_room_test --locked --quiet — pass, 5 tests
  • cargo test --test console_tui_test --locked --quiet — pass, 7 tests
  • cargo clippy --all-targets --all-features --locked -- -D warnings — pass
  • cargo test --all-features --locked --quiet — pass
  • cargo run --locked --quiet -- console --help — pass; help shows --live-room and keeps --snapshot
  • git diff --check — pass

Risk

Medium. This introduces a new non-default TTY input loop, but it is isolated behind cr console --live-room, keeps cr console --snapshot unchanged, and does not alter the default cr startup behavior.

Rollback

Revert this PR. No migrations, persisted project state, release metadata, or user data are changed.

Tracker Update

@spytensor spytensor merged commit ab2f5c0 into main May 24, 2026
5 checks passed
@spytensor spytensor deleted the codex/v0.9.4-305-live-room-bridge branch May 24, 2026 13:11
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.

v0.9.4: integrate live room bridge behind non-default entrypoint

1 participant