Skip to content

Generation steps: drop the boxes, show the three real passes - #109

Merged
ehsan6sha merged 1 commit into
mainfrom
feat/generation-substeps
Aug 24, 2026
Merged

Generation steps: drop the boxes, show the three real passes#109
ehsan6sha merged 1 commit into
mainfrom
feat/generation-substeps

Conversation

@ehsan6sha

Copy link
Copy Markdown
Member

Two changes to the website-generation checklist, from live feedback.

  1. NO MORE BOUNDING BOXES

Each step was a filled, outlined card, which reads as a tappable action button and invites a tap that does nothing. StepRow gains a bordered flag (default TRUE, so setup_unlock_sheet - where each row IS an action - is untouched) and the progress checklist passes false.

  1. THE GENERATE STEP NOW SHOWS ITS THREE PASSES

They are real, not invented. ai/src/services/claudeService.ts reports each pass through the job's statusMessage:

'Designing art direction...' -> Design
'Building your website...' -> Build
'Polishing design and motion...' -> Polish

Matched on the leading VERB rather than the whole sentence, because 'Polishing design and motion' also contains the word 'design' - a naive contains('design') reports the wrong pass for the last one.

The legacy single-pass path says 'Generating website...' and maps to null, which renders NO sub-steps rather than three fake ones.

Monotonic like the parent phase: a late or stale poll cannot un-tick a pass the user already watched complete, and an unrecognised status line leaves the pass alone instead of clearing it. A failure inside generation marks the pass it was actually on. A completed generation collapses them away - the detail only matters while it is running.

StepRow also gains dense for the nested rows (16px badge, 12px type, tighter padding) so the passes read as subordinate to their parent.

analyze clean, 971 tests (7 new).

1. NO MORE BOUNDING BOXES
Each step was a filled, outlined card, which reads as a tappable action
button and invites a tap that does nothing. StepRow gains �ordered
(default TRUE, so setup_unlock_sheet - where each row IS an action - is
untouched) and the progress checklist passes false.

2. THE GENERATE STEP NOW SHOWS ITS SUB-STEPS
They are real, not invented. ai/src/services/claudeService.ts reports
each pass through the job's statusMessage:

  'Designing art direction...'     -> Design
  'Building your website...'       -> Build
  'Polishing design and motion...' -> Polish

Matched on the leading VERB rather than the sentence, because 'Polishing
design and motion' also contains the word 'design' - a naive
contains('design') reports the wrong pass for the last one. The legacy
single-pass path says 'Generating website...' and maps to null, which
renders NO sub-steps rather than three fake ones.

Monotonic like the parent phase: a late or stale poll cannot un-tick a
pass the user already watched complete, and an unrecognised status line
leaves the pass alone instead of clearing it. A failure inside generation
marks the pass it was actually on. A completed generation collapses them
away - the detail only matters while it runs.

StepRow also gains dense for the nested rows: 16px badge, 12px type,
tighter padding, so the passes read as subordinate to their parent.
@ehsan6sha
ehsan6sha merged commit 2c6ff76 into main Aug 24, 2026
1 check passed
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