Skip to content

chore(tinyvectors): retire the npm lane — registry tag archive at v0.3.5 - #242

Open
Jesssullivan wants to merge 3 commits into
mainfrom
chore/tinyvectors-registry-lane
Open

chore(tinyvectors): retire the npm lane — registry tag archive at v0.3.5#242
Jesssullivan wants to merge 3 commits into
mainfrom
chore/tinyvectors-registry-lane

Conversation

@Jesssullivan

Copy link
Copy Markdown
Owner

Last consumer migration for the npm retirement (TIN-3165); pattern of record from dsa-woodshed.space#49 + GFTB#152.

Changes: tarball pin to the registry-named v0.3.5 archive; integrity-verified prepare hook (sha256 hard-fail, byte-identical tree proof, dist from verified bytes; adapted to this repo's npm rail + pacote rename allowance); MODULE.bazel lockstep; Bazel site lanes consume the hermetic @tummycrypt_tinyvectors//:pkg via a new override seam.

Behavior deltas (flagged, intended): dark mode finally engages the screen blend — 0.2.3 only watched a .dark class this site never sets, 0.3.5's multi-signal detection matches the existing data-mode signal with zero new wiring (verified in the built bundle). enablePointerPhysics={false} pinned to suppress the new default-on pointer physics. The 0.3.0 gel-feel motion character comes with the version line.

Validation (adversarially double-verified): npm ci fresh install with zero npmjs fetches for tinyvectors + corrupted-pin negative test exit 1; vite build + lint green; Bazel: //:pkg, vite-build smoke, svelte-check, vitest, workspace checks, and //:playwright_chromium_e2e 10/10 incl. all four Blob Background specs all PASSED; render verdict under GitHub-Pages semantics with light/dark screenshots.

Follow-ups noted, not in scope: the two dev-only @tummycrypt/vite-plugin-*@0.2.2 deps still resolve from npmjs (same retirement treatment later); no parity guard yet tying MODULE.bazel/pin/SRI (woodshed's script is the template); non-site workflows pay the one-time hook build (~60-90s) — trimmable with --ignore-scripts later.

Executes the 2026-07-25 channel decision (TIN-3165): tinyvectors now
resolves from the exact GitHub tag archive the bazel-registry names,
with the integrity-verified prepare hook (sha256 hard-fail against the
registry pin, byte-identical tree proof, dist built from verified
bytes). MODULE.bazel lockstep at 0.3.5; Bazel site lanes consume the
hermetic @tummycrypt_tinyvectors//:pkg via the new override seam.

Behavior deltas from 0.2.3, flagged: dark mode finally engages the
screen blend (0.3.5 multi-signal detection matches this site's
data-mode signal — 0.2.3 only watched a .dark class that never
existed here); enablePointerPhysics pinned false to suppress the new
default-on pointer physics; 0.3.0 gel-feel motion character comes
with the version line.

npm ci fresh-install proof: zero npmjs fetches for tinyvectors,
negative pin test exit 1; vite build + lint green; Bazel lanes
all PASSED incl. 10/10 e2e with the four blob specs.
@Jesssullivan
Jesssullivan enabled auto-merge July 25, 2026 13:48
Both container builds ran their npm install before COPY'd sources, so
the new root prepare hook (scripts/build-tinyvectors.mjs) was absent at
install time and the shadow-image build failed with Cannot find module.
Same defect shape the GFTB review caught in its ContainerFile; the
script now lands ahead of npm install/ci in both files.
Unblocks the production-scoped npm audit gate (GHSA-c2j3-45gr-mqc4,
low). Calendar-driven: the advisory published after main's last CI run
(July 17), so the gate fails on any branch today regardless of diff.
8-line lockfile bump via npm audit fix; npm ci + full site build green
with the verified tinyvectors hook.
@Jesssullivan

Copy link
Copy Markdown
Owner Author

Credential replacement is now bounded in #243: a dedicated Contents-read GitHub App installed only on Jesssullivan/spear-resumes, exact-ref checkout, and Bazel --override_module=spear_resumes=<absolute-path>. This PR should remain open until both affected workflows prove that path green; do not rotate or delete the existing deploy key first.

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.

1 participant