Skip to content

chore(i18n): purge dead sys_webhook_delivery bundle block + roll out bundle-ownership guards#3502

Merged
os-zhuang merged 1 commit into
mainfrom
claude/quizzical-ishizaka-f7145b
Jul 26, 2026
Merged

chore(i18n): purge dead sys_webhook_delivery bundle block + roll out bundle-ownership guards#3502
os-zhuang merged 1 commit into
mainfrom
claude/quizzical-ishizaka-f7145b

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

What

Purges the dead sys_webhook_delivery i18n block and hardens every i18n-bundle package against the same class of bug.

sys_webhook_delivery was removed when webhook delivery moved to @objectstack/service-messaging (sys_http_delivery, ADR-0018 M3), but a full translation block for it lingered in the plugin-webhooks bundles — and nothing was stopping the next os i18n extract from silently dropping it (and, elsewhere, curated strings) on other packages too.

Changes

Cleanup

  • Remove the stale sys_webhook_delivery block from the 4 plugin-webhooks locale bundles (en/zh-CN/ja-JP/es-ES) — surgical, sys_webhook untouched (−444 lines).
  • Fix 3 stale sys_webhook_delivery doc comments (platform-objects integration/index.ts + setup.app.ts, plugin-webhooks sys-webhook.object.ts).

Guard rollout

Live-object fix the new guard caught ⚠️ reviewer note

  • plugin-security's bundles carried sys_capability — a live, registered object (defined, exported, in manifest.ts, tested) with curated zh-CN/ja-JP/es-ES translations — but its extract config had dropped it. This is the guard comment's case (a) "config gained an object → add it here", not case (b) "delete the leftover". So SysCapability was re-added to the extract config to preserve the strings, rather than deleted. (Deleting would have destroyed live-object translations — the exact loss this guard prevents.)

Verification

  • All 8 packages' suites green; the 8 new guards pass (2 assertions each). plugin-security 542 tests pass, confirming the config change breaks nothing.
  • Guard proven able to go red: temporarily pointed an OWNED set at a bogus value → both assertions failed with clear, actionable messages → reverted.

Notes

  • All touched published packages are in one changeset fixed group → one patch changeset bumps them together.
  • Out of scope (observed, not touched): plugin-security sys_user_position/sys_audience_binding_suggestion and plugin-approvals sys_approval_approver/sys_approval_token are intentionally not translated (absent from both config and bundles — consistent), noted in the respective test comments.

🤖 Generated with Claude Code

…bundle-ownership guards

- Remove the stale sys_webhook_delivery translation block from the four
  plugin-webhooks i18n bundles (object removed in ADR-0018 M3 → sys_http_delivery);
  surgical, the sys_webhook block is untouched.
- Fix three stale sys_webhook_delivery doc comments (platform-objects
  integration/index.ts + setup.app.ts, plugin-webhooks sys-webhook.object.ts).
- Add the bundle-ownership guard test (#2834 5 / ADR-0029 D8) to the 8 packages
  that own i18n bundles, so a stray object block in a generated bundle fails the
  build instead of dying silently on the next `os i18n extract`.
- Fix a live-object omission the guard caught: re-add SysCapability to
  plugin-security's extract config (it had curated translations in the bundles
  but had been dropped from the config), preserving the strings instead of
  deleting them.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercel Bot commented Jul 26, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
spec Ready Ready Preview, Comment Jul 26, 2026 7:37am

Request Review

@github-actions github-actions Bot added documentation Improvements or additions to documentation tests tooling size/l and removed documentation Improvements or additions to documentation tests tooling labels Jul 26, 2026
@github-actions

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

This PR changes 7 package(s): @objectstack/platform-objects, @objectstack/plugin-approvals, @objectstack/plugin-audit, @objectstack/plugin-security, @objectstack/plugin-sharing, @objectstack/plugin-webhooks, packages/services.

21 hand-written doc(s) reference the affected code and may need an implementation-accuracy re-verification:

  • content/docs/automation/approvals.mdx (via @objectstack/plugin-approvals)
  • content/docs/automation/webhooks.mdx (via packages/plugins/plugin-webhooks, packages/services)
  • content/docs/deployment/cli.mdx (via @objectstack/plugin-audit, @objectstack/plugin-security)
  • content/docs/deployment/production-readiness.mdx (via @objectstack/plugin-audit)
  • content/docs/kernel/runtime-services/audit-service.mdx (via packages/services)
  • content/docs/kernel/runtime-services/index.mdx (via packages/services)
  • content/docs/kernel/runtime-services/settings-service.mdx (via packages/services)
  • content/docs/permissions/access-recipes.mdx (via packages/plugins/plugin-security)
  • content/docs/permissions/authorization.mdx (via @objectstack/plugin-security, packages/plugins/plugin-sharing)
  • content/docs/permissions/explain.mdx (via @objectstack/plugin-security)
  • content/docs/permissions/permissions-matrix.mdx (via packages/plugins/plugin-security, packages/plugins/plugin-sharing)
  • content/docs/permissions/sharing-rules.mdx (via @objectstack/plugin-security)
  • content/docs/plugins/index.mdx (via @objectstack/plugin-security)
  • content/docs/plugins/packages.mdx (via @objectstack/platform-objects, @objectstack/plugin-approvals, @objectstack/plugin-audit, @objectstack/plugin-security, @objectstack/plugin-sharing, @objectstack/plugin-webhooks, packages/services)
  • content/docs/protocol/kernel/i18n-standard.mdx (via packages/services)
  • content/docs/protocol/objectql/security.mdx (via packages/plugins/plugin-sharing)
  • content/docs/releases/implementation-status.mdx (via @objectstack/plugin-approvals, @objectstack/plugin-audit, @objectstack/plugin-security, @objectstack/plugin-webhooks)
  • content/docs/releases/v9.mdx (via @objectstack/plugin-approvals)
  • content/docs/ui/audience-based-interfaces.mdx (via packages/plugins/plugin-security)
  • content/docs/ui/dashboards.mdx (via @objectstack/plugin-security)
  • content/docs/ui/setup-app.mdx (via @objectstack/platform-objects)

Advisory only. To re-verify, run the docs-accuracy-audit workflow scoped to these files:
node scripts/docs-audit/affected-docs.mjs origin/main → pass the list as args.docs.

@os-zhuang
os-zhuang merged commit 52281b0 into main Jul 26, 2026
16 checks passed
@os-zhuang
os-zhuang deleted the claude/quizzical-ishizaka-f7145b branch July 26, 2026 07:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant