[PR #2895] [MERGED] fix: repair the static-check failures on the default branch #5477

Closed
opened 2026-10-31 01:06:57 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/2895
Author: @XiaoBinGan
Created: 10/13/2026
Status: ✅ Merged
Merged: 10/13/2026
Merged by: @morluto

Base: main ← Head: fix/static-checks


📝 Commits (2)

  • f78aac7 fix: repair the static-check failures on the default branch
  • b743f06 fix(setup): keep Devin on the JSON configuration dialect

📊 Changes

5 files changed (+7 additions, -5 deletions)

View changed files

📝 src/application/SupportedClients.ts (+1 -1)
📝 src/domain/functionComparison.test.ts (+3 -1)
📝 src/ida/IdaOperationRunner.ts (+2 -1)
📝 tests/boundary/cli/clientProfileLifecycle.test.ts (+1 -1)
📝 tests/boundary/mcp/ghidraInventoryMcp.test.ts (+0 -1)

📄 Description

Summary

Repair the three ways the default branch fails its own required Static checks
job, so that job reports on a pull request's own change again.

Problem and expected behavior

Static checks fails on main regardless of the change under review, which
hides the checks that would otherwise report on a pull request. Measured on
7e3a1986:

  • npm run format:check → "Format issues found in above 2 files":
    src/domain/functionComparison.test.ts, src/ida/IdaOperationRunner.ts.
  • npm run lint → "2926 files, 1 errors": Identifier 'join' has already been declared at tests/boundary/mcp/ghidraInventoryMcp.test.ts:4 and :17.
  • npm run typecheck → SupportedClients.ts(542,5): format: "devin" is not
    assignable to the client format union; (744,9) and (809,9) follow from it;
    and clientProfileLifecycle.test.ts(297,32): string | undefined is not
    assignable to string.

Expected: all three pass, and a pull request's Static checks reflects only its
own change.

Change and scope

  • Apply the pinned formatter to the two drifted files.
  • Drop the duplicate import { join } from "node:path".
  • Correct the Devin definition in src/application/SupportedClients.ts to
    format: "json". Devin uses the existing JSON dialect; keep client identity
    separate from configuration format and leave the format union unchanged.
  • Mark the ["shared", shared] / ["claude_code", claude] pair array as const
    so each entry is a tuple and its second element is a string rather than an
    unchecked index.

Devin detection now reports the existing JSON configuration dialect. The other
changes are formatting, removal of a duplicate declaration, and a tuple annotation.

Contract and boundary impact

The configuration format union remains unchanged. The shared client definition
now supplies "json" to detection, setup, registration status, and uninstall;
no consumer-specific workaround or new dialect is introduced.

Evidence and regression coverage

Review-fix validation on Node.js 24.18.0 / npm 11.16.0:

  • npm run check: passes typecheck, lint, formatting, Knip, metadata, module
    boundaries, and architecture guards.
  • npm run test:focused -- tests/boundary/filesystem/clientLifecycle.test.ts tests/boundary/filesystem/clientConfigurationDialects.test.ts tests/boundary/cli/clientProfileLifecycle.test.ts:
    83 tests pass, including Devin detection, registration/readback/uninstall,
    idempotence, and the CLI XDG profile lifecycle.

Original static-repair validation:

  • npm run check:fast: 2 successful, 2 total (was: //#typecheck failed).
  • npm run format:check: "All matched files use the correct format." (was: 2
    files reported).
  • npm run lint: 0 errors (was: 1 error).
  • npm run test:focused -- tests/boundary/cli/clientProfileLifecycle.test.ts
    passes, covering the annotated loop.
  • npm run test:focused -- src/domain/functionComparison.test.ts passes
    (49 tests) over the reformatted file.

Unavailable coverage

No real-provider verification is involved. The change does not alter a provider
boundary, and the machine running these checks is macOS 26.5.1 arm64 with the
pinned Node.js 24.18.0.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/morluto/rea/pull/2895 **Author:** [@XiaoBinGan](https://github.com/XiaoBinGan) **Created:** 10/13/2026 **Status:** ✅ Merged **Merged:** 10/13/2026 **Merged by:** [@morluto](https://github.com/morluto) **Base:** `main` ← **Head:** `fix/static-checks` --- ### 📝 Commits (2) - [`f78aac7`](https://github.com/morluto/rea/commit/f78aac7a26963ebe2d5f3a7ff304d101c55970b7) fix: repair the static-check failures on the default branch - [`b743f06`](https://github.com/morluto/rea/commit/b743f0600c57d06ad65cd174e67b920a173014f5) fix(setup): keep Devin on the JSON configuration dialect ### 📊 Changes **5 files changed** (+7 additions, -5 deletions) <details> <summary>View changed files</summary> 📝 `src/application/SupportedClients.ts` (+1 -1) 📝 `src/domain/functionComparison.test.ts` (+3 -1) 📝 `src/ida/IdaOperationRunner.ts` (+2 -1) 📝 `tests/boundary/cli/clientProfileLifecycle.test.ts` (+1 -1) 📝 `tests/boundary/mcp/ghidraInventoryMcp.test.ts` (+0 -1) </details> ### 📄 Description ## Summary Repair the three ways the default branch fails its own required `Static checks` job, so that job reports on a pull request's own change again. ## Problem and expected behavior `Static checks` fails on `main` regardless of the change under review, which hides the checks that would otherwise report on a pull request. Measured on `7e3a1986`: - `npm run format:check` → "Format issues found in above 2 files": `src/domain/functionComparison.test.ts`, `src/ida/IdaOperationRunner.ts`. - `npm run lint` → "2926 files, 1 errors": `Identifier 'join' has already been declared` at `tests/boundary/mcp/ghidraInventoryMcp.test.ts:4` and `:17`. - `npm run typecheck` → `SupportedClients.ts(542,5)`: `format: "devin"` is not assignable to the client format union; `(744,9)` and `(809,9)` follow from it; and `clientProfileLifecycle.test.ts(297,32)`: `string | undefined` is not assignable to `string`. Expected: all three pass, and a pull request's `Static checks` reflects only its own change. ## Change and scope - Apply the pinned formatter to the two drifted files. - Drop the duplicate `import { join } from "node:path"`. - Correct the Devin definition in `src/application/SupportedClients.ts` to `format: "json"`. Devin uses the existing JSON dialect; keep client identity separate from configuration format and leave the format union unchanged. - Mark the `["shared", shared] / ["claude_code", claude]` pair array `as const` so each entry is a tuple and its second element is a `string` rather than an unchecked index. Devin detection now reports the existing JSON configuration dialect. The other changes are formatting, removal of a duplicate declaration, and a tuple annotation. ## Contract and boundary impact The configuration format union remains unchanged. The shared client definition now supplies `"json"` to detection, setup, registration status, and uninstall; no consumer-specific workaround or new dialect is introduced. ## Evidence and regression coverage Review-fix validation on Node.js 24.18.0 / npm 11.16.0: - `npm run check`: passes typecheck, lint, formatting, Knip, metadata, module boundaries, and architecture guards. - `npm run test:focused -- tests/boundary/filesystem/clientLifecycle.test.ts tests/boundary/filesystem/clientConfigurationDialects.test.ts tests/boundary/cli/clientProfileLifecycle.test.ts`: 83 tests pass, including Devin detection, registration/readback/uninstall, idempotence, and the CLI XDG profile lifecycle. Original static-repair validation: - `npm run check:fast`: 2 successful, 2 total (was: `//#typecheck` failed). - `npm run format:check`: "All matched files use the correct format." (was: 2 files reported). - `npm run lint`: 0 errors (was: 1 error). - `npm run test:focused -- tests/boundary/cli/clientProfileLifecycle.test.ts` passes, covering the annotated loop. - `npm run test:focused -- src/domain/functionComparison.test.ts` passes (49 tests) over the reformatted file. ## Unavailable coverage No real-provider verification is involved. The change does not alter a provider boundary, and the machine running these checks is macOS 26.5.1 arm64 with the pinned Node.js 24.18.0. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-31 01:06:57 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#5477
No description provided.