fix(vault): drain and replay the pin retry queue
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 55/100
- Issue-Typ
- Feature
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- bun, javascript, localization, typescript
Rechercherichtung
Read frontend/src/features/vault-pinning/lib/sync-queue.ts and frontend/src/features/vault-pinning/hooks/use-pin.ts to understand queue storage and enqueue behavior. Then inspect the pin UI and the /api/vault/pin handler to trace manual retry, startup and online triggers, and idempotent replay. Add tests in the frontend/tests/*.test.mjs style and run them with bun test; done means retries are ordered and bounded, successful entries are removed, and persistent failures appear in the UI.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Summary
Failed pin-audit writes are queued in the browser but never replayed. Add a drain that retries them safely.
Estimated size: S
Motivation
A pin can succeed at the provider while the audit write fails, leaving quota accounting wrong until someone fixes it by hand.
Current state in this repo
frontend/src/features/vault-pinning/hooks/use-pin.tscallsenqueue(...)when the audit write fails.frontend/src/features/vault-pinning/lib/sync-queue.tsstores entries undervault:pin_queueinlocalStorage; nothing reads and replays them.
Proposal
- Add
drainQueue()that replays entries against/api/vault/pinin timestamp order. - Run it on app start, on the browser
onlineevent, and from a manual retry action in the pin UI. - Exponential backoff with a cap; de-duplicate by
(cid, service, action)keeping the latest entry; stop after N failures and surface the entry in the UI.
Acceptance criteria
- A failed audit write is replayed after reconnect and then removed from the queue.
- Replaying the same entry twice does not change quota (the server write is idempotent).
- Entries that keep failing are surfaced to the user instead of retrying forever.
Out of scope
- Syncing the queue across devices.
Dependencies
- None; can be picked up independently.
Testing plan
- Unit tests with a fake
fetchand fake timers (frontend/tests/*.test.mjsstyle, run withbun test).
Part of #43. Ground rules for the content layer: no secrets in the repo, content-layer failures must never block or discard quantum execution, and tests and docs ship with every PR.
- Vorherrschende Sprache
- Python
- Sterne
- 2
- Forks
- 4
- Ø Merge
- 6 Std. 54 Min.
- Gemergte PRs (30 T.)
- 7
Entwicklungsumgebung
- Enthält ein Dockerfile oder eine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Kein Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus QMeshPy/distributed-quantum
-
enhancement good first issue helia storage tier-1
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
QMeshPy/distributed-quantum#53 ·
Maintainer antworten meist innerhalb von 1 Tag
-
chain-integration enhancement payments research-spike tier-2
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 55/100
QMeshPy/distributed-quantum#78 ·
Maintainer antworten meist innerhalb von 1 Tag
-
chain-integration enhancement payments research-spike tier-2
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 66/100
QMeshPy/distributed-quantum#77 ·
Maintainer antworten meist innerhalb von 1 Tag
-
chain-integration enhancement payments tier-2
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
QMeshPy/distributed-quantum#76 ·
Maintainer antworten meist innerhalb von 1 Tag
-
documentation good first issue kubo storage tier-1
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 42/100
QMeshPy/distributed-quantum#75 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in QMeshPy/distributed-quantum
Ähnliche Issues
-
Validate non-divisible effective batch sizes in the Unsloth LoRA backendEvtl. vergeben @debesh-biswas hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
-
`rx.Model` event arguments emit `PydanticDeprecatedSince20` once per payload keyEvtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offen
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
reflex-dev/reflex#7634 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 2 Tagen
-
documentation
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 82/100
topoteretes/cognee#6239 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
ranaroussi/yfinance#3009 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Test discovery aborts on GPU builds without cuStateVec: check_cuStateVec expects a failed result but set_config() now raises RuntimeErrorEvtl. vergeben @dmeliksetian hat das heute übernommen. Offenbug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
Qiskit/qiskit-aer#2495 ·
Maintainer antworten meist innerhalb von 1 Tag