The 4 client-action SCSS files I shipped in Phase 6 ignored the
project's documented design system (CLAUDE.md "Card Styling" + "Dark
Mode" rules) and used hardcoded hex / var(--bs-*) for surfaces.
Result: dark mode rendered white-text-on-white-card.
Companion to "changes" (22573e7) which already landed
_fp_jobs_tokens.scss + the job_plant_overview.scss refactor.
This commit finishes the job:
- Refactored job_process_tree.scss, job_manager_dashboard.scss and
job_tablet.scss to reference the $fp-* tokens — zero hardcoded
hex on theme-sensitive surfaces. Three-layer contrast applied per
CLAUDE.md (page → container → card).
- Process tree keeps the intentional Steelhead-style dark-slate
card fill in BOTH bundles (deliberate visual choice, not a theme
bug); page / header / connectors / empty state are now token-
driven so they look right against light or dark page surfaces.
- Manifest assets list reordered so _fp_jobs_tokens.scss compiles
first in web.assets_backend (CLAUDE.md rule: SCSS variables in
earlier files are visible to later files in the same bundle).
This is what makes the compile-time
$o-webclient-color-scheme branch in the partial actually take
effect for the four consumer files.
Verified on entech: light bundle (web.assets_backend) and dark
bundle (web.assets_web_dark) both compile without SCSS errors and
emit distinct surface hexes (light: #f3f4f6 page / #ffffff card;
dark: #1a1d21 page / #22262d card).
Manifest 19.0.3.0.0 → 19.0.3.1.0.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
fusion_plating_jobs
Native plating job bridge — wires fp.job and fp.job.step (defined in
fusion_plating core, Phase 1 of the migration spec dated 2026-04-25)
into the rest of the Fusion Plating module family: configurator, portal,
logistics, quality, certificates, batches, KPI, notifications, reports.
Coexists with fusion_plating_bridge_mrp during the migration period.
The x_fc_use_native_jobs settings flag (default: False) toggles the
behaviour. When False, SO confirm continues to create mrp.production
records through bridge_mrp. When True, SO confirm creates fp.job
records here.
See docs/superpowers/specs/2026-04-25-fp-native-job-model-design.md
for full design rationale and §6 of the implementation plan for phase
breakdown.
Phase 6 — deferred items
Phase 6 originally scoped the full operator UI rewrite. With Tailscale SSH to entech currently unavailable we cannot live-test OWL/JS in the browser, so Phase 6 ships a lean version: the data-layer endpoints land now, the rendering UI lands later.
Deferred to post-cutover hardening:
- Plant Overview kanban over
fp.job.step— replacesfusion_plating_shopfloor'smrp.workorderkanban. - Tablet Station UI rewrite over
fp.job/fp.job.step. - Manager Dashboard rewrite.
- Process Tree OWL component — currently a stub:
/fp/jobs/process_treereturns the serialized recipe tree as JSON, but the OWL component to render it is not built.
Rationale: these are large OWL/JS components that need live in-browser
verification on entech. Under the migration's parallel-coexistence
strategy, operators continue using the existing shopfloor UI (bound to
mrp.workorder) until cutover. After cutover, the operator UI rewrite
becomes its own focused project — the data layer (fp.job,
fp.job.step, time logs, timestamps) is fully in place from
Phase 1–5.
Phase 6 — what shipped
/fp/job/<id>— scan-redirect controller. The fp.job sticker QR encodes this URL. Routes managers to thefp.jobform; routes operators to the same form for now (will swap to the process tree client action once the OWL component lands)./fp/jobs/process_tree— JSON-RPC endpoint that returns the recipe tree for a job, with each node tagged by its matchingfp.job.stepstate, ready for an OWL component to consume.