Skip to content

Open conversation details using their observed row name - #1174

Merged
trissim merged 1 commit into
mainfrom
fix/session-details-observed-target
Oct 23, 2026
Merged

trissim merged 1 commit into
mainfrom
fix/session-details-observed-target

Conversation

@trissim

@trissim trissim commented Oct 23, 2026

Copy link
Copy Markdown

Clicking a conversation details title read a fresh global registry snapshot to resolve the name of the peer already shown by the row. If that incarnation had just disappeared, the second lookup raised KeyError.

The title handler now opens target=self.label (src/toad/widgets/session_details.py:175). label already reads self.row.name at :167. The global references read is deleted.

Keep peer and its constructor parameter: ChannelActivity.rows keys retained widgets by row.peer at src/toad/widgets/channel_activity.py:36, and changed_keys reads row.peer at :74. Both constructor sites remain valid: src/toad/conversation_kind.py:290 and src/toad/widgets/channel_activity.py:61. A grep across src and tests finds those two calls and the declaration.

Evidence only, no navigation edits: ThreadNavigator.open reads comms.registry.snapshot().require(target) at src/toad/thread_navigation.py:68-71. RegistryNames.require canonicalizes the name, indexes threads, and converts the missing key into UnregisteredThreadError("Thread {canonical!r} is not registered.") at agent-comms src/agent_comms/registry_provenance.py:155-160. The preparation worker returns task.result() at toad src/toad/work_preparation.py:293, so it propagates the exception. open's only catch is the earlier source-origin RelationViolationError at thread_navigation.py:56-59; the missing-name lookup is outside it and escapes to the caller. No catch added.

Validation at 921b1ce: the changed file parses; git diff --check is clean; pushed head equals ls-remote. No tests run. SessionNavigation and WorkspaceSessions are untouched.

Assumed: ChannelActivity still needs peer as its stable row key; missing-name navigation behavior is intentionally unchanged pending the next order.

@trissim
trissim marked this pull request as ready for review October 23, 2026 22:09
Copilot AI balanced review requested due to automatic review settings October 23, 2026 22:09

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

@trissim
trissim merged commit 72a9f39 into main Oct 23, 2026
3 checks passed
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.

2 participants