feat(i8-i9): webhook DEAD replay, read-only delivery status, and callback UI

I8: platform proxies replay to webhook; webhook ops token filter and internal
replay endpoint; delivery service supports read/replay flows.

I9: platform GET callback webhook delivery status by inbox id; UI shows
read-only status block and handles load errors without blocking the page.

Also refresh OpenAPI, Runbook notes, test fixtures and YAML; fix Vite dev
axios baseURL so /api uses proxy; improve login error messaging.

Made-with: Cursor
This commit is contained in:
2026-04-07 21:26:44 +08:00
parent 5e051633ec
commit d53ddf32c8
20 changed files with 874 additions and 6 deletions
@@ -33,6 +33,12 @@ platform:
internal:
token: ${PLATFORM_INTERNAL_TOKEN:${CRAFTLABS_PLATFORM_INTERNAL_TOKEN:}}
# I8:平台代调 Webhook 出库重放(OPS JWT → 平台 → Webhook 内部 API
craftlabs:
webhook:
base-url: ${LICENSE_WEBHOOK_BASE_URL:}
ops-token: ${LICENSE_WEBHOOK_OPS_TOKEN:}
springdoc:
swagger-ui:
path: /swagger-ui.html