manual-pairing-fallback: Manual pairing fallback #4
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "task/manual-pairing-fallback"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Assigned idea
Benchmark authoring specification.
Summary: Add a manual add-device fallback on the QR scanning screen for users who cannot grant camera access or scan a valid Muxy pairing code.
Task intent: Update the upstream
ScanPairScreenso the user can navigate to/add-devicemanually from the camera-permission-denied state and from the invalid-QR error state, while preserving the existing valid pairing QR behavior.Benchmark plan: Construct the task package from commit
fc029f37073af0fc634432f6fec4f0285b822485with solver instructions to edit onlyapp/scan-pair.tsx. The work requirement should specify an exact CTA text and accessibility label ofEnter pairing details manually, an accessible button role, and a manual navigation action usingrouter.replace('/add-device')with no host, port, auto, service, or label params. The package should include a hiddentest_outputs.pyverifier that checks the final repo state.Environment plan: The task environment is the materialized Expo/React Native repo plus the hidden verifier; no physical camera, emulator, or QR image fixture is required. The repo environment remains the existing upstream app at the fixed commit, with
app/scan-pair.tsxusingexpo-camera,expo-router,parsePairUri, and React Native components.Verifier plan:
test_outputs.pyshould inspectapp/scan-pair.tsxand fail unless the exact textEnter pairing details manuallyis rendered, the same exact string is used as an accessibility label, aPressableor equivalent button declaresaccessibilityRole="button", and there is a manualrouter.replace('/add-device')call distinct from the existing QR-successrouter.replace({ pathname: '/add-device', params: ... }). It should also check that the existing invalid QR message and valid QR params for host, port, auto, service, and label remain present.Oracle plan: The oracle solution edits
app/scan-pair.tsxby adding auseCallbacksuch asopenManualPairingthat callsrouter.replace('/add-device'), then renders a styled accessiblePressablewith the exact manual-entry label in the permission-not-granted branch and alongside the invalid QR error UI. Existing camera permission request handling and successful QR parsing/navigation are left intact.Difficulty plan: Current coding systems may add the fallback in only one UI branch, use
router.pushinstead of the required replacement navigation, accidentally reuse the auto-pairing params, omit accessibility metadata, or disturb the valid QR callback while touching nearby routing code.Repo patch scope: Expected upstream edits are limited to
app/scan-pair.tsx, including any local style additions in that file. Do not modify routing files, state parsing, package manifests, dependencies, or unrelated components.Anti-leakage notes: Do not expose any solver-facing benchmark, harness, Snorkel, Harbor, std-ts, agent, stage, attempt, retry, generated task, or evaluation context. Present this only as ordinary product work for the mobile app.
Approach: Add one shared manual navigation callback, reuse it for both fallback buttons, keep the existing invalid QR message, and ensure the manual action goes to the plain add-device screen without auto-fill params.
Verification: Run
python3 test_outputs.py; it verifiesapp/scan-pair.tsxfor the manual CTA, accessibility attributes, plain/add-devicereplacement navigation, and preservation of existing QR success behavior.Risk: Static verification can miss subtle rendering placement issues, so the verifier should combine exact-string checks with structural checks around
Pressableandrouter.replaceto reduce false positives.Path rules: task package is tasks/; mutable upstream checkout is tasks//environment/repo; benchmark package files are under tasks//task; verifier/container environment belongs under tasks//task/environment; regular and UI verifier logic belongs in task/tests/test_outputs.py and test.sh only runs that file through pytest.
Agent context
Task slug: manual-pairing-fallback
Branch: task/manual-pairing-fallback
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.