Skip to content

runner: bootstrap module shells + NDJSON regression test harness #16

@filipeforattini

Description

@filipeforattini

Parent

#15

What to build

Bootstrap the src/runner/ module with empty type shells and land an NDJSON regression test that captures the event stream of a known crawl. The shells compile but route no behavior; the regression test becomes the trip wire that every subsequent slice must keep green.

Type shells to add (in src/runner/mod.rs): JobRunner, JobOutcome, JobTimings, SessionContext, RetryDecision, JobError, FetchSuccess. Shapes per PRD #15 "Implementation Decisions". Send + Sync, no per-call mutable state on self.

NDJSON regression test lives in tests/ and runs a small deterministic crawl against a fixture HTTP server, serializing the emitted NDJSON event stream and asserting byte-equality against a checked-in golden file.

Acceptance criteria

  • src/runner/mod.rs exists with the listed type shells
  • cargo check --all-targets --all-features green
  • cargo test --all-features green
  • New integration test under tests/ runs a deterministic crawl and asserts NDJSON event stream parity against a golden file
  • Golden file committed under tests/fixtures/
  • No behavior changes anywhere else
  • #[cfg(test)] mod tests block in src/runner/mod.rs proving the struct shapes compile and serialize as expected

Blocked by

None - can start immediately

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestneeds-triageAwaiting triagerustPull requests that update rust code

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions