Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
5f4d170
Hide whitespace changes on the Code tab, with a row that shows them
krishhgg Oct 15, 2026
13d231f
Compare a slice's hunks smallest first, and test and document the whi…
krishhgg Oct 15, 2026
6c76e91
Test the end-of-file note on a context line that pairs with nothing, …
krishhgg Oct 15, 2026
c5dd70f
Stop reading hunks once the whitespace steps run out
krishhgg Oct 15, 2026
9362d0e
Merge the fold-all branch at 59ef68f, which brings in master at 47e50cd
krishhgg Oct 17, 2026
f0f020b
Merge the fold-all branch at 6d123c7, which lays out the Code tab aga…
krishhgg Oct 17, 2026
96bf5df
Find the Code tab's file by its own row in the theme test, past the w…
krishhgg Oct 17, 2026
630e0a8
Merge the fold-all branch at 24c7fcc, which maps the stack in the pag…
krishhgg Oct 17, 2026
9f252f2
Allow the theme test more toolbar rows above the Code tab's file
krishhgg Oct 17, 2026
c2cb8d0
Merge the fold-all branch at 4e153e3, which brings in master at f043b…
krishhgg Oct 18, 2026
575b698
Merge the fold-all branch at 2d55f37, which maps Expand all files in …
krishhgg Oct 18, 2026
69d0304
Map the whitespace row in the Code recipe
krishhgg Oct 18, 2026
15bb2da
Merge the fold-all branch at f7866d8, which stops the unchanged-line …
krishhgg Oct 18, 2026
3036809
Merge the fold-all branch at f4d6ccc, which finds the file's header i…
krishhgg Oct 18, 2026
d9fd767
Return from the Timeline before the whitespace steps in the Code recipe
krishhgg Oct 18, 2026
507c71d
Merge the fold-all branch at ed13d8b, which counts each Enter on a ru…
krishhgg Oct 18, 2026
7d8ecf8
Test that no hunk is read once the steps run out
krishhgg Oct 18, 2026
49e292e
Merge the fold-all branch at ce3e374, which lays loaded pages of comm…
krishhgg Oct 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 37 additions & 15 deletions .claude/skills/verify-t3term/features/pull-request-code.md

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,9 +99,9 @@ The TUI follows the desktop app closely, because muscle memory is worth more tha
| Sidebar | ↑/↓ or j/k select (↓ past the last thread scrolls on to the headings under it), Enter open, w, d and e open or close the Working, Done and Settled shelves, [ and ] narrow or widen the sidebar, 0 back to its usual width, q quit |
| Composer | Enter send (queues if the thread is busy), Alt+Enter or Ctrl+J newline, Ctrl+R swap in an unsent message, Esc to transcript |
| Transcript | ↑/↓ scroll, g/G top/bottom, t open or close every row of tool calls, p expand or collapse the first long plan in view, w open or close the worktree setup's details while its card is in view, Enter compose, Esc, ← or h sidebar, showing it if hidden |
| Thread details | → or l the Pull requests tab, ← or h back a step, Esc close the dialog or leave the pane. On the Thread tab ↑/↓ or j/k choose a Lineage row, or scroll when there is none to choose, Enter open the chosen row, PgUp/PgDn page, Home/g top, End/G bottom. On the Pull requests tab the same keys select a link, and Enter shows its details in the list's place, where they scroll and Enter or ← shows the list again. Once the host has answered, → or l shows the details' Timeline, then their Code where the host gives a diff, and ← or h goes back a tab. In the details ↑/↓ also choose a button or group of the Comments section or the Timeline, a commit on the Timeline, or the commit list's row or entries, Expand all files or Collapse all files, a file, a run of unmodified lines, a review thread, a thread's Load more comments, the list of conversations off the diff or Retry on the Code, once it is in view, and Enter does what the chosen one does. r reads the pull request from its host again |
| Thread details | → or l the Pull requests tab, ← or h back a step, Esc close the dialog or leave the pane. On the Thread tab ↑/↓ or j/k choose a Lineage row, or scroll when there is none to choose, Enter open the chosen row, PgUp/PgDn page, Home/g top, End/G bottom. On the Pull requests tab the same keys select a link, and Enter shows its details in the list's place, where they scroll and Enter or ← shows the list again. Once the host has answered, → or l shows the details' Timeline, then their Code where the host gives a diff, and ← or h goes back a tab. In the details ↑/↓ also choose a button or group of the Comments section or the Timeline, a commit on the Timeline, or the commit list's row or entries, Show whitespace changes or Hide whitespace changes, Expand all files or Collapse all files, a file, a run of unmodified lines, a review thread, a thread's Load more comments, the list of conversations off the diff or Retry on the Code, once it is in view, and Enter does what the chosen one does. r reads the pull request from its host again |

The wheel scrolls the transcript and the sidebar. Clicking ◧ at the top left of the conversation hides or shows the sidebar, clicking ◨ at the top right opens or closes the thread's details, and dragging the sidebar's right edge resizes it. Clicking a thread opens it, clicking the Working, Done or Settled heading opens or closes that shelf, clicking a chip under the composer opens its menu, clicking the top row of the tasks drawer opens or closes its list, clicking × on a provider or error banner dismisses it, clicking elsewhere on a long notice or error opens or closes it, and clicking a row of tool calls opens that row. Clicking the top edge of a long plan, or its Expand plan or Collapse plan button, expands or collapses that plan. Clicking a worktree setup card's Details row opens or closes its details. Clicking a tab of the thread's details shows that tab. On the Thread tab, clicking a Lineage row opens that thread, shows more rows or opens or closes Previous agents. On the Pull requests tab, clicking a linked pull request selects it, or shows its details when it is selected already, and clicking `← List` above those details shows the list again. Clicking Summary, Timeline or Code beside it shows that tab, and clicking a commit on the Timeline shows its diff on the Code. On the Code, clicking the row above the files opens or closes the list of commits, clicking a commit or All commits in it shows that diff, clicking Show more lists more commits, clicking Expand all files or Collapse all files unfolds or folds every file, clicking a file unfolds or folds it, clicking a run of unmodified lines shows up to 100 more of them at each end that touches a change, reading the file's text the first time, clicking a review thread's first row or the list of conversations off the diff opens or closes it, clicking a thread's Load more comments reads its next page of comments, and clicking Retry reads the rest of the diff again.
The wheel scrolls the transcript and the sidebar. Clicking ◧ at the top left of the conversation hides or shows the sidebar, clicking ◨ at the top right opens or closes the thread's details, and dragging the sidebar's right edge resizes it. Clicking a thread opens it, clicking the Working, Done or Settled heading opens or closes that shelf, clicking a chip under the composer opens its menu, clicking the top row of the tasks drawer opens or closes its list, clicking × on a provider or error banner dismisses it, clicking elsewhere on a long notice or error opens or closes it, and clicking a row of tool calls opens that row. Clicking the top edge of a long plan, or its Expand plan or Collapse plan button, expands or collapses that plan. Clicking a worktree setup card's Details row opens or closes its details. Clicking a tab of the thread's details shows that tab. On the Thread tab, clicking a Lineage row opens that thread, shows more rows or opens or closes Previous agents. On the Pull requests tab, clicking a linked pull request selects it, or shows its details when it is selected already, and clicking `← List` above those details shows the list again. Clicking Summary, Timeline or Code beside it shows that tab, and clicking a commit on the Timeline shows its diff on the Code. On the Code, clicking the row above the files opens or closes the list of commits, clicking a commit or All commits in it shows that diff, clicking Show more lists more commits, clicking Show whitespace changes or Hide whitespace changes shows or hides the lines changed only in their whitespace, clicking Expand all files or Collapse all files unfolds or folds every file, clicking a file unfolds or folds it, clicking a run of unmodified lines shows up to 100 more of them at each end that touches a change, reading the file's text the first time, clicking a review thread's first row or the list of conversations off the diff opens or closes it, clicking a thread's Load more comments reads its next page of comments, and clicking Retry reads the rest of the diff again.

On macOS the Alt keys need Option to send Meta: "Use Option as Meta key" in Terminal, "Esc+" for the Option key in iTerm2, or `macos-option-as-alt = true` in Ghostty.

Expand Down Expand Up @@ -390,7 +390,7 @@ On an environment whose capabilities have `pullRequests`, opening a link's detai

The status line offers the keys for the tab and for the list or the details. When the whole hint doesn't fit, it shows a shorter one, down to `Esc close` or `Esc leave` alone, so Esc shows at 80 columns beside the sidebar and at 40 columns without it. The keys follow how the same frame draws the details, so when a resize turns a pane into a dialog, the first frame already says Esc closes it. They also follow the links the same frame shows, so when T3 removes the link whose details show, the first frame without them offers the list's keys.

Once T3 has answered with the pull request, a link's details have two tabs, `Summary` and `Timeline`, named on the row above them after `← List`. → or `l` shows the Timeline, ← or `h` goes back to the Summary and then to the list, and a click on a name shows that tab. Each keeps its own scroll. The Timeline is the desktop's Timeline tab: the pull request's opening, its commits, its remarks and its merge or close in one list, newest first. A header counts the comments, the commits and the approvals that still stand, as in `12 comments · 4 commits · 2 approvals`, and `Newest first` at its end switches the order. Each commit shows its headline, the lines it changes, its short id, its first author and when. Where the host gives a diff, Enter or a click on a commit shows its own diff on the Code tab. Where the host or T3 keeps which files you viewed, the Code tab counts them, as in `12 files · 2 / 12 viewed`, and marks each such file `✓ Viewed`, or `Changed since viewed` once someone pushed to it since. t3term can't mark a file yet. Each verdict is a row of its own, such as `✓ octocat approved`, grey with `, before the latest commits` when commits came after it, with its text under it. The other remarks between two such rows fold into one, such as `› 3 comments` with `2 authors · 6h ago` under it, which ↑, ↓ and Enter or a click open. [Linked pull requests](docs/pull-request-panel.md#the-timeline) compares each row with the desktop's.
Once T3 has answered with the pull request, a link's details have two tabs, `Summary` and `Timeline`, named on the row above them after `← List`. → or `l` shows the Timeline, ← or `h` goes back to the Summary and then to the list, and a click on a name shows that tab. Each keeps its own scroll. The Timeline is the desktop's Timeline tab: the pull request's opening, its commits, its remarks and its merge or close in one list, newest first. A header counts the comments, the commits and the approvals that still stand, as in `12 comments · 4 commits · 2 approvals`, and `Newest first` at its end switches the order. Each commit shows its headline, the lines it changes, its short id, its first author and when. Where the host gives a diff, Enter or a click on a commit shows its own diff on the Code tab. Where the host or T3 keeps which files you viewed, the Code tab counts them, as in `12 files · 2 / 12 viewed`, and marks each such file `✓ Viewed`, or `Changed since viewed` once someone pushed to it since. t3term can't mark a file yet. As on the desktop, a line changed only in its whitespace shows unchanged at first, and `¶ Show whitespace changes` above the files shows those changes. Each verdict is a row of its own, such as `✓ octocat approved`, grey with `, before the latest commits` when commits came after it, with its text under it. The other remarks between two such rows fold into one, such as `› 3 comments` with `2 authors · 6h ago` under it, which ↑, ↓ and Enter or a click open. [Linked pull requests](docs/pull-request-panel.md#the-timeline) compares each row with the desktop's.

The links come from the thread T3 already sent: its `pullRequests`, or its one older `linkedPullRequest` when T3 sends no list. An empty list means every link was removed. Listing them asks T3 for nothing, and only opening a link's details reads its pull request. t3term runs no `gh`, reads no token, changes no link and starts or stops no watch. It hides the links the desktop hides, the `stack-dismissed` ones a reader unlinked from a stack, and shows each pull request once, by its host, repository and number. `Loading…` stands in while the thread is on its way and `Unavailable` once it won't come. An environment whose capabilities lack `threadPullRequests` reads `Linked pull requests unavailable`, as the desktop's panel does, and a thread with no links reads `No linked pull requests`.

Expand Down
Loading
Loading