Skip to content

fix(chat): move routing details into response popovers#107

Merged
tcballard merged 1 commit into
codex/restart-gateway-after-app-replacementfrom
codex/chat-responsive-layout
Jul 20, 2026
Merged

fix(chat): move routing details into response popovers#107
tcballard merged 1 commit into
codex/restart-gateway-after-app-replacementfrom
codex/chat-responsive-layout

Conversation

@tcballard

@tcballard tcballard commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Summary

Implements WF-ROADMAP-0015 desktop v0.1.0 chat routing presentation.

Adds:

  • a thread-first chat layout with no persistent right-hand routing column;
  • a compact route receipt and info control on each completed response;
  • hover, click, keyboard, and VoiceOver access to existing routing details.

Scope

Included

  • Remove the chat toolbar routing-inspector toggle and permanent inspector column.
  • Present prompt, provider, mode, explanation, score, and signals in a native response popover.
  • Keep the conversation and composer stable while the window is resized.

Excluded

  • Routing, provider, credential, or gateway behavior changes.
  • Routing-popover persistence across launches.
  • Menu-bar popover or Settings changes.

Product / Architecture Decisions

  • Routing metadata belongs to the response that produced it, not a window-level column.
  • An info.circle replaces the verbose Routing details label.
  • Hover is an accelerator, not the only interaction: click, keyboard activation, help text, and an accessibility label remain available.
  • RoutingOutputsPanel remains the single detailed-routing renderer and is hosted in a bounded native popover.

User-Facing Contract

CLI

No CLI changes.

Human Output

The chat window keeps the thread primary at every supported width. Each routed response shows its route receipt and an information icon that opens full routing details.

JSON Output

No JSON changes.

Exit Codes

No exit-code changes.

Verification

Ran

env CLANG_MODULE_CACHE_PATH=/private/tmp/wayfinder-responsive-module-cache SWIFTPM_MODULECACHE_OVERRIDE=/private/tmp/wayfinder-responsive-module-cache WAYFINDER_DISABLE_SWIFTPM_SANDBOX=1 swift test --disable-sandbox --scratch-path /private/tmp/wayfinder-responsive-build --package-path macos/WayfinderMac

git diff --check

env CODESIGN_IDENTITY="Developer ID Application: Thomas Ballard (R8HXTBY3NM)" WAYFINDER_DESKTOP_BUILD_NUMBER=1 DIST_DIR=/private/tmp/wayfinder-routing-popover-signed CLANG_MODULE_CACHE_PATH=/private/tmp/wayfinder-responsive-release-cache SWIFTPM_MODULECACHE_OVERRIDE=/private/tmp/wayfinder-responsive-release-cache WAYFINDER_DISABLE_SWIFTPM_SANDBOX=1 macos/WayfinderMac/script/build_release_bundle.sh

Covered

  • All 171 Swift tests passed with zero failures.
  • The signed arm64 bundle passed nested-signature and extracted-ZIP validation.
  • A real apple-local response rendered the compact Local route receipt and information control without a right-hand column.
  • The installed window retained the full thread and composer at its 900-point minimum width.

Review Path

  1. WayfinderChatWindow.swift for removal of window-level inspector state and controls.
  2. ChatTurnHistoryRow.swift for the response-level info affordance and popover.
  3. ChatConversationView.swift for the simplified interaction contract.
  4. ChatWorkspaceChrome.swift and ChatStateTests.swift for deleted three-column assumptions.

Notes For Reviewer

This PR is intentionally stacked on PR #106 so the installed acceptance build includes its gateway-replacement fix. After #106 merges, retarget or rebase this branch onto main; its functional diff is one chat presentation commit.

@tcballard
tcballard marked this pull request as ready for review July 20, 2026 16:43
@tcballard
tcballard merged commit 58639fd into codex/restart-gateway-after-app-replacement Jul 20, 2026
9 checks passed
@tcballard
tcballard deleted the codex/chat-responsive-layout branch July 20, 2026 16:43
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