Skip to content

STU-371: Record the canonical redesign sources and production behavior overrides - #75

Closed
sgardoll wants to merge 11 commits into
mainfrom
sgardoll/stu-371-record-the-canonical-redesign-sources-and-production-behavior-overrides
Closed

sgardoll wants to merge 11 commits into
mainfrom
sgardoll/stu-371-record-the-canonical-redesign-sources-and-production-behavior-overrides

Conversation

@sgardoll

@sgardoll sgardoll commented Sep 22, 2026 •

Copy link
Copy Markdown
Owner

Closes STU-371.

What this PR does

Adds a versioned design-source record under docs/design/ for the Updated UI/UX milestone, keeping implementation work traceable and avoiding stale handoff assumptions.

Added files

  • docs/design/README.md — source-to-surface map and document index
  • docs/design/SOURCE-MANIFEST.json — SHA-256 manifest of canonical handoff files
  • docs/design/TOKENS-AND-ASSETS.md — hero tokens, fonts, assets, and the 13 local suggestion patterns
  • docs/design/RESPONSIVE.md — nine named viewports, reflow expectations, and the translate(67px,-304px) caveat
  • docs/design/BEHAVIOR-OVERRIDES.md — production overrides for runs counter, tier limits/pricing, suggestions, and unsupported capabilities
  • docs/design/REFERENCE.md — how workers access the read-only handoff folder without copying the archive
  • docs/design/TRACEABILITY.md — requirement → milestone ticket → reference surface mapping

Verification

  • npm test — 274/274 passing.
  • npm run build — production bundle built successfully.
  • All recorded SHA-256 hashes were recomputed and verified against the local handoff folder.

RetriggerConfidence Score: 5/5

The PR appears safe to merge, with one non-blocking accuracy issue remaining in the existing verification-status thread.

Fix All in DevinFindings

  1. P2 Approximation warning is inaccurate ▶
Fix with agent prompt
### Issue 1
src/customCodeVerification.js:217-220
This creates a notice for every unrepresentable dependency before checking which classes will compile. If a deployment contains only `dart:`-only classes, or every class is skipped, `app.js` still displays “Verified approximately” even though no class was compiled against the reduced package graph. This gives users an inaccurate verification status.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Summary

This PR records the canonical redesign sources and production behavior overrides, while also strengthening custom-code verification, deployment safeguards, CI, and bundle leak detection. Greptile automatically discovered a related ticket that helped explain the purpose of this PR: preserve reproducible design-source provenance, document responsive and production overrides, and map requirements to milestone surfaces.

  • Adds a SHA-256 design-source manifest, surface map, responsive guidance, behavior overrides, asset documentation, and traceability records.
  • Improves dependency-source parsing and discloses verification performed against reduced dependency graphs.
  • Adds CI coverage, deployment guard checks, and broader production-bundle credential and provider-endpoint scanning.
  • No changes were made after the previous review SHA, so there are no new findings to report.

Reviews (4) · Last reviewed commit: "fix: scope the verification skip to dire..."

STU-368. Which packages the Flutter SDK supplies was decided by a
hand-maintained name list kept in three places, and flutter_web_plugins was in
none of them. Every project declaring it - which is every web-enabled project
with a plugin - read it as a dependency that could not be reproduced, and the
deploy was refused for a package most of its classes never imported.

The project's own pubspec already says where each package comes from; the
parser read those lines and threw them away. It now returns them as
sourceKey/sourceValue, so the classification is exact and cannot fall behind
the SDK:

  sdk:                            -> the Flutter SDK, reproduced from the name
  a nested version:               -> a constraint written on its own line
  git: / path: / nested hosted:   -> not expressible in the manifest

SDK_DEPENDENCIES is gone. The runner's allowedSdkPackages is gone too - it
independently refused the same deploy with 'Unsupported SDK package'. That
allowlist was also the only validation of an sdkPackages entry, so the package
name pattern now does that job; without the swap a caller-supplied name would
reach the generated pubspec unchecked. The runner still writes 'sdk: flutter'
itself, so that value never comes from a caller.

Refusal is now scoped per class, to that class's own imports, so one git: entry
no longer leaves an entire deploy uncompiled.

The accept/warn split already existed and is unchanged: a real analyzer error
refuses with 422, and a class that could not be compiled is pushed with its
warning logged before the provisioning request.

Corrects DEPLOYMENT.md, which still described the scaffolding-closure
compilation that reverting a1238f0 removed, and still claimed that nothing
unverified is deployed.

Verified: 274/274 tests, deploy guard 9/9, proxies 30/30, build clean, dart
analyze on the runner reports no issues.
…kens, responsive contract and production overrides

Linear: STU-371
- Add docs/design/ README, SOURCE-MANIFEST, TOKENS, RESPONSIVE,
  BEHAVIOR-OVERRIDES, REFERENCE and TRACEABILITY.
- Map hero -> primary app surface; journey -> workflow guidance;
  account / monetisation -> separate product surfaces.
- Exclude launcher chrome, before-* variants, hero-1, outro studies,
  fixed-film walkthrough and MILESTONE-PLAN from production routes.
- Document 13 local suggestion patterns, token table, font paths and
  the 1920x1080 presentation-only fit scaling caveat.
- Record production overrides for runs counter, tier limits/pricing,
  suggestions, and unsupported backend capabilities.
@sgardoll

Copy link
Copy Markdown
Owner Author

@greptileai

Comment thread src/pubspecSync.js Resolved
Comment thread src/customCodeVerification.js Resolved
Comment thread scripts/scan_bundle_for_leaks.py Resolved
Comment thread docs/design/REFERENCE.md Resolved
greptile-apps[bot]
greptile-apps Bot previously approved these changes Sep 22, 2026
Comment on lines +217 to +220
const approximate = unrepresentable.map(
(name) =>
`Your project declares ${name} from a source that cannot be reproduced outside it, so the pre-deploy compile check runs against a scratch package graph that omits ${name}. Classes that do not import ${name} directly are still checked, but against that reduced graph, so their transitive package resolution may differ from your project's and the check is approximate for them.`,
);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Approximation warning is inaccurate

This creates a notice for every unrepresentable dependency before checking which classes will compile. If a deployment contains only dart:-only classes, or every class is skipped, app.js still displays “Verified approximately” even though no class was compiled against the reduced package graph. This gives users an inaccurate verification status.

Prompt To Fix With AI
This is a comment left during a code review.
Path: src/customCodeVerification.js
Line: 217-220

Comment:
**Approximation warning is inaccurate**

This creates a notice for every unrepresentable dependency before checking which classes will compile. If a deployment contains only `dart:`-only classes, or every class is skipped, `app.js` still displays “Verified approximately” even though no class was compiled against the reduced package graph. This gives users an inaccurate verification status.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Fix in Claude Code Fix in Codex Fix in Devin

@sgardoll

Copy link
Copy Markdown
Owner Author

@greptileai — all findings from the previous review have been addressed (see new commits). Please re-review this PR.

@sgardoll

Copy link
Copy Markdown
Owner Author

Closing: this branch is already fully contained in milestone/stu-implement-updated-ui-ux, merged during the earlier integration run as 8792d68 (STU-371). GitHub refuses to retarget this PR to the milestone branch for that exact reason — there are no new commits between the two. The work therefore ships with the milestone → main PR and this PR no longer corresponds to anything unmerged. Nothing is lost; the commits remain in history.

@sgardoll sgardoll closed this Sep 22, 2026
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