Skip to content

Emit a complete immutable review manifest and partial-coverage contract #367

Description

@acoliver

Problem

OpenCodeReview can produce useful findings while some selected files or subtasks fail. Consumers currently receive aggregate status and warnings, but not a complete machine-readable record of which files were selected, completed, reused, failed, or waived. This allows a partial review to look complete.

A retained cross-repository study observed 117 fully successful runs out of 145 attempts (80.7%), while 142 runs produced some usable output (97.9%). In a matched same-commit comparison, one run reviewed 90 files but reported 16 provider-concurrency subtask failures. Useful output and complete coverage are materially different states.

PR 306 added resumable sessions and file checkpoints, which appears to be the right substrate. This request is a narrow output-contract follow-up, not a parallel persistence system.

Desired behavior

Expose a versioned immutable run manifest through JSON output and persisted sessions containing:

  • canonical run/session ID and parent/resume ID;
  • repository identity, requested head, resolved base, and exact range;
  • OCR version, provider/model identifier, configured concurrency, and non-secret rule/config hashes;
  • selected, completed, reused, failed, and explicitly waived file sets;
  • typed failure classification per failed item;
  • terminal state: complete, partial, failed, or skipped;
  • redacted source artifact checksum and elapsed execution metadata.

A partial result may still publish useful findings, but it must not be represented as ordinary success or as a complete no-findings result.

Acceptance criteria

  • JSON output and the persisted session expose the same coverage values.
  • Selected/completed/reused/failed arrays are machine-readable and stable under a versioned schema.
  • Mixed-success runs terminate as partial until failed items are resumed successfully or explicitly waived.
  • Resume retains the original input identity and links to its parent session.
  • Tests cover full success, zero findings, mixed failures, resume, cancellation, and provider transition.
  • No credentials, raw secrets, or provider tokens are emitted.

Related work

  • PR 306: resumable sessions and file checkpoints
  • PR 179: persisted review results/viewer

Neither currently provides the complete selected-versus-completed coverage contract requested here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions