Skip to content

feat(web): tidy the GitHub card and uninstall organization Apps - #3538

Merged
zfy0701 merged 3 commits into
mainfrom
feat/github-card-tidy
Nov 1, 2026
Merged

zfy0701 merged 3 commits into
mainfrom
feat/github-card-tidy

Conversation

@zfy0701

@zfy0701 zfy0701 commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

Follows #3535.

Problem

The GitHub card from #3535 was busier than the GitLab and Gitea cards beside it:

  • two Syncs that each covered a different App: the card's re-pulled only the built-in App, and an organization App's menu re-pulled only that App;
  • installation counts and a column header the rows don't need;
  • text buttons where the other cards use icons;
  • a menu that held a single Delete.

It also couldn't uninstall an organization App from an account, which the built-in App's rows can.

Change

  • One Sync. The card's Sync re-pulls the built-in App's installations and each organization App's. A failing App doesn't stop the rest; its error shows on the card.
  • Icon row actions, as on the GitLab and Gitea cards.
    • Every App row has an install icon.
    • A free organization App has a trash icon in place of its menu, with the same confirmation.
    • Every installation row has an uninstall icon for owners.
  • Organization App uninstall. An organization App's installation rows get the uninstall icon and the confirmation the built-in App already uses (UninstallGithubInstallationModal now takes just an id and account). The uninstall route already signs with the App an installation belongs to; a unit test now pins that.
  • Agent identity. An organization App in use leads with its agent's avatar and names the agent in a chip, both linking to the agent. The card reads agents from console data, as the GitLab card does, instead of taking a name callback.
  • Removed: the column header, the installation counts, and their strings.

Verification

  • pnpm typecheck for web and control-plane; eslint and prettier on the changed files; i18n:check.
  • GithubCard.test.tsx: one Sync re-pulls the built-in App and every organization App, and reports a failure without stopping the rest.
  • GithubOrgApps.test.tsx:
    • the agent's avatar and chip link to the agent;
    • icon actions;
    • deleting a free App;
    • an owner uninstalling an organization App from one account;
    • no actions for a viewer.
  • github.test.ts: uninstalling an organization App's installation signs with that App's JWT, and the built-in App's with its own.
  • Related suites pass: 10 files, 44 tests in web, plus the uninstall unit tests.
  • Previewed against a stub control plane: the built-in App and an organization App expanded with their uninstall icons, a free App with its trash icon, and the agent's avatar leading its App.

🤖 Generated with Claude Code

zfy0701 and others added 3 commits November 1, 2026 14:49
The card's Sync now re-pulls the built-in App's installations and each
organization App's, reporting a failure without stopping the rest, so an
organization App's menu keeps only Delete and appears on a free App alone.
Every App row gets the same Install on GitHub button, and the column header
and installation counts are gone.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Row actions on the GitHub card are icons, as on the GitLab and Gitea cards:
install, uninstall, and a trash button that deletes a free organization App
in place of its menu. An organization App in use leads with its agent's
avatar and names the agent in a chip, both linking to the agent; the card
reads agents from console data like the GitLab card instead of taking a
name callback.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
An owner can uninstall an organization App's installation from its row on
the GitHub card, through the same confirmation as the built-in App's. The
uninstall route already signs with the App an installation belongs to; a
unit test now pins that.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@zfy0701
zfy0701 enabled auto-merge (squash) November 1, 2026 07:05

@agentconnect-md-test agentconnect-md-test Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Reviewed revision 6a9540da44172fc82c6177c8323505554a417e98. No blocking regressions found in the consolidated Sync, agent links, icon actions, or organization App uninstall flow. The uninstall action retains owner-only authorization and selects the installation’s App credentials.

Validation was source review, including the changed tests. Local test execution was blocked by dependency setup (the install was terminated with SIGKILL); the i18n check also could not run because a dependency was missing.

sent by review-bot (Codex · gpt-6-astra) · open in session

@zfy0701
zfy0701 merged commit d3baaa5 into main Nov 1, 2026
15 checks passed
@zfy0701
zfy0701 deleted the feat/github-card-tidy branch November 1, 2026 07:13
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