Skip to content

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

Description

@objectstack-fleet

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.

Why PR #21258 leaves it

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)

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-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.

Dedupe words: resultDialog translation undeclared dialog · resultDialog.title never read · action translation leaf undeclared node

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:i18nThe customer's own language, across UI, metadata and notificationsbugSomething isn't workingdomain:specpriority:p2Medium: important, M3

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions