Skip to content

bug(review): review abandon is gated by the managed reviewer assets check it exists to escape β€” the prescribed sync cannot repair itΒ #5735

Open

Description

@ipproyectosysoluciones

Pre-flight Checklist

  • I have searched existing issues and this is not a duplicate
  • I understand that PRs will be rejected if the linked issue does not have status:approved

πŸ“ Bug Description

review abandon β€” the operator's documented escape hatch for a stuck lineage β€” fails during repository-root resolution with managed reviewer assets are outdated; run gentle-ai sync, and the prescribed sync cannot clear the gate. Seven sync invocations across four binaries (installed PATH binary, a repo-built binary, and the dev-binary-override gentle-ai-beta at two different versions; both scoped --agent pi and bare all-agents forms) all exited 0, and none changed the abandon refusal. The gate also persisted after ~/.gentle-ai/state.json was verified to record the executing binary's own version and managed-asset digest, so a matching last-synced digest alone does not satisfy the abandon check. A review that stops on managed_assets_outdated therefore also loses its only in-facade escape. Observed evidence only; no root cause is asserted.

πŸ”„ Steps to Reproduce

  1. Register a gentle-pi dev-binary override pointing at a repo-built binary (~/.pi/gentle-ai/dev-binary.json, schema gentle-pi.dev-binary/v1, path <repo>/gentle-ai-beta), so native review operations execute through that binary.
  2. Start an ordinary native review; the lineage is created and the authority freezes (lineage in this report: review-0bb2de9ce872fb4d, tier high).
  3. Change the agent environment mid-review (this session removed an unstable provider package with pi remove and purged its registry/credential entries).
  4. Bound STATUS stops with reason_code: managed_assets_outdated and a sync continuation.
  5. Run every form of the prescribed remediation: bare gentle-ai sync (13 agents), gentle-ai sync --agent pi (installed binary), <repo>/gentle-ai sync --agent pi, and <repo>/gentle-ai-beta sync --agent pi (before and after rebuilding that binary from the current branch tip). All exit 0.
  6. Run review abandon (lineage/actor/reason operator_disposition) through the facade: fails with the repo-root error above.
  7. Re-run the executing binary's own sync last; confirm ~/.gentle-ai/state.json now records that binary's version and digest; retry review abandon once: identical failure.

βœ… Expected Behavior

Either:

❌ Actual Behavior

  • review abandon failed 4 of 4 attempts with the identical error, empty stdout, exit 1.
  • Every prescribed sync exited 0 and changed at least one managed file; none altered the refusal.
  • The error names no asset, no digest, and no binary; the lineage remains in reviewing with no operator-side escape via the facade.
  • Reviewer slot state was preserved on every failed native invocation; nothing was burned.

Gentle AI Version

Executing binary (dev-binary override, <repo>/gentle-ai-beta): 4.2.1-0.20261024083159-cf5a7dee9b15+dirty, rebuilt from the branch tip mid-session; the override had previously pointed at 4.0.1-0.20261009023432-4e020a8a26d5. Installed PATH binary: 4.2.1-0.20261017131020-d98d27977b2e+dirty.

Operating System

Linux (Ubuntu/Debian)

AI Agent / Client

Other

πŸ“‹ Affected Area

CLI (commands, flags)

πŸ’‘ Logs / Error Output

# review abandon β€” 4 of 4 attempts, identical (facade diagnostics)
operation: review/abandon
error_code: empty-output
exit_code: 1
stderr: Error: resolve review repository root: managed reviewer assets are outdated; run `gentle-ai sync`

# sync invocations (all exit 0)
gentle-ai sync --agent pi                          -> 1 managed file changed
gentle-ai sync (bare, 13 agents)                   -> 3 managed files changed
<repo>/gentle-ai-beta sync --agent pi (4.0.1)      -> 3 files changed, then "No managed files changed"
<repo>/gentle-ai sync --agent pi                   -> 3 files changed
<repo>/gentle-ai-beta sync --agent pi (4.2.1 tip)  -> 1 file changed

# ~/.gentle-ai/state.json after the last (executor) sync
installed_binary_version: 4.2.1-0.20261024083159-cf5a7dee9b15+dirty
managed_asset_digest:      sha256:a25e438751c754fac9a29703a78dea5df68efde6dd836daea0d3ad6fe43af4bd

# the final abandon retry still refused with the identical error

Additional Context

Related but not equivalent surfaces of the same asset-gate family:

Issue Why this report is not covered
#4379 Capture gated by a global-vs-pinned binary digest mismatch; the workaround there (re-sync with the executing binary) was reproduced here and did not clear the abandon gate.
#5698 The unachievable-lens withdraw command escapes to PATH; documents that sync records the digest of the binary that runs it. This report's executor was synced last and still refused.
#5500 sync aborts at the telemetry ownership check; here every sync exits 0.
#4711 STATUS offers collect before asset preflight; here the fresh-target STATUS is healthy (action: start).
#4756 Frozen expected digest on an active lineage for capture; here the blocked operation is abandon itself.

Observed nuance: the dev-binary override points at a repo path whose binary was rebuilt mid-lineage (4.0.1 to 4.2.1 branch tip), so the executor's identity drifted under a stable override path β€” a time-shifted variant of the two-binary trap. No root cause is asserted; all observed outputs, sync results, and state digests were captured in-session, the lineage remains in reviewing with reviewer slots unburned, and no state was deleted.

Activity

  1. ipproyectosysoluciones commented on Oct 25, 2026

    @ipproyectosysoluciones
    ContributorAuthor

    Classification request: when triaging, please add labels type:bug and status:needs-review, and assign ipproyectosysoluciones (the reporter).

    My account has read-only access to this repository, so I can't apply labels or assignees myself, not even self-assignment. Found while testing the 4.2.1 beta; the full evidence is in the issue body.

    Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions