From 524e6ea646adccb6c063d8da5e8b192dc2ab85c8 Mon Sep 17 00:00:00 2001 From: Jack Zhuang <277994282+os-zhuang@users.noreply.github.com> Date: Sat, 25 Jul 2026 11:24:02 +0800 Subject: [PATCH] chore(plugin-webhooks): drop the dead sys_webhook_delivery i18n blocks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `sys_webhook_delivery` was removed from @objectstack/plugin-webhooks when outbound delivery moved to @objectstack/service-messaging (`sys_http_delivery`, ADR-0018 M3), but its translation blocks lingered in all four generated locale bundles — loaded at runtime yet referenced by nothing. - Removed the `sys_webhook_delivery` node from each *.objects.generated.ts bundle (en/zh-CN/ja-JP/es-ES); WebhooksTranslations now carries only sys_webhook. - Corrected the stale ownership comment on SysWebhook that still named sys_webhook_delivery as a live sibling. The dangling SysWebhookDelivery import in scripts/i18n-extract.config.ts was fixed independently on main by #3489, so it is not part of this change. Co-Authored-By: Claude Opus 4.8 --- .../webhooks-drop-dead-delivery-i18n.md | 19 +++ .../plugin-webhooks/src/sys-webhook.object.ts | 9 +- .../src/translations/en.objects.generated.ts | 111 ------------------ .../translations/es-ES.objects.generated.ts | 111 ------------------ .../translations/ja-JP.objects.generated.ts | 111 ------------------ .../translations/zh-CN.objects.generated.ts | 111 ------------------ 6 files changed, 23 insertions(+), 449 deletions(-) create mode 100644 .changeset/webhooks-drop-dead-delivery-i18n.md diff --git a/.changeset/webhooks-drop-dead-delivery-i18n.md b/.changeset/webhooks-drop-dead-delivery-i18n.md new file mode 100644 index 0000000000..4b1c927169 --- /dev/null +++ b/.changeset/webhooks-drop-dead-delivery-i18n.md @@ -0,0 +1,19 @@ +--- +"@objectstack/plugin-webhooks": patch +--- + +chore(plugin-webhooks): drop the dead sys_webhook_delivery i18n blocks + +`sys_webhook_delivery` was removed from `@objectstack/plugin-webhooks` when +outbound delivery moved to `@objectstack/service-messaging` (`sys_http_delivery`, +ADR-0018 M3), but its translation blocks lingered in all four generated locale +bundles (en / zh-CN / ja-JP / es-ES) — loaded at runtime yet referenced by +nothing, since the object no longer exists in this plugin. + +- Removed the `sys_webhook_delivery` node from each `*.objects.generated.ts` + bundle; `WebhooksTranslations` now carries only `sys_webhook`. +- Corrected the stale ownership comment on `SysWebhook` that still named + `sys_webhook_delivery` as a live sibling. + +(The dangling `SysWebhookDelivery` import in `scripts/i18n-extract.config.ts` +was fixed independently on `main` by #3489, so it is not part of this change.) diff --git a/packages/plugins/plugin-webhooks/src/sys-webhook.object.ts b/packages/plugins/plugin-webhooks/src/sys-webhook.object.ts index 5ac357c33e..1c3868d9df 100644 --- a/packages/plugins/plugin-webhooks/src/sys-webhook.object.ts +++ b/packages/plugins/plugin-webhooks/src/sys-webhook.object.ts @@ -25,11 +25,10 @@ import { ObjectSchema, Field } from '@objectstack/spec/data'; * (ADR-0018 M3 — `sys_http_delivery`, drained by the messaging dispatcher). * * Ownership (ADR-0029 K2.a): this object is **owned by - * `@objectstack/plugin-webhooks`** — the plugin that consumes these rows — - * alongside its sibling `sys_webhook_delivery`. It used to live in the - * `@objectstack/platform-objects` monolith and be imported here; the - * definition now lives with its owner so the plugin ships both data and - * behavior as one unit. + * `@objectstack/plugin-webhooks`** — the plugin that consumes these rows. It + * used to live in the `@objectstack/platform-objects` monolith and be imported + * here; the definition now lives with its owner so the plugin ships both data + * and behavior as one unit. * * Platform-wide on purpose: every project (standalone, single-tenant, * cloud) can integrate with external systems (Slack, Stripe, internal diff --git a/packages/plugins/plugin-webhooks/src/translations/en.objects.generated.ts b/packages/plugins/plugin-webhooks/src/translations/en.objects.generated.ts index 6152db492d..425895ecfc 100644 --- a/packages/plugins/plugin-webhooks/src/translations/en.objects.generated.ts +++ b/packages/plugins/plugin-webhooks/src/translations/en.objects.generated.ts @@ -72,116 +72,5 @@ export const enObjects: NonNullable = { label: "All" } } - }, - sys_webhook_delivery: { - label: "Webhook Delivery", - pluralLabel: "Webhook Deliveries", - description: "Durable outbox row for one webhook attempt. Managed by @objectstack/plugin-webhooks; do not write directly.", - fields: { - id: { - label: "Delivery ID", - help: "UUID — also doubles as the receiver-side idempotency key" - }, - webhook_id: { - label: "Webhook ID", - help: "FK to sys_webhook.id (loosely coupled — denormalised URL/secret on row)" - }, - event_id: { - label: "Event ID", - help: "Source event id; UNIQUE(event_id, webhook_id) for dedup" - }, - event_type: { - label: "Event Type", - help: "e.g. data.record.created" - }, - url: { - label: "Target URL", - help: "Snapshotted at enqueue so config edits do not rewrite live rows" - }, - method: { - label: "Method" - }, - headers_json: { - label: "Headers JSON" - }, - secret: { - label: "HMAC Secret" - }, - timeout_ms: { - label: "Timeout (ms)" - }, - payload_json: { - label: "Payload JSON" - }, - partition_key: { - label: "Partition", - help: "hash(webhook_id) mod partitionCount — precomputed for cheap WHERE" - }, - status: { - label: "Status", - help: "pending | in_flight | success | failed | dead" - }, - attempts: { - label: "Attempts", - help: "Number of POST attempts made so far" - }, - claimed_by: { - label: "Claimed By" - }, - claimed_at: { - label: "Claimed At (ms)" - }, - next_retry_at: { - label: "Next Retry At (ms)" - }, - last_attempted_at: { - label: "Last Attempted At (ms)" - }, - response_code: { - label: "HTTP Status" - }, - response_body: { - label: "Response Body (capped)" - }, - error: { - label: "Error" - }, - created_at: { - label: "Created At (ms)" - }, - updated_at: { - label: "Updated At (ms)" - } - }, - _views: { - recent: { - label: "Recent" - }, - failures: { - label: "Failures" - }, - in_flight: { - label: "In Flight" - }, - pending: { - label: "Pending" - }, - by_status: { - label: "By Status" - }, - by_webhook: { - label: "By Webhook" - }, - all_deliveries: { - label: "All" - } - }, - _actions: { - redeliver: { - label: "Redeliver", - confirmText: "Replay this delivery? The receiver will get the original payload again — they must be idempotent on the X-Objectstack-Delivery header.", - successMessage: "Queued for redelivery" - } - } } }; diff --git a/packages/plugins/plugin-webhooks/src/translations/es-ES.objects.generated.ts b/packages/plugins/plugin-webhooks/src/translations/es-ES.objects.generated.ts index e3649f7345..99a5576520 100644 --- a/packages/plugins/plugin-webhooks/src/translations/es-ES.objects.generated.ts +++ b/packages/plugins/plugin-webhooks/src/translations/es-ES.objects.generated.ts @@ -72,116 +72,5 @@ export const esESObjects: NonNullable = { label: "Todos" } } - }, - sys_webhook_delivery: { - label: "Webhook Delivery", - pluralLabel: "Webhook Deliveries", - description: "Durable outbox row for one webhook attempt. Managed by @objectstack/plugin-webhooks; do not write directly.", - fields: { - id: { - label: "Delivery ID", - help: "UUID — also doubles as the receiver-side idempotency key" - }, - webhook_id: { - label: "Webhook ID", - help: "FK to sys_webhook.id (loosely coupled — denormalised URL/secret on row)" - }, - event_id: { - label: "Event ID", - help: "Source event id; UNIQUE(event_id, webhook_id) for dedup" - }, - event_type: { - label: "Event Type", - help: "e.g. data.record.created" - }, - url: { - label: "Target URL", - help: "Snapshotted at enqueue so config edits do not rewrite live rows" - }, - method: { - label: "Method" - }, - headers_json: { - label: "Headers JSON" - }, - secret: { - label: "HMAC Secret" - }, - timeout_ms: { - label: "Timeout (ms)" - }, - payload_json: { - label: "Payload JSON" - }, - partition_key: { - label: "Partition", - help: "hash(webhook_id) mod partitionCount — precomputed for cheap WHERE" - }, - status: { - label: "Status", - help: "pending | in_flight | success | failed | dead" - }, - attempts: { - label: "Attempts", - help: "Number of POST attempts made so far" - }, - claimed_by: { - label: "Claimed By" - }, - claimed_at: { - label: "Claimed At (ms)" - }, - next_retry_at: { - label: "Next Retry At (ms)" - }, - last_attempted_at: { - label: "Last Attempted At (ms)" - }, - response_code: { - label: "HTTP Status" - }, - response_body: { - label: "Response Body (capped)" - }, - error: { - label: "Error" - }, - created_at: { - label: "Created At (ms)" - }, - updated_at: { - label: "Updated At (ms)" - } - }, - _views: { - recent: { - label: "Recent" - }, - failures: { - label: "Failures" - }, - in_flight: { - label: "In Flight" - }, - pending: { - label: "Pending" - }, - by_status: { - label: "By Status" - }, - by_webhook: { - label: "By Webhook" - }, - all_deliveries: { - label: "All" - } - }, - _actions: { - redeliver: { - label: "Redeliver", - confirmText: "Replay this delivery? The receiver will get the original payload again — they must be idempotent on the X-Objectstack-Delivery header.", - successMessage: "Queued for redelivery" - } - } } }; diff --git a/packages/plugins/plugin-webhooks/src/translations/ja-JP.objects.generated.ts b/packages/plugins/plugin-webhooks/src/translations/ja-JP.objects.generated.ts index e4ab1ec05e..4e684b7d28 100644 --- a/packages/plugins/plugin-webhooks/src/translations/ja-JP.objects.generated.ts +++ b/packages/plugins/plugin-webhooks/src/translations/ja-JP.objects.generated.ts @@ -72,116 +72,5 @@ export const jaJPObjects: NonNullable = { label: "すべて" } } - }, - sys_webhook_delivery: { - label: "Webhook Delivery", - pluralLabel: "Webhook Deliveries", - description: "Durable outbox row for one webhook attempt. Managed by @objectstack/plugin-webhooks; do not write directly.", - fields: { - id: { - label: "Delivery ID", - help: "UUID — also doubles as the receiver-side idempotency key" - }, - webhook_id: { - label: "Webhook ID", - help: "FK to sys_webhook.id (loosely coupled — denormalised URL/secret on row)" - }, - event_id: { - label: "Event ID", - help: "Source event id; UNIQUE(event_id, webhook_id) for dedup" - }, - event_type: { - label: "Event Type", - help: "e.g. data.record.created" - }, - url: { - label: "Target URL", - help: "Snapshotted at enqueue so config edits do not rewrite live rows" - }, - method: { - label: "Method" - }, - headers_json: { - label: "Headers JSON" - }, - secret: { - label: "HMAC Secret" - }, - timeout_ms: { - label: "Timeout (ms)" - }, - payload_json: { - label: "Payload JSON" - }, - partition_key: { - label: "Partition", - help: "hash(webhook_id) mod partitionCount — precomputed for cheap WHERE" - }, - status: { - label: "Status", - help: "pending | in_flight | success | failed | dead" - }, - attempts: { - label: "Attempts", - help: "Number of POST attempts made so far" - }, - claimed_by: { - label: "Claimed By" - }, - claimed_at: { - label: "Claimed At (ms)" - }, - next_retry_at: { - label: "Next Retry At (ms)" - }, - last_attempted_at: { - label: "Last Attempted At (ms)" - }, - response_code: { - label: "HTTP Status" - }, - response_body: { - label: "Response Body (capped)" - }, - error: { - label: "Error" - }, - created_at: { - label: "Created At (ms)" - }, - updated_at: { - label: "Updated At (ms)" - } - }, - _views: { - recent: { - label: "Recent" - }, - failures: { - label: "Failures" - }, - in_flight: { - label: "In Flight" - }, - pending: { - label: "Pending" - }, - by_status: { - label: "By Status" - }, - by_webhook: { - label: "By Webhook" - }, - all_deliveries: { - label: "All" - } - }, - _actions: { - redeliver: { - label: "Redeliver", - confirmText: "Replay this delivery? The receiver will get the original payload again — they must be idempotent on the X-Objectstack-Delivery header.", - successMessage: "Queued for redelivery" - } - } } }; diff --git a/packages/plugins/plugin-webhooks/src/translations/zh-CN.objects.generated.ts b/packages/plugins/plugin-webhooks/src/translations/zh-CN.objects.generated.ts index 5e4c489aa8..a3f4eb63b3 100644 --- a/packages/plugins/plugin-webhooks/src/translations/zh-CN.objects.generated.ts +++ b/packages/plugins/plugin-webhooks/src/translations/zh-CN.objects.generated.ts @@ -72,116 +72,5 @@ export const zhCNObjects: NonNullable = { label: "全部" } } - }, - sys_webhook_delivery: { - label: "Webhook Delivery", - pluralLabel: "Webhook Deliveries", - description: "Durable outbox row for one webhook attempt. Managed by @objectstack/plugin-webhooks; do not write directly.", - fields: { - id: { - label: "Delivery ID", - help: "UUID — also doubles as the receiver-side idempotency key" - }, - webhook_id: { - label: "Webhook ID", - help: "FK to sys_webhook.id (loosely coupled — denormalised URL/secret on row)" - }, - event_id: { - label: "Event ID", - help: "Source event id; UNIQUE(event_id, webhook_id) for dedup" - }, - event_type: { - label: "Event Type", - help: "e.g. data.record.created" - }, - url: { - label: "Target URL", - help: "Snapshotted at enqueue so config edits do not rewrite live rows" - }, - method: { - label: "Method" - }, - headers_json: { - label: "Headers JSON" - }, - secret: { - label: "HMAC Secret" - }, - timeout_ms: { - label: "Timeout (ms)" - }, - payload_json: { - label: "Payload JSON" - }, - partition_key: { - label: "Partition", - help: "hash(webhook_id) mod partitionCount — precomputed for cheap WHERE" - }, - status: { - label: "Status", - help: "pending | in_flight | success | failed | dead" - }, - attempts: { - label: "Attempts", - help: "Number of POST attempts made so far" - }, - claimed_by: { - label: "Claimed By" - }, - claimed_at: { - label: "Claimed At (ms)" - }, - next_retry_at: { - label: "Next Retry At (ms)" - }, - last_attempted_at: { - label: "Last Attempted At (ms)" - }, - response_code: { - label: "HTTP Status" - }, - response_body: { - label: "Response Body (capped)" - }, - error: { - label: "Error" - }, - created_at: { - label: "Created At (ms)" - }, - updated_at: { - label: "Updated At (ms)" - } - }, - _views: { - recent: { - label: "Recent" - }, - failures: { - label: "Failures" - }, - in_flight: { - label: "In Flight" - }, - pending: { - label: "Pending" - }, - by_status: { - label: "By Status" - }, - by_webhook: { - label: "By Webhook" - }, - all_deliveries: { - label: "All" - } - }, - _actions: { - redeliver: { - label: "Redeliver", - confirmText: "Replay this delivery? The receiver will get the original payload again — they must be idempotent on the X-Objectstack-Delivery header.", - successMessage: "Queued for redelivery" - } - } } };