Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

fix(cli): launch Biome reliably in Windows architecture guards

Open
#881 0 comments 0 reactions 0 assignees View on GitHub

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from ai-driven-dev/framework

All issues in ai-driven-dev/framework

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.