Skip to content

fix(first-use): resolve current search before paste and clarify availability - #202

Merged
johnny4young merged 10 commits into
mainfrom
fix/first-use-availability
Oct 8, 2026
Merged

johnny4young merged 10 commits into
mainfrom
fix/first-use-availability

Conversation

@johnny4young

@johnny4young johnny4young commented Oct 7, 2026 •

Copy link
Copy Markdown
Owner

Summary

Resolve keyboard paste against the current search/filter context, add welcome Back navigation, and clarify public download availability, direct-purchase price and neutral-text legibility.

Current head: 377aa9f
Verified tree: 157dd91371436bbc60e8c944088d77df9817a832
Base: main at ccc4403

Defect and behavior

Query invalidation retained previous rows while Enter and Command-V immediately consumed the selected item. The correction resolves current rows first, preserves Enter's exact-snippet priority and Command-V's selection behavior, and never falls back to old clips after empty results.

  • Capture request identity synchronously, before scheduling asynchronous work
  • Coalesce only identical interaction/plain/snippet intent; a changed intent replaces obsolete work
  • Fence cleanup by request ownership
  • Invalidate pending admission on newer input, selection/navigation, filter-rail movement, preview entry, dismissal and shortcuts-overlay opening
  • Reject hidden keyboard paste while shortcuts are open and keep quick-paste/stack actions off stale rows
  • Add Back after the first welcome step while retaining Skip and manual-paste fallback

Website copy explicitly says iOS/iPadOS is not yet available beside the macOS download. The direct-purchase $19.99 observation remains explicitly dated October 6, 2026; users review the final total and taxes on the existing Lemon Squeezy checkout. No purchase, currency inference or commerce change.
Neutral text tokens are adjusted with source-color checks across 28 theme/pair combinations. This is not complete rendered WCAG certification.

Duplicate and integration check

Freshly checked every open PR #193–201 against main. None implements this paste/onboarding/price/contrast correction. The original first-use candidate intersected #193 only at site/index.html and scripts/check-site.sh for its independent release chronology, imagery and preparation narrative. The latest test-only follow-up also reuses its already-existing PanelPrewarmedOpenUITests correction, as described below. Preserve that work during later integration. This PR does not include CI-cache experimentation, storage lease repairs, release metadata changes or a combined-stack qualification.

Verification

  • Exact uploaded tree matches the reviewed local tree; branch update was forward-only with an expected-head check
  • Site structural and product-truth checks pass
  • Contrast suite: 4 tests covering 28 source-color pairs pass
  • Four portable admission model/source-wiring controls pass; these do not execute Swift
  • git diff --check passes
  • make format, make lint and make test were attempted locally but are blocked by missing Swift/Xcode; no local native pass is claimed
  • Native package tests include deterministic current-query, supersession, changed intent and cancellation coverage; the activation UI journey covers Back and first-step bounds
  • Previous head 3080bf6 hosted CI 37653488965 passed: strict swift-format, SwiftLint (606 files, zero violations), 1,513 package tests in 232 suites, warning checks, 83.9% package production-source coverage above the unchanged 80% floor, StoreKit, and macOS/iOS app builds. Non-blocking beta canary skipped as expected
  • Native current-query, empty-result, snippet/selection, changed-intent, supersession, early-input, peek, filter-rail and shortcuts cancellation regressions passed
  • Initial failures are retained: strict formatter layout, test file exceeding the unchanged 700-code-line limit, and an old release contract still requiring the obsolete iOS label. Follow-ups only format source, move one self-contained test verbatim to a companion extension, and require the explicit unavailable label separately in both languages. No expectation, gate, coverage floor or release truth was weakened
  • Full UI 37655673331 on 3080bf6 failed: iOS 21/21 passed; macOS 120 passed, one failed, three skipped. The sole failed test was PanelPrewarmedOpenUITests.testEveryOpenStartsOnTheNewestClipWithSearchFocused, the same inherited accessibility-query failure observed on main. This red result is retained and is not reclassified as a pass
  • The current follow-up copies only Tests/GanchoUITests/PanelPrewarmedOpenUITests.swift verbatim from #193 at dc81042, blob 86805ebc3149e13d8c045f4090f9ebd2ce629f91. That existing correction asks for the element carrying the selected trait, rather than a same-label child. It retains initial newest selection, Down navigation, reopen selection and keyboard-focus assertions; no sleeps, suppressions or gate changes
  • This is an explicitly shared test prerequisite already present in chore(release): prepare v0.10.0 #193, not a newly discovered independent fix. No other chore(release): prepare v0.10.0 #193 file, version bump, release narrative or merge is included. Main still lacks this correction; later integration should deduplicate the identical file
  • Exact-head ordinary CI 37661608290 passed strict formatting, SwiftLint, package tests and the unchanged >=80% coverage gate, StoreKit tests, and both macOS/iOS app builds. The non-blocking beta canary was skipped as expected.
  • Exact-head full UI 37679130425 passed: 121 macOS tests passed, three explicitly skipped; 21 iOS tests passed. The corrected prewarmed-open journey and modified activation journey are included. The three skips are not counted as passes.
  • These results qualify head 377aa9f; no prior-head or other-PR run is substituted for exact-head evidence.

Limits

No merge, release, deployment, permission change, live clipboard inspection or installed-release mutation. Native installed-app paste delivery, accessibility/device behavior, rendered-browser qualification and the combined repair tree are separate from source checks. The scoped exact-head native gates are green; ready for review. This is not authorization to merge.

@johnny4young
johnny4young marked this pull request as ready for review October 7, 2026 21:40
claude added 3 commits October 8, 2026 04:27
…election

- Let option-command-Return fall through to the snippet or plain paste when
  nothing is selected, as before, while still refusing to queue stale rows
- Cancel a pending paste and its read through one helper
- Keep paste bookkeeping out of observation, since nothing renders it
- Assert again that only one row stays selected across arrows and reopen
- Read the site checkout id from the app's checkout URL in the product
  truth gate instead of a copied literal
@johnny4young
johnny4young merged commit ae5ba71 into main Oct 8, 2026
6 checks passed
@johnny4young
johnny4young deleted the fix/first-use-availability branch October 8, 2026 11:43
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.

2 participants