Repository navigation
Add remaining adoption APIs, upstream feedback support and clean candidates - #126
Merged
Merged
Conversation
# Conflicts: # scripts/acceptance-browser-smoke.mjs # scripts/packed-smoke.mjs
…issue-70-adapters
joeblau
marked this pull request as ready for review
October 19, 2026 01:41
…1.0 workarounds (#128) * chore: upgrade to @bloxwap/[email protected] and @bloxwap/[email protected] - Update dependencies to ^0.2.0 for both sfx and haptic packages - Remove upstream-feedback fixtures that were vendored for unreleased APIs - Update tests to use published APIs directly - Remove 0.1.0 compatibility workarounds from documentation - Update evidence documentation to reflect published packages Co-authored-by: Joe Blau <[email protected]> * test: add local fake-audio for testing without vendored fixtures - Create tests/test-utils/fake-audio.ts for Web Audio API mocking - Update feedback-upstream tests to use local test utilities - Fix haptic test to track vibrate calls correctly without spying on ES module exports Co-authored-by: Joe Blau <[email protected]> * chore: update fixtures to use @bloxwap/sfx@^0.2.0 and @bloxwap/haptic@^0.2.0 - Update native and web fixtures to match feedback package peer dependencies - Fixes native smoke test peer dependency conflicts Co-authored-by: Joe Blau <[email protected]> * fix: update packed-smoke test to use @bloxwap/sfx@^0.2.0 and @bloxwap/haptic@^0.2.0 - Fixes ERESOLVE peer dependency conflict in packed consumer smoke test Co-authored-by: Joe Blau <[email protected]> --------- Co-authored-by: Cursor Agent <[email protected]>
Remove leading space from busy suffix text to eliminate double spacing when combined with the row gap. The suffix now renders as '· Working' instead of ' · Working', using only the 8dp gap for spacing before the middot. The iOS accessibility label retains the full spaced format 'Log out · Working' as required. Android omits the suffix to avoid duplication with the system's localized busy state description. Adds test to verify correct Text run separation and accessibility labels. Co-authored-by: Cursor Agent <[email protected]>
Add verification documentation confirming that the native sound adapter dispatch latency is well within the one-frame (16ms) budget when using pre-loaded players. The implementation already includes: - preload() method that configures audio session and caches players - Synchronous dispatch after preload (no awaited bridge calls) - Test verifying p95 < 16ms with simulated bridge delays Test results show p95 latency of 0.003-0.007ms across 400 dispatches, demonstrating that reusing pre-loaded players eliminates the 47-595ms latency that was observed before preloading was implemented. Co-authored-by: Cursor Agent <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Remaining native and product surfaces need canonical controls that preserve host layout, accessible names, focus, raw values and pending state. This adds those adoption APIs, connects merged upstream feedback capabilities, and packs a clean coordinated candidate.
Latest source validation: full build/docs/lint/types; 174 web and 165 native tests; quality/SSR; 212 public-import examples; Chromium/WebKit SwitchRow keyboard, pointer, repeated-key, pending, focus and axe checks. Clean exact candidate consumers export SwitchRow/default Switch/Button/provider for Android and iOS on both RN 0.81 / Expo 54 and RN 0.83 / Expo 55. Seven staged packages clean-install with aligned versions and pass SSR/feedback.
Clean candidate:
0.1.0-candidate.shac32d8408, sourcec32d8408881cdd99344a66a0d25761312b19a621, eight SHA-256-verified archives,sourceTreeDirty=false. Report SHA-256:d4d20c10175aa7655b263a1d14da908c6d55b045ddf2eb87e33e23febf136d01. Only native and feedback payloads change from the preserved0e239442candidate after excluding coordinated package manifests. Source, archive and profile evidence retains the exact scope. Earlier owning simulator/emulator/production measurements retain their original 0e source scope. All twelve current-head source/native/browser/candidate/docs/security checks pass ate5cc5c2, with the expected main-only docs deployment skip; the full browser/catalog/Next gates pass for this source too.Owning migrations remain reviewable in combined monorepo #4619, integrating #4607–#4618. Its normal gate passed 3,683 app and 269 Pro tests; the exact native subtree passed 3,080 tests and simulator/emulator flows. Equal-toolchain web/native production measurements and unchanged font/asset payloads are retained for owner review. Latest #124 head passed three consecutive remote attempts. Additional native ordinary fields/actions/switches and controls within TapTrade's existing sponsor pilot are undergoing their own caller/runtime checks. Separate TapTrade #219 keeps StreamViewer controls visible during keyboard focus; four component cases and eight actual browser cases pass, with unchanged resting pixels and media behavior. Its required quality and Worker HTTP checks pass; configured automatic previews continue independently.
Chart #58, SFX #55, agent-cli #55, TapTrade #216/#217 and Tapsiren #401 contain coordinated consumer/host migrations. Hyperliquid #183, Font #15 and Pages #31 fix Callout/OG imports, canonical font ownership and CSS function detection. Their remote checks passed. Tapsiren cyan/HIG-action review options preserve identical geometry; the product mark awaits owner choice.
The user explicitly accepted combined #4619's exact historical public Git tree hash finding as a GitGuardian false positive on 2026-10-18 and instructed continuing. It does not block this work; the provider result is retained unchanged.
Physical certification (#55), npm setup/publication (#56), owner visual/density/bundle/motion decisions (#57), product brand decisions (#100/#101), upstream feedback releases (#70), main-branch review/integration and future rollback retirement remain. A unique unsigned iPhone/iPad gallery is prepared; physical installation/certification is pending. No npm publication, release, tag, manual deployment or main-branch merge is included.
Closing native follow-ups
This PR delivers the HIG-side asks of the five native component follow-ups. Each is validated by automated renderer tests, iOS Simulator flows and the owning consumer drafts recorded in
planning/roadmap-followups.md; physical-device observations remain in #55 and consumer rollout in #110/#115.Closes #117, Closes #118, Closes #119, Closes #120, Closes #121