[APO-120] Add visual design memory#9
Conversation
|
Linked to Plane Work Item(s) This comment was auto-generated by Plane |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8406b2aa3c
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a5795bc505
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
@codex review |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: fc1506d4bb
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| "sourceCommit": null, | ||
| "approvedAt": null, | ||
| "approvedBy": null, | ||
| "captures": [] |
There was a problem hiding this comment.
Record the approved visual baseline
On subsequent dashboard changes, this empty, still-proposed manifest provides no approved captures or digests against which to detect a visual regression. The visual profile only checks that four screenshots were produced (.tabellio/validators.json:35-36), so a materially altered UI can pass while merely generating a new candidate; persist the human-approved captures and source commit in this manifest so the design memory is actually durable.
Useful? React with 👍 / 👎.
| @@ -1,5 +1,6 @@ | |||
| .DS_Store | |||
| .agent-permit/ | |||
| .artifacts/ | |||
There was a problem hiding this comment.
Ignore generated validation references
The new product-validation workflow uploads generated evidence from refs/tabellio/validations/, but this ignore change covers only .artifacts/. Consequently, running the required tabellio-validate gate locally leaves the validation references as untracked files, contrary to the new AGENTS.md instruction not to commit generated evidence and making potentially sensitive proof data easy to include with git add -A; ignore the generated refs directory as well.
Useful? React with 👍 / 👎.
| const output = resolve(repoRoot, ".artifacts/tabellio/visual-captures"); | ||
| mkdirSync(output, { recursive: true }); |
There was a problem hiding this comment.
Clear stale screenshots before each capture run
When design:capture is rerun in a working tree after a surface, viewport, theme, or state ID has been removed or renamed, this only creates the output directory and leaves old PNGs in place. The finalizer then scans the whole directory, so its capture count and baseline candidate can include evidence produced by an earlier commit rather than the current matrix; remove and recreate the capture directory before generating screenshots.
Useful? React with 👍 / 👎.
| document.documentElement.classList.add(selectedTheme); | ||
| document.documentElement.style.colorScheme = selectedTheme; | ||
| }, theme); | ||
| await page.addStyleTag({ content: "*,*::before,*::after{animation:none!important;transition:none!important;caret-color:transparent!important}" }); |
There was a problem hiding this comment.
Verify reduced motion before suppressing animations
If a dashboard component ignores prefers-reduced-motion, this injected rule still forcibly disables every animation and transition, so the visual gate passes despite the profile explicitly requiring reduced-motion behavior and forbidding motion without it. Keep deterministic screenshots, but first verify the application itself has suppressed or suitably reduced motion under the emulated media preference rather than masking violations with test CSS.
Useful? React with 👍 / 👎.
| use: { | ||
| ...baseConfig.use, | ||
| screenshot: "off", | ||
| trace: "off", |
There was a problem hiding this comment.
Pin locale and timezone for deterministic captures
When this capture configuration runs on a host with a different locale or timezone, identical commits render different visible dates and times because the dashboard calls toLocaleDateString(undefined) and toLocaleTimeString(undefined) (liveApiProjection.ts:425 and QueueStatusPanels.tsx:315). Since this context does not set locale or timezoneId, baseline candidates can differ solely by runner environment; pin both options in the design configuration.
Useful? React with 👍 / 👎.
Summary
c4789837Validation
fc1506d4bb88472bcc13f70ae01c08ea35623029sha256:6e1d2a814e0fd54a74b4461108643dcc3c392291ee9bde4d090c37e1fb60a707Rollout boundary
Merge authorized. Production deployment remains separately gated.