Skip to content

THE NEW (48s deterministic film) + fix CI that was broken on main - #5

Draft
Dylusive wants to merge 5 commits into
mainfrom
claude/the-new-film
Draft

Dylusive wants to merge 5 commits into
mainfrom
claude/the-new-film

Conversation

@Dylusive

@Dylusive Dylusive commented Nov 3, 2026 •

Copy link
Copy Markdown
Owner

THE NEW

Adds the-new/: an editable, seeded Three.js project that renders the 48 s film frame by frame in headless Chromium, plus a score synthesized in Node and an ffmpeg mux. The rendered THE_NEW.mp4 is included (1280×720, 30 fps, 1440 frames, H.264 + AAC).

  • renderFrame(f) is a pure function of the frame number, driven by one SEED, so the film renders in parallel chunks.
  • The white flash is frame 630, and the score's impact starts on sample 1,008,000 (the same frame).
  • QA stills and the written ban-list critique are in the-new/README.md.
  • The code follows the repo's ESLint/Prettier rules. Its imports are checked against its own package.json via the-new/.eslintrc.cjs. Lint and formatting changes left the rendered output byte-identical.

CI fixes (every check was failing on main too)

  1. setup-node cache 400. The pinned actions/setup-node (v2) calls GitHub's retired cache API. setup-node and checkout are repinned to v4.4.0 in all workflows and in .github/allowed-actions.js.
  2. package-lock-lint. node-version: 16.x now resolves to Node 16.20 / npm 8.19, which rejects this lockfile's graphql peer ranges. That workflow (and os-ready-for-review) is pinned to 16.13.x like the rest. Under npm 8.1.2 the lockfile is confirmed in sync.
  3. Archived Enterprise routing (28 tests). GitHub moved the archives from help-docs-archived-enterprise-versions/<ver>/ to per-version sites at docs-ghes-<ver>/, and the old host returns 404. Both archive proxies now build the URL through lib/get-archived-version-url.js.
  4. Content lint. content/bloom-wildfire-system-prompt.md moved to bloom-wildfire/system-prompt.md. It isn't a docs page, and every file under content/ needs title/versions frontmatter.

Local results under Node 16.13.2: build ✓; linting, meta, unit, content, graphql, rendering and translations all pass. Routing went from 28 failures to 2, and those 2 are timeouts caused by the sandbox network proxy (no assertion failures). CI on this PR is the real check for them.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Y6YyEVAXqe6fYzp5T2aaGW

…QA stills

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y6YyEVAXqe6fYzp5T2aaGW

Dylusive commented Nov 3, 2026

Copy link
Copy Markdown
Owner Author

CI note: test (linting), test (content) and test (meta) all fail in the actions/setup-node step with ##[error]Cache service responded with 400. That happens before checkout finishes installing dependencies and before any test or linter runs.

This doesn't come from this PR. The workflow pins Node 16.13 with cache: npm on a deprecated setup-node/save-state action, and the runner's cache service refuses the request. This PR only adds files under the-new/ and doesn't touch the workflow, package.json at the root, or any content the docs tests read. This branch doesn't carry a fix; the fix is to bump actions/setup-node (or drop cache: npm) in the workflow, which I'd keep out of this PR unless you want it here. I tried to re-run the failed jobs, but the integration got a 403, so this needs a manual re-run or the workflow bump.


Generated by Claude Code

actions/setup-node@v2 (pinned SHA) calls GitHub's retired cache API, which
now returns 400 and fails every job before tests run. Repin setup-node and
checkout to v4.4.0 across workflows and the allowed-actions list.

the-new: conform to the repo's ESLint/Prettier config and resolve its imports
against its own package.json. Rendered output is unchanged (score.wav and
frame hashes identical before/after).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y6YyEVAXqe6fYzp5T2aaGW
- package-lock-lint / os-ready-for-review: pin Node 16.13.x like every other
  workflow. 16.x now resolves to 16.20 (npm 8.19), which rejects this
  lockfile's graphql peer ranges; npm 8.1.2 confirms the lock is in sync.
- Archived Enterprise proxy: GitHub moved the archives from
  help-docs-archived-enterprise-versions/<ver>/ to per-version Pages sites at
  docs-ghes-<ver>/; the old host 404s, failing 28 routing tests. Route both
  page and asset proxies through a small helper that builds the new URL.
- Move bloom-wildfire-system-prompt.md out of content/: it is a personal
  document, not a docs page, and the content linter requires title/versions
  frontmatter for every file there.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y6YyEVAXqe6fYzp5T2aaGW
@Dylusive Dylusive changed the title THE NEW — 48s deterministic film in Three.js + synthesized score THE NEW (48s deterministic film) + fix CI that was broken on main Nov 4, 2026
The Enterprise/GHEC/GHAE search tests open their own tab with
browser.newPage() and never close it, which leaves the shared `page` as a
background tab. Chrome gives background tabs no requestAnimationFrame, and
Puppeteer's waitForSelector polls on rAF by default, so every later test
that waits on the DOM timed out at 60s (8 failures in CI).

Close extra tabs and bring `page` to the front after each search test.
Locally the 8 tests now pass even when the search tests before them fail.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y6YyEVAXqe6fYzp5T2aaGW

Dylusive commented Nov 4, 2026

Copy link
Copy Markdown
Owner Author

Update on CI. The setup-node cache failure I described earlier is fixed in this PR: setup-node and checkout are now pinned to v4.4.0. Fixing it let the real test suites run, which exposed three more problems that already existed on main. Those are fixed here too (package-lock Node pin, archived-Enterprise URLs, browser tests left hanging by unclosed tabs). Details are in the PR description and commit messages.

One check can't go green from this branch: filterContentDir. Its workflow uses the pull_request_target trigger, so GitHub runs the workflow file from main (the log shows it checking out 153498f with the old setup-node@270253e), not from this PR. It will keep failing with the cache 400 until this PR merges and main has the updated workflow.


Generated by Claude Code

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.

2 participants