From 35ab18613d663d453a8118062859dc6c1396daf9 Mon Sep 17 00:00:00 2001 From: Aryam Goyal Date: Sun, 2 Aug 2026 14:46:09 +0530 Subject: [PATCH] release: FixMap v0.8.7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Publishes the vendored-bundle detection fix. It was merged to main before this release, and for a short window the website changelog described it as shipped while npm still served 0.8.6 without it — the #274 defect with its polarity reversed, advertising a fix the released artifact lacked rather than an accuracy figure it no longer achieved. The website changelog loses its "Unreleased / In progress" section, and the render branches that produced "Coming next" are removed rather than left unused. An entry describing work that has only landed on main tells a reader a fix is available when npm install will not give it to them; the type now documents that every entry must be an installable version. Versions move to 0.8.7 across root, core, cli, action, server.json and the lockfile, with the README Action pin. apps/web keeps 0.0.0 — it is unpublished and publish.yml validates only its core dependency. The lockfile was patched by hand; regenerating on Windows drops the @emnapi entries Linux CI needs (9 present, verified). Co-Authored-By: Claude Opus 5 --- .gitignore | 2 ++ CHANGELOG.md | 26 ++++++++++++++++++++++++++ README.md | 8 ++++---- apps/web/app/changelog/page.tsx | 21 ++++++++++++++------- apps/web/package.json | 2 +- package-lock.json | 16 ++++++++-------- package.json | 2 +- packages/action/package.json | 4 ++-- packages/cli/package.json | 4 ++-- packages/core/package.json | 2 +- server.json | 4 ++-- 11 files changed, 63 insertions(+), 28 deletions(-) diff --git a/.gitignore b/.gitignore index fd0e234..3fb5841 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,5 @@ fixmap-report.md # Local design-QA scratch: references machine-specific temp paths. design-qa.md + +.vercel diff --git a/CHANGELOG.md b/CHANGELOG.md index 44bedd0..f002d21 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,32 @@ Accuracy figures inside a released entry are the numbers measured **at that rele left as written. The current numbers live on the [evidence page](https://usefixmap.vercel.app/evidence), which is generated from the recorded results rather than transcribed by hand. +## 0.8.7 - 2026-08-02 + +### Fixed + +- A pretty-printed vendored dependency bundle could rank first at high confidence. It escaped content-based bundle detection — 96 characters per line against a 400-character threshold, and one bundler marker against a threshold of two — and it escaped generated-duplicate filtering, which by design only drops a generated path that has a maintained source twin. A vendored dependency has none, so it fell through both. Detection now accepts a single marker when the path is itself conventional generated output, such as a `compiled/` segment (#446). + +### Evidence + +- Added a pretty-printed vendored-bundle case to the adversarial suite, which was previously all minified fixtures. The suite is 9/9 with a false-confidence rate of 0.0. +- Chalk's `source/vendor/supports-color/index.js` still ranks first for a colour-detection task. It is a vendored path whose content genuinely is the only implementation of the behavior, and it is the counterexample any path-based rule has to keep passing. +- Held-out remains 7/12 Top-1, 8/12 Top-3, 9/12 Top-5; external remains 11/16, 16/16, 16/16. + +### Note on the gap after 0.8.6 + +The fix above was merged to `main` before this release, and for a short window the published changelog described it as shipped while npm still served 0.8.6 without it. That is the #274 defect with its polarity reversed: the site advertising a fix the released artifact lacks, rather than an accuracy figure it no longer achieves. The website changelog no longer has an unreleased state — every entry on it is a version you can install. + +### Installation + +```bash +npm install --global @aryam/fixmap@0.8.7 +fixmap doctor +fixmap chalk/chalk#624 +``` + +The npm packages, MCP Registry entry, GitHub tag/release, Action tag, and production site must all resolve to 0.8.7 before the release is considered complete. + ## 0.8.6 - 2026-08-02 ### Fixed diff --git a/README.md b/README.md index d96bb0c..a6ac3f4 100644 --- a/README.md +++ b/README.md @@ -79,7 +79,7 @@ Doctor 0.8.4 and newer compares an exact npm-requested version when that newer D ```powershell $fixmapPrefix = Join-Path $env:TEMP "fixmap-cli-0.8.6" -npm install --global --prefix $fixmapPrefix @aryam/fixmap@0.8.6 +npm install --global --prefix $fixmapPrefix @aryam/fixmap@0.8.7 & "$fixmapPrefix\fixmap.cmd" --version ``` @@ -367,7 +367,7 @@ jobs: with: fetch-depth: 0 - id: fixmap - uses: aryamthecodebreaker/FixMap@v0.8.6 + uses: aryamthecodebreaker/FixMap@v0.8.7 with: github-token: ${{ secrets.GITHUB_TOKEN }} ``` @@ -378,7 +378,7 @@ To close the plan→edit→verify loop without leaving GitHub, save the plan as ```yaml - id: plan - uses: aryamthecodebreaker/FixMap@v0.8.6 + uses: aryamthecodebreaker/FixMap@v0.8.7 with: format: json - run: echo '${{ steps.plan.outputs.report }}' > fixmap-plan.json @@ -388,7 +388,7 @@ To close the plan→edit→verify loop without leaving GitHub, save the plan as path: fixmap-plan.json # In a later run, after the fix is pushed: - - uses: aryamthecodebreaker/FixMap@v0.8.6 + - uses: aryamthecodebreaker/FixMap@v0.8.7 with: mode: verify report-path: fixmap-plan.json diff --git a/apps/web/app/changelog/page.tsx b/apps/web/app/changelog/page.tsx index abade12..5725e56 100644 --- a/apps/web/app/changelog/page.tsx +++ b/apps/web/app/changelog/page.tsx @@ -21,7 +21,15 @@ type ChangeGroup = { items: string[]; }; +/** + * Every entry here is a version that is published and installable. There is deliberately no + * "unreleased" or "coming next" state: an entry describing work that has only landed on main + * tells a reader a fix is available when `npm install` will not give it to them. That is the + * defect behind #274 pointed the other way — and it happened here once already, with the + * vendored-bundle fix listed as shipped while npm still served the version without it. + */ type Release = { + /** A published semver version. Never "Unreleased". */ version: string; date: string; label?: string; @@ -31,10 +39,10 @@ type Release = { const releases: Release[] = [ { - version: "Unreleased", - date: "Pending release", - label: "In progress", - summary: "Improvements that are tested and ready for the next package release.", + version: "0.8.7", + date: "August 2, 2026", + label: "Latest release", + summary: "Readable vendored dependency bundles stop posing as edit targets.", groups: [ { label: "Fixed", @@ -54,7 +62,6 @@ const releases: Release[] = [ { version: "0.8.6", date: "August 2, 2026", - label: "Latest release", summary: "Cleaner implementation rankings without hiding legitimate UI or generated-artifact work.", groups: [ { @@ -214,7 +221,7 @@ export default function ChangelogPage() {