Repository navigation
fix: the dashboard builds on macOS, a failed build says why; CI builds on macOS and with the newest dependencies (#659) - #660
Merged
Conversation
…ent @xyflow/react (#659) The launcher printed only the build's stderr, and tsc reports type errors on stdout, so "Production build failed:" stood alone. It now prints both streams and the exit code. With no build to serve, start() raises before it opens the browser, instead of the server failing later in StaticFilesComponent. The Flow's drag handlers took mouse events only; @xyflow/react 12.12.0 (within ^12.8.6) passes MouseEvent | TouchEvent, so tsc failed on an install without the lockfile. They are typed as OnNodeDrag now. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A second frontend job installs without the lockfile and runs npm run build, so an upstream release that breaks the build fails the PR. Changelog entry. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Member
Author
|
Local Codex review, round 1 ( Findings as reportedTarget: branch diff against origin/ui-rework No actionable regressions found. Read-only launcher checks, frontend type-checking, and targeted Ruff checks passed; full test suites and fresh dependency builds were not run. |
macOS ignores case in file names, so './PickedUpBy' also finds 'pickedUpBy.ts' there; Linux runners never see that. This job fails until the next commit renames the helper. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
npm 10, which Node 22 ships, crashes resolving the tree without a
lockfile ("Cannot read properties of null (reading 'edgesOut')" at
jsdom's optional peer canvas); npm 11 resolves it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…h.ts (#659) PickedUpBy.tsx and pickedUpBy.ts sat in one folder. On a file system that ignores case, './PickedUpBy' resolves to the .ts helper first, so tsc reported TS1149/TS1192/TS1261 and the build failed; Linux found the .tsx. The helper is named after its topic now, like form.ts and typeGroups.ts. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Member
Author
|
Local Codex review, round 2 ( Findings as reportedTarget: branch diff against origin/ui-rework No actionable regressions found. TypeScript checking and launcher smoke checks passed; Vitest was blocked by read-only temporary storage, and platform-specific CI builds were not verified locally. |
This was referenced Oct 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #659 (into
ui-rework, merged tomainwith #623).What was wrong
On a fresh clone on a Mac,
serve(dashboard=True)(the pizza example withUSE_DASHBOARD = True) printed "Production build failed:" with nothing after it, opened the browser, and then crashed inStaticFilesComponentwith "Static Files dir does not exist: .../src/flock/api/static".components/publish/heldPickedUpBy.tsx(the component) andpickedUpBy.ts(its helper). On a file system that ignores case (macOS, Windows),import PickedUpBy from './PickedUpBy'resolves topickedUpBy.tsfirst (.tsbefore.tsx), sotscfailed with TS1149, TS1192 (no default export) and TS1261. Linux finds the.tsx, so CI and the Linux worktrees were green. It came with Dashboard publish composer (#557 part 10) #567;mainhas no such pair.npm run buildistsc && vite build,tscreports type errors on stdout, and the launcher printed onlye.stderr.src/flock/api/static, the launcher still opened the browser, and the server failed later with an error that does not mention the build.package.jsonallows (@xyflow/react12.12.0; the lockfile has 12.8.6),tscfails twice inGraphCanvas.tsx:OnNodeDragnow passesMouseEvent | TouchEvent, and the drag handlers took mouse events only. A normal install keeps to the lockfile (also from the wheel, which ships it), so this hits only installs that do not.What changed
pickedUpBy.ts→reach.ts(and its test), named after its topic likeform.tsandtypeGroups.ts. No other module in the frontend differs from another only in case (checked overgit ls-files, extensions stripped).launcher.py: a failed build prints its exit code, stdout and stderr. In production mode,start()raisesRuntimeError("Dashboard build failed and there is no earlier build in …")before it opens the browser when there is nothing to serve; an earlier build is still served as before.GraphCanvas.tsx:onNodeDragandonNodeDragStopare typed asOnNodeDrag, so they build with 12.8.6 and 12.12.0.quality.yml, two new jobs next to Frontend Quality (which builds withnpm cion Linux):npm ciandnpm run buildonmacos-latest. On f787446 (before the rename) it failed with the same three errors as the Mac; on de78e78 it passes.npm install --no-package-lockandnpm run build. It installs with npm 11: npm 10, which Node 22 ships, crashes resolving this tree without a lockfile (Cannot read properties of null (reading 'edgesOut')at jsdom's optional peercanvas; reproduced locally with Node 22 and npm 10.9.9 on an empty cache). Without theGraphCanvaschange it fails with the two TS2322 errors (checked locally with Node 22 and npm 11).Checks
tscerror, then theRuntimeError, and no browser opens; without it the dashboard is served (title "🦆🐓 Flock 🐤🐧",/docs200).tests/test_dashboard_launcher.py: a failed build prints stdout and stderr;start()raises without a build and does not open the browser; it serves an earlier build. The first two failed before the change.npm test: 756 passed;npm run type-checkclean;uv run poe test: 3346 passed, 78 skipped.uv run poe lintreports the same 59 findings asui-reworkbefore this PR, none in the changed files.The commit 6871592 also holds the renames (
git mvhad staged them), and de78e78 the imports that go with them, so 6871592 alone does not build.🤖 Generated with Claude Code