Repository navigation
bug(review): review abandon is gated by the managed reviewer assets check it exists to escape β the prescribed sync cannot repair itΒ #5735
Description
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
- Register a gentle-pi dev-binary override pointing at a repo-built binary (
~/.pi/gentle-ai/dev-binary.json, schemagentle-pi.dev-binary/v1, path<repo>/gentle-ai-beta), so native review operations execute through that binary. - Start an ordinary native review; the lineage is created and the authority freezes (lineage in this report:
review-0bb2de9ce872fb4d, tier high). - Change the agent environment mid-review (this session removed an unstable provider package with
pi removeand purged its registry/credential entries). - Bound STATUS stops with
reason_code: managed_assets_outdatedand a sync continuation. - 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. - Run
review abandon(lineage/actor/reasonoperator_disposition) through the facade: fails with the repo-root error above. - Re-run the executing binary's own sync last; confirm
~/.gentle-ai/state.jsonnow records that binary's version and digest; retryreview abandononce: identical failure.
β Expected Behavior
Either:
review abandonis not gated by the managed reviewer assets state it is the escape hatch for, or- the error names the specific asset and the expected-vs-actual digests, and the prescription names exactly which binary's sync can repair the executing binary's gate (per bug(review): the unachievable-lens withdraw command is the one stop command not anchored to its binary, so relays run it through PATHΒ #5698, the
abandoncontinuation ofcorrection_context_budget_exceededis already anchored to its issuing binary; the abandon operation should stay reachable under the same discipline).
β Actual Behavior
review abandonfailed 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
reviewingwith 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 errorAdditional 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
ipproyectosysoluciones commentedon Oct 25, 2026
Classification request: when triaging, please add labels
type:bugandstatus:needs-review, and assignipproyectosysoluciones(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!