Skip to content

fix(web): show live names in thread-read activity - #13140

Merged
juliusmarminge merged 2 commits into
pingdotgg:mainfrom
Bil0000:show-live-thread-names
Oct 7, 2026
Merged

juliusmarminge merged 2 commits into
pingdotgg:mainfrom
Bil0000:show-live-thread-names

Conversation

@Bil0000

@Bil0000 Bil0000 commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

What Changed

“Read a T3 thread” activity now names the thread it read, on one line: Read thread “Review auth flow”, in the tool’s tense (Reading / Read / Failed to read). On finished rows the title links to that thread; clicking anywhere else on the row still expands the tool call. The title comes from client shell state, so a rename shows up without a DB join. If the thread is unknown, archived or deleted, the row keeps the generic “Read a T3 thread” label and no link.

Why

The tool label alone does not identify the target thread.

UI Changes

Finished row. The title links to the thread; an unknown thread keeps the generic label:

Finished rows: Read thread “Review auth flow” with the title linked, and a failed read of an unknown thread with the generic label

After renaming the target thread, the same row shows the new name:

After rename: Read thread “Harden session refresh”

While the call runs, the live row reads in the present tense:

In progress: Reading thread “Harden session refresh”

Scope and approval

This is a small, focused display fix for an existing thread-read activity. The generic label does not identify the thread that was read. It uses the thread ID already present in the tool input and the existing thread route. The change stays in the web timeline and its tests. Web and desktop share this timeline. Mobile rendering is outside this web-only change. The single-line layout preserves the rewrite by Julius.

Verification

All 237 focused MessagesTimeline component and logic tests pass under Node 24.13.1. The new regression failed before the fix, then passed after it. Web typecheck, scoped lint, format, and diff checks passed. In the isolated real app, a test tool row opened its target, expanded when clicked outside the title, and picked up a rename through the normal app command. Archiving and deleting the target removed the title link; unarchiving restored it. Test projection data was used for the tool row. All current CI checks passed, and CodeRabbit and Macroscope approved this head.

Before, on current main:

Generic thread-read label before this PR

After, with the renamed title and expanded details:

Thread-read title after rename with row details expanded

The 36-second recording shows the title opening the target, the rest of the row expanding, and a rename updating that same row. Playback is sped up to remove tool wait time.

pr13140-interaction.mp4

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included screenshots for UI changes
  • I included a video for animation/interaction changes

Model: GPT-6 Codex (native Codex harness). Single-line redesign by Claude Opus 5.5 (Claude Code). Review fixes and verification: GPT-6.1-Sol (Codex harness).

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Sep 22, 2026
macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Sep 22, 2026
@macroscopeapp

macroscopeapp Bot commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at ebf999f

Macroscope's review found this PR approvable — This is a small, self-contained web timeline fix that derives live thread names from existing client state and adds a settled-row link while preserving generic fallbacks. Its runtime impact is limited to presentation and navigation for thread-read activity, with focused helper tests and no schema, deployment, or sensitive-area changes.

You can add or adjust custom eligibility rules. Learn more.

@juliusmarminge
juliusmarminge force-pushed the t3code/codex-turn-mapping branch from a419382 to f2bdd9f Compare September 23, 2026 00:50
@Bil0000
Bil0000 force-pushed the show-live-thread-names branch from 1fcdb1c to d9b7330 Compare September 23, 2026 02:45
@macroscopeapp
macroscopeapp Bot dismissed their stale review September 23, 2026 04:09

Dismissing prior approval to re-evaluate 2332b93

@juliusmarminge
juliusmarminge force-pushed the t3code/codex-turn-mapping branch from 060756d to d6dcd10 Compare September 23, 2026 04:10
macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Sep 23, 2026
@Bil0000
Bil0000 force-pushed the show-live-thread-names branch from 2332b93 to 235ede3 Compare September 23, 2026 04:14
@juliusmarminge
juliusmarminge force-pushed the t3code/codex-turn-mapping branch 2 times, most recently from d2675dc to 9cbaf77 Compare September 23, 2026 07:35
@Bil0000
Bil0000 force-pushed the show-live-thread-names branch from 235ede3 to 48b64e2 Compare September 23, 2026 10:17
@macroscopeapp
macroscopeapp Bot dismissed their stale review September 23, 2026 10:18

Dismissing prior approval to re-evaluate 48b64e2

macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Sep 23, 2026
@juliusmarminge
juliusmarminge force-pushed the t3code/codex-turn-mapping branch 2 times, most recently from 6ca6a24 to 3e4ca4c Compare September 23, 2026 23:24
@Bil0000
Bil0000 force-pushed the show-live-thread-names branch from 48b64e2 to 6bdfff1 Compare September 24, 2026 01:37
@juliusmarminge
juliusmarminge force-pushed the t3code/codex-turn-mapping branch from 1bd44f2 to 3b9c885 Compare September 24, 2026 04:06
@macroscopeapp

This comment has been minimized.

@macroscopeapp
macroscopeapp Bot dismissed their stale review September 24, 2026 07:46

Dismissing prior approval to re-evaluate b15da98

@macroscopeapp

This comment has been minimized.

1 similar comment
@macroscopeapp

This comment has been minimized.

macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Sep 24, 2026
@juliusmarminge
juliusmarminge force-pushed the t3code/codex-turn-mapping branch 2 times, most recently from 6448cfe to 1563a64 Compare September 24, 2026 23:21
@Bil0000
Bil0000 force-pushed the show-live-thread-names branch from b15da98 to 51614af Compare September 25, 2026 00:45
@juliusmarminge
juliusmarminge force-pushed the t3code/codex-turn-mapping branch from fe4f6ad to 87c67bd Compare September 25, 2026 05:55

Copy link
Copy Markdown
Member

Note

This comment is posted by Julius' dot

The supplied screenshots show the renamed labels, but not the title-link and row-expansion interaction. Could you add a short recording showing the target opening, the rest of the row expanding, and a rename reaching the same row, plus a before screenshot? This would complete the UI verification evidence while preserving Julius' inline-label rewrite.

@juliusmarminge
juliusmarminge deleted the branch pingdotgg:main October 2, 2026 19:23
@juliusmarminge juliusmarminge added the triage:keep-open Keeps this PR open despite not necessarily passing the contribution guide fully label Oct 2, 2026
@juliusmarminge juliusmarminge reopened this Oct 2, 2026
@juliusmarminge
juliusmarminge changed the base branch from t3code/codex-turn-mapping to main October 2, 2026 20:40
@macroscopeapp
macroscopeapp Bot dismissed their stale review October 2, 2026 20:41

Dismissing prior approval to re-evaluate 58d86fe

@macroscopeapp

macroscopeapp Bot commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor

Macroscope has since reviewed this pull request. An earlier review was skipped by a cost limit; a review has now completed, so that notice no longer applies.

@juliusmarminge
juliusmarminge force-pushed the show-live-thread-names branch from 58d86fe to 098baaf Compare October 2, 2026 20:58
@coderabbitai

coderabbitai Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Path: .coderabbit.config.ts
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 11f8bd85-2e11-40e7-a79e-e162b74d1cbd
📥 Commits

Reviewing files that changed from the base of the PR and between 0678e4e and ebf999f.

📒 Files selected for processing (3)
  • apps/web/src/components/chat/MessagesTimeline.logic.test.ts
  • apps/web/src/components/chat/MessagesTimeline.logic.ts
  • apps/web/src/components/chat/MessagesTimeline.tsx

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 7 remain after this review.


📝 Walkthrough

Walkthrough

The message timeline now identifies thread-read work entries, resolves eligible thread titles, and displays them in live and settled rows. Live titles are plain text. Settled titles link to the thread.

Changes

Thread-read presentation

Layer / File(s) Summary
Resolve thread-read targets and labels
apps/web/src/components/chat/MessagesTimeline.logic.ts, apps/web/src/components/chat/MessagesTimeline.logic.test.ts
Helpers extract and normalize thread IDs, eligible shell titles, and thread-read label prefixes. Tests cover target validation, title eligibility, and lifecycle labels.
Display thread titles in live rows
apps/web/src/components/chat/MessagesTimeline.tsx
Live work rows display eligible thread titles as plain text. Other work labels retain their existing rendering.
Link thread titles in settled rows
apps/web/src/components/chat/MessagesTimeline.tsx
Settled work rows include eligible thread titles in labels and accessible text. Thread titles link to the thread route.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~15 minutes

Change: Feature

Suggested reviewers: juliusmarminge

Merge Risk: ⚪ Minimal · up to ebf99

Eligible thread names appear in activity labels, and settled titles link to their threads. No actionable merge risk is established.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description explains the problem, change, UI behavior, and verification. It does not include the required Scope and approval section, and it does not provide the requested recording and before scr… Add a Scope and approval section with the linked issue or explicit maintainer approval, or explain why this focused fix qualifies for an exemption. Add a before screenshot and a short recording that demonstrates opening the target thread, e…
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: showing live thread names in thread-read activity.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Approvability ✅ Passed PASS. The pull request changes only three existing apps/web timeline component and test files. It adds thread-read title resolution, labels, and an internal link for an existing activity row. The di…
Full details: Description check

Explanation

The description explains the problem, change, UI behavior, and verification. It does not include the required Scope and approval section, and it does not provide the requested recording and before screenshot for the link, expansion, and rename interactions.

Resolution

Add a Scope and approval section with the linked issue or explicit maintainer approval, or explain why this focused fix qualifies for an exemption. Add a before screenshot and a short recording that demonstrates opening the target thread, expanding the row outside the title, and seeing a rename update the same row.

  • Fix all pre-merge checks with AI
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

Comment thread apps/web/src/components/chat/MessagesTimeline.tsx
Bil0000 and others added 2 commits October 7, 2026 22:45
Replay the contribution onto current main and resolve integration changes.

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: PR Batch Tester <agent@local.test>
@Bil0000
Bil0000 force-pushed the show-live-thread-names branch from 098baaf to ebf999f Compare October 7, 2026 19:50
@github-actions github-actions Bot added size:L 100-499 changed lines (additions + deletions). and removed size:M 30-99 changed lines (additions + deletions). labels Oct 7, 2026
@juliusmarminge
juliusmarminge merged commit a9fb6a8 into pingdotgg:main Oct 7, 2026
30 checks passed
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Oct 8, 2026
## What's Changed
* feat(models): add Claude Haiku 5.5 and retire Sonnet 5 and Opus 5 to legacy by @juliusmarminge in pingdotgg/t3code#16903
* fix(web): iPhone Duo folds animate, center on the hinge, and keep the phone's orientation by @gabrielelpidio in pingdotgg/t3code#16885
* fix(server): Claude 5-series models always run 1M context by @juliusmarminge in pingdotgg/t3code#16908
* fix(desktop): setup prompts name a t3 that runs on desktop installs by @juliusmarminge in pingdotgg/t3code#16676
* feat(desktop): install the t3 command from Settings by @juliusmarminge in pingdotgg/t3code#16683
* fix(web): show live names in thread-read activity by @Bil0000 in pingdotgg/t3code#13140
* feat(mobile): adopt v5 navigation and native iPad columns by @juliusmarminge in pingdotgg/t3code#16733
* fix(mobile): Android composer picker scrolls past the first four rows by @shivamhwp in pingdotgg/t3code#15856
* fix(desktop): sign-in and captchas work again in desktop browser tabs by @juliusmarminge in pingdotgg/t3code#16939
* fix(server): missing project folders no longer log favicon warnings by @yordis in pingdotgg/t3code#16757
* fix(server): unload Codex threads left idle on the shared app-server by @RhysSullivan in pingdotgg/t3code#16917
* fix(web): fast typing no longer scrambles text when type-to-focus kicks in by @otavio in pingdotgg/t3code#14595
* fix(web): simplify workspace card rows by @Bil0000 in pingdotgg/t3code#16823
* fix(web): Copy MCP URL shows up for environments reached over plain http by @SunkenInTime in pingdotgg/t3code#16909
* fix(web): C#, Java, PHP and 11 other languages get file icons by @juliusmarminge in pingdotgg/t3code#16974
* feat(clients): live row shows the agent's latest thought by @t3dotgg in pingdotgg/t3code#16284
* feat(web): block-level Markdown in the rich text composer by @chrisdeeming in pingdotgg/t3code#14677
* fix(web): center project monograms in settled rows by @Aforno in pingdotgg/t3code#16841
* fix(web): cancelling a new citation no longer leaves a stray space by @Aforno in pingdotgg/t3code#16828
* fix(settings): provider updates show live progress instead of a bare spinner by @shivamhwp in pingdotgg/t3code#16958
* feat(web): find in diffs with Cmd+F by @juliusmarminge in pingdotgg/t3code#14623
* refactor(server): GitHub services are named for the API they call, not gh by @juliusmarminge in pingdotgg/t3code#16967
* refactor(server): GitHub GraphQL batches use variables and share one pager by @juliusmarminge in pingdotgg/t3code#16960
* refactor(server): GitHub source control reads GitHubApi directly by @juliusmarminge in pingdotgg/t3code#16982
* refactor(server): GitHub rate limits read the response headers by @juliusmarminge in pingdotgg/t3code#16986

## New Contributors
* @RhysSullivan made their first contribution in pingdotgg/t3code#16917
* @Aforno made their first contribution in pingdotgg/t3code#16841

**Full Changelog**: pingdotgg/t3code@v0.0.46-nightly.20261007.2787...v0.0.46-nightly.20261008.2801

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.46-nightly.20261008.2801
github-actions Bot added a commit to davidvanderklay/t3code-flake that referenced this pull request Oct 8, 2026
## What's Changed
* feat(models): add Claude Haiku 5.5 and retire Sonnet 5 and Opus 5 to legacy by @juliusmarminge in pingdotgg/t3code#16903
* fix(web): iPhone Duo folds animate, center on the hinge, and keep the phone's orientation by @gabrielelpidio in pingdotgg/t3code#16885
* fix(server): Claude 5-series models always run 1M context by @juliusmarminge in pingdotgg/t3code#16908
* fix(desktop): setup prompts name a t3 that runs on desktop installs by @juliusmarminge in pingdotgg/t3code#16676
* feat(desktop): install the t3 command from Settings by @juliusmarminge in pingdotgg/t3code#16683
* fix(web): show live names in thread-read activity by @Bil0000 in pingdotgg/t3code#13140
* feat(mobile): adopt v5 navigation and native iPad columns by @juliusmarminge in pingdotgg/t3code#16733
* fix(mobile): Android composer picker scrolls past the first four rows by @shivamhwp in pingdotgg/t3code#15856
* fix(desktop): sign-in and captchas work again in desktop browser tabs by @juliusmarminge in pingdotgg/t3code#16939
* fix(server): missing project folders no longer log favicon warnings by @yordis in pingdotgg/t3code#16757
* fix(server): unload Codex threads left idle on the shared app-server by @RhysSullivan in pingdotgg/t3code#16917
* fix(web): fast typing no longer scrambles text when type-to-focus kicks in by @otavio in pingdotgg/t3code#14595
* fix(web): simplify workspace card rows by @Bil0000 in pingdotgg/t3code#16823
* fix(web): Copy MCP URL shows up for environments reached over plain http by @SunkenInTime in pingdotgg/t3code#16909
* fix(web): C#, Java, PHP and 11 other languages get file icons by @juliusmarminge in pingdotgg/t3code#16974
* feat(clients): live row shows the agent's latest thought by @t3dotgg in pingdotgg/t3code#16284
* feat(web): block-level Markdown in the rich text composer by @chrisdeeming in pingdotgg/t3code#14677
* fix(web): center project monograms in settled rows by @Aforno in pingdotgg/t3code#16841
* fix(web): cancelling a new citation no longer leaves a stray space by @Aforno in pingdotgg/t3code#16828
* fix(settings): provider updates show live progress instead of a bare spinner by @shivamhwp in pingdotgg/t3code#16958
* feat(web): find in diffs with Cmd+F by @juliusmarminge in pingdotgg/t3code#14623
* refactor(server): GitHub services are named for the API they call, not gh by @juliusmarminge in pingdotgg/t3code#16967
* refactor(server): GitHub GraphQL batches use variables and share one pager by @juliusmarminge in pingdotgg/t3code#16960
* refactor(server): GitHub source control reads GitHubApi directly by @juliusmarminge in pingdotgg/t3code#16982
* refactor(server): GitHub rate limits read the response headers by @juliusmarminge in pingdotgg/t3code#16986

## New Contributors
* @RhysSullivan made their first contribution in pingdotgg/t3code#16917
* @Aforno made their first contribution in pingdotgg/t3code#16841

**Full Changelog**: pingdotgg/t3code@v0.0.46-nightly.20261007.2787...v0.0.46-nightly.20261008.2801

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.46-nightly.20261008.2801
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L 100-499 changed lines (additions + deletions). triage:keep-open Keeps this PR open despite not necessarily passing the contribution guide fully vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants