Skip to content

[Task] Thread local abort provenance into LLM stream diagnostics #773

@Astro-Han

Description

@Astro-Han

Goal

Make local cancellation boundaries explicit in nested LLM stream diagnostics so #721-class local aborts can be distinguished from unknown iterator failures when abort provenance exists.

Scope

In scope:

  • Add a stream diagnostic hook such as recordAbortState / abort provenance capture.
  • Merge existing assistant abort diagnostics or interrupt metadata into llm_trace.stream.abort.
  • Classify local_abort as high confidence only when the abort signal is aborted and provenance is present.
  • Preserve watchdog precedence when watchdog and abort evidence overlap.

Out of scope:

  • Changing retry behavior.
  • Changing user-facing abort copy.
  • Treating a bare aborted signal as local abort without provenance.

Relevant files or context

Related work:

Likely files:

  • packages/opencode/src/session/llm.ts
  • packages/opencode/src/session/processor.ts
  • packages/opencode/src/session/llm-trace/types.ts
  • packages/opencode/src/session/llm-trace/recorder.ts
  • packages/opencode/src/session/llm-trace/stream-diagnostics.ts
  • packages/opencode/test/session/llm-trace.test.ts
  • packages/opencode/test/session/llm.test.ts

Current gap verified during PR #771 review: recordIteratorError passes abortProvenancePresent: false, while the classifier already supports local_abort when provenance is present.

Verification

  • Add local abort + iterator error coverage: provenance present => boundary: \"local_abort\", confidence: \"high\".
  • Add watchdog/abort overlap coverage: watchdog evidence still wins.
  • Add missing provenance coverage: aborted signal + iterator error + no provenance remains unknown / low.
  • Run targeted session trace tests and typecheck.

Execution mode

Investigate and propose a plan first — the agent must post the plan as an issue comment and wait for an explicit "approved" comment before writing code or opening a PR.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium priorityharnessModel harness, prompts, tool descriptions, and session mechanicstaskNarrow execution, audit, spike, migration, tracking, or upstream follow-up work

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions