fix(cli): launch Biome reliably in Windows architecture guards
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 78/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- node.js, typescript
- Domain
- cli, testing-qa
Research direction
Start in cli/tests/architecture/biome-guards-bite.arch.test.ts and run the Windows launch reproduction comparing node_modules/.bin/biome with the package entry point through Node. Trace biomeFindings() and its three planted positive cases, checking startup errors before findings are parsed while preserving ordinary nonzero lint results. Done means Biome launches on supported platforms and the positive guards receive their expected diagnostics.
Written by the indexing model from the issue text.
Description
Following the request in https://github.com/ai-driven-dev/framework/issues/863#issuecomment-5719279915, this tracks the launcher defect separately from architecture path normalization.
At 83b0246e532d3f76491baabbc8b0b266f00e3590, cli/tests/architecture/biome-guards-bite.arch.test.ts builds BIOME from node_modules/.bin/biome and passes that path directly to spawnSync. On native Windows the launch returns status: null and error.code: ENOENT. Invoking the installed package through Node succeeds with exit 0 and prints Version: 2.5.11.
Environment: Windows, Node 22.23.1, pnpm 12.3.4 for the latest architecture-suite run. Existing dependencies were originally installed with pnpm 11.19.0 and --ignore-scripts; this is not a claim of a fresh installation under 12.3.4.
From cli/, this launch-only reproduction uses the same installed dependency for both attempts:
import { spawnSync } from "node:child_process";
import { resolve } from "node:path";
const direct = spawnSync(resolve("node_modules/.bin/biome"), ["--version"], {
encoding: "utf8",
});
const viaNode = spawnSync(process.execPath, [
resolve("node_modules/@biomejs/biome/bin/biome"), "--version",
], { encoding: "utf8" });
for (const [name, result] of [["shim", direct], ["node", viaNode]]) {
console.log(name, result.status, result.error?.code, result.stdout, result.stderr);
}
biomeFindings() does not inspect result.error or verify that the process started. It parses stdout/stderr and returns [] after a failed launch, which is indistinguishable from a successful invocation with no findings to a caller expecting a clean result. The planted positive cases do fail: the three tests for process.exit, process globals, and default exports all receive empty arrays instead of their expected diagnostics.
Expected: use a launcher that works on supported platforms, and surface process-start failures as explicit failures before parsing findings. Preserve ordinary nonzero lint results, since those carry the violations the guard is designed to assert.
The control above proves only executable startup, not lint correctness. No Biome launcher changes are included in the separate path-normalization contribution.
Affected file: cli/tests/architecture/biome-guards-bite.arch.test.ts
AI tool: Codex. CLI checkout version: 5.3.0. OS: Windows. Path normalization PR: #880.
- Dominant language
- TypeScript
- Stars
- 481
- Forks
- 45
- Avg merge
- 10h 31m
- Merged PRs (30d)
- 98
Getting set up
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from ai-driven-dev/framework
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
ai-driven-dev/framework#952 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
ai-driven-dev/framework#940 ·
Maintainers usually reply within 1 day
-
refactor(aidd-orchestrator): the check zone says when to stop, and reviews its axes in one roundOpen
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
ai-driven-dev/framework#887 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
ai-driven-dev/framework#873 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
ai-driven-dev/framework#625 ·
Maintainers usually reply within 1 day
All issues in ai-driven-dev/framework
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Doist/todoist-cli#576 ·
Maintainers usually reply within 1 day
-
🐛 Bug supabase/cli
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
CopilotKit/aimock#491 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
agilepathway/label-checker#710 · 2 comments ·
Maintainers usually reply within 1 day