Skip to content

fix(hub): resume confirmed actions after GitHub verification - #84

Merged
nshki merged 4 commits into
mainfrom
copilot/resume-verified-actions
Oct 22, 2026
Merged

nshki merged 4 commits into
mainfrom
copilot/resume-verified-actions

Conversation

Copilot AI commented Oct 22, 2026

Copy link
Copy Markdown
Contributor

Why

GitHub verification currently succeeds without completing the action that prompted it. People adding an administrator must select the accounts and confirm again, and other sensitive settings have the same confusing interruption. Closes #79.

What changes

Hub remembers the confirmed action for every currently supported browser verification flow: administrator roles, analytics destinations, public sharing settings, ending all sessions, GitHub App reset and credentials, webhook rotation, and Copilot connection changes. After verification, it automatically submits a one-use reference to the original route and shows the actual result. A Continue button is available if automatic submission does not run.

Saved fields, including credentials and uploaded keys, are encrypted and bound to the original browser, account, route and operation. The original permission, confirmation, version and freshness checks still apply. Hub removes saved fields before one execution attempt; cancellation or failed verification discards them, and expired challenges are cleaned up. An interrupted attempt is not automatically retried.

The guides and confirmation copy describe the new flow. Obsolete submit-again stories and a duplicate viewport story are removed, and a test fixture is excluded from the story catalogue. Live GitHub verification against a deployed Hub has not been exercised.

Storybook screenshots

These are synthetic local Storybook states. The narrow continuation capture uses the existing collapsed sidebar.

Fresh authorization

Hub/Pages/Security/Fresh authorization / Required - light, 1280x900

Hub/Pages/Security/Fresh authorization / Hub Administrator Change - light, 1280x900

Hub/Pages/Security/Fresh authorization / Continuing - light, 1280x900

Hub/Pages/Security/Fresh authorization / Continuing - light, 390x844

Hub administrator confirmation

Hub/Pages/Security/Hub administrator confirmation / Designate - light, 1280x900

Hub/Pages/Security/Hub administrator confirmation / Remove - light, 1280x900

Hub/Pages/Security/Hub administrator confirmation / Final Administrator - light, 1280x900

End all sessions

Hub/Pages/Security/End all sessions / Confirmation - light, 1280x900

Hub/Pages/Security/End all sessions / Only Your Session - light, 1280x900

Public sharing

Hub/Pages/Security/Public sharing / Disabled - light, 1280x900

Hub/Pages/Security/Public sharing / Disable Confirmation - light, 1280x900

Hub/Pages/Security/Public sharing / Fresh Challenge - light, 1280x900

GitHub App

Hub/Pages/Security/GitHub App / Credentials - light, 1280x900

Hub/Pages/Security/GitHub App / Invalid Credentials - light, 1280x900

Hub/Pages/Security/GitHub App / Webhook Start - light, 1280x900

Hub/Pages/Security/GitHub App / Pending Webhook - light, 1280x900

Hub/Pages/Security/GitHub App / Confirmed Webhook - light, 1280x900

Hub/Pages/Security/GitHub App / Reset - light, 1280x900

Hub/Pages/Security/GitHub App / Reset Without Bootstrap - light, 1280x900

Hub/Pages/Security/GitHub App / Busy - light, 1280x900

Copilot

Hub/Pages/Security/Copilot / Not Connected - light, 1280x900

Hub/Pages/Security/Copilot / Connected - light, 1280x900

Hub/Pages/Security/Copilot / Refused - light, 1280x900

Retain allowlisted actions in encrypted, browser-bound challenges and continue them once through the original routes after verification. Preserve permission checks, expiry, cancellation, and explicit failure handling across all supported gated browser actions.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI max review requested due to automatic review settings October 22, 2026 16:45
Copilot AI requested review from a team and nshki as code owners October 22, 2026 16:45

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 there is no eligible user to bill.

An enterprise owner can allow the organization to be billed for reviews like this by enabling Copilot code review for users without a license.

Copilot AI added 3 commits October 22, 2026 17:03
Keep happy paths and critical continuation failures, reuse existing integration cases, and remove exhaustive boundary and duplicate coverage without changing production behavior.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Pass server-claimed key bytes directly to credential validation while keeping ordinary requests upload-only. Remove upload reconstruction and cleanup from the shared continuation concern and strengthen the existing credential tests.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep the existing credential continuation happy-path coverage without the added Tempfile guard.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

@nshki nshki 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.

@alliscode and I gave this a look over separately and discussed. Approving.

@nshki
nshki merged commit b83e47b into main Oct 22, 2026
39 checks passed
@nshki
nshki deleted the copilot/resume-verified-actions branch October 22, 2026 22:26
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.

feat(hub): continue confirmed actions after GitHub verification

4 participants