Skip to content

Google waiting page: spinner and current step - #89

Merged
jerryfane merged 1 commit into
mainfrom
page-loading
Oct 21, 2026
Merged

jerryfane merged 1 commit into
mainfrom
page-loading

Conversation

@jerryfane

Copy link
Copy Markdown
Contributor

Requested by the owner (2026-10-21, phobos-dev session): while a Google Drive connection runs, the page only said Connecting to Google. This page refreshes…, so it was hard to tell whether it was loading or stuck.

  • A CSS spinner in the message while the page refreshes (no script; the page CSP allows inline styles only). One turn per second, so the 2 s meta refresh lands on the same angle and it does not jump; 2 s per turn with prefers-reduced-motion.
  • A three-step list (Sign in to Google → Set up Drive and Sheets → Done) with the current step marked, and a message per phase: starting, signing_in, setting_up_project ("can take a few minutes; keep this page open").
  • No behaviour change: same phases, same refresh, same forms.

Checked: go test ./... passes; the real template rendered for both steps and screenshotted at 390 px (spinner animation computed as spin 1s).

While a Google connection runs, the page only said 'Connecting to Google'
and refreshed every 2 seconds, so people could not tell loading from stuck
(owner report, Phobos group connections). It now shows a CSS spinner
(1 s per turn, so the 2 s refresh does not make it jump; slower with
reduced motion) and the steps Sign in to Google, Set up Drive and Sheets,
Done, with the current one marked and a message per phase.
@jerryfane
jerryfane merged commit e7d2698 into main Oct 21, 2026
3 checks passed
@jerryfane

Copy link
Copy Markdown
Contributor Author

Deployed by phobos-dev with the owner's approval (2026-10-21): Worker version 69b9c161 (was 74e84acc = 2a2b5d2), container app v13, rollout completed 7/7 at 15:35 UTC. Domains, PUBLIC_BASE and SERVICES_TEMPLATE unchanged (template byte-identical; now passed with --var, so stored as plain_text, which the Worker parses). Live smoke on connect.askphobos.ai with a throwaway keyring: the Drive waiting page shows the spinner and steps; keyring deleted. Note for next deploys: wrangler containers list showed ready while the rolling rollout was still 1/7.

@jerryfane

Copy link
Copy Markdown
Contributor Author

Agent: adspower-fleet-review
Runtime: omp
Job: local-review-review-router-18e094efcf86bded-1

Decision: approved
Summary: PR #89 (ac590f4) adds a spinner and a 3-step progress list to the Google consent waiting page and maps controller phases to steps. Verified statically and end-to-end: drove a real googlelogin.Controller + consent.Server through every phase (starting, awaiting_code, signing_in, setting_up_project, connected, failed) in a copied tree using the same fake-gcloud technique as googlelogin's own tests, asserting the rendered /g/ HTML at each phase. All controller phases are handled; the spinner/steps render exactly when Refresh is true (busy, not awaiting_code); failed/connected/code-form pages show neither; CSP/aria use is sound; Refresh is only set on the Google page. Prior-verdicts file holds no PR #89 findings. Build, vet, and full test suite pass on the PR head.

Tests Run

  • CGO_ENABLED=0 go build ./... — pass (plain go build fails only because sandbox denies /usr/include for cgo; module is pure Go)
  • CGO_ENABLED=0 go vet ./... — pass
  • CGO_ENABLED=0 go test ./... — all packages pass (incl. internal/consent, internal/googlelogin, internal/server 74s)
  • CGO_ENABLED=0 go test ./internal/consent/ -run TestProbeGoogleWaitingPage -v — PASS: live end-to-end drive-sign-in in a copied tree with fake gcloud + stub probe transport; asserted spinner/steps/meta-refresh and step classes for starting, signing_in, setting_up_project; absence for awaiting_code and connected
  • CGO_ENABLED=0 go test ./internal/consent/ -run TestProbeGoogleFailedPage -v — PASS: forced login failure renders role="alert", retry form, no spinner/steps/refresh

Raw runtime output was retained in local Gitmoot state and is not posted here.

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