Summary
PE resource string extraction is fully implemented and unit-tested but is not wired into the extraction pipeline, so no resource strings ever reach output or ranking. This is the one remaining task for Feature 1 of the v0.2 epic (#40).
Evidence
extract_resource_strings() (src/extraction/pe_resources/mod.rs:217) has zero call sites in the live pipeline. Its only references are its own definition, doc comments, the re-export at src/extraction/mod.rs:146, and one integration test. There are no references in src/pipeline/ or src/extraction/basic_extractor.rs.
The PE parser only populates ContainerInfo.resources (Phase-1 metadata: type/language/size), and nothing downstream reads that field.
Net effect: stringy --only-tags version|manifest|resource <pe-with-resources> returns nothing, and the +40 ranking boosts for Version/Manifest/Resource (src/classification/ranking.rs:133-135) never fire.
Proposed fix
- Call
extract_resource_strings(data) from collect_all_strings() in src/extraction/basic_extractor.rs (or from the pipeline), and merge the returned FoundStrings into the existing dedup -> classify -> rank flow.
- Ensure resource strings participate in deduplication and offset handling consistently with other sources.
Acceptance criteria
Out of scope
- Dialog/menu resource parsing (self-documented as unimplemented at
src/extraction/pe_resources/mod.rs:39).
Context
Follow-up to #40 (Feature 1). Parsing logic is complete; this is an integration/wiring task.
Summary
PE resource string extraction is fully implemented and unit-tested but is not wired into the extraction pipeline, so no resource strings ever reach output or ranking. This is the one remaining task for Feature 1 of the v0.2 epic (#40).
Evidence
extract_resource_strings()(src/extraction/pe_resources/mod.rs:217) has zero call sites in the live pipeline. Its only references are its own definition, doc comments, the re-export atsrc/extraction/mod.rs:146, and one integration test. There are no references insrc/pipeline/orsrc/extraction/basic_extractor.rs.The PE parser only populates
ContainerInfo.resources(Phase-1 metadata: type/language/size), and nothing downstream reads that field.Net effect:
stringy --only-tags version|manifest|resource <pe-with-resources>returns nothing, and the +40 ranking boosts forVersion/Manifest/Resource(src/classification/ranking.rs:133-135) never fire.Proposed fix
extract_resource_strings(data)fromcollect_all_strings()insrc/extraction/basic_extractor.rs(or from the pipeline), and merge the returnedFoundStrings into the existing dedup -> classify -> rank flow.Acceptance criteria
--only-tags version|manifest|resourcereturns the expected strings against a resource fixturejust ci-checkpassesOut of scope
src/extraction/pe_resources/mod.rs:39).Context
Follow-up to #40 (Feature 1). Parsing logic is complete; this is an integration/wiring task.