Skip to content

Commit 2e19cba

Browse files
release: FixMap v0.8.7 (#448)
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 <noreply@anthropic.com>
1 parent 8c50678 commit 2e19cba

11 files changed

Lines changed: 63 additions & 28 deletions

File tree

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,5 @@ fixmap-report.md
1919

2020
# Local design-QA scratch: references machine-specific temp paths.
2121
design-qa.md
22+
23+
.vercel

CHANGELOG.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,32 @@ Accuracy figures inside a released entry are the numbers measured **at that rele
66
left as written. The current numbers live on the [evidence page](https://usefixmap.vercel.app/evidence),
77
which is generated from the recorded results rather than transcribed by hand.
88

9+
## 0.8.7 - 2026-08-02
10+
11+
### Fixed
12+
13+
- 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).
14+
15+
### Evidence
16+
17+
- 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.
18+
- 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.
19+
- Held-out remains 7/12 Top-1, 8/12 Top-3, 9/12 Top-5; external remains 11/16, 16/16, 16/16.
20+
21+
### Note on the gap after 0.8.6
22+
23+
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.
24+
25+
### Installation
26+
27+
```bash
28+
npm install --global @aryam/fixmap@0.8.7
29+
fixmap doctor
30+
fixmap chalk/chalk#624
31+
```
32+
33+
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.
34+
935
## 0.8.6 - 2026-08-02
1036

1137
### Fixed

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ Doctor 0.8.4 and newer compares an exact npm-requested version when that newer D
7979

8080
```powershell
8181
$fixmapPrefix = Join-Path $env:TEMP "fixmap-cli-0.8.6"
82-
npm install --global --prefix $fixmapPrefix @aryam/fixmap@0.8.6
82+
npm install --global --prefix $fixmapPrefix @aryam/fixmap@0.8.7
8383
& "$fixmapPrefix\fixmap.cmd" --version
8484
```
8585

@@ -367,7 +367,7 @@ jobs:
367367
with:
368368
fetch-depth: 0
369369
- id: fixmap
370-
uses: aryamthecodebreaker/FixMap@v0.8.6
370+
uses: aryamthecodebreaker/FixMap@v0.8.7
371371
with:
372372
github-token: ${{ secrets.GITHUB_TOKEN }}
373373
```
@@ -378,7 +378,7 @@ To close the plan→edit→verify loop without leaving GitHub, save the plan as
378378

379379
```yaml
380380
- id: plan
381-
uses: aryamthecodebreaker/FixMap@v0.8.6
381+
uses: aryamthecodebreaker/FixMap@v0.8.7
382382
with:
383383
format: json
384384
- 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
388388
path: fixmap-plan.json
389389
390390
# In a later run, after the fix is pushed:
391-
- uses: aryamthecodebreaker/FixMap@v0.8.6
391+
- uses: aryamthecodebreaker/FixMap@v0.8.7
392392
with:
393393
mode: verify
394394
report-path: fixmap-plan.json

apps/web/app/changelog/page.tsx

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,15 @@ type ChangeGroup = {
2121
items: string[];
2222
};
2323

24+
/**
25+
* Every entry here is a version that is published and installable. There is deliberately no
26+
* "unreleased" or "coming next" state: an entry describing work that has only landed on main
27+
* tells a reader a fix is available when `npm install` will not give it to them. That is the
28+
* defect behind #274 pointed the other way — and it happened here once already, with the
29+
* vendored-bundle fix listed as shipped while npm still served the version without it.
30+
*/
2431
type Release = {
32+
/** A published semver version. Never "Unreleased". */
2533
version: string;
2634
date: string;
2735
label?: string;
@@ -31,10 +39,10 @@ type Release = {
3139

3240
const releases: Release[] = [
3341
{
34-
version: "Unreleased",
35-
date: "Pending release",
36-
label: "In progress",
37-
summary: "Improvements that are tested and ready for the next package release.",
42+
version: "0.8.7",
43+
date: "August 2, 2026",
44+
label: "Latest release",
45+
summary: "Readable vendored dependency bundles stop posing as edit targets.",
3846
groups: [
3947
{
4048
label: "Fixed",
@@ -54,7 +62,6 @@ const releases: Release[] = [
5462
{
5563
version: "0.8.6",
5664
date: "August 2, 2026",
57-
label: "Latest release",
5865
summary: "Cleaner implementation rankings without hiding legitimate UI or generated-artifact work.",
5966
groups: [
6067
{
@@ -214,7 +221,7 @@ export default function ChangelogPage() {
214221
<nav>
215222
{releases.map((release) => (
216223
<a key={release.version} href={`#${releaseId(release.version)}`}>
217-
<span>{release.version === "Unreleased" ? "Next" : `v${release.version}`}</span>
224+
<span>v{release.version}</span>
218225
<small>{release.date}</small>
219226
</a>
220227
))}
@@ -227,7 +234,7 @@ export default function ChangelogPage() {
227234
<header className="release-heading">
228235
<div>
229236
<p>{release.date}</p>
230-
<h2>{release.version === "Unreleased" ? "Coming next" : `FixMap v${release.version}`}</h2>
237+
<h2>FixMap v{release.version}</h2>
231238
</div>
232239
{release.label ? <span>{release.label}</span> : null}
233240
</header>

apps/web/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"typecheck": "tsc --noEmit"
1616
},
1717
"dependencies": {
18-
"@aryam/fixmap-core": "0.8.6",
18+
"@aryam/fixmap-core": "0.8.7",
1919
"@phosphor-icons/react": "^2.1.10",
2020
"next": "16.2.11",
2121
"react": "19.2.7",

package-lock.json

Lines changed: 8 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "fixmap-workspace",
3-
"version": "0.8.6",
3+
"version": "0.8.7",
44
"private": true,
55
"description": "Local-first repo context for coding agents: paste a GitHub issue URL to get ranked files, test routes, and risks.",
66
"license": "MIT",

packages/action/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@fixmap/action",
3-
"version": "0.8.6",
3+
"version": "0.8.7",
44
"description": "GitHub Action wrapper for FixMap pull request reports.",
55
"private": true,
66
"license": "MIT",
@@ -11,6 +11,6 @@
1111
"typecheck": "tsc -p tsconfig.json --noEmit"
1212
},
1313
"dependencies": {
14-
"@aryam/fixmap-core": "0.8.6"
14+
"@aryam/fixmap-core": "0.8.7"
1515
}
1616
}

packages/cli/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@aryam/fixmap",
3-
"version": "0.8.6",
3+
"version": "0.8.7",
44
"mcpName": "io.github.aryamthecodebreaker/fixmap",
55
"description": "Local-first CLI and MCP server mapping GitHub issue URLs, tasks, and diffs to ranked files, tests, and risks.",
66
"license": "MIT",
@@ -46,7 +46,7 @@
4646
"typecheck": "tsc -p tsconfig.json --noEmit"
4747
},
4848
"dependencies": {
49-
"@aryam/fixmap-core": "0.8.6",
49+
"@aryam/fixmap-core": "0.8.7",
5050
"@modelcontextprotocol/sdk": "1.30.0"
5151
},
5252
"engines": {

packages/core/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@aryam/fixmap-core",
3-
"version": "0.8.6",
3+
"version": "0.8.7",
44
"description": "Deterministic local-first repository scanner, context ranker, and report renderer for coding agents.",
55
"license": "MIT",
66
"repository": {

0 commit comments

Comments
 (0)