Archilyzer · Source

archilyzer

Archilyzer
git clone https://archilyzer.pages.dev/source/archilyzer.git
Log | Files | Refs | README | LICENSE

commit bbced06d6293d7bbed12a7a6926cf09e4af0dc6c
parent d9a43d20b58079581ef70f85d17a23cf2e4a6a6f
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date:   Wed, 30 Sep 2026 20:35:09 -0400

plans: release 13 slice W3 brought to main — the merge's four conflicts and how each kept both sides, what moved under the slice, the re-gate (the build image built for real, 1.66 GB in 69 s cold; common 2,396; the capped editor build; e2e 40/40)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>


Diffstat:
Mplans/release-13.md | 85+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 85 insertions(+), 0 deletions(-)

diff --git a/plans/release-13.md b/plans/release-13.md @@ -526,4 +526,89 @@ the primary was running a live six-site build and deploy. - **The two editor host paths upload to R2 before the check** (above). Moving a check ahead of the upload there is an `editor/app` change. +#### Brought to main (2026-09-30) + +Release 13's W slices were reviewed SHIP on 2026-09-28 and never merged. `main` then moved through +releases 14, 15 and 16 and the 0.11.0 cut. This brings the branch to today's `main` and proves it +again. It is a merge, not a rebase, so the reviewed commits keep their shas. + +**The merge:** `f7a047ee` merges `main` `7a77536b` (238 commits) into the branch tip `83ee15ef`. +Git marked four content conflicts and no modify/delete conflict. Each was resolved by keeping both +sides. + +| File | Conflict | Resolution | +|---|---|---| +| `common/bin/doctor.ts` | Three hunks against SG's source-publish block: the `DoctorDeps` fields, the section, and the helpers | Both kept. `DoctorDeps` has W3's `buildImage`, `dockerfileChanged` and `now`, then SG's `sourceTools`. The sections run umtool, **build image**, **source publish**, then ports: W3's block stays right after umtool's and SG's stays right before the ports. The helpers are W3's (`probeBuildImage`, `parseEngineTime`, `dockerfileChangedAt`, `shellQuote`, `stamp`, `ago`, `gigabytes`) and then SG's (`probeSourceTools`, `dirSizeText`); no name is defined twice. DT's drive-health line, in the corpus block, merged with no conflict. | +| `common/bin/doctor.test.ts` | W3's seven tests against SG's source-publish test, the social-icons test and DT's drive-health test | All kept, in that order: 8 + 7 + 3 = **18**. main's two tests that call `collectDoctorReport` directly (source publish, social icons) now also pass `buildImage: noEngine`. Without it they would ask the machine's real container engine, and W3's rule is that a unit test never does. | +| `common/publish/build.test.ts` | The import lines: W3 added `readFileSync`, `tmpdir` and `runChildIntoLog`; main used `os` | One import block. W3's two `tmpdir()` calls now read `os.tmpdir()`, as main's do. 10 + 2 + 2 = **14** tests. | +| `editor/CHANGELOG.md` | The cut renamed the old `[Unreleased]` to `[0.11.0]`, and W3's four bullets sat in it | W3's four bullets moved to a fresh `## [Unreleased]` above `## [0.11.0]`, which is now exactly main's (`git diff main` on the file adds only those six lines). | + +**Also touched by both sides, merged by git:** +- `common/publish/build.ts`: W3's import, `runDeployIntoLog`'s check, `dockerBin(env)`, + `buildImageArgs`, `ensureBuildImage` and Phase C's check. `git diff main` on the file shows only + W3's hunks. On the merged tree, the call sites of `runDeployIntoLog` (four), + `builtSiteProblem` (two) and `builtBundleProblem` (two) are the same as on the branch, so main + added no path that deploys a site bundle. +- `PUBLISH.md`: W3b's container paragraphs, beside SG's source-mirror history. `git diff main` + shows only W3's two hunks. + +**What moved under W3, and why nothing yields:** +- main's `.dockerignore` gained the homepage's published source (`homepage/public/source/`, + `homepage/.source-publish.json`). `Dockerfile.build.dockerignore` admits nothing under + `homepage/`, so it needs no change. +- No file tracked under `common/` or `export/` matches one of the allow-list's exclusions, by + `git ls-files`. `export/public` still tracks only the five svgs. +- The export build reads nothing new from outside `common/` and `export/`. Since the fork, no + package manifest changed except `editor/package.json` (DS's `UV_THREADPOOL_SIZE`), and neither + did the lockfile or `export/next.config.ts`. DX's compose changes are URL strings. The image's + `pnpm install` layer is therefore the same. +- Nothing of main's was removed or rewritten. The only line of W3's that changed is the + `os.tmpdir()` spelling. + +**Gates** (logs `$T/w3-*.log`, all from the worktree root): +- **tsc** (all workspaces): clean on the merged tree before the merge commit, 137 s + (`w3-tsc-1.log`). +- **Unit:** + + | Suite | Result | + |---|---| + | `buildImage`, `builtExport`, `build`, `doctor` tests | **46/46**, 12 s (2 + 12 + 14 + 18) | + | common | **2,396/2,396**, 146 s. That is main's 2,381 (release 16's last count) + W3's 15. | + | editor unit (`app/**/*.test.ts`) | **101/101**, 9 s | + | `test:scripts` | **194 passed, 2 skipped** of 196, 12 s. The skips are umtool's trace check (no umtool build in this worktree) and the `LIVE=1` archive check. | + | mcp | **271/271**, 45 s | + +- **The build image, built for real** (`w3-docker-build.log`, `w3-docker-build-cold.log`). + `docker build -f Dockerfile.build -t archilyzer-build:w3-check .` from the worktree at `f7a047ee`. + - **With the build cache: 15 s.** The base, apt, pnpm and `pnpm install` layers were cached from + W3b, since the lockfile has not moved; `COPY . .` onward ran. + - **`--no-cache --pull`: 69 s.** apt 6.8 s, pnpm 6.0 s, `pnpm install --frozen-lockfile` 23.6 s, + and the layer export 28.4 s. + - **Size: 1,655,428,299 B (1.66 GB)** from `docker image inspect --format '{{.Size}}'`. The + cached build was 1,655,410,190 B. W3b's was 1,654,559,800 B, and the live image is 7.72 GB. + - `COPY . .` is **7.91 MB** (W3b: 7.14 MB) and the chmod layer 1.12 MB. `/repo` holds 849 files + outside `node_modules`: releases 14–16 added code to `common/` and `export/`. + - Inside it: node **v22.23.2** and pnpm **11.26.0**. `/repo` is `common docker export + node_modules` and the four root manifests, and `/repo/export/public` is the five svgs. + - **No site build ran through it.** The tag was removed with `docker rmi`, along with the first + build's image, which the cold build's re-tag had left untagged. + `yt-dlp-transcript-browser-build` is untouched: still `ddb3fbce9f60`, from 2026-07-07. +- **The doctor on the merged tree** (`w3-doctor.log`, run from the worktree, so no corpus). It + exits 0, and its sections run workspace, corpus, settings, social icons, tools, report pipeline + (umtool), build image, source publish, then ports. The build-image line is a note: the live + image predates `Dockerfile.build`'s last commit (W3b's). +- **The editor's `next build`**, because the editor bundles `publish/build.ts` and + `lib/builtExport.ts` (it does not import `doctor.ts`). It ran with the primary's `transcripts/` + linked in (`ln -sT`) and was capped at 5 GB with no swap: **119 s, max RSS 1,648,884 KB**, + exit 0. None of its 81 traces names the corpus. The link was removed after the build, and + nothing ran through it. +- **e2e:** W3's record names no spec, since its proof was the fixture Build all. This run covers + the editor's paths into W3's changed code: the deploy refusals through `builtSiteProblem` + (`ops-api`), the Build all controls (`deploy-page`) and the publish tab's cannot-deploy line + (`site-scope`). It ran detached and queued. + + | Run | At | Specs | Result | + |---|---|---|---| + | 1 | `f7a047ee` | `ops-api`, `deploy-page`, `site-scope` | **40 passed**, 0 failed, 3.2 min; 7.6 min wall, of which 4.3 min waiting in the queue behind W1 | + ## Rollout