Skip to content

Design an incremental scan/report pipeline state machine #164

Description

@Muawiya-contact

Goal

Turn the scan/report pipeline into an explicit incremental state machine.

The desktop app can now show provisional findings while scanning, but the final report still has several full passes. A future architecture could make each stage clearer, testable, and easier to stream.

Why this is super advanced

This touches scanner, graph, rules, risk, dedup, report, cancellation, and UI events.

Current pipeline shape:

scanner -> graph -> rules + risk -> dedup -> report

Possible future shape:

enum ScanPipelineEvent {
    EntrySeen(FileEntry),
    ProvisionalFinding(Finding),
    GraphReady,
    FinalFinding(Finding),
    DuplicateSetReady(DuplicateSet),
    Complete(Report),
}

Suggested deliverable

Start with a design PR or markdown document. Do not try to rewrite the whole pipeline in one PR.

Acceptance criteria

  • Identifies the pipeline states and what each state owns.
  • Keeps cancellation behavior clear.
  • Keeps final report authority separate from provisional UI previews.
  • Includes a migration plan with small PR steps.

Activity

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

    architectureWorkspace layout and engine designenginediskern-core: scanner, rules, risk, graph, reportenhancementNew feature or requesthelp wantedExtra attention is neededlevel: super advancedDeep architecture work; needs design discussion firstperformanceSpeed or memorypriority: mediumWorth doing, not urgent

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions