Repository navigation
docs(plugin-webhooks): sys_webhook text says a row is an authored subscription and a declared webhook is not a row - #27787
Conversation
…scription, not a declared copy A declared webhook is read from the metadata registry and writes no sys_webhook row (ADR-0131 D2). The object description, the managed_by field description and the customized field description still described the retired 18.0 boot seeder. Claude-Session: https://claude.ai/code/session_01L6bhgUCizoYWQVJWjhdR6F Co-authored-by: Claude <noreply@anthropic.com>
…e corrected text en is rewritten by check-i18n-bundles --write; the zh-CN, ja-JP and es-ES strings for the three texts are re-translated (the generator's merge keeps a stale translated value, so it cannot refresh them). Claude-Session: https://claude.ai/code/session_01L6bhgUCizoYWQVJWjhdR6F Co-authored-by: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L6bhgUCizoYWQVJWjhdR6F Co-authored-by: Claude <noreply@anthropic.com>
📓 Docs Drift CheckThis PR changes 1 package(s): 3 hand-written doc(s) NAME something this change touched and may need an implementation-accuracy re-verification:
⛔ 3 release-owned page(s) also name something this change touched. These are read-only:
What this run could not see
Coarse fallback — 5 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): Which tree this was computed onThis run read A worktree cut from an older # while this PR is open — GitHub drops the merge commit once it closes
git fetch origin f51a99389028cd089986aa705e5cdee2bb4d8c0d && git checkout f51a99389028cd089986aa705e5cdee2bb4d8c0d
# afterwards, rebuild it from the two parents, which stay fetchable
git fetch origin a7af1c19bd275d0d673c237324a66a08cc8ca13e 2b0c16069600eb46dc4a836017627878e827d981 && git checkout -B drift-repro a7af1c19bd275d0d673c237324a66a08cc8ca13e && git merge --no-ff 2b0c16069600eb46dc4a836017627878e827d981
node scripts/docs-audit/affected-docs.mjs --json a7af1c19bd275d0d673c237324a66a08cc8ca13e
|
|
domain:server#2 · os-sales · session_01L6bhgUCizoYWQVJWjhdR6F 维护者速读(席位终稿)
席位意见: ACCEPT。文字与 ADR-0131 D2 一致;英文由生成器写出,其余三种语言因生成器合并模式不覆盖已有译文而手工改正,再跑一次生成器保持不变。 席位核对ACCEPT · head
|
domain:server#2 · os-sales · session_01L6bhgUCizoYWQVJWjhdR6F
Requested by Sales · project thread
Fixes #27607
Clause-②: no
Metadata-protocol: none
Skills-docs: none — text-only description change; no authorable key, value or meaning moves
domain:server#2 · os-sales · session_01L6bhgUCizoYWQVJWjhdR6F
维护者速读
sys_webhook对象说明、managed_by与customized两个字段的帮助文字改写为现行模型:数据行是组织在 Studio 或 API 中编写的订阅;代码中声明的 webhook 从元数据注册表读取,不写入任何行。英文翻译由生成器重写,zh-CN / ja-JP / es-ES 三条译文同步重译。packages/plugins/plugin-webhooks/src/sys-webhook.object.ts(对象 description 与两个字段 description)、packages/plugins/plugin-webhooks/src/translations/zh-CN.objects.generated.ts(重译三条)、.changeset/27607-sys-webhook-text.md。node scripts/check-i18n-bundles.mjs --filter=webhooks(需先 build CLI),预期in sync;git grep -n "materialized into rows on boot"在源码与翻译中零命中。What changes
sys_webhook.description: a row is an outbound subscription an organization authors in the Studio editor or through the API; a webhook declared withdefineStack({ webhooks })/defineWebhook()is read from the metadata registry and writes no row here (ADR-0131 D2, anchored in a code comment beside the text). The file's top docblock was already correct and is unchanged.managed_byfield description:admin= created in Setup or through the API;package= a copy the retired 18.0 boot seeder wrote, which nothing writes now;platform= reserved. The enum values are unchanged. Measured: no writer setsmanaged_by: 'package'or'platform'on asys_webhookrow on this tree (the seederbootstrapDeclaredWebhooksis retired;isSeededProvenanceonly reads the values).customizedfield description (bounded in-place fix, same file, same defect class): it said "boot seeding will no longer overwrite the row", the same retired model. It now says the ownership ceremony reads it (an edited copy under a declared name is kept as a clone, a pristine one deleted), matchingwebhook-provenance.ts.en.objects.generated.tsregenerated bynode scripts/check-i18n-bundles.mjs --write --filter=webhooks(no other package's bundle was written). The generator's merge keeps an existing translated value even when its source changes, so the zh-CN, ja-JP and es-ES strings for these three texts were re-translated by hand (AGENTS.md allows editing translated-locale values; no key added or dropped), then the generator was re-run and kept them. No source-hash entry covers these leaves.@objectstack/plugin-webhookspatch.Tests
Text-only: no new behaviour test; no existing test or snapshot pins the old sentences.
plugin-webhooks test + typecheck (head 2b0c160)
Acceptance notes
content/docs/**or other packages;packages/plugins/plugin-webhooks/CHANGELOG.mdmentionsmanaged_by: 'package'rows in released entries, which describe their own release and are release-owned.packages/plugins/plugin-webhooks/**(read across the 34 open PRs), so no merge-tree probe applies.Verification
Gates (head 2b0c160)
node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack: 55 commands, all run; 54 exit 0.pnpm check:dual-build-cjs-loadsexit 3, PREREQUISITE NOT MET (needs a full workspace build; only the CLI and plugin closures were built) — NOT MEASURED locally, CI runs it.--ranreconciliation: 55 derived, 54 run, 1 NOT-MEASURED, 0 UNRUN.node scripts/check-i18n-bundles.mjsexit 0: all bundles in sync, 10 packages.eslint --no-inline-config packages/plugins/plugin-webhooksexit 0.Generated by Claude Code
🤖 Generated with Claude Code
https://claude.ai/code/session_01L6bhgUCizoYWQVJWjhdR6F