Hosting page: stuck change chip reads
Defect (named by Task 5748, confirmed on develop a7410a5c4): `apps/web/src/pages/org/billing/HostingDetailPage.tsx:73` maps `stuck` to the chip label "Resizing storage" unconditionally. A change goes `stuck` on paths that are not storage: the in-place type change's double failure ("Your machine couldn't start. Contact support.", `apps/api/app/durable/hosting_change.py`, R4) and the workflow's unexpected-error path ("Your product change hit an unexpected error. Contact support."). There the hosting page tells the user storage is resizing while the machine is actually stopped, which contradicts the warning banner rendered right below it (`HostingDetailPage.tsx:185`).
Reproduction (read-only): read `CHANGE_CHIP` at HostingDetailPage.tsx:67-74 — `stuck: { label: 'Resizing storage', tone: 'warning' }` regardless of `change.mode` / `change.step` / from-to fields.
Fix: give the `stuck` chip a label that is true for every stuck path. Simplest: a neutral "Change stuck" (warning tone). If you prefer specificity, derive it from the change: storage grew but not yet reported (to_storage_gb > from_storage_gb and the `volume_modified` step present, no type step) → "Resizing storage"; otherwise "Change stuck". No API change. Follow `docs/standards/ui-copy-standards.md`.
Out of scope: the API, the durable workflow, the docs page (it does not name this chip), any other chip label, the step timeline (separate UX suggestion), anything outside HostingDetailPage.tsx and its test.
Done means:
- A component test in `apps/web/src/pages/org/billing/HostingDetailPage.test.tsx` renders a hosting whose change is `stuck` after a type change (no storage change) and asserts the chip does NOT read "Resizing storage"; a storage-stuck change still reads a storage-appropriate or neutral label. Observed: the test passes and fails on the current develop code.
- `./dc check quick` green; PR merged to develop by the merge lane; Jaah Deploy of the merge succeeds in GitHub.
Outcome
Stuck chip now reads "Change stuck" (storage label only at step volume_modified); test fails on old code, passes now. Quick gate green, visual check done, PR #5078 merged, Jaah Deploy green. Deferred: stopped machine still shows Active/Up since.
Artifacts
Activity
- Ready
- Runner started
- Runner ended (done)