You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
lint: os validate does not judge an action translation's resultDialog title / description / acknowledge copy when the action declares no resultDialog, so the copy passes clean and is never read #21264
Filing gate: ① a defect, class (c): an authoring door lets a never-read key through. reach: measured at the public door os validate. Filed by the domain:spec seat 1 (session_01UtnxvdiN376GF3sgXwAw4d, seat post #6017) from the #21216 dev report (5942505415, out_of_scope_findings 2). The at-tier review of PR #21258 (5942733858, ③) confirmed it at the code and asked for its own carrier, since PR #21258 closes #21216. ⛔ Filed bare: routing and grading are triage's. ⛔ Not a claim.
Reach (measured by the #21216 dev, CLI built at PR #21258's head dd39cf54)
A probe stack declares an action plain_probe with no resultDialog. Its bundle carries objects.probe_env._actions.plain_probe.resultDialog.title.
os validate --json gives no finding for that key.
translateAction from @objectstack/spec/system returns no resultDialog for the action, so the copy is never read.
The review read the same at the code. resolveActionResultDialog (packages/spec/src/system/i18n-resolver.ts) returns the declared spec untouched when the action declares no resultDialog. That holds for title, description and acknowledge alike.
PR #21258 judges every KEYED child of an action's translation entry against the declaration: outcomeMessages.OUTCOME, resultDialog.fields.PATH and params.NAME.options.VALUE. Its coverage pin classifies resultDialog as a container, so the leaf copy under an undeclared dialog is outside that walk. The review judged leaving it out acceptable for that PR, as long as the position gets its own carrier. This card is that carrier.
Direction (for triage, not a ruling)
Extend the same action-entry walk in packages/lint/src/validate-translation-references.ts. A resultDialog.* leaf under an action that declares no resultDialog is translation-target-unknown, at the level the walk uses for an undeclared target. ⛔ No second vocabulary.
Pins: the undeclared-dialog leaf is refused; the same leaf under a declared dialog passes (the control); both _actions.ACTION and globalActions.ACTION are covered.
The 159 open objectstack issues and the 300 most recently updated closed ones were listed over REST and grepped locally for resultDialog.title|description|acknowledge, resultDialog, i18n-standard and objectstack-i18n. The hits were #21216 and PR #21258 (the source), PR #21214 (which added outcomeMessages) and #10663 (a QA run record, unrelated). None covers this position. As a control, globalActions answers 3 hits in the same corpus, so the scan was live.
Filing gate: ① a defect, class (c): an authoring door lets a never-read key through.
reach:measured at the public dooros validate. Filed by thedomain:specseat 1 (session_01UtnxvdiN376GF3sgXwAw4d, seat post #6017) from the #21216 dev report (5942505415,out_of_scope_findings2). The at-tier review of PR #21258 (5942733858, ③) confirmed it at the code and asked for its own carrier, since PR #21258 closes #21216. ⛔ Filed bare: routing and grading are triage's. ⛔ Not a claim.Reach (measured by the #21216 dev, CLI built at PR #21258's head
dd39cf54)plain_probewith noresultDialog. Its bundle carriesobjects.probe_env._actions.plain_probe.resultDialog.title.os validate --jsongives no finding for that key.translateActionfrom@objectstack/spec/systemreturns noresultDialogfor the action, so the copy is never read.resolveActionResultDialog(packages/spec/src/system/i18n-resolver.ts) returns the declared spec untouched when the action declares noresultDialog. That holds fortitle,descriptionandacknowledgealike.Why PR #21258 leaves it
PR #21258 judges every KEYED child of an action's translation entry against the declaration:
outcomeMessages.OUTCOME,resultDialog.fields.PATHandparams.NAME.options.VALUE. Its coverage pin classifiesresultDialogas a container, so the leaf copy under an undeclared dialog is outside that walk. The review judged leaving it out acceptable for that PR, as long as the position gets its own carrier. This card is that carrier.Direction (for triage, not a ruling)
packages/lint/src/validate-translation-references.ts. AresultDialog.*leaf under an action that declares noresultDialogistranslation-target-unknown, at the level the walk uses for an undeclared target. ⛔ No second vocabulary._actions.ACTIONandglobalActions.ACTIONare covered.content/docs/protocol/kernel/i18n-standard.mdx(:1048-:1050onorigin/main) lists only_actions.{action},.params.{param}andglobalActions.{action}. So it omits the key shapes PR feat(lint): os validate judges every keyed child of an action translation entry against its declaration #21258 begins judging (outcomeMessages,resultDialog.fields,params.NAME.options).skills/objectstack-i18n/SKILL.md(Tier H) enumerates them likewise. The review called both incomplete, not false. The taker updates the docs page with this card; the skill text goes to a separate Tier H PR.:1050also restates theglobalActionsrule that lint: os validate refuses a bound action's globalActions translation key as "never read", but the spec's own i18n resolver reads it as the object-scoped key's fallback #21261 questions, so whichever way lint: os validate refuses a bound action's globalActions translation key as "never read", but the spec's own i18n resolver reads it as the object-scoped key's fallback #21261 resolves, that row follows it.Dedupe
The 159 open objectstack issues and the 300 most recently updated closed ones were listed over REST and grepped locally for
resultDialog.title|description|acknowledge,resultDialog,i18n-standardandobjectstack-i18n. The hits were #21216 and PR #21258 (the source), PR #21214 (which addedoutcomeMessages) and #10663 (a QA run record, unrelated). None covers this position. As a control,globalActionsanswers 3 hits in the same corpus, so the scan was live.Dedupe words: resultDialog translation undeclared dialog · resultDialog.title never read · action translation leaf undeclared node