v1.0.0-rc.6
Pre-release
Pre-release
·
4 commits
to main
since this release
Blockingmachine v1.0.0-rc.6
Sixth release candidate for Blockingmachine 1.0, focused on rule engine correctness, deduplication precision, and publishing hygiene. This release resolves a long-standing tie-breaking flaw in the rule selection engine, closes a canonical key collision in scriptlet deduplication, and eliminates duplicate package listings on GitHub Packages. All 565 automated tests pass.
Highlights since RC 5
-
Rule Engine:
selectBestRule—$importantPriority Fix (@blockingmachine/core):RuleDeduplicator.selectBestRulepreviously failed to prefer$important-flagged rules over equivalent non-$importantvariants when provenance scores were equal, causing the wrong representative rule to be selected during deduplication.- Added an explicit
$importantpriority check before suffix-pattern and score comparisons, ensuring||domain.com^$importantalways wins over||domain.com^in a merge group.
-
Rule Engine: Scriptlet Whitespace Normalization (
@blockingmachine/core):RuleDeduplicator.stripRulepreviously generated distinct canonical keys for identical scriptlet rules that differed only in internal whitespace (e.g.,##+js(set, admiral, noopfn)vs##+js(set, admiral, noopfn)), causing functionally-duplicate scriptlet rules to survive deduplication.- Scriptlet payloads are now collapsed to a single canonical whitespace form (
payload.replace(/\s+/g, ' ').trim()) before key generation, correctly deduplicating all equivalent scriptlet variants.
-
Duplicate Package Fix — GitHub Packages Publishing:
scripts/publish-gpr.mjspreviously published each package under three separate names (@greigh/blockingmachine-core,@greigh/core,@blockingmachine/core), resulting in four package listings on GitHub Packages instead of the expected two.- Simplified to publish only under the canonical
@blockingmachine/coreand@blockingmachine/clinames, matching the package scope declared in each workspacepackage.json.
-
CI: Release Notes Lookup Fix (
.github/workflows/publish.yml):- Replaced the fragile string-manipulation release notes filename derivation with a robust
grep -oPpattern that correctly maps anyv1.0.0-rc.Ntag toscripts/release-notes-rcN.md. - Updated the workflow fallback tag from the stale
v1.0.0-rc.4tov1.0.0-rc.6.
- Replaced the fragile string-manipulation release notes filename derivation with a robust
-
Test Suite Expansion:
- Added regression coverage for
selectBestRule$importanttie-breaking. - Added regression coverage for scriptlet canonical key whitespace equivalence.
- 565 automated tests passing across 23 test suites (100% pass rate).
- Zero TypeScript diagnostics, zero ESLint errors.
- Added regression coverage for
Downloads & Assets
| Asset | Description |
|---|---|
Blockingmachine-1.0.0-rc.6-arm64.dmg |
macOS Apple Silicon installer |
Blockingmachine-darwin-arm64-1.0.0-rc.6.zip |
macOS Apple Silicon standalone app |
blockingmachine-core-1.0.0-rc.6.tgz |
Core library NPM package |
blockingmachine-cli-1.0.0-rc.6.tgz |
CLI executable NPM package |
blockingmachine-chrome-mv3-v1.0.0.zip |
Chrome Manifest V3 extension |
blockingmachine-firefox-mv3-v1.0.0.zip |
Firefox Manifest V3 extension |
SHA256SUMS.txt |
SHA-256 verification checksums |