Skip to content

Wire extract_resource_strings() into the extraction pipeline (PE resources are dead code) #207

Open

Description

@unclesp1d3r

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

  • Resource strings from a PE with version info / manifest / string table reach CLI output
  • --only-tags version|manifest|resource returns the expected strings against a resource fixture
  • Version/Manifest/Resource ranking boosts are observable in scores
  • End-to-end integration test added (fixture-based) covering the resource path
  • just ci-check passes

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.

Activity

  1. added this to the v0.2 milestone on Jul 5, 2026
  2. coderabbitai commented on Jul 5, 2026

    @coderabbitai
    Contributor
    🔗 Related PRs

    #118 - feat(classification): add semantic classifier for URL and domain detection [merged]
    #125 - Ranking system [merged]
    #141 - feat: Stringy v1.0 -- pipeline architecture, CLI hardening, and comprehensive testing [closed]
    #147 - docs: Improve README, CLI UX, and documentation accuracy [closed]
    #190 - feat: encoding confidence close-out for issue 22 [merged]


    🧪 Issue enrichment is currently in open beta.

    You can configure auto-planning by selecting labels in the issue_enrichment configuration.

    To disable automatic issue enrichment, add the following to your .coderabbit.yaml:

    issue_enrichment:
      auto_enrich:
        enabled: false

    💬 Have feedback or questions? Drop into our discord!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions