Show the steps of making a backup, each at what the page knows (Section 06b) - #232
Merged
404SecNotFound merged 2 commits intoSep 28, 2026
Merged
Conversation
Section 06, part b. The Encrypt tab lists the six steps of making a backup: content, access rule, review, create, check saved copy, prepare recovery. BAR.md keeps one form with no Next-button wizard, so this is status only and gates nothing. workflowSteps in src/lib/backup-workflow.ts marks a step done only on evidence the page has: - A download or print is Started, never Done. - Check saved copy is Done only when every printed container symbol has been photographed on the Recovery tab and matched to this backup. Checks add up across photos; strips, unmatched symbols and symbols from another backup do not count. - Prepare recovery is Done only after a rehearsal from the shares. - Once the form moves on, Create reads Changed and nothing is next. Every state is a word as well as a colour, and the step to act on carries aria-current="step". Adds the step rules to test:backup-workflow and tests/browser/workflow-steps.spec.ts. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GbCLpWTtk1prQYV8z6rYHr
Two Chromium failures from the step list. workspace-layout.spec.ts holds the Content section within 340px of the top at 1440x1000. The list above it pushed Content to 432px. On a wide screen the workbench grid now puts the list in the right column, above the container pane; below 980px it is the first row, above the form. It stays first in the DOM, so it still reads first. share-lifecycle.spec.ts found the form's "Keep open" behind the shares dialog. Radix hides the page behind a modal once, when it opens, with the aria-hidden package, which keeps every [aria-live] element and its ancestors exposed. The list's live region kept the form's wrapper exposed, so a lock warning mounted later inside it was never hidden. In the original position the test fails with the live region and passes without it. The live region is gone: it would also have re-announced on every keystroke, and aria-current marks the step to act on. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GbCLpWTtk1prQYV8z6rYHr
This was referenced Sep 28, 2026
This was referenced Sep 29, 2026
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Section 06, part b (roadmap 9.6). Stacked on #231 (06a), so this shows only its own diff. GitHub retargets it to
mainonce #231 merges.What changes
workflowStepsinsrc/lib/backup-workflow.tsmarks a step done only on evidence the page has.aria-current="step".Found by the gates and fixed in
1b08065workspace-layout.spec.tsholds the Content section within 340px of the top at 1440x1000. With the list above the form it sat at 432px. The list moved rather than the threshold.share-lifecycle.spec.tsfound the form's "Keep open" reachable behind the shares dialog. Radix hides the page behind a modal once, when it opens, using thearia-hiddenpackage. That package keeps every[aria-live]element and its ancestors exposed, so the list's live region left the form's wrapper exposed. A lock warning mounted later inside it was never hidden. In the original position the test fails with the live region and passes without it. The live region is removed.Tests
npm run test:backup-workflowgrows from 24 to 50 checks. Four faults in the step rules each failed their own checks: a started download counted as done, a partial printout check counted as done, unmatched symbols counted, and recovery done without a rehearsal.tests/browser/workflow-steps.spec.ts(new) has 3 Chromium tests. Four faults in the page wiring each compiled, built and failed their own test: rehearsal ignored, printout coverage never recorded, checks not accumulating, and exports not passed.Gates run locally on
1b08065npm run typecheck, all 38 Nodetest:*scripts and the 4 Python gates pass.npm run buildpasses.--workers=2had 327 passed, 5 skipped and 0 failed.Open point for review
A password-only backup has no rehearsal on this page. Its recovery step stays at "To do" and points to a verify on the Decrypt tab, which today clears the receipt. That lifetime is a later part of Section 06.
🤖 Generated with Claude Code
https://claude.ai/code/session_01GbCLpWTtk1prQYV8z6rYHr
Generated by Claude Code