Asset content duplicates the database Clinton's team maintains, and that
integration is deferred, so the section comes out in the interim.
This is a configuration task, and the wave file says so - "Surface:
configuration". There is no Micron EUV SOP in this repository; it is data on a
running system. What the repository holds are two representations of the Micron
configuration, and both now carry the toggle:
wp-creation-app.js SAMPLE_SOP what the standalone creator shows when
there is no project SOP to read
work-package-suite-app.js loadSample the Micron FMCS SOP the wizard loads
For a real project the mechanism is step 12 and needs no code: untick Assets,
complete the SOP. That is what T5.5 built and what "another SOP can enable
Assets and it works" means.
Both write a PARTIAL map - {assets:false} - rather than a full one.
WPSections.normalize fills the rest in as ON, so a section added after today is
not silently off for this SOP. The probe checks that specifically: exactly one
key is false, not nine true and one false frozen at today's list.
html/wp-creation-app.js SAMPLE_SOP.sections
html/work-package-suite-app.js loadSampleData sets state.sections
tests/sections_check.py +13 checks (75 -> 88)
Done when
[x] Assets does not render for Micron EUV in the form, detail view or export -
and not in the section chip strip either, which is the form's contents page
[x] the section and its model remain in the codebase - #asset-card and
pkgAssets are both still there, checked in the browser rather than assumed
[x] another SOP can enable Assets and it works - the fixture project renders it
seed_demo.py was deliberately NOT changed. Its SOP row stores a bare
{governance: ...} blob rather than the {sop, state} shape pullProject reads, so
its data never reaches the creator's SOP object at all - adding sections there
would be a toggle nothing consults. That shape mismatch is BL-018 and it should
be fixed as one thing, not worked around here.
What the probe caught
The first run reported on "Job A" while claiming Micron. activeProjectId falls
back to ProjectData.getActiveId(), so a project left in localStorage by an
earlier navigation sent bootSOP() down the real-project branch and the sample
was never loaded - every CR-016 assertion was then measuring the wrong SOP and
four of them happened to fail, which is the only reason it was noticed. The
probe clears storage first and says why.
Verified one at a time
sections_check 88/88 (75 + 13 for CR-016)
browser_check 71/71
f_items F1-F5 FIXED, F6 REPRODUCES (T7.2)
Question for the PR, per CLAUDE.md: CR-009's decision also says Kitting ships
toggled off for Micron EUV via these same toggles. That is wave 8's to apply
(CR-009/CR-010/CR-012), so the sample still has Kitting on. If the intent was
for both to go off together, the second line is one word.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>