Skip to content

Components: Complete native-core FocusZone lifecycle and focus-result qualification #4374

Open

Description

@JasonVMo

Goal

Finish the native focus-request qualification left by the native-core modernization milestone. Part of #4274. Modern APIs remain /macos and /windows previews; this issue does not grant root or Win32 admission.

Observed baseline — 2026-10-15

On user/jasonvmo/native-lib2 at b55d6c9a3, Windows RNW 0.81.35 passes native default/first/last/specific focused-identity requests, disabled/unfocusable/outside-target refusal, retained detached handles, legacy navigation, and entry inside an owned Callout popup. macOS Fabric and Paper pass the authored command/lifetime cases. Pre-aborted and wrapper-rejected requests do not qualify native in-flight races.

Remaining work and acceptance

  • Exercise native generation mismatch, late/stale result fencing, target replacement, pending abort, unmount during a request, and inactive-window refusal on Windows and both macOS renderers. Confirm no window reactivation, no implicit pre-mount queue, exactly-once settlement, and actual focused/responder identity.
  • Retain tests that explicit commands override entry preferences without regressing remembered focus, Tab/Shift+Tab exit, disabled refusal, or focus in owned popups.
  • Qualify macOS field-editor normalization and VoiceOver interactions beyond current authored runtime cases.
  • Track the separately deferred macOS FocusZone navigation port: preserve the proven ObjC algorithm unless a Swift port has a reviewed parity contract and complete legacy/modern keyboard evidence. Do not rewrite merely for language uniformity.
  • Record exact host/fork/renderer versions, commands, executed/pass/fail/skip counts, and race evidence. JS tests, compilation, and skipped native cases are not runtime qualification.

Evidence and reproduction

The retired handoff is retained in Git at b55d6c9a3:packages/agentic/native-core/plans/modernization.md. Contracts: packages/agentic/native-core/src/components/focus-zone/SPEC.md; shared rules: packages/agentic/native-core/AGENTS.md and references/agents/focus/.

From apps/storybook, use STORYBOOK_SMOKE_STORY='native-*' yarn storybook smoke --windows --mode stories-and-tests, and the equivalent --macos / --macos --paper lanes. Run native-core package checks and codegen:windows --check. Preserve owned app/helper/input cleanup.

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions