Skip to content

PR 4/7: Surface Copilot + Gemini in the settings/provider UI - #6

Merged
jmclaren7 merged 1 commit into
pr/03-providers-copilot-geminifrom
pr/04-surface-copilot-gemini-ui
Jul 23, 2026
Merged

PR 4/7: Surface Copilot + Gemini in the settings/provider UI#6
jmclaren7 merged 1 commit into
pr/03-providers-copilot-geminifrom
pr/04-surface-copilot-gemini-ui

Conversation

@jmclaren7

Copy link
Copy Markdown
Member

Part of the 2026-07-23 reset. Stacked on PR #5 (base = pr/03-providers-copilot-gemini); GitHub will retarget it to main once PR 3 merges.

What this PR does

PR 3 registers the two drivers server-side (disabled by default). This wires them into upstream's existing, registry-driven settings/provider UI so users can see, add, and enable them:

  • session-logic.ts — add copilot + geminiCli to PROVIDER_OPTIONS (available, "new" badge) → they appear in the add-provider wizard and pickers.
  • providerIconUtils.ts — map copilot → GithubCopilotIcon, geminiCli → Gemini (both icons already ship in Icons.tsx).
  • contracts/model.tsPROVIDER_DISPLAY_NAMES entries so they render as "GitHub Copilot" / "Gemini CLI" instead of raw kinds.

Scope note (aadit section C is superseded)

The user asked to bring aadit's "Settings & appearance UI." Upstream has since built an equivalent-or-better system — useTheme (light/dark/system), ProviderAccentColorPicker, the AddProviderInstanceDialog wizard, ProviderModelsSection, etc. So none of aadit's section C is ported; this PR is only the residual work to surface the two new providers in upstream's UI.

Verification (node 24 + pnpm 11, local)

  • typecheck: contracts ✅, web ✅.
  • Tests: session-logic + settings/wizard/provider-card = 71 passed.
  • vp fmt + vp lint clean.

Merge order

PR 4 of 7. Merge after PR 3.

🤖 Generated with Claude Code

PR 3 registers the Copilot and Gemini CLI drivers server-side (disabled by
default). This wires them into upstream's existing, registry-driven settings
and provider UI so users can actually see, add, and enable them:

- session-logic.ts: add copilot + geminiCli to PROVIDER_OPTIONS (available,
  "new" badge) so they appear in the add-provider wizard and pickers.
- providerIconUtils.ts: map copilot -> GithubCopilotIcon, geminiCli -> Gemini
  (both icons already ship in Icons.tsx).
- contracts/model.ts: PROVIDER_DISPLAY_NAMES entries ("GitHub Copilot",
  "Gemini CLI") so they render with proper names instead of raw kinds.

Note: aadit's "Settings & appearance UI" (fork section C — theme, accent
colors, custom models, connection settings) is NOT ported: upstream has since
built an equivalent-or-better system (useTheme light/dark/system,
ProviderAccentColorPicker, AddProviderInstanceDialog wizard, ProviderModels
section). This PR is only the residual work to surface the two new providers
in it.

Verification (node 24 + pnpm 11): contracts + web typecheck clean; session-logic
+ settings/wizard tests pass (71 tests); fmt + lint clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011AKPoXHMgPRGfXik2GDzBp
@jmclaren7
jmclaren7 merged commit 6c31a19 into pr/03-providers-copilot-gemini Jul 23, 2026
jmclaren7 added a commit that referenced this pull request Jul 23, 2026
…le new-thread button (#9)

#6 (completed dot until read): track threadLastCompletionAcknowledgedAtById in
persisted UI state, mirroring threadLastVisitedAtById (seeded from it for legacy
blobs, reset alongside it on mark-unread). The sidebar's green "completed" dot
now reads this acknowledgement timestamp (falling back to last-visited) via
hasUnseenCompletion, and ChatView acknowledges on visit. Behavior matches today
(acknowledged is set on visit); the field is the seam for a future "only mark
read after N seconds visible" refinement without also delaying the read tag.

#9 (always-visible new-thread button): drop the hover/focus opacity gating on the
sidebar project-header new-thread button so it's always discoverable.

Tests: markThreadCompletionAcknowledged (set + monotonic guard), mark-unread
resets acknowledgement, hasUnseenCompletion prefers acknowledgement over visit;
hydrate/persist fixtures updated. Web typecheck + 92 web-logic tests pass.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011AKPoXHMgPRGfXik2GDzBp
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