Skip to content

Conversation

@aibrahim-oai
Copy link
Collaborator

@aibrahim-oai aibrahim-oai commented Jan 19, 2026

  • Adds experimental collaboration modes UX in TUI: Plan / Pair Programming / Execute.
  • Gated behind Feature::CollaborationModes; existing behavior remains unchanged when disabled.
  • Selection UX:
    • Shift+Tab cycles modes while idle (no task running, no modal/popup).
    • /collab cycles; /collab <plan|pair|pp|execute|exec> sets explicitly.
    • Footer flash after changes + shortcut overlay shows Shift+Tab “to change mode”.
    • /status shows “Collaboration mode”.
  • Submission semantics:
    • When enabled: every submit uses Op::UserTurn and always includes collaboration_mode: Some(...) (default Pair Programming).
    • Removes the one-shot “pending collaboration mode” behavior.
  • Implementation:
    • New tui/src/collaboration_modes.rs (selection enum/cycle, /collab parsing, resolve to CollaborationMode, footer flash line).
    • Fallback: resolve_mode_or_fallback synthesizes a CollaborationMode when presets are missing (uses current model + reasoning effort; no developer_instructions) to avoid core falling back to Custom.
    • TODO: migrate TUI to use Op::UserTurn.

@aibrahim-oai aibrahim-oai changed the title Introduce collaboration modes in tui add collaboration mode UX + always submit UserTurn when enabled Jan 19, 2026
@aibrahim-oai aibrahim-oai changed the title add collaboration mode UX + always submit UserTurn when enabled TUI: collaboration mode UX + always submit UserTurn when enabled Jan 19, 2026
@aibrahim-oai
Copy link
Collaborator Author

@codex review this

Copy link
Contributor

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a0e9045b90

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Copy link
Collaborator

@jif-oai jif-oai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That "looks" ok but the changes in the snapshot worries me a bit
Also, "collab" is used everything in the code for as the "code name" of the multi-agent capabilities, I fear this becomes quickly messy if we have the same name for 2 totally different things

@@ -1,6 +1,5 @@
---
source: tui/src/bottom_pane/chat_composer.rs
assertion_line: 2116
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ooc, how is this related?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed. this happen when snapshots changes and then change back automatically

@aibrahim-oai
Copy link
Collaborator Author

@codex review

Copy link
Contributor

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5433b7d56e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +518 to +522
pub(crate) fn show_footer_flash(&mut self, line: Line<'static>, duration: Duration) {
let expires_at = Instant::now()
.checked_add(duration)
.unwrap_or_else(Instant::now);
self.footer_flash = Some(FooterFlash { line, expires_at });
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Update ChatComposer docs for new footer flash state

The bottom-pane AGENTS.md (codex-rs/tui/src/bottom_pane/AGENTS.md) requires updating the chat-composer module docs and docs/tui-chat-composer.md whenever the ChatComposer state machine changes. This commit introduces new ChatComposer state/behavior (footer flash timing and collaboration-mode command handling) but doesn’t update those docs, so the documented behavior will now be stale and harder to maintain. Please update the module docs and docs/tui-chat-composer.md to reflect the new footer flash and collaboration-mode command flow.

Useful? React with 👍 / 👎.

@aibrahim-oai aibrahim-oai merged commit bf430ad into main Jan 19, 2026
32 checks passed
@aibrahim-oai aibrahim-oai deleted the cli/modes branch January 19, 2026 17:32
@github-actions github-actions bot locked and limited conversation to collaborators Jan 19, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants