Skip to content

pending-questions: verify live state of linked PRs/issues before presenting an item #6259

Closed

Description

@dezren39

On 2026-11-05 the hourly pending-questions run presented PR #2984 as an open merge decision ('Merge PR #2984? — Merge it / Keep holding', with a claimed merge recommendation). The PR had been CLOSED as superseded on 2026-11-03, was conflicting/dirty, and its premise (Nov 2-4 trough A3 routing) had been reversed by Drew on 2026-11-02. Drew answered 'authorized' against the stale item; the merge lane stopped on its own pre-merge verification and nothing was merged.

Defect: the pending-questions discovery/presentation path does not check the live state of an item's linked PRs/issues before asking.

Fix: before presenting (and before marking asked), for each item with gh: links, check live state via gh — if the linked PR/issue is closed/merged, drop or re-validate the item instead of presenting it; if a cited 'recommendation' is claimed, verify it exists on the record. Apply the same check when an asked item is re-presented after 24h.

Acceptance criteria

  • Before presenting (and before marking asked), the pending-questions path checks the live state of every gh:-linked PR/issue for the item; a closed/merged linked item drops or re-validates the item instead of presenting it.
  • A cited recommendation is presented only if it is verified to exist on the record.
  • The same live-state check runs when an asked item is re-presented after 24h.
  • Regression coverage reproduces the 2026-11-05 incident shape (linked PR closed as superseded before presentation) and shows the item is not presented.

Activity

  1. developing-today commented on Nov 5, 2026

    @developing-today
    Contributor
  2. dezren39 commented on Nov 6, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

  3. added
    kind/bugSomething isn't working (prefixed form of the classic bug label)
    source/humanFiled directly by a human
    priority/normalOrdinary priority (the default)
    effort/sSmall: expected under 2 hours of work
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    task/triageQueue packet kind: verify, reproduce, and route this item
    on Nov 6, 2026
  4. dezren39 commented on Nov 6, 2026

    @dezren39
    MemberAuthor

    Intake review

    • Related: the 2026-11-05 incident on this issue — PR TEMPORARY (Nov 2-4 trough): workhorse primary defaults to Meta - DeepSeek leg parked (#2173 A3) #2984 presented as an open merge decision two days after it closed as superseded; Drew answered against the stale item and the merge lane's own pre-merge verification was the only thing that stopped it.
    • Notes: Still live at intake — no merged PR references this fix. The defect is in the pending-questions discovery/presentation path, not in the merge lane (which behaved correctly).
    • Risks: a live-state check that caches or races reintroduces the same staleness at a smaller window; check at presentation time, not discovery time.
    • Suggested approach: add the gh live-state read at the present/mark-asked boundary for every gh: link, drop-or-revalidate on closed/merged, and verify claimed recommendations against the record before rendering.

    🤖 Fleet monitor intake (repo-fleet-monitor), 2026-11-06.

  5. dezren39 commented on Nov 6, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · triage verdict: CONFIRMED (live, not yet fixed)

    • Agent: repo queue worker, lane code-q (repo-worker-code), task 11042 (triage, direct lane)
    • Fresh evidence (2026-11-06):
      • Issue pending-questions: verify live state of linked PRs/issues before presenting an item #6259 is OPEN; only label is meta/follow-up — no hard-stop labels.
      • PR TEMPORARY (Nov 2-4 trough): workhorse primary defaults to Meta - DeepSeek leg parked (#2173 A3) #2984 (the stale item): gh pr view → state CLOSED, closedAt 2026-11-03T10:46:26Z, mergedAt null, mergeable CONFLICTING — exactly as the issue describes (closed as superseded, premise reversed 2026-11-02).
      • The ledger side was repaired retroactively: pending-questions ledger item pr-2984 is now status dropped with a note recording the incident ("Item was stale when presented 03:28 … Never resurface").
      • The systemic fix has NOT landed: the live pending-questions-hourly job body (read in full this run) still goes ledger → discovery → pick → mark asked → compose, with no live-state check of an item's linked PRs/issues via gh before presenting or marking asked, and no check that a cited recommendation exists on the record. The same gap applies to the 24h re-ask path (step 1 returns asked items to pending with no state check).
      • Nothing in developing-today/code implements this path — grep for pending-questions / pending_questions across the repo at HEAD dfe3277 returns no presentation code; the presentation path is the Muse cron job pending-questions-hourly (goal pending-decisions-hourly-questions-for-drew), so the fix lands there, not in this repo.
    • Routing: follow-up fix task enqueued from this triage: add a live-state verification step to the pending-questions-hourly job body (repo-copy-first + cron.update per the standing cron rule) — for each candidate item with GitHub links, check linked PR/issue state via gh before presenting and before marking asked; drop/re-validate closed/merged items instead of presenting them; verify any cited recommendation exists on the record; apply the same check on the 24h re-ask path.
    • Links: task 11042 · issue pending-questions: verify live state of linked PRs/issues before presenting an item #6259 · PR TEMPORARY (Nov 2-4 trough): workhorse primary defaults to Meta - DeepSeek leg parked (#2173 A3) #2984
  6. 1 remaining item

  7. added
    queue/queuedHas a queued task in the Supabase agent queue
    and removed
    queue/claimedQueue worker lifecycle state
    work/assignedQueue worker lifecycle state
    on Nov 6, 2026
  8. dezren39 commented on Nov 6, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · triage done

  9. added
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 6, 2026
  10. dezren39 commented on Nov 6, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done

    Fix delivered (2026-11-06):

    • The job body now has a new step 3, LIVE-STATE VERIFICATION: for every candidate item — the items about to be picked, and every asked item the 24h re-ask rule is about to return to pending (step 1 now gates on it explicitly) — the run checks EACH linked PR/issue live via the gh CLI BEFORE marking asked and BEFORE presenting. A closed/merged link means the item is dropped (status "dropped") or re-validated, with the artifact, its live state, and the verification date recorded in the item's note. A cited recommendation may only be presented if verified to exist on the record. Cadence (1h), item cap (1–2), delivery chats, and all other behavior are unchanged.
    • Delivery followed the standing cron rule: the new body text was prepared first, applied to the live job with cron.update (the repo-copy projection is tool-read-only, so the update regenerated it), the projection was verified byte-identical to the prepared text, and committed in hatch-personal as f93c2ba15 (git status for the path clean after commit). Read-back via cron.view shows the verification step verbatim in the live job.

    Dry-pass regression check (the packet's test): every pending/asked ledger item's links were checked live via gh on 2026-11-06:

    Closing this issue as fixed.

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

    effort/sSmall: expected under 2 hours of workkind/bugSomething isn't working (prefixed form of the classic bug label)meta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedmeta/follow-upFollow-up spun out of earlier workpriority/normalOrdinary priority (the default)source/humanFiled directly by a humanstatus:donetask/triageQueue packet kind: verify, reproduce, and route this item

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions