Skip to content

runtime: ordinary governance reviews fail closed across adapters #144

Description

@sumitake

Summary

Four ordinary, bounded governance.repository attempts during one architecture-documentation task failed closed despite valid exact-head repositories and noninteractive EOF-delimited stdin. Three completed failures are captured here; a separately running public review is intentionally excluded until it reaches a terminal state.

The observed failures are false-positive outcomes from the caller's perspective: the requested read-only repository review could not produce governing evidence even though the request shape and source were valid. The evidence does not yet prove whether the cause is avoidable prompt/invocation behavior, provider tool choice, adapter containment classification, or coordinator/runtime brittleness.

Related diagnostic gaps already exist in #139 and #131. This issue tracks the cross-adapter outcome and the root-cause investigation needed before changing caller guidance or runtime behavior.

Environment

  • Installed package: agent-collab 6.2.0
  • Provider runtime: 4.1.0
  • Manifest digest: 13a9f85f6e35a62af990fa9ae11e0c49e82d69ed07deaa4ef71339192b303c56
  • Source: one operator-authorized private workspace architecture PR, exact reviewed head prefix ec178215
  • Invocation: printf '%s' '<closed JSON>' | python3 <plugin-root>/coordinator.py
  • repo_root: canonical absolute root of the same real Git worktree used as cwd (path omitted)
  • No PTY, raw provider fallback, caller-supplied lineage, replay, mutation, or concurrent same-provider call

Common request fields were exactly:

{
  "logical_action": "governance.repository",
  "quality_profile": "frontier",
  "effort_class": "maximum",
  "timeout_ms": 600000,
  "prompt": "<bounded exact-head read-only review request>",
  "repo_root": "<canonical private worktree root>"
}

Each attempt additionally named one operator-approved target_agent.

Terminal evidence

Grok / xAI

  • Request: arch-refresh-grok-20260823
  • status=capability_error
  • error_code=source_containment_failed
  • adapter_code=outside_source
  • outside_source_observed=true
  • provider_processes=1, metadata_process_count=1
  • tool_outcomes={success:0, failed:0, incomplete:0, unknown:0}
  • native_envelope_sha256=null
  • cleanup_confirmed=true
  • No artifact or receipt

Zhipu / OpenCode Go

  • Request: arch-refresh-zhipu-20260823
  • Same public classification and zero-tool outcome as Grok
  • effective_effort=provider_default even though the closed request asked for maximum
  • provider_processes=1, metadata_process_count=1
  • cleanup_confirmed=true
  • No artifact or receipt

Gemini / Google

  • Request: arch-refresh-crosscheck-20260823
  • status=advisory, reason=execution_failed_text_salvaged
  • salvaged_from=protocol_error
  • adapter_code=failed_terminal, terminal_state=error
  • tool_outcomes={success:185, failed:1, incomplete:0, unknown:0}
  • outside_source_observed=false
  • provider_processes=1, metadata_process_count=2
  • cleanup_confirmed=true
  • The salvaged text identified three repository inconsistencies that were independently verified as real, showing that the read-heavy review substantially completed.
  • Correctly no governing artifact or receipt; advisory text was not treated as approval.

All attempts were consumed once and not replayed.

Investigation required

  1. Reproduce against a synthetic exact-head repository with the same coordinator shape, then compare a minimal prompt with the bounded architecture-review prompt.
  2. Preserve a path-free closed containment subtype for Grok and OpenCode as requested by runtime: classify outside-source repository review failures #139, and a bounded failed-operation class for Gemini as requested by runtime: classify failed tools in salvaged protocol errors #131.
  3. Determine whether the provider actually requested an out-of-root location, the adapter resolved an allowed location incorrectly, or the coordinator supplied inconsistent cwd/source context.
  4. Determine whether Gemini's single failed operation was load-bearing to the verdict contract or whether a benign tool failure currently poisons an otherwise grounded review.
  5. If caller wording or request construction is causal, add deterministic preflight or precise invocation guidance. If adapter/runtime logic is causal, fix it without weakening containment.
  6. Add cross-adapter regression coverage from real producer bytes through the public verifier.

Invariants

Keep fail-closed authority, canonical-source containment, bounded execution, cleanup, no raw provider output, no sensitive paths, and no automatic replay. A fix must improve classification or eliminate the false-positive path; it must not convert uncertain source behavior into a governing verdict.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions