Skip to content

Bound native input diagnostics and pending-host teardown - #185

Merged
wieslawsoltes merged 1 commit into
feature/native-desktop-capability-abi-mainfrom
fix/native-input-diagnostics-main
Sep 16, 2026
Merged

wieslawsoltes merged 1 commit into
feature/native-desktop-capability-abi-mainfrom
fix/native-input-diagnostics-main

Conversation

@wieslawsoltes

@wieslawsoltes wieslawsoltes commented Sep 16, 2026

Copy link
Copy Markdown
Collaborator

Problem and resulting behavior

Native clipboard requests may still own V8 persistent resolver and file handles when a window closes. Releasing those members after isolate disposal can crash the native worker. At the same time, reproducing an input crash requires symbols for the exact packaged macOS runtime and a bounded stress path that covers pointer/focus state and legacy clipboard completion.

This layer clears pending host-promise and file targets while the isolate lock is still held, before the context and isolate are disposed. It also emits a dSYM from the exact macOS Release runtime and strips the shipped binary afterward, so diagnostics add no normal-path runtime or installed-package cost.

Dependency and issue mapping

Scope and bounds

  • Release-only macOS line tables are externalized with dsymutil; the packaged native runtime is stripped after symbol extraction.
  • The exact symbol artifact uses compression level 9 and three-day retention.
  • A focused input-diagnostics-pointer-focus native filter covers 10,000 focus transitions, 10,000 trusted Meta-C clipboard inputs/completions, and destruction with a pending host promise.
  • Clipboard stress drains in batches of 16 and fails if 10,000 completions take 15 seconds or more.
  • The shutdown regression leaves the host request pending intentionally, then destroys the engine to exercise the isolate-lifetime boundary.

Validation

  • Cumulative Release V8 native engine build succeeds.
  • Focused native filter: 5/5 passes.
  • 10,000 focus transitions: 0.15-0.19 ms.
  • 10,000 clipboard completions: 1.60-1.61 s; pending high-water 16.
  • Release compatibility architecture tests: 7/7.
  • Native workflow policy tests: 6/6.
  • Native binary ABI tests: 2/2.
  • Shell syntax and git diff --check pass.

Stack

This is the cumulative top of the native desktop capability stack. Only its changed-behavior native document and precompiled/V8 gates qualify the atomic stack merge. Draft consolidation PR #76 remains open and unmerged.

@wieslawsoltes
wieslawsoltes added this pull request to stack #186 September 16, 2026 21:09
@wieslawsoltes wieslawsoltes changed the title fix/native input diagnostics main Bound native input diagnostics and pending-host teardown Sep 16, 2026
@wieslawsoltes
wieslawsoltes marked this pull request as ready for review September 16, 2026 21:12
@wieslawsoltes
wieslawsoltes merged commit 75b826d into main Sep 16, 2026
1 of 15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant