Skip to content

coordinator: classify zero-provider source seal failures #129

Description

@sumitake

Summary

Installed coordinator 6.1.1 returned an opaque, zero-provider source_seal_failed after about 60 seconds. The response had no failure_trace or safe subtype, so the caller could not distinguish a concurrent source mutation from a source limit, repository-shape problem, capture deadline, or I/O failure.

Evidence

  • Request: project-estimation-r3-plan-r2
  • Exact repository head requested: e52ab85c7b010d683906b3d6362c836d7c847792
  • Manifest: 3f56ec0e275b807774edd0484514f4cdfaa78646cae403606ea6fb80618211cf
  • Terminal response:
status=protocol_error
error_code=source_seal_failed
provider_processes=0
metadata_process_count=0
failure_trace=null

The worktree was not quiescent in the surrounding interval: transient request material and learning-ledger files were being changed by concurrent session activity. That makes a mutation race plausible, but the response does not prove it. Stable dirty linked worktrees are supposed to be supported, so "dirty" alone is not an actionable diagnosis.

Requested behavior

  • Preserve fail-closed zero-provider behavior.
  • Add one bounded, path-free source-seal detail from a closed vocabulary, for example source_changed_during_capture, unsupported_repository_shape, source_limit, capture_deadline, or source_io_error.
  • Test stable dirty linked worktree success and concurrent-mutation failure with the specific safe subtype, bounded completion, cleanup, and zero provider calls.
  • Document that request framing should live outside repo_root and that callers should keep source quiescent during seal/capture.

The consumed request was not replayed or relabelled.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions