v0.118.1 — v0.118.0's leftovers, and a web build that fits its heap
Merged 2026-10-05 (120a0c3b, tagged v0.118.1) — a hotfix built on version/0.118.1. Pushed; CI green.
A hotfix on version/0.118.1. v0.118.0 merged through GitHub (PR #79) rather than the squash-and-tag flow, and its first CI run on main failed before anything deployed. This release gets it to production and finishes what the merge skipped.
- [x] Release bookkeeping v0.118.0 skipped:
- Its notes move to docs/help/changelog/v0.118.0.md, with a line under Released.
- The roadmap no longer calls it in flight, and the near-term table gains its row.
handoff-v0.118.0/, the resume guide for the machine switch, is deleted. Its README said to delete it before the merge.- Its tag,
v0.118.0, goes onac26eae2.
- [x] CI's web build gets the 6 GB heap the deploy builds have.
lint-and-testdied inpnpm build:appswith "JavaScript heap out of memory" while rendering chunks. The bundle grew from 10,795 modules to 10,838, past Node's default ~2 GB. The deploy jobs already had--max-old-space-size=6144(v0.107.2), but this step and the e2e rebuild did not.- Done:
Build appsandEnd-to-end smoke tests(whoseplaywright.config.tsrebuilds apps/web) inci.ymlsetNODE_OPTIONS: --max-old-space-size=6144. Reproduced locally:vite buildat 2 GB dies the same way; at 6 GB it builds, peaking at 2.5 GB resident.ciWebBuildHeap.test.tssplits every workflow into steps and holds each one that builds apps/web (build:apps,--filter @purple-cat/web run build,test:e2e) to the 6 GB heap. It also checks that it still finds all five.
- [x] The last of the publishing machinery in the in-repo modules.
- v0.118.0's M.5 notes say no
platformRefwas left to drop, but dnd5e'spackage.jsonstill had"platformRef": "v0.107.0", and three comments still justified code by it. - Done: dnd5e 0.21.1 drops
platformReffrom itspurple-cat-moduleblock. Nothing read it after the publish job went. The comments incore/buffs.tsandclient/sheet/bits.tsxnow say the structural typing was for the old published platform. The code is unchanged: it still works, and importing the shared types instead is an optional cleanup. v0.118.0's notes carry the correction.- Also:
scripts/fix-system8-hp-bar.sqlnames the system8 fixture atmodules/system8/, not in vtt-modules.
- Also:
- v0.118.0's M.5 notes say no
- [x] A script to retire the module-checkout secrets.
MODULES_TOKEN_PCGandMODULES_TOKEN_KENJURAare no longer read by any workflow (M.4).- The org's
PKG_TOKENstays, because genai's publish still reads it. The vtt-modules and system5 publish jobs that also read it are gone. - Done:
scripts/secrets/retire-modules-tokens.shlists the repository's secrets and reads every workflow on its default branch throughgh api. It refuses if any still reads one of the two (secrets.<NAME>; a mention in a comment does not count). It is a dry run unless given--yes, deletes only the ones present, and ends by reminding you to revoke the PATs themselves, which deleting the secret does not do. Dry-run against the real repository: both present, no readers.retire-modules-tokens.test.shruns it against a stubgh(dry run,--yes, a reader, a comment-only mention, one already gone, none, a bad argument).shellTests.test.tsruns it in the gate.infra/envs/nonprod/README.mdpoints at it.- Not scripted: narrowing
PKG_TOKENto genai. Changing an org secret's visibility can need its value re-entered, so that is left to the owner.
- Sibling repositories, merged outside this repo (fast-forwards of the branches M.5 pushed; nothing is published or tagged). Pushing each
mainis the owner's call:- vtt-modules
main→341822a(Repository 0.3.0, vtt-assets alone). The repo-widev0.3.0tag is historical and already taken, and only<module>/v*tags publish, so it gets no tag. - system5
main→57b189c(the module moved to the platform). Its docs deploy runs on push and does not readmodule/.
- vtt-modules