fix(workdir): keep diagnostic context transparent to Write creation
This commit is contained in:
@@ -131,6 +131,12 @@ is never parsed into a reason.
|
||||
18 codes with no reason, a typed reason, and nested diagnostic wrappers. In
|
||||
particular, OutcomeUnknown/Conflict remain execution failures with unchanged
|
||||
display and inspection-before-retry guidance, not argument errors.
|
||||
Operational consumers share `WorkdirError::classification_source` to ignore
|
||||
only diagnostic wrappers while retaining the original error for diagnostics.
|
||||
Public Write tests cross JSON stat errors into the tool and the checked local
|
||||
provider: missing files are created identically without/with/nested reasons;
|
||||
denied/read-only/conflict/unknown-outcome stat failures never write or retry.
|
||||
This protects actual create control flow in addition to error conversion.
|
||||
- A signed real self-handler test observes command dispatch, then removes only
|
||||
its fixture session-registration entry before returning the start handle.
|
||||
The 502 remains a post-start `command_registration` failure with a neutral
|
||||
|
||||
@@ -25,8 +25,8 @@
|
||||
|
||||
## Handling and limitation
|
||||
|
||||
The finding is being fixed in a forward commit on the same source ref. Source
|
||||
movement requires a fresh exact-source trusted review. The original narrative
|
||||
The first finding was fixed in forward commit `10c55874` on the same source ref.
|
||||
Source movement requires a fresh exact-source trusted review. The original narrative
|
||||
verdict is not substituted for a recorded authoritative review event.
|
||||
|
||||
Ticket seq4 records this operational blocker for Orchestrator attention. The
|
||||
@@ -40,6 +40,34 @@ reported Workdir 403, and T-731's fixture diagnostics do not resolve either live
|
||||
incident. The registration failure is not repaired by the product-code changes
|
||||
in this Ticket.
|
||||
|
||||
## Fresh review: invalid severity rejected (422)
|
||||
|
||||
- Reviewed source after the first forward fix:
|
||||
`10c55874e3cc4c3562f608e10c56ff1c4c2a4d3c`.
|
||||
- Fresh request: MR seq3 event `01a120f4-6c90-7791-a36f-69d52e2cbd4b`,
|
||||
`2026-10-09T13:57:31.897275884+00:00`, same Ticket revision and sole MR.
|
||||
- Independent review found a second operational regression: normal Write's
|
||||
bare NotFound match failed to create files for typed/nested diagnostic context.
|
||||
A public-tool harness reproduced it despite 59 focused tests passing.
|
||||
- The sole executed verdict attempt returned HTTP 422, specifically invalid
|
||||
`findings[0].severity = medium`; Backend expects blocker/major/minor/note.
|
||||
Committed response: `E01a120fc-a7b7-79c3-b812-12cfd1038f75`.
|
||||
- Observed UTC bracket was 14:05:37.641361776Z–14:06:36.777627982Z on
|
||||
2026-10-09, not the exact server request timestamp. Parent MR reread at
|
||||
14:11:31Z still had no events after seq3.
|
||||
- Parent requested a schema-only correction on the unchanged snapshot, but the
|
||||
Reviewer role's exactly-once instruction disallowed a second verdict call.
|
||||
Its committed follow-up confirms no corrected submission executed. No other
|
||||
mutation path or Reviewer was used to bypass this restriction.
|
||||
|
||||
This 422 is input validation evidence, not proof that the earlier 401 has been
|
||||
resolved. The narrative request-changes judgment is not a recorded verdict.
|
||||
The reproduced second regression is addressed by the shared classification
|
||||
source and real Write regression in this forward change on the existing branch.
|
||||
The new test fails for the typed-reason case before the fix and passes all three
|
||||
forms after it. That source movement still needs fresh exact-source review, not
|
||||
reuse of the old review binding. The user-reported Workdir 403 remains unidentified.
|
||||
|
||||
## Improvement proposal
|
||||
|
||||
A verdict-registration rejection should expose a safe, bounded internal
|
||||
@@ -49,3 +77,8 @@ locate the corresponding Backend record. The current bare 401 leaves the
|
||||
reviewer unable to distinguish authentication failure from downstream authority
|
||||
rejection. Investigate under separate authorization; do not weaken the guarded
|
||||
review path or retry blindly to hide the failure.
|
||||
|
||||
Also align the tool schema's severity vocabulary with the Backend enum, rather
|
||||
than advertising an unconstrained string that consumes an exactly-once verdict
|
||||
attempt on a deterministic 422. Any correction/review-grant lifecycle policy
|
||||
needs a separate explicit design; this Ticket does not change it.
|
||||
|
||||
Reference in New Issue
Block a user