Skip to content

fix(feedback): bind browser idempotency key to payload and outcome - #325

Merged
Sarthib7 merged 2 commits into
mainfrom
v1/feedback-web-key
Sep 20, 2026
Merged

Sarthib7 merged 2 commits into
mainfrom
v1/feedback-web-key

Conversation

@Sarthib7

@Sarthib7 Sarthib7 commented Sep 6, 2026 •

Copy link
Copy Markdown
Contributor

Fixes #317

The dashboard feedback retry idempotency key is bound to the serialized payload and rotated when the payload changes; cleared on accepted or definitive HTTP 409, retained across uncertain failures. Prevents key reuse across edited payloads and a 409 retry loop.

Files: kb/static/app.js, tests/test_dashboard_contract_gaps.py.
Verification: test_dashboard_contract_gaps passed on a main-based tree. Rollback: delete branch, close PR.

Part of core completion rollout (#317).

@github-actions github-actions Bot added area/web Dashboard, seat portal, static UI area/docs Documentation and ADRs area/tests Test suite and fixtures labels Sep 6, 2026
@Sarthib7

Copy link
Copy Markdown
Contributor Author

Triage: the browser now sends idempotency_key, but the current /ingest and /feedback handlers do not read or forward it. If the PR's duplicate-write prevention claim depends on this key, that guarantee is not implemented end to end. Please wire the key through server-side binding and deduplication, or narrow the claim to client-side retry state; then fix the blocked checks. Outside A2.

Sarthib7 added a commit that referenced this pull request Sep 20, 2026
Rebased onto main with DCO sign-off for #325.

Signed-off-by: sarthib7 <sarthiborkar7@gmail.com>
Rebased onto main (98aa572) for #325.

Signed-off-by: sarthib7 <sarthiborkar7@gmail.com>
@Sarthib7
Sarthib7 merged commit 12fac12 into main Sep 20, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/docs Documentation and ADRs area/tests Test suite and fixtures area/web Dashboard, seat portal, static UI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Core completion rollout: stacked slices S2-S9

1 participant