chore: blog dead-weight purge + TIN-3914 exception (2026-08-28) - #264
Merged
Merged
Conversation
The v2 workflow estate pins runs-on: ubuntu-latest at 17 sites. Record that as a dated exception with its closing condition instead of leaving it to read as compliance, and add validate-blog-dates.yml to the Cross-Repo Delivery Ownership register, which was the only workflow missing from it.
packages/blog-agent/.agentuity/app.js is a 3.85 MB compiled bundle from the 2026-03-04 deploy of commit c938d4f, stale against src/ ever since. The package rebuilds it on deploy (npm run deploy = agentuity cloud deploy --dir .), and its own .agentuity/AGENTS.md documents agentuity build as the way to regenerate it. Ignore the whole build directory instead of only its source map.
These ran once during the WordPress import: placeholder cleanup, feature-image backfill, category assignment, code-fence conversion, entity fixes, image relacing, and the birdphoto download. Nothing references them - no package.json script, BUILD file, Justfile recipe, workflow, or doc - and their only remaining mentions were each other's header comments. The wayback/media-recovery scripts that still have Justfile entry points are untouched.
Seven write-once dated notes had no inbound link from any file in the repo: the tinyvectors trio, the April package-authority audit, the blog-authoring/Linear investigation, the 2026-07-14 federation reconciliation snapshot, and the static-post ingest note that already corrected itself to fallback evidence. Move them under docs/archive/ so the top level reads as current contracts only, add a short docs/README.md saying what is live versus archived, and mark build-metrics.md superseded now that Vite 8 has shipped.
…cked npm scripts The Justfile duplicated check/test/test-e2e with raw npx vitest/playwright recipes that CI never runs; they now call the same remote:check / remote:test / remote:e2e package scripts CI uses. build is untouched. The wayback/media-recovery recipe cluster is preserved (no other entry point).
Owner
Author
|
Two while it's still draft:
|
Owner
Author
|
Fixed at HEAD: the Justfile commit subject now says check/test/test-e2e (build untouched), and AGENTS.md states the hosted-runner exception as an invariant (hosted only where no self-hosted pool serves the job class) with the hand count dated, so #263's three new sites cannot silently stale it. |
Jesssullivan
force-pushed
the
jess/blog-dead-weight-purge-20260828
branch
from
August 28, 2026 19:52
342105d to
b9a5e41
Compare
Jesssullivan
marked this pull request as ready for review
August 28, 2026 20:16
Jesssullivan
added a commit
that referenced
this pull request
Aug 28, 2026
Jesssullivan
added a commit
that referenced
this pull request
Aug 28, 2026
Jesssullivan
added a commit
that referenced
this pull request
Aug 29, 2026
…ness fail (TIN-161) TIN-161, the "ship truthful performance/license surfaces" half. Two static pages in this repo described the build and were allowed to go on describing a build that no longer existed, because nothing checked them. **`THIRD-PARTY-LICENSES.md` was hand-maintained and had drifted badly.** As of `origin/main` it listed `shiki 3.22.0` against a resolution of 4.2.0, `vite 6.4.1` against 8.0.14, `svelte 5.50.1` against 5.55.4, `sharp 0.33.5` against 0.34.5, carried `mermaid` as a RUNTIME dependency it has not been for some time, and published 18 of 42 direct dependencies. It is now generated. `scripts/truth-surfaces.mjs` derives every row from `package-lock.json`: the package and its declared range from `package.json`, the resolved version and the `license` string from the lockfile entry for that exact resolution. The npm lockfile is the right source here because it is current with `package.json` and the pnpm resolutions AND carries a per-package license field, which `pnpm-lock.yaml` does not. Regenerate with `node scripts/truth-surfaces.mjs --write`. A package whose lockfile entry declares no license prints as `UNDECLARED` and is never guessed — five resolved packages are in that state and the document now names them instead of quietly implying MIT. The page also publishes the license histogram for the full 1,150-package resolved tree. **`docs/build-metrics.md` was a February snapshot titled "Baseline".** `main` had already added a prose "Superseded" note (#264); this makes the staleness machine-checked instead of remembered. The page now declares a `Status`, a capture date, and the toolchain it was captured against — `vite ^6.4.1`, `svelte ^5.19.0`, `@sveltejs/kit ^2.16.0`, read from `9aac474:package.json`, the commit that added the file, so the comparison is declared-range against declared-range rather than range against resolution. The check fails in BOTH directions: a toolchain bump without a recapture must carry STALE, and a page that carries STALE once the toolchain matches again must drop it. No permanent warning that nobody reads. `scripts/truth-surfaces.test.mts` covers it, and half the cases exist to prove the guard can go red — a check only ever observed passing is an unfailable assertion. `BUILD.bazel`'s `vitest_srcs` and `scripts/run-vitest-bazel.mjs` gain the two documents so they reach the Vitest sandbox next to `package-lock.json`. Verification (plain node 22; `node_modules` is not installed on this machine so vitest itself was not run here — the test's fixtures and assertions were ported 1:1 to a harness and executed): $ node scripts/truth-surfaces.mjs truth surfaces OK 12/12 harness cases pass, including: a lockfile version bump with a stale document goes red; an undeclared license renders UNDECLARED and NOT MIT; a moved toolchain without STALE fails; an unjustified STALE marker fails; a metrics page that will not name its toolchain fails; and the real tree publishes a row for all 42 direct dependencies with none unresolved. **Out of scope here, and why.** The other TIN-161 bullets — mermaid prerender, `sharp`-unreadable images, Pagefind skipping `/` and `/consultancy.html`, and the large-chunk/post-import warnings — all need a real build to triage honestly, and this machine cannot run one. Two of them look to have moved since the audit and want re-derivation rather than a fix: `puppeteer` is now a direct devDependency (`^24.43.1`), `scripts/render-mermaid.mts` carries an explicit "Cannot find package 'puppeteer'" degradation path, and there is a `puppeteer_chromium_smoke` bazel target. Stated as observations, not as a closure. CI pending.
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.
Source-only cleanup pass. No workflow behaviour changes, no post bodies touched, no serving-state surface involved.
docs(agents)runs-on: ubuntu-latestsites as a dated TIN-3914 exception with its closing condition; addvalidate-blog-dates.ymlto the Cross-Repo Delivery Ownership registergrep -c 'runs-on: ubuntu-latest' .github/workflows/*= 17 across all 10 workflows;validate-blog-dates.ymlwas the only workflow absent from the register tablechore(blog-agent)packages/blog-agent/.agentuity/app.js, gitignore the whole.agentuity/build dirc938d4f, stale againstsrc/since.npm run deploy=agentuity cloud deploy --dir .; the bundle's own.agentuity/AGENTS.mddocumentsagentuity buildas the way to regenerate it;app.js.mapwas already gitignored. No reference outside the packagechore(scripts)package.json, anyBUILD.bazel,Justfile,.github/workflows/**, or docs. Only surviving mentions were each other's header commentsdocsdocs/archive/, adddocs/README.mdindex, bannerbuild-metrics.mdas supersededtinyland-pulse-*cluster, editorial taxonomy) and the undated operator docs stay at the top levelchore(justfile)check/test/test-e2eatremote:check/remote:test/remote:e2ejust check/test/test-e2eran rawnpx vitest/npx playwright, bypassingscripts/bazel-cache-backed.sh, so a local pass proved something CI never runs. Wayback/media-recovery cluster untouched — it has no other entry pointDeliberately kept:
docs/blog-node-shadow.mdanddocs/dns-architecture.mdhave no inbound links but are undated live operator references, not write-once notes.docs/tinyland-pulse-media-object-lifecycle-2026-05-03.mdis unreferenced but is a member of the live Pulse contract cluster it links into.packages/blog-agent/.agentuity/{AGENTS.md,agentuity.metadata.json}stay tracked (agent and deployment identity), even though the directory is now ignored.just test-e2e-file/test-e2e-headedstay on raw Playwright, relabelled as debug affordances.Checks (local):
npm run lintclean.bazelisk test //:workflow_authority_testsPASSED (13.1s, disk cache — this host is not GF-enrolled, soscripts/bazel-cache-backed.shfails closed as designed and the target was run through plain local Bazel).just --listparses with the wayback cluster intact.