Repository navigation
Description
Filed by the orchestrator's weekly triage retrospective (2026-10-27, code#1455).
Evidence: on 2026-10-27 Drew answered the SAME Plaid confirmation question (orch:goal_6f48d745f802, 'more institutions remain?') three times through three dashboard action submissions within ~25 minutes — da-mvqu22pd-2ypl7e (option pick 'more', 15:21Z), da-mvquwg1e-1ctbdc (same option pick again, 15:44Z), da-mvquwyig-2zcuoz (structured answers form, 15:45Z). The orchestrator had to dedupe two of the three as duplicates of the first.
Ask: a dashboard card should present ONE canonical answer control per question. When a question has already been answered (an applied answer action exists for that objectRef+questionId), the other answer widgets for the same question should be disabled/hidden, or the duplicate submissions rejected at the store with a pointer to the applied action.
Acceptance: (1) answering a question via any one control marks the question answered on the card; (2) a second answer submission for the same objectRef+questionId is rejected or recorded as a duplicate of the first, never as a fresh action the orchestrator must dedupe; (3) existing single-answer flows unchanged.
Acceptance criteria
- Answering a question via any one control on a dashboard card marks that question answered on the card.
- A second answer submission for the same objectRef+questionId is rejected at the store, or recorded as a duplicate of the first applied action — never as a fresh action the orchestrator must dedupe.
- Existing single-answer flows are unchanged.
Activity
developing-today commentedon Oct 27, 2026
CODE-548
dezren39 commentedon Oct 27, 2026
Intake review
Related: filed by the orchestrator's weekly triage retrospective (2026-10-27) from code#1455. Evidence: three submissions for the same Plaid question (orch:goal_6f48d745f802) on 2026-10-27 — da-mvqu22pd-2ypl7e (15:21Z), da-mvquwg1e-1ctbdc (15:44Z), da-mvquwyig-2zcuoz (15:45Z); the orchestrator deduped two as duplicates of the first.
Liveness: still live — no merged PR found that adds answered-state or duplicate rejection for dashboard answer widgets (searched this run).
Notes / risks: two enforcement points are possible (UI disable/hide vs store-level rejection); the store-level check is the robust one because duplicate submissions already reached the store. Keep the duplicate record auditable (pointer to the applied action) rather than silently dropping it.
Suggested approach: add an answered marker keyed by objectRef+questionId when an answer action is applied; render other widgets for that question disabled; reject or duplicate-mark later submissions at the store with a pointer to the applied action.
🤖 Agent note · handed off
dezren39 commentedon Nov 1, 2026
🤖 Agent note · picked up
22 remaining items
dezren39 commentedon Nov 3, 2026
🤖 Agent note · picked up
dezren39 commentedon Nov 3, 2026
🤖 Agent note · triage verdict
e7510b90a. actions.ts:320–356 rejects a repeatedquestionIdonly within onepayload.answersarray (aggregator(actions): one answer action may name the same survey question twice — duplicate questionId entries with contradictory values pass validateNewAction and checkActionAgainstItem #4291) — two separate answer submissions for the same question still both record. card-state.ts:96–113 merges answers latest-wins with no duplicate detection. render.ts:1383–1408 renders answered state per card, but each item card renders its own widget for the same question.queue/5010-1476-shared-answer-state, head82a4bcc), is CONFLICTING (mergeStateStatus: DIRTY) against current main. Not held, not Drew-owned. No parallel PR should be opened while it is the named fix; the next task decides rebase-vs-replace.repo-health-code-pilot(repo-health:v1:fix:developing-today/code:issue:1476). Issue stays open until that lands.fix(aggregator): disposition Codex findings on the answer-dedupe PR (#…
fix(aggregator): prevent duplicate answers by question (#1476) (#4024)
dezren39 commentedon Nov 3, 2026
🤖 Agent note · done
tsc --noEmitshows only the pre-existing overview.test.ts conflicts-fixture error tracked in pm-stack(aggregator): typecheck red on main — test/overview.test.ts HealthView fixture missing the new required conflicts field (from #1282 / PR #5032) #5043 (also present on clean main).