feat(suggested-fix): add applied_pending status for deferred verification #156
Reference in New Issue
Block a user
Delete Branch "feat/fix-pending-verification"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Adds a fourth, non-terminal outcome to the suggested-fix banner: Awaiting verification. Today the verifying banner forces a synchronous verdict (worked / didn't / partial), but a lot of real fixes are async — engineer ran the script but is waiting on the client to power-cycle, AD replication, an O365 license sync. Without a fourth state the banner sits stale or the engineer guesses wrong.
What ships
Backend
applied_pendingparallel toapplied_partial. Pending = "applied fully, verification deferred"; partial = "applied some of it." Distinct semantics, distinct prose.pending_reasoncolumn (nullable Text) — required when outcome=applied_pending. Stores the "what are you waiting on?" reason.applied_atbut NOTverified_at.Frontend
BannerMode = 'pending'+PendingBannercomponent (info-tone, mirrorsPartialBanner) with worked / didn't / update-reason / dismiss actions.VerifyingBanneroverflow menu adds "Waiting to verify…".NudgeBanner"Still checking" button now recordsapplied_pendingwith a reason instead of just silencing for the session — closes the loop semantically.AssistantChatPagebanner-mode derivation mapsapplied_pending → 'pending'.Out of scope (intentionally)
PendingBanneris the per-session reminder. Add the dashboard surface only if engineers report losing track across multiple pending sessions.Test plan
backend/tests/test_fix_outcome_endpoint.py), including 4 new tests covering:applied_pendingrequires notes, pending stores reason + applied_at but not verified_at, pending→success transition allowed, pending_reason updates on re-PATCH.tsc --noEmitclean for the app config.alembic upgrade heads).PendingBannerrendering withpending_reason, and the nudge "Still checking" → pending flow in the dev environment.🤖 Generated with Claude Code
Engineer applies a fix but can't verify yet (waiting on client power-cycle, AD replication, async sync). Today the verifying banner forces a synchronous verdict (worked / didn't / partial) — anything else means leaving the banner stale or guessing wrong. This adds a fourth outcome that parks the fix in a non-terminal "Awaiting verification" state with a reason ("waiting on what?") and exposes it on the chat-anchored banner so the engineer doesn't lose track. Backend - New non-terminal status `applied_pending` parallel to `applied_partial`. - New `pending_reason` column (nullable Text) — the "what are you waiting on?" prose, mirrors `partial_notes`. Required when outcome=applied_pending. - Outcome endpoint allows pending in/out transitions; pending stamps applied_at but NOT verified_at (it's parked, not verified). - Resolution-note + escalation-package prompts handle the new status: resolution note frames the fix as provisional; escalation package surfaces pending verification as the leading hypothesis with reference to what's being waited on. - Migration: add column + extend status CHECK constraint. Frontend - New `BannerMode = 'pending'` + `PendingBanner` component (info-tone, parallel to PartialBanner) with worked / didn't / update-reason actions. - VerifyingBanner overflow menu adds "Waiting to verify…". - Nudge banner's "Still checking" button now actually records pending with a reason, instead of just silencing for the session. - AssistantChatPage banner-mode derivation maps applied_pending → 'pending'. Tests: 4 new integration tests covering pending notes requirement, reason storage + applied_at/verified_at semantics, pending→success transition, and pending_reason update on re-PATCH. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>The code-server LXC has bun and docker but no python/node/npm on PATH, which left Codex unable to reproduce build/test commands. Adds a 6-line block to PROJECT_CONTEXT.md showing the docker exec resolutionflow_{backend,frontend} form, and updates the AGENTS.md "Tooling you do NOT have" line to point Codex at it instead of suggesting toolchain installs. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>