Other formats agents might prefer:
markdownjsonllms.txt

Agent? You probably want markdown or json, or Pod over MCP.

Reported issues for fixmap

Pod holds 16 of 68 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to fixmap.

Most discussed

bug: --limit 1 disables the contested-lead guard, promoting a consumer file to high while the definition site it outranked is sliced away

What happened?

hasContestedLead — the guard added by #102/#59 so a vocabulary-dense file cannot claim high while a definition site sits behind it — is evaluated on the list after --limit truncation. When the competitor is sliced off, the lead stops looking contested and the cap disappears.

// packages/core/src/rank.ts:330-336
const ranked = scored
  .filter((file) => file.score >= minScore)
  .sort(...)
  .slice(0, limit);              // <- competitor removed here
const clu

[Read the thread](https://github.com/aryamthecodebreaker/FixMap/issues/611) · 2026-08-10 · closed · 1 comment

### bug: a credentialed URL for any non-github.com host is treated as task text, echoing the token into the PR comment

## What happened?

`parseActionIssueSource` refuses a credentialed URL only when the host is github.com:

```ts
// packages/action/src/issue-source.ts:16, 49, 55
if (/^https?:\/\/[^/\s]*@(?:www\.|api\.)?github\.com\//i.test(trimmed)) { throw ... }
...
if (/^https?:\/\/[^/\s]*@github\.com\//i.test(trimmed)) { throw ... }
...
if (!/^https?:\/\/github\.com\//i.test(trimmed)) {
  return undefined;      // <- falls through to "this is prose"
}

The module's own comment states precisely why `undef

Read the thread · 2026-08-09 · closed · 1 comment

test: the MCP ListTools test only asserts each tool is defined, so schema and argument-validation drift is untested

What happened?

The only test covering the advertised MCP tool surface checks existence and nothing else:

// packages/cli/test/mcp.test.ts:143-157
expect(plan).toBeDefined();
expect(verify).toBeDefined();
expect(explain).toBeDefined();
expect(tools.tools.find((tool) => tool.name === "fixmap_compare")).toBeDefined();
expect(tools.tools.find((tool) => tool.name === "fixmap_doctor")).toBeDefined();

Nothing asserts the inputSchema — not its properties, not required, not `additio

Read the thread · 2026-08-09 · closed · 1 comment

bug: the server-manifest publish gate never checks that the registry entry actually launches mcp

What happened?

check:server-manifest runs in npm run ci and in the publish workflow, and it validates exactly four things: name, description length, version, and that an npm package entry with a matching identifier and version exists.

// scripts/check-server-manifest.mjs:27-39
const npmPackage = server.packages?.find(
  (entry) => entry.registryType === "npm" && entry.identifier === cli.name
);
if (!npmPackage) { errors.push(...); }
else if (npmPackage.version !== cli.versio

[Read the thread](https://github.com/aryamthecodebreaker/FixMap/issues/574) · 2026-08-09 · closed · 1 comment

### bug: `fixmap mcp` rejects every argument, so an MCP client cannot pass --repo or any default

## What happened?

```ts
// packages/cli/src/cli-runner.ts:134-142
if (args[0] === "mcp") {
  if (args[1] === "--help" || args[1] === "-h") { stdout(MCP_USAGE); return 0; }
  if (args.length > 1) { stderr(`mcp takes no options.\n\n${MCP_USAGE}`); return 1; }

Every per-tool call therefore defaults its repository to process.cwd():

// packages/cli/src/mcp.ts:293, 338
  repoRoot: args.repo ?? process.cwd(),

MCP clients launch the server as a subprocess whose working directory is t

Read the thread · 2026-08-09 · closed · 1 comment

bug: fixmap_compare is the only MCP tool that does not reject unknown arguments despite declaring additionalProperties: false

What happened?

Four of the five tools validate their argument keys. fixmap_plan, fixmap_explain and fixmap_verify each build an allowlist:

// packages/cli/src/mcp.ts:436, 523, 577
const allowed = new Set(["issue", "diff", "base", "head", "repo", "format", "limit", "exclude", "workingTree", "includeUntracked"]);
...
const unknown = Object.keys(record).filter((key) => !allowed.has(key));

and fixmap_doctor does it inline (line 260). fixmap_compare does neither — its handle

Read the thread · 2026-08-09 · closed · 1 comment

bug: no MCP tool can bypass the scan cache — useCache: true is hardcoded and there is no noCache argument

What happened?

All three scan sites in the MCP server hardcode the cache on:

// packages/cli/src/mcp.ts:295, 340, 396
          useCache: true

and no tool schema exposes a way to turn it off:

grep -c "noCache" packages/cli/src/mcp.ts      # 0
grep -c '"--no-cache"' packages/cli/src/cli-runner.ts   # 1

The CLI has --no-cache, and README documents it as part of the caching contract:

Reuses repository scans only when the repository root, commit, status, and binary

Read the thread · 2026-08-09 · closed · 1 comment

docs: FIXMAP_CACHE_DIR and FIXMAP_VERBOSE_USAGE are documented in the README but missing from fixmap --help

What happened?

README documents three environment variables:

  • FIXMAP_CACHE_DIR — "moves the OS cache" (feature catalog, "Inputs and repository mapping")
  • FIXMAP_PROGRESS — "controls remote clone/scan progress"
  • FIXMAP_VERBOSE_USAGE — "restores full usage text after argument errors"

The CLI's own usage text mentions only one:

// packages/cli/src/cli-runner.ts:108-110 (end of USAGE)
A repository may also list exclusion patterns in .fixmapignore, one per line. Supported
syntax i

[Read the thread](https://github.com/aryamthecodebreaker/FixMap/issues/539) · 2026-08-09 · closed · 1 comment

## Most recent

### bug: doctor flags standard npm shims as Multiple FixMap binaries and exits 1 on every Windows global install

## Summary

On a stock Windows machine, `fixmap doctor` always reports a PROBLEM and exits 1 immediately after a normal `npm install --global @aryam/fixmap`. The two "multiple binaries" it finds are the standard npm shims (`fixmap` and `fixmap.cmd`) generated in the *same directory* by that single global install — there is nothing stale or competing.

## Environment

- fixmap 0.9.0 (installed via `npm install -g @aryam/fixmap`)
- Windows (win32), PowerShell 5.1
- Node v24.13.0

## Repro

```powe

[Read the thread](https://github.com/aryamthecodebreaker/FixMap/issues/642) · 2026-08-26 · open · 0 comments

### action.yml says explain/compare are CLI/MCP-only but the CLI has neither subcommand

Found while auditing the CLI surface against `action.yml` (v0.9.0).

`action.yml` describes the `mode` input as:

> plan (default) maps the change to context files, likely impact, test routes, and review risks.
> verify compares a saved plan against the diff that followed it and needs report-path.
> **Explain and compare are intentionally CLI/MCP-only** because Action comments operate on complete reports.

But the CLI has no `explain` or `compare` subcommands - they exist only in the MCP server:

[Read the thread](https://github.com/aryamthecodebreaker/FixMap/issues/639) · 2026-08-26 · open · 0 comments

### MCP server serves tools/list without initialize handshake, and malformed stdin JSON gets no parse-error response

Found while fuzzing the MCP stdio server (`fixmap mcp`, v0.9.0 built from main).

**What happens**

The MCP server answers `tools/list` (and presumably other calls) even though the client never sent `initialize`:

$ echo '{"jsonrpc":"2.0","id":9,"method":"tools/list"}' | fixmap mcp {"result":{"tools":[...],"jsonrpc":"2.0","id":9}}


Per the MCP specification, a server must not service requests before the client completes the `initialize` handshake.

**Why it matters**

- Version/capabilit

[Read the thread](https://github.com/aryamthecodebreaker/FixMap/issues/637) · 2026-08-26 · open · 0 comments

### Feature: cache the repository scan between runs — scanning costs 5-6x ranking and is repeated in full on every refine iteration

Feature request, grounded in measurement.

Every invocation rescans the entire repository, even though the scan result depends only on the repository state — not on the task text. In the plan → refine → re-plan loop that `--compare` exists to serve, the repository has not changed between runs, and the scan is repeated in full each time.

## Where the time goes

FixMap on FixMap, 183 tracked files:

scanRepo (once) 507 ms rankContextFiles (task 1) 74 ms rank

Read the thread · 2026-08-08 · closed · 0 comments

JSON report has no version marker or stability policy, though the shape has changed across releases and agents parse it

Enhancement. --format json is a machine contract consumed by MCP clients, CI scripts, and the Action's report output, but it carries no version marker and no documented stability policy — while the shape has demonstrably changed across releases.

Current state

top-level keys: summary, contextFiles, testRoutes, risks, changedFiles, diagnostics, analysis
has version/schema field: false

No version, no schema, no $schema. Grepping README and docs/ for any statement about JSO

Read the thread · 2026-08-08 · closed · 0 comments

Demo page shows hand-written output attributed to FixMap in a format it never emits, beside a panel saying "not a mockup"

The "Example agent conversation" on /demo (apps/web/app/demo/page.tsx:34-36) attributes output to a speaker labelled FixMap in a format FixMap does not emit. It sits directly below the live panel that says:

This is FixMap itself, not a mockup. The page imports the same ranking, explanation, and verification code the CLI runs…

To be fair up front: the block is labelled "Example agent conversation" and "A realistic TypeScript/Node.js password-reset repair", and the **workflow it

Read the thread · 2026-08-07 · closed · 0 comments

MCP plan description tells agents analysis.nextAction mirrors CLI stderr; in the healthy case the CLI prints nothing

Minor, but it is text an LLM agent reads to decide how much weight to give a field.

PLAN_TOOL.description (mcp.ts:84-85) tells the agent:

analysis.nextAction carries the single most useful next step for this report — the same guidance the CLI prints to stderr, which an MCP client never sees. Read it before acting.

In the healthy case — the common one — the CLI prints nothing to stderr, so there is no such guidance to mirror.

Measured

Same repository, three tasks, comparing `a

Read the thread · 2026-08-07 · closed · 0 comments

CLI verify/--compare and the Action throw raw TypeErrors on a damaged plan file; --compare crashes uncaught (MCP validates correctly)

The MCP server validates the structure of a report file before using it and returns a precise, actionable message. The CLI's verify and --compare, and the Action's verify mode, check only Array.isArray(report.contextFiles) and then hand the array straight to code that dereferences .path — so a damaged plan produces a raw TypeError, and in one case an uncaught crash with a stack trace.

asFixMapReport (mcp.ts:660-718) already implements exactly the validation the other three surface

Read the thread · 2026-08-06 · closed · 0 comments

The remaining reports are on the project's issue tracker.