Repository navigation
Offer security codes beside the focused field - #92
Merged
Merged
Conversation
Capture a bounded group of adjacent native accessibility inputs and follow only its expected auto-advance sequence. This fixes first-digit-only fills after browser accessibility is enabled, including JavaScript-limited boxes without maxlength declarations. Preserve anchored prompts, private code transport and per-digit window/lock checks; refuse partial groups and mismatched code lengths. Validate with 495 Bun tests, six adapter regressions, isolated Brave and Chromium digit-box fills, unrelated-focus refusal, and existing single-field and GTK checks.
Document SMS forwarding, browser accessibility, field groups and the optional bridge.conf key in the existing feature, privacy and security docs. Keep the setup note focused and add an Unreleased entry. Separate transport and policy Bun tests and run the native adapter cases as a Python CI step, matching the bridge suites. Include the adapter in documented deployment and the existing demo copy. No new framework or runtime behavior change. Validation: 496 Bun tests, six adapter cases, all nine Mac Python suites, Python compilation and bash syntax pass. Shellcheck is unavailable locally. The collector and Mac bridge remain unchanged.
Bring in current window, notification, attachment and UTC timestamp fixes. Keep both Unreleased changelog sections; the autofill integration and its five-minute lifetime are unchanged. Validation: 539 Bun tests, six desktop adapter cases and all ten Mac Python suites pass. Python compilation and shell syntax pass.
Owner
|
Merged as b20e8cd. Thanks @bbishdotdev. I tested it merged onto current main in an Omarchy VM, with real mouse input, synthetic codes and a synthetic sign-in page in Chromium with --force-renderer-accessibility=complete:
The five-minute expiry I left to your unit tests. One note for anyone writing a fake bridge: codes de-duplicate by chat.db id, so a test that reuses one id only ever sees the first code. bun test 555 pass, Python adapter 6 OK. It is deployed here with autofill left off. |
nixfred
added a commit
that referenced
this pull request
Sep 16, 2026
WHAT: CHANGE.log is a running, newest-first log of every change since the last X post, each entry naming the person with real name, GitHub login and their X account as a https://x.com/<handle> link. X-POSTS.md is the queue of posts for @nixfred: Post 1 (CONTRIBUTORS-X-POST.md, 2026-09-11) marked posted, Post 2 drafted covering the 19 merged PRs since (#54 #71-#77 #80-#82 #84 #85 #87 #88 #92-#95) plus 4bad82d and 481e555. WHY: Fred's standing rule 2026-09-16. Handles were missed before; a thank-you without the @ never reaches the person, and a wrong @ tags a stranger. HANDLES: verified @jondkinney (GitHub profile), @zachwilke_1 (pinefall.dev), @bbishdotdev (bbish.dev + name), @mwhuss (name + Omarchy posts replying to @nixfred). @jefehoser likely (same login, Omarchy posts), flagged for Fred. Ian Swope and cjoh: none verified, recorded as checked. .gitignore: *.log swallowed CHANGE.log, so it is re-included explicitly. LR-T: blip, changelog, x-posts, contributors, handles LR-D: blip, docs, community LR-K: change-log-verified-x-handles, x-post-queue Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013ainpzHJ5F7nsV4hB6HpZy
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.
What
otp_autofill=onoffers incoming security codes beside the focused field, usingLinux accessibility. The prompt shares Blip's fonts and colors, handles separate
digit boxes, and falls back to the top right when field bounds are unavailable.
Codes remain available for five minutes across focus changes. No browser
extension or clipboard is needed.
Why
The existing code toast requires a copy or keyboard shortcut. This lets the user
fill from the field they are already using. The collector and Mac bridge stay
unchanged; setup covers SMS forwarding and browser accessibility.
How it was verified
bun testis green (CI will check) — 539 passing after merging currentmainCLAUDE.md→ named below, and the doc updated if it changedSynthetic codes filled single fields and digit groups in Brave and Chromium,
including delayed auto-advance and a leading zero. Unrelated focus stopped
insertion. Native GTK insertion, dismissal, expiry and domain matching passed.
Six Python adapter cases and all ten existing Mac Python suites pass. Python
and shell syntax checks pass; shellcheck is unavailable locally.
Chrome, Firefox and Zen have not been live-tested.
Invariants touched: five-minute code lifetime; message text stays off disk and
argv; configuration remains in
bridge.conf; only the leader starts the helper.Blip's prompt beneath the code fields in Brave (phone number blurred):