Skip to content

feat: show the isolated-worktree branch in the TUI session title#24

Merged
saucam merged 1 commit into
mainfrom
feat/tui-worktree-chip
Jul 13, 2026
Merged

feat: show the isolated-worktree branch in the TUI session title#24
saucam merged 1 commit into
mainfrom
feat/tui-worktree-chip

Conversation

@saucam

@saucam saucam commented Jul 13, 2026

Copy link
Copy Markdown
Owner

TUI parity for the web WorktreeChip. The codeoid daemon now runs forked/isolated sessions in their own git worktree (branch codeoid/…, carrying the parent's live state; see codeoid #170/#171). The TUI showed nothing about this; now it does.

Changes

  • SessionInfo.worktree — new optional { path, branch, createdByCodeoid } (additive, camelCase on the wire; mirrors the daemon's SessionWorktree). Old daemons omit it → None.
  • session_title renders a green ⎇ <branch> tag next to the fork-lineage () chip, so an isolated fork tab is self-describing at a glance.

Tests

  • session_title_shows_worktree — tag present with the branch when a worktree is set, absent otherwise.
  • wire_format sample now includes a worktree, so the existing "no snake_case keys leak" assertion validates the camelCase serde (createdByCodeoid).
  • Updated SessionInfo fixtures across the crates for the new field.
  • cargo test --workspace green, cargo fmt --check clean, clippy (advisory) clean for the new code.

Additive + forward-compatible: unknown-field daemons and older clients interoperate unchanged.

🤖 Generated with Claude Code

TUI parity for the web WorktreeChip (codeoid daemon now runs forked/isolated
sessions in their own git worktree). SessionInfo gains an optional
`worktree { path, branch, createdByCodeoid }` (additive, camelCase on the
wire), and session_title renders a green "⎇ <branch>" tag next to the
fork-lineage chip — so a fork running in its own worktree is self-describing.

Tests: session_title_shows_worktree (chip present with branch / absent without);
wire_format sample now carries a worktree so the no-snake-case-keys check
validates the camelCase serde (createdByCodeoid). Updated the SessionInfo test
fixtures across the crates for the new field. cargo test --workspace green,
fmt clean.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@codecov

codecov Bot commented Jul 13, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 73.09%. Comparing base (0b99c93) to head (8af8a0e).
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #24      +/-   ##
==========================================
+ Coverage   72.98%   73.09%   +0.10%     
==========================================
  Files          31       31              
  Lines        8967     9002      +35     
==========================================
+ Hits         6545     6580      +35     
  Misses       2422     2422              
Flag Coverage Δ
tui 73.09% <100.00%> (+0.10%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
crates/codeoid-protocol/src/session.rs 0.00% <ø> (ø)
crates/codeoid-tui/src/app.rs 57.37% <100.00%> (+0.01%) ⬆️
crates/codeoid-tui/src/state/mod.rs 87.43% <100.00%> (+0.01%) ⬆️
crates/codeoid-tui/src/state/sessions.rs 98.86% <100.00%> (+<0.01%) ⬆️
crates/codeoid-tui/src/ui/approval.rs 100.00% <100.00%> (ø)
crates/codeoid-tui/src/ui/scrollback.rs 84.87% <100.00%> (+0.68%) ⬆️
crates/codeoid-tui/src/ui/worker.rs 64.59% <100.00%> (+0.11%) ⬆️

@saucam saucam merged commit c7ae732 into main Jul 13, 2026
3 of 4 checks passed
This was referenced Jul 12, 2026
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