Skip to content

fix(web,mobile): explicit Cancel on Astra confirm card (#194) - #358

Merged
thomasluizon merged 2 commits into
mainfrom
issue-194
Jun 30, 2026
Merged

fix(web,mobile): explicit Cancel on Astra confirm card (#194)#358
thomasluizon merged 2 commits into
mainfrom
issue-194

Conversation

@thomasluizon

Copy link
Copy Markdown
Owner

The Astra clarification chips + confirm cards from #194 were already shipped (under #100/#163/#172/#175). The one gap against the acceptance criteria was the confirm card having a Confirm action but no explicit Cancel — so "tap Cancel → nothing changes" was only met implicitly.

Change

Adds an explicit Cancel/Dismiss affordance to the confirm card (pending-operation-card.tsx) on both platforms (parity), using a local dismissed state that hides the card and calls no mutation. Reuses the existing common.cancel key (already in both locales — no new i18n). Tests assert Cancel triggers no mutation and unmounts the card.

Validation: web 3/3 + mobile 4/4 pending-operation-card tests pass; lint clean.

Closes #194.

🤖 Generated with Claude Code

thomasluizon and others added 2 commits June 30, 2026 14:42
Add a Cancel/Dismiss affordance to the pending-operation confirm card on
both platforms. Cancel uses a local `dismissed` state that early-returns
null and calls no mutation (onConfirmExecute/onPrepareStepUp/onVerifyStepUp),
so nothing changes server-side. Scoped to the initial confirm action row;
reuses the existing common.cancel key. Tests on each platform assert Cancel
does not trigger the mutation and unmounts the card.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 30, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
orbit-ui-mobile-web Ignored Ignored Jun 30, 2026 9:32pm

Request Review

@sonarqubecloud

Copy link
Copy Markdown

@thomasluizon
thomasluizon merged commit 1dead1d into main Jun 30, 2026
10 checks passed
@thomasluizon
thomasluizon deleted the issue-194 branch June 30, 2026 22:23
thomasluizon added a commit that referenced this pull request Aug 23, 2026
…ry the probe evidence

Answers the third Pullfrog pass. The [skip ci] removal claimed more than
it delivered: the baseline push uses the workflow's GITHUB_TOKEN, and
GitHub never starts runs for events that token causes, so the bot head
gets no required checks either way. The comment now states that
contract and the operator step that puts checks on the head. The
--skip-repo semantics are proven by a real invocation against a repo
with a foreign hook, recorded in the PR body: plain install reproduces
CI's exit 2, --skip-repo exits 0, sets the four filter keys, and leaves
the hook byte-identical.

Ticket: #358 in the ticket repository, thomasluizon/orbit-tickets#358

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
thomasluizon added a commit that referenced this pull request Aug 23, 2026
…port what a kill left behind (#744)

* fix: count log growth and process-tree CPU as worker progress, and report what a kill left behind

The watchdog measured progress as HEAD moving or a file changing, so a
worker inside one long child process, a full test suite or a CI wait,
was indistinguishable from a hung one. Six workers holding finished,
committed work were killed in one night, every one with a failing exit
code.

Progress is now any of three signals, cheapest first: the original
fingerprint, growth of the worker's own log, and CPU burned by the
process tree since the last silent sample. The log signal is safe
because KILLED_LOG_RUNAWAY bounds a flood by byte count, which is what
answers ORB-201. A genuinely idle and silent tree is still killed.

A kill now reports the commits and tree state it left behind in the
result JSON, and exits 4 instead of 1 when committed work is present.
The hard ceiling takes a per-launch override for a ticket that
legitimately outruns the fleet-wide default.

Ticket: thomasluizon/orbit-tickets#358

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix: clamp CPU snapshots on child exit, assert per platform, and wire the ceiling override into the callers

Answers the Pullfrog review. The CPU number is a snapshot of live
processes, so a child exiting mid-window makes the total drop; the
sampler now rebases on a drop instead of demanding the survivors re-earn
a dead child's history, and the comment names the short-lived-children
blindness plus the log signal that covers it. The confirmed CIM sample
rows are inlined verbatim. The burner test asserts the platform's real
contract: hard ceiling on Windows, no-progress kill where the probe is
deliberately absent. tools/README.md and the orchestrate skill's two
launch surfaces now carry --hard-ceiling-minutes so the escape hatch is
reachable from the canonical flow.

Ticket: thomasluizon/orbit-tickets#358

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix: count log growth only while the byte cap bounds it, and state the CPU signal's real limits

Answers the second Pullfrog pass. Log growth held the stall clock open
even in a configuration with no caps.workerLogMegabytes, where nothing
bounds a flood; the signal now counts only while the cap exists, with a
test proving an uncapped drip worker still dies on the stall clock. The
CPU comment names the dead-intermediate break honestly: a single
snapshot cannot see across it without native job objects, the log
signal covers that shape, and a kill still requires every signal silent.
The complete CIM invocation, output and exit status are now in the PR
body beside the inlined rows.

Ticket: thomasluizon/orbit-tickets#358

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* chore: re-baseline the generated API contract snapshot against orbit-api main

The Contract Drift gate fails every pull request in this repository
since orbit-api merged the step-up creation-challenge endpoints and the
richer chat response shapes. The drift is additive and nothing this
consumer reads changed, so no hand-written schema moves; the snapshot
is regenerated per packages/shared/CONTRACT_DRIFT.md to re-baseline.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix: install only the LFS filters in the baseline re-seed step, since lefthook owns the hooks

The visual:update label path could never commit: git lfs install exits 2
refusing to overwrite the lefthook hooks, so the re-seed died at the
commit step on every run since lefthook landed. --skip-repo installs the
clean and smudge filters without touching hooks, which is all the PNG
add needs. Flag confirmed against git-lfs 3.7.1's own help.

Ticket: thomasluizon/orbit-tickets#358

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* test(web): update hermetic visual baselines (#461 B1) [skip ci]

* fix: drop [skip ci] from the baseline commit, which stranded its pull request without required checks

main requires 21 status checks on the head, so a bot baseline commit
carrying [skip ci] left the pull request permanently unmergeable. The
no-change guard in the same step already prevents a seed loop, since
re-seeding an unchanged rendering stages nothing to commit.

Ticket: thomasluizon/orbit-tickets#358

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* docs: state the real trigger contract on the baseline commit, and carry the probe evidence

Answers the third Pullfrog pass. The [skip ci] removal claimed more than
it delivered: the baseline push uses the workflow's GITHUB_TOKEN, and
GitHub never starts runs for events that token causes, so the bot head
gets no required checks either way. The comment now states that
contract and the operator step that puts checks on the head. The
--skip-repo semantics are proven by a real invocation against a repo
with a foreign hook, recorded in the PR body: plain install reproduces
CI's exit 2, --skip-repo exits 0, sets the four filter keys, and leaves
the hook byte-identical.

Ticket: #358 in the ticket repository, thomasluizon/orbit-tickets#358

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
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.

Astra mobile UX — clarification chips + confirm cards

1 participant