[PR #665] [MERGED] fix(reference): recognize CMake build manifests #2148

Closed
opened 2026-10-16 21:14:53 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/665
Author: @kaoru0822-kitauji
Created: 10/6/2026
Status: ✅ Merged
Merged: 10/6/2026
Merged by: @morluto

Base: main ← Head: fix/cmake-manifest


📝 Commits (1)

  • 4c312be fix(reference): recognize CMake build manifests

📊 Changes

3 files changed (+73 additions, -1 deletions)

View changed files

➕ src/domain/referenceSourceClassification.test.ts (+37 -0)
📝 src/domain/referenceSourceClassification.ts (+1 -1)
📝 tests/boundary/filesystem/referenceSourceImport.test.ts (+35 -0)

📄 Description

Summary

Recognize CMakeLists.txt as a build manifest in historical-source imports.

No separate issue: this is a small reproduced filename-classification defect.

Problem and expected behavior

The manifest filename set stores CMakeLists.txt, but its shared lookup lowercases every basename. That entry can never match, so root and nested CMake files are omitted from the imported manifests inventory.

Normalize the set entry to cmakelists.txt, following the existing case-insensitive policy used for other manifest names.

Change and scope

One production string changes. Tests cover canonical/alternative casing, nested files, near-match rejection, and existing package/Cargo recognition. Existing documentation/source secondary tags and original path casing are preserved.

Contract and boundary impact

  • Semantic owner: reference-source filename classification.
  • CLI/MCP: CMake files now appear in the existing source-import manifest inventory; no schema/tool changes.
  • Provider/platform: no changes.
  • Evidence/provenance: original file paths and other classifications remain.
  • Process/authorization/cleanup: source is only read, never executed.
  • Generated metadata/package: no changes.

Evidence and regression coverage

On 88a3c3f, five new expectations fail and 16 controls pass. The public import workflow returns an empty manifest inventory for the root/nested CMake fixture before the fix.

Afterward, the compiled import-reference-source --json CLI returns both CMakeLists.txt and src/CMakeLists.txt, while notes.txt remains documentation only.

Validation performed

  • Classification, graph, reader, and filesystem import suites: 37 tests passed.
  • npm run check: passed after moving the new boundary case into its own small describe block.
  • npm run jscpd, npm run scan:todos, and git diff --check: passed.
  • Compiled CLI fixture: passed.
  • Independent review: no findings; casing, directory-context, and unchanged-control probes passed.

Node.js 24.19.0, npm 11.9.0. Hosted CI is tracked separately; no complete local suite pass is claimed.

Compatibility, safety, and release

No new classification policy or schema. Packaging and native-provider behavior are unchanged; package-install and real Hopper/Ghidra lanes were not rerun locally.

Prepared with AI assistance.


🔄 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/665 **Author:** [@kaoru0822-kitauji](https://github.com/kaoru0822-kitauji) **Created:** 10/6/2026 **Status:** ✅ Merged **Merged:** 10/6/2026 **Merged by:** [@morluto](https://github.com/morluto) **Base:** `main` ← **Head:** `fix/cmake-manifest` --- ### 📝 Commits (1) - [`4c312be`](https://github.com/morluto/rea/commit/4c312be46092c6b0b112110a87a6e95258c0dc39) fix(reference): recognize CMake build manifests ### 📊 Changes **3 files changed** (+73 additions, -1 deletions) <details> <summary>View changed files</summary> ➕ `src/domain/referenceSourceClassification.test.ts` (+37 -0) 📝 `src/domain/referenceSourceClassification.ts` (+1 -1) 📝 `tests/boundary/filesystem/referenceSourceImport.test.ts` (+35 -0) </details> ### 📄 Description ## Summary Recognize `CMakeLists.txt` as a build manifest in historical-source imports. No separate issue: this is a small reproduced filename-classification defect. ## Problem and expected behavior The manifest filename set stores `CMakeLists.txt`, but its shared lookup lowercases every basename. That entry can never match, so root and nested CMake files are omitted from the imported `manifests` inventory. Normalize the set entry to `cmakelists.txt`, following the existing case-insensitive policy used for other manifest names. ## Change and scope One production string changes. Tests cover canonical/alternative casing, nested files, near-match rejection, and existing package/Cargo recognition. Existing documentation/source secondary tags and original path casing are preserved. ## Contract and boundary impact - Semantic owner: reference-source filename classification. - CLI/MCP: CMake files now appear in the existing source-import manifest inventory; no schema/tool changes. - Provider/platform: no changes. - Evidence/provenance: original file paths and other classifications remain. - Process/authorization/cleanup: source is only read, never executed. - Generated metadata/package: no changes. ## Evidence and regression coverage On `88a3c3f`, five new expectations fail and 16 controls pass. The public import workflow returns an empty manifest inventory for the root/nested CMake fixture before the fix. Afterward, the compiled `import-reference-source --json` CLI returns both `CMakeLists.txt` and `src/CMakeLists.txt`, while `notes.txt` remains documentation only. ## Validation performed - Classification, graph, reader, and filesystem import suites: 37 tests passed. - `npm run check`: passed after moving the new boundary case into its own small describe block. - `npm run jscpd`, `npm run scan:todos`, and `git diff --check`: passed. - Compiled CLI fixture: passed. - Independent review: no findings; casing, directory-context, and unchanged-control probes passed. Node.js 24.19.0, npm 11.9.0. Hosted CI is tracked separately; no complete local suite pass is claimed. ## Compatibility, safety, and release No new classification policy or schema. Packaging and native-provider behavior are unchanged; package-install and real Hopper/Ghidra lanes were not rerun locally. Prepared with AI assistance. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-16 21:14:53 +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#2148
No description provided.