Repository navigation
Creative Studio build blockers: missing modules and renderer type contracts #74
Description
Current draft repair status — 2026-10-04
#79, stacked on #78, is the latest partial Studio repair. #75–#79 remain open drafts; no repair or dependency PR has been merged by this work. Keep this issue open.
- Implemented on fix(studio): restore grid renderer data and redraw contracts #79, head
e51f631d4215c8f2e1c925d3e57a38fb4999596a: restore the existing Layer/Panel/crop/annotation types in GridRenderer and PanelRenderer. Grid and individual panels now agree on normalized crop, visible locked layers and composed drawing opacity (including zero). Incomplete shapes no longer stop later annotations; individual panels draw line annotations. Stale image completions do not repaint old props, resize uses current props, and asynchronous native draw failures are reported without notifying successful panel load. Dependency versions/locks and full application compiler flags/source inclusions are unchanged. - Current-head focused checks — successful: Node 22.12.0 and Node 24.19.0 pass Studio-only installation with scripts disabled/legacy peer resolution, the shared-library audit (5,712 bindings / 966 files), four strict contract programs, targeted ESLint, 53 tests in seven files and production bundles. Node 24 also passes one bounded offline Chromium launcher startup check with live providers/backends blocked. Node 22 browser steps are skipped by matrix design.
- Current full-compiler blocker: full application types fails, exit 1, with 1,163 diagnostics; the artifact is retained and the overall workflow concludes failure. In the same Studio-only local setup, the unchanged full compiler improves from 1,206 at the exact fix(studio): restore editor control bindings for React 19 #78 base to 1,095 on fix(studio): restore grid renderer data and redraw contracts #79. All 111 diagnostics from the two renderers disappear with no new diagnostic fingerprints after line-number normalization. Hosted and local counts are separate measurements; older fix(studio): restore editor control bindings for React 19 #78 figures are historical.
- Current Sonar gate — successful: SonarCloud Code Analysis passes on
e51f631d4215c8f2e1c925d3e57a38fb4999596a, with zero new issues/security hotspots and no annotations. The first fix(studio): restore grid renderer data and redraw contracts #79 head91e9854f5833eb0654e8d2009ce0d632cc930afcfailed with Reliability C on New Code (A required). Its ten GitHub annotations prompted removal of seven unnecessary void discard expressions while retaining negative type fixtures, handling of two render promise chains with two regression tests, and extraction of crop arithmetic to reduce coordinator complexity. No scanner rule, threshold or exclusion was weakened. The old failed gate is recovered, not a current blocker. Sonar reports 0.0% coverage on new code; passing tests are separate evidence. This gate does not establish security-alert closure or runtime acceptance. - Earlier partial repairs retained: #75 restores actual Redux/editor/chat state and the service-based ComfyUI hook (assistant responses remain simulated). #76 restores optional bridge contracts, direct UI dependencies, bundling and offline startup (demo addon unavailable; debugger exports disabled pending redaction). #77 repairs selected named imports/paths and exposes full compiler failure. #78 restores real audio/category/canvas/keyframe bindings and scheduling types, separates general templates, preserves keyframe input arrays and minimally updates UI Lucide to 0.474.0 for React 19 compatibility. Their pinned-head evidence remains in those PRs.
- Integration gap: the earlier local fix(studio): restore shared editor controls and root provider wiring #75/fix(studio): restore production build and browser launcher #76 source-patch comparison with exact fix(deps): patch axios, undici and supplemental security advisories #70
99feb3319e35a896bbdb4505a02a9fa452380329, chore(deps-dev): bump the npm_and_yarn group across 3 directories with 1 update #63ca5b890a4fe010065a76294506abbde0b293ec3cand fix(electron): restore the startup splash and launcher build checks #733a8cac25a11ed207192d443562f899cecb54aedeis historical. fix(studio): restore corrupted import bindings and paths #77/fix(studio): restore editor control bindings for React 19 #78/fix(studio): restore grid renderer data and redraw contracts #79 have not been retested in that dependency combination.
Review needs: #79 crop parity, lock versus visibility, opacity composition, incomplete-shape behavior, failure reporting and stale-load/resize cleanup; #78 real controls/templates/keyframes, scheduling semantics and minimal Lucide change; earlier PR-specific contracts remain in their descriptions. #79 has no formal review yet.
Remaining acceptance blockers: zero-error full strict application build, remaining module/domain payload contracts and optional Electron guards, primary desktop launcher, and real project/editing/playback/generation fixtures. Canvas unit tests use actual hooks/props/pointer handlers but control native canvas/image boundaries, so they do not establish browser pixels/photo decoding. Effect rendering remains incomplete (grid label / individual panel no-op), and pivot/clipping, persisted project/media round trips and live generation remain unverified. No owner/deadline is recorded and no commercial availability is claimed.
Reproduced build failures — 2026-10-03
At the main baseline cited below, Creative Studio cannot produce a production bundle or pass its strict TypeScript build. This is an existing source/contract problem, separate from the dependency updates in #70/#63 and the Electron launcher repair in #73.
Baseline source: ab9f613665cfd7d19b37b360fdff68c8541667d0. Linux, Node 24.19.0, npm 11.9.0. Installation succeeds with lifecycle scripts disabled and the existing legacy peer-resolution route.
npm --prefix creative-studio-ui ci --ignore-scripts --no-audit --no-fund --legacy-peer-deps
npm --prefix creative-studio-ui run build
npm --prefix creative-studio-ui run build:checkProduction bundle blocker
The clean/validate prebuild steps pass. Vite 7.3.6 then fails with ENOENT for src/providers/ComfyUIProvider, imported by AppProviders.tsx.
There is no existing ComfyUI provider/context implementation or consumer to redirect this import to. The current useComfyUI hook accesses the servers service directly. Decide how to reconcile the root provider composition with that actual implementation.
The active sequence-editor graph also references absent stores/editor/panelsStore and chatStore in SequenceEditor.tsx. Its other components reference toolsStore. Restoring those contracts requires real panel/chat/tool behavior or a deliberate reconciliation with the existing stores.
Strict typecheck blocker
./node_modules/.bin/tsc -b --pretty false reports 2,147 diagnostics before Vite can run in build:check:
- 538 references to undeclared
window.electronAPI. - 71 missing-module diagnostics.
- 301 invalid/missing export diagnostics (TS2305/TS2724/TS2614/TS2459).
- Further incompatible project/character/world/shot values and unresolved names.
The first errors are imports of Project from types/project.ts and ElectronAPI from types/electron.ts; those names are currently provided/aliased through types/index.ts, not exported by the imported modules.
The renderer compilation does not include the existing global declaration from electron/electronAPI.d.ts. Reconcile the renderer bridge with the actual preload API and browser-mode availability instead of masking the errors with broad any declarations.
At the main baseline, imports included corrupted names such as rea_ct, ./SceneS_elector, compone_nts/ui/slider, co_mponents/u_i/bad_ge. Draft #77 corrects these selected paths and malformed named imports. Other legacy wizard paths, missing exports and FFmpeg/media-service contracts remain unresolved.
Acceptance / review agenda
- Implement and test the provider/editor-store reconciliation in draft fix(studio): restore shared editor controls and root provider wiring #75.
- Restore the renderer's optional Electron bridge/core contract in draft fix(studio): restore production build and browser launcher #76.
- Repair all remaining broken import paths/exports and invalid domain payload use; fix(studio): restore corrupted import bindings and paths #77 repairs a verified group, fix(studio): restore editor control bindings for React 19 #78 selected editor controls and fix(studio): restore grid renderer data and redraw contracts #79 the two grid renderer contracts, but they do not complete this item.
- Produce production bundles with current-head CI and focused tests in drafts fix(studio): restore production build and browser launcher #76/fix(studio): restore corrupted import bindings and paths #77; this does not replace the failed full compiler check.
- Make full
npm run build:checksucceed on the same pinned head. - Verify bounded offline browser launcher startup on current heads of drafts fix(studio): restore production build and browser launcher #76/fix(studio): restore corrupted import bindings and paths #77.
- Verify the primary desktop launcher and a project/editing/generation fixture workflow; the browser startup check is not acceptance for video/comics/manga or live providers.
#73 restores the root Electron compile and a bounded splash smoke only. Drafts #76/#77 recover the bounded Studio bundle/browser launcher; full compilation, primary desktop and workflow gaps still matter when reviewing #70/#63. No owner or deadline is recorded for this repair.
Dependency-only baseline confirmation — 2026-10-03
Local integration uses exact #70 99feb3319e35a896bbdb4505a02a9fa452380329 plus exact #63 ca5b890a4fe010065a76294506abbde0b293ec3c and the source patch from #73 3a8cac25a11ed207192d443562f899cecb54aede. No dependency PR was merged.
Root and Studio installations pass using the commands above (root does not use --legacy-peer-deps). Locked versions are Axios 1.20.0, Undici 7.30.0 / root node-gyp Undici 6.29.0 and Electron 41.10.6. Root Electron compilation and all 13 splash unit tests pass locally.
Creative Studio npm run build still fails on the same missing ComfyUIProvider. Its 2,147 strict TypeScript diagnostics are byte-identical to the baseline after checkout-path normalization. No new diagnostic regression was observed in that dependency-only comparison, before the source repairs in #75/#76/#77. It is historical evidence, not the current source-repair status.
The #73 current-head CI run covers that PR's unchanged dependency locks (Electron 41.10.3), not this local combination. Its successful Linux splash smoke is not proof of a complete renderer/customer workflow.
Activity