Repository navigation
docs(email-templates): copy the folded locale ladder of record into three stale texts - #29498
Merged
Merged
Conversation
…hree stale texts The email-templates docs page, the metadata-core ITEM_KEY_DISCRIMINATORS docblock and the integration-system.email-template-render checklist clause still described the exact (name, locale) ladder with no language-subtag folding. They now copy (or, for the docblock, cite) SendTemplateInput.locale in packages/spec/src/contracts/email-service.ts, keeping en and en-US as two rows of one bundle. The checklist item moves to revision 13 with one history row. Claude-Session: https://claude.ai/code/session_01JQwxbWaao8NE8qbxe4dXUL Co-authored-by: Claude <noreply@anthropic.com>
Contributor
📓 Docs Drift Check
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): |
Contributor
Author
|
domain:devx#1 · os-warren · session_01JQwxbaBjisxkQo9hht9bFB 维护者速读
席位核对ACCEPT ·
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Warren · project thread
Fixes #29032
Clause-②: no
Metadata-protocol: none
维护者速读
SendTemplateInput.locale阶梯;无代码改动。dist/index.d.ts发布,故带 patch changeset。docs/qa/platform-checklist/areas/integration-system.json(acceptance[3] 条款与 verify 行)、content/docs/automation/email-templates.mdx(Locale resolution 节)。pnpm check:platform-checklist,预期 exit 0。What changes
Three texts outside
packages/specdescribed the exact(name, locale)ladder that #28880 retired. Each now followsSendTemplateInput.localeinpackages/spec/src/contracts/email-service.ts(landed with PR #29014), and keepsenanden-USas two rows of one bundle.content/docs/automation/email-templates.mdx, Locale resolution: the ladder is copied from the spec docblock: the named-locale ladder over the built-in loader (fold byresolveBundleLocale, then the declared fallback locale folded the same way, thenen-US, thenTEMPLATE_NOT_FOUND), the replacement-loader exact ladder, and the no-locale ladder. The page names the spec docblock as the record.packages/metadata-core/src/item-key-discriminators.ts: the docblock no longer says the resolution is exact with no folding. It keeps its own rule of citing rather than quoting: it citesSendTemplateInput.templateandSendTemplateInput.localeand keeps the one point the table rests on, that every rung loads one row at one tag exactly, so folding picks a row and never merges two.docs/qa/platform-checklist/areas/integration-system.json, itemintegration-system.email-template-render: acceptance[3]'s clause copies the ladder; its verify line now scores azhrecipient getting thezh-CNrow as the pass (it scoreden-USbefore) and aja-JPrecipient gettingen-USthrough the showcase's declared fallbacken; steps[4] and variants[0] add those recipients;automated.refno longer calls the uncovered half "the no-folding case" and names plugin-email's fold pins below the oracle's layer. Revision 12 → 13, one history row (ref Email template locale ladder: three texts outside packages/spec still say the resolver matches exactly with no language-subtag folding (stale since #28880) #29032)..changeset/29032-email-template-locale-ladder-docblock.md:@objectstack/metadata-corepatch. The docblock ships: afterpnpm --filter '@objectstack/metadata-core...' build, its text is indist/index.d.tsanddist/index.d.cts(grep -rl 'That resolution is exact' packages/metadata-core/distmatched both on the base tree; positive controlITEM_KEY_DISCRIMINATORSmatchedindex.js,index.cjsand both.d.tsfiles).Why
A QA run against
mainreads the checklist clause and scores the folding behaviour as a FAIL, and authors reading the docs page are toldzhnever reacheszh-CN. The producer isEmailService.resolveAndRenderTemplateinpackages/plugins/plugin-email/src/email-service.ts, which matches the spec docblock (read at base8ca9dd7b).Tests
No behaviour changed, so there is no new test and no ablation. The ladder the texts now describe is pinned by
packages/plugins/plugin-email/src/template-locale-fold.test.tsandtemplate-locale-fold.integration.test.ts, untouched here.Acceptance notes
TemplateLoaderinterface docblock inpackages/plugins/plugin-email/src/email-service.tsstill says the loader resolves "under the exact rule below — there is no best match and no language-subtag folding". That stays true ofload()itself (each call loads one tag exactly; the fold lives in the service), so it is not one of the stale texts and is left alone.pnpm check:dual-build-cjs-loadswas NOT MEASURED locally (exit 3, PREREQUISITE NOT MET: it loads every package's built output and this worktree built only the closures below). It reads no file this diff changes beyond a comment inmetadata-core; CI'sLint & Repo Gatesruns it.Verification
All readings at head
4a0e6715, worktree off base8ca9dd7b.dispatch-gates: 82 derived, 81 exit 0, 1 NOT MEASURED
node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack: 82 commands. Each was run with its exit code captured before any pipe.check-plugin-teardown-shape.mjs --self-test(after fetching its pinned fixture commit),spec check:skill-examples(after building@objectstack/clientandclient-react) andcheck:lean-entry-closure(after building@objectstack/objectql).pnpm check:dual-build-cjs-loads: exit 3, NOT MEASURED (see Acceptance notes).dispatch-gates --ran: "82 derived famil(ies) accounted for — 81 run, 1 NOT-MEASURED", exit 0.pnpm check:platform-checklist: exit 0 (in the 81).docs build and the published docblock
apps/docs/vercel.jsonunderTURBO_FORCE=true:Tasks: 2 successful, 2 total,Cached: 0 cached, andapps/docs/.next/BUILD_IDpresent.pnpm --filter @objectstack/metadata-core build && pnpm --filter @objectstack/metadata-core typecheck: VERDICT command-exit 0. After the rebuild,dist/index.d.tsanddist/index.d.ctscarry the new docblock and no longer contain "That resolution is exact".Human Minimum
packages/specholds no runtime logic. (not touched)pnpm lintpasses. (no lint-covered source changed; CI runs it)main, one pull request.packages/spectouched: n/a.content/docs/references/,packages/*/CHANGELOG.mdorcontent/docs/releases/.Generated by Claude Code