mirror of
https://github.com/pbakaus/impeccable.git
synced 2026-09-12 14:16:28 +03:00
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Vau2X53xGTjjTCXWMVBoNY
3.6 KiB
3.6 KiB
Cutover: shipping the Rust engine (the maintainer's checklist)
State as of 2026-09-03. Everything below rust-swap is verified and pushed;
nothing irreversible has happened: no engine tag, no npm publish, no merge.
The detector is open source (the closed-core mechanism was built, measured,
and removed the same week; the private impeccable-detector repo is archived
as the record). The old impeccable-dist channel is archived too.
Steps, in order
- Rebase and final drift check.
git fetch && git log --oneline 94b7f34f..origin/main -- skill/scripts scripts/lib(nothing had landed as of 2026-09-03). Rebaserust-swapontoorigin/main. - Engine release.
bun run release:engine(clean tree, pushed, tag free,package.jsonplatform pins equalENGINE_VERSION). It tagsengine-v<ENGINE_VERSION>;.github/workflows/release-engine.ymlbuilds the five binaries (darwin-arm64, darwin-x64 on the arm64 runner, linux-x64 and linux-arm64 musl, windows-x64) and publishes them with.sha256sidecars on this repo's Releases. Check:bun run check:engine-releasepasses its binary half. - npm. Create the
@impeccablescope if it does not exist,npm login, then publish the five@impeccable/cli-<os>-<arch>platform packages from the release assets (cli/platform-packages/holds the templates at version0.0.0-engine; stampENGINE_VERSION, put the binary atbin/,npm publish --access public). Then theimpeccableshim throughbun run release:cliplusnpm publish.bun run check:engine-releaseis fully green after this. - Clean-HOME launcher check.
rm -rf ~/.impeccable/bin, then runskill/scripts/impeccable contextfrom any project: it must download fromengine-v<X>and run. - Merge
rust-swapintomain. The sync workflow regenerates the provider directories (they still carry copies of the retired JS engine; the sync rewrites them). CI'srust,rust-windowsandoraclejobs are required already. - Version bumps and changelog for skill, CLI and extension. The
extension is the wasm-core shell now (manifest held at 1.3.3; the bump
plus a Web Store resubmission for the new
offscreenpermission are yours). Flipengine-release-readyto required. - Housekeeping. Revoke the fine-grained PAT
impeccable-detector-releasein your GitHub settings (created for the closed-core release flow; its secret is already deleted).
What to know
cargo xtask bundleregeneratescrates/live/assets/detect-antipatterns-browser.js(tracked) andextension/detector/(vendored at build).bun run build:extensionruns it; CI installswasm-packfor that.- The oracle replays byte-for-byte on macOS and Linux (795 cases on macOS,
794 plus one platform skip on Linux).
tests/oracle/DELTAS.mdrecords the two goldens re-recorded when the harness started staging workspaces at their real path. - The Firefox extension zip is packaged and lint-clean but cannot run the offscreen-document design; a Gecko fallback is future work before an AMO release.
- Pristine consumes this engine as a wasm module built from a git revision
pin (branch
rust-enginein the pristine repo): itsrules/crate linksimpeccable-core,impeccable-wasm(detectfeature) andimpeccable-bundlewith its own rule pack, andbun run engine:bumpmoves the pin (a weekly workflow opens the PR). No engine code is copied there. Untilrust-swapmerges, that pin points at arust-swapcommit; after the merge, switch the bump script's branch constant tomain.