Skip to content

The Services pane is a card overview with per-service detail views - #232

Merged
czpython merged 1 commit into
mainfrom
worktree-services-list-detail
Aug 10, 2026
Merged

The Services pane is a card overview with per-service detail views#232
czpython merged 1 commit into
mainfrom
worktree-services-list-detail

Conversation

@czpython

Copy link
Copy Markdown
Owner

The Services settings pane now uses a list/detail flow instead of full-width credential forms.

Overview. One compact card per provider: name, one-line description, connection status, and the connected identity (the GitHub App slug). Cards sit in a two-column grid, one column on narrow layouts. The whole card is a button. No credential fields appear on the overview, and the repeated "SERVICE IDENTITY" label is gone.

Detail. Clicking a card swaps in a focused view in the same content pane — no nested modal. It shows a back action, the provider name and status, identity facts in monospace, the connection date, and the provider's actions. Credential fields only render after an explicit choice:

  • GitHub disconnected: Create GitHub App is the primary action; Connect an existing GitHub App is a secondary disclosure that reveals the paste form.
  • GitHub connected: Manage installations and a lower-emphasis Replace connection; the replace form keeps the create-App path.
  • Jira disconnected: a Connect Jira action reveals the Base URL / email / token / webhook secret fields.
  • Jira connected: saved facts plus Replace connection.

Green marks connected status only; disconnected is neutral. The decorative violet top borders are gone. The pane reuses the MCP pane's measure, type scale, and status treatment.

Behavior is unchanged: immediate connection persistence outside the modal's Save, write-only secrets, replacement verification, busy/error states, and the BroadcastChannel refresh after GitHub App creation — the listener moved up to the pane so a callback landing while the overview shows still refreshes. The dead .si-connect-form CSS (its only consumer was the old inline form) is removed, and the test file is renamed ServicesPane.test.tsx to match the component it renders.

The overview shows one compact card per provider — identity, one-line
description, connection status, and the connected slug — in a two-column
grid. Clicking a card opens a focused detail view in the same content
pane with the identity facts, connection date, and the provider's
actions. Credential fields only appear after an explicit choice:
Replace connection, Connect an existing GitHub App, or Connect Jira.
Create GitHub App stays the primary path for a disconnected GitHub.

Connection behavior is unchanged: immediate persistence outside the
modal's Save, write-only secrets, replacement verification, and the
BroadcastChannel refresh after GitHub App creation (now listened for
at the pane so it also lands while the overview is showing).
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