Port/drop the 6 Proposal-H-parked Playwright spec files - #427
Merged
Conversation
Drops CommonCardback.visual/SelectedImagesRibbon/ProjectEditorMobileScroll (genuine gaps/obsolete-layout coverage, ack-tokened); ports PDFGenerator/ PagePreview/PostExportContributionPrompt onto the standalone /print route; adds a CardSlot.spec.ts test for the rail's per-slot cardback override (Cluster-8 ruling); fixes now-stale doc references to the classic Print! tab in docs/features/pdf-generator.md and print-export-page.md. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
WilfordGrimley
added a commit
that referenced
this pull request
Jul 24, 2026
…gress-bar text assertion, .modal-content bg after #425's theme-defaults pass PR #427 (landed after this branch's original base) un-skipped PDFGenerator.spec.ts/PagePreview.spec.ts/PostExportContributionPrompt.spec.ts onto the shared navigateToPrintPDFTab helper, which the new cardback reminder gate now intercepts; PR #425's theme-defaults pass separately re-routed every Modal's content background to $theme-raised-bg. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
4 tasks
WilfordGrimley
added a commit
that referenced
this pull request
Jul 24, 2026
…erience (#431) * Add cardback reminder gate, apply-all/set-default prompt, and PDF-wait experience (progress bar + What's That Card? embed) Implements SPEC-cardback-pdfwait.md PKG1 (no-cardback reminder gate, toolbar/rail apply-all + set-default prompts with affected-slot thumbnails, custom-cardback flip-icon indicator) and PKG2 (determinate/ indeterminate PDF generation progress bar, embedded What's That Card? game during PDF wait with teardown-to-outro). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Fix rebase fallout: reminder gate in navigateToPrintPDFTab, stale progress-bar text assertion, .modal-content bg after #425's theme-defaults pass PR #427 (landed after this branch's original base) un-skipped PDFGenerator.spec.ts/PagePreview.spec.ts/PostExportContributionPrompt.spec.ts onto the shared navigateToPrintPDFTab helper, which the new cardback reminder gate now intercepts; PR #425's theme-defaults pass separately re-routed every Modal's content background to $theme-raised-bg. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
WilfordGrimley
added a commit
that referenced
this pull request
Jul 24, 2026
…I onto Tokyo-11 PR #431 landed after the original sweep with its own hardcoded #302-derived literals (CardbackApplyPrompt.tsx, useCardbackReminderGate.tsx, PDFWaitPanel.tsx, SlotCardbackControl.tsx, plus a new DisplayPage.tsx line) - migrated onto var(--bs-*)/var(--theme-*) tokens the same way the rest of the sweep was, including simplifying the primary/info/success at-rest button text to use the token directly (Tokyo-11's action colours are light enough, unlike #302's, so the separate hand-picked tint literals aren't needed any more). CardbackPdfWaitFidelity.spec.ts's own literal assertions updated to match, comment-linked per row. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
WilfordGrimley
added a commit
that referenced
this pull request
Jul 24, 2026
… Semi radius) (#438) * Re-theme site to Tokyo-11 (Tokyo Night base, orange action, purple accent, Semi radius) Owner-ruled palette swap (theme-options study, palette 11) on top of #425's token-layer pass: new colour/radius tokens in _theme-tokens.scss, Bootstrap variable + runtime var(--bs-*)/var(--theme-*) wiring in styles.scss (incl. the AAA button-ink flip and a WCAG/APCA audit fold-in: opaque accent focus ring, .btn-close/.fbtoggle target-size fixes, a lightened muted token), accent wiring across D14/chips/toggles/selection outlines, a sitewide sweep of hardcoded old-palette literals onto token references, and matching DisplayLeftRailFidelity.spec.ts updates. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Merge master (#427/#405/#440), re-theme PR #431's cardback+PDF-wait UI onto Tokyo-11 PR #431 landed after the original sweep with its own hardcoded #302-derived literals (CardbackApplyPrompt.tsx, useCardbackReminderGate.tsx, PDFWaitPanel.tsx, SlotCardbackControl.tsx, plus a new DisplayPage.tsx line) - migrated onto var(--bs-*)/var(--theme-*) tokens the same way the rest of the sweep was, including simplifying the primary/info/success at-rest button text to use the token directly (Tokyo-11's action colours are light enough, unlike #302's, so the separate hand-picked tint literals aren't needed any more). CardbackPdfWaitFidelity.spec.ts's own literal assertions updated to match, comment-linked per row. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Fix PagePreview.tsx CustomCardbackDot missed by #431 merge sweep Post-merge re-scan (coordinator's ask) caught one more #302-derived literal (#431's own PagePreview.tsx diff) - the flip-button custom-cardback indicator dot's warning colour wasn't yet routed to var(--bs-warning). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
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.
Description
Closes the owner-ruled port wave for the six spec files parked "Proposal H switchover" since the
/editorroute swap (#389). Per-file disposition:CommonCardback.visual.spec.tsSelectedImagesRibbon.spec.ts/editortoday — a genuine capability gap, not obsolete/duplicate coverage. See parity table below.ProjectEditorMobileScroll.spec.tsleft-panel/right-panel/add-cards-panel,OverflowCol'schainScroll) that only exist on the classic, fully-unrouted grid layout. #266's own mobile fix (a bottom-sheet drawer) is a different mechanism with its own dedicated coverage already inDisplayPage.spec.ts.PDFGenerator.spec.ts/print(FinishedMyProject's PDF tab) via a new sharednavigateToPrintPDFTabhelper. Component itself unchanged by the route swap — every assertion (testids, modal copy, localStorage key, timing) carries over unmodified.PagePreview.spec.tsDisplayPage.spec.ts/OrphanRendering.spec.tsfor duplication — none found. See dedup table below.PostExportContributionPrompt.spec.ts/print; renamed off its stale "classic Print! tab" title (ack-tokened rename).SelectedImagesRibbon.spec.ts parity table (12 tests, all dropped)
/editorNone of these are redundant or product-obsolete — the capability (select several cards, act on all of them at once) simply isn't built on the new page yet.
CardSlot.spec.ts's own wave-3 port comment (pre-existing, not from this PR) independently documents the same finding. Flagging for the owner as an open gap, not silently dropping coverage of something that still exists.Upstreamability note (task-end ledger check,
docs/upstreaming/extractable-primitives.md):SelectedImagesRibbon.tsxandCommonCardback.tsxare untouched by this PR — only their test files are deleted, no extraction/refactor happened. Per the ledger's own scope ("did this change produce or destroy a primitive with no vote-system dependency"), the honest answer here is no ledger row needed — nothing was extracted or destroyed, the components remain exactly as they were, in-tree, unrouted-but-intact.ProjectEditorMobileScroll.spec.ts parity vs. issue #266
Issue #266 (
DisplayPage.spec.ts's "phone viewport (issue #266)" describe block, pre-existing) covers the actual mobile-UX replacement: the left rail becomes a bottom-sheet drawer on slot tap at phone width, closable via Escape.ProjectEditorMobileScroll.spec.ts's 4 tests instead assertoverscroll-behavior-yCSS onOverflowCol'schainScrollprop across stacked classic-grid panels — a materially different mechanism (scroll-chaining between two always-mounted stacked columns) that doesn't structurally exist in the new bottom-sheet-drawer design. Not a like-for-like port target; genuinely obsolete given the redesign, not a coverage loss.PagePreview.spec.ts dedup table (3 tests, all kept)
DisplayPage.spec.ts/OrphanRendering.spec.ts(dozens ofpage-preview-slotassertions)page-previewcontainer testid, which neither file ever referencespreview-mode-toggleonly exists onPDFGenerator.tsx's own mount;/editor's sheet has no toggle at allPDFGenerator.tsx-only (grep-confirmed);/editorhas no margin controlsCluster-8 ruling (toolbar = project-wide canonical entry, rail = per-slot override)
Added one new test to
CardSlot.spec.ts(CardSlot's own rail Select Version section overrides just one slot's back, leaving the project-wide cardback (and sibling slots) untouched) — the toolbar entry point (CardbackToolbarButton's modal, project-wide) was already asserted with real behavior inGridSelectorModal.spec.ts(pre-existing wave-3 work), but nothing previously asserted the rail's own per-slot override leaves siblings/the project default alone. Both entry points now have a real behavior assertion./print cold-compile race under parallel workers
Verifying at 4 workers surfaced
net::ERR_ABORTEDonnavigateToPrintPDFTab'swaitForURL— multiple spec files (this PR's three ports, plus pre-existingDisplayFinishFooter.spec.ts/UnsavedWorkGuard.spec.ts) all first-hit/print's cold on-demand dev-mode compile simultaneously under parallel workers. Added atoPassretry (same patternopenAddCardsDropdownalready uses) tonavigateToPrintPDFTaband bumped the three ported files' own test timeout to 60s so the retry has headroom. This reduced but didn't eliminate the flake under heavy concurrent, unrelated system load (see Verification below) — CI's ownretries: 2absorbs the residual.Deviations from spec
None from the task's own disposition table. One addition beyond the six named files: the Cluster-8
CardSlot.spec.tstest (explicitly requested "extend existing files if natural").Verification
--workers=1): all green.PagePreview/PDFGenerator/PostExportContributionPrompt/DisplayFinishFooter/UnsavedWorkGuard/CardSlot,--workers=4): 36/36 green, twice.PagePreview.spec.tsfailure (net::ERR_ABORTEDafter the full 45s retry window) coincided withuptimeload average 6.78-8.90 and another concurrent worktree's own dev-server + Playwright process actively running on the same shared box (confirmed viaps aux) - every other failure across all 4 runs (HomepagePanel,ImportCSV,DisplayLeftRailFidelity,OrphanRendering,DynamicLogo) is a pre-existing file this PR does not touch, confirming general box contention rather than a regression in this port. The cleanest run (load average 1.33 after the rival worktree finished) had zero failures in any file this PR touches.npx tsc --noEmit: clean.npx jest --silent: 573/573 passed, 65/65 suites.npx prettier@2.7.1 --checkon every changed file: clean..github/scripts/coverage_delta.py --base origin/master: clean, 19 acked violations (18 drops + 1 rename), 0 unacked.pytest .github/scripts/tests/test_coverage_delta.py: 25/25 passed (fixed one hardcoded-filename smoke-test assertion that went stale oncePDFGenerator.spec.tswas un-skipped).python3 .github/scripts/docs_lint.py: clean.DisplayLeftRailFidelity.spec.tsetc.): untouched, not modified by this PR (its one observed failure above is the same box-contention pattern, not a regression from this change).Manual testing
git show/grep that alldata-testids the ports depend on (pdf-preview-image-failures,image-failure-confirm-modal,page-preview,preview-mode-toggle,post-export-contribution-prompt, etc.) are unchanged inPDFGenerator.tsx/PagePreview.tsx/PostExportContributionPrompt.tsx— none of these components were touched by the Proposal H route swap, only their reachable route changed.Documentation updated
docs/features/pdf-generator.md— fixed stale claims thatProjectEditor.tsx/the classic "Print!" tab are still live mounts (they're fully unrouted since Swap Proposal H's unified page onto /editor, redirect /display #389); updated thePostExportContributionPrompt.spec.tskey-files bullet.docs/features/print-export-page.md— same staleness fix in the post-export-contribution-prompt section.Checklist
pre-commitand installed the hooks withpre-commit installbefore creating any commits.Co-Authored-By: Claude Fable 5 noreply@anthropic.com