feat: list and show tracker tasks that routing refused #202
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "ryangr0/ploeg-route-refusals"
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?
VIK-1632 Ploeg: list recent routing refusals on the operator API
https://vikunja.webgrip.dev/tasks/1632
GET /api/v1/operator/route-refusalsreturns{schemaVersion, generatedAt, windowDays: 14, refusals}. It lists the newest refusal of each task, newest first, at most 50, within the consumer's teams. A task drops out when a laterwork_item.queuedorwork_item.refreshedaudit exists for it, or when its refusal is older than 14 days. Any query parameter answers 400invalid_request.target.Refusalnow carries a stableCode(label_missing, label_not_allowed, label_unregistered, multiple_labels, labels_unread, no_board_rule, target_not_ready) andAllowed, the repo/ labels of the matched board rule. Both are stored in the audit detail. Rows written before this change answerunclassifiedwithallowedLabels: []. The tracker comment is unchanged, and a test pins its exact text.audit_log (at)for this action.operator-api.v1gainsrouteRefusalsResponse. The contracts README androute-a-multi-repo-board.mdname the endpoint.VIK-1633 Vloer: show tasks Ploeg could not start under Needs you
https://vikunja.webgrip.dev/tasks/1633
PloegClient.nowreads route-refusals withadded: true. A 404 from an older Ploeg becomes an empty list with no notice, and any other failure becomeserrors.refused. Rows are filtered to the user's teams. The board name and the task link come from the task connection whose provider and project match (sourceTaskUrl). Without a match the link falls back toploeg.trackerUrl, and without that there is no button.unclassifiedshows Ploeg's reason. The primary button reads Open in Vikunja. A failed read shows an inline notice with Try again.chore(site)commit (ADR-0015).Tests
pkg/target/refusal_test.go,pkg/store/route_refusals_test.goandpkg/httpapi/route_refusals_test.go.go test -count=1 ./...passed andgo vet ./...reported nothing.test/now-view.test.mjsandtest/ploeg.test.ts.npm testpassed all 707 tests, andnpm run checkpassed.mise run verifypassed every gate: vloer, demo-replay, vloer-extension, ploeg, brand, site, site-demo, helm, release, integration and docs.Checks left to CI
None. Every gate ran locally.
🤖 Generated with Claude Code
Pull request closed