Skip to content

Expose host-localized validation message formatting #719

Description

@wieslawsoltes

Current validation localization checkpoint — 20 September 2026

Exact merged heads: WebScene a46b62e14eb197603f7e227c1558afb9088633b0; AppScene 97702daeb9ad71341ced7226f0aa966dc77ea53c; unchanged Code OSS 645f29cc3176500b4b5762ba887cf2a7f0ffdf2c; local vscode-demo e4b98e5470cd7856aff3dfd6843c8e125d7db933 (clean, intentionally unpushed). Open consolidations remain WebScene #76 085bba760fa571c8f08ea866dc5dd1ec27c4d376, AppScene #65 ce66ef6ceb776b3f14e129f853bfc08b5c5e608c, and vscode-demo #1; do not merge them. One-agent mode is active.

The size-versioned localization callback/catalog, bounded arguments and output, English fallback, callback lifetime/error behavior, native and managed bindings, AppScene host wiring and Flutter follow-up are merged through the recorded focused stack. No #719 implementation branch is active.

Keep this issue open for physical host localization, accessibility parity, package/RID and unchanged-product acceptance. Those gates are deferred; no new result is claimed.

Parent: #710
Form-state owner: #257
Release epic: #227

Scope

  • Add a size-versioned engine-options callback/catalog contract that maps stable validation reason IDs and bounded substitution arguments to UTF-8 messages.
  • Keep an English fallback when no host formatter is supplied or output is invalid/oversized.
  • Bind the option through native SDK, managed/Avalonia/Uno, Flutter, packaging examples, and AppScene host configuration without exposing platform objects to WebScene.
  • Enforce callback lifetime, thread ownership, 1 KiB output, reentrancy, exception/failure, and teardown behavior.
  • Preserve custom validity strings exactly and keep semantic/visual messages identical.

No Code OSS changes, browser dependency, per-frame callbacks, or secret values. Diff-check-only implementation may merge; localization/package/cross-platform gates remain deferred.

Metadata

Metadata

Assignees

No one assigned

    Labels

    vscode-oss/plannedPlanned for the AppScene/WebScene VS Code OSS integration

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions