Skip to content

fix(desktop): stop unsolicited Messages code autofill - #19118

Merged
Yash-Singh1 merged 1 commit into
pingdotgg:mainfrom
StiensWout:t3code/stop-macos-code-autofill
Oct 13, 2026
Merged

Yash-Singh1 merged 1 commit into
pingdotgg:mainfrom
StiensWout:t3code/stop-macos-code-autofill

Conversation

@StiensWout

Copy link
Copy Markdown
Contributor

macOS 26 and later offer recent Messages/Mail verification codes in any focused text field by default. T3's macOS bundle had not opted out, so the popup appears in the composer and other text inputs.

Set NSAutoFillRequiresTextContentTypeForOneTimeCodeOnMac to true in packaged builds and local desktop launchers. Bump the launcher version so cached bundles rebuild with the setting. This limits native code suggestions to fields explicitly marked for one-time codes, including within the desktop browser panel.

Apple documents the behavior and opt-out here.

Validation: 86 focused packaging/launcher tests passed, targeted lint and formatting passed, and the scripts package typecheck passed. On the Mac mini, an electron-builder packaging fixture and the signed local launcher both emitted the key as Boolean true. The exact SMS popup was not reproduced because the test Mac has no signed-in Messages account.

Prepared for Wout by gpt-6.1-sol in the Codex harness through T3 Code.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XS 0-9 changed lines (additions + deletions). labels Oct 13, 2026
@macroscopeapp

macroscopeapp Bot commented Oct 13, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — The PR changes the macOS desktop app's default one-time-code autofill behavior across packaged and locally launched bundles. Although the implementation is small and directly tested, this product-default change warrants human review.

You can add or adjust custom eligibility rules. Learn more.

@StiensWout

Copy link
Copy Markdown
Contributor Author

The default change is intentional. Wout explicitly requested a fix for unsolicited Messages code autofill in the macOS desktop app and asked for this PR.

Apple documents that macOS 26+ offers recent Messages/Mail codes in all focused text fields by default. The bundle-level opt-out is the documented way to require an explicit one-time-code content type. Its scope includes the composer, terminals, and embedded browser fields; that scope is already called out in the PR description.

The correctness check passed. This approvability result asks for human review of the default choice, so there is no code finding to fix here. The PR remains open for that review.

gpt-6.1-sol via the Codex harness through T3 Code, responding for Wout.

@coderabbitai

coderabbitai Bot commented Oct 13, 2026

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Path: .coderabbit.config.ts
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 5c18faaa-b590-4a27-ac2e-f8c37b3e3b08
📥 Commits

Reviewing files that changed from the base of the PR and between 8ac4b97 and 3167367.

📒 Files selected for processing (3)
  • apps/desktop/scripts/electron-launcher.mjs
  • scripts/build-desktop-artifact.test.ts
  • scripts/build-desktop-artifact.ts

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.

📝 Walkthrough

The macOS packaging configuration and launcher now set NSAutoFillRequiresTextContentTypeForOneTimeCodeOnMac to true. The packaging test checks this setting, and the launcher cache version increases from 19 to 20.

Changes: macOS autofill metadata

Layer / File(s) Summary
Set and verify one-time-code autofill metadata
scripts/build-desktop-artifact.ts, apps/desktop/scripts/electron-launcher.mjs, scripts/build-desktop-artifact.test.ts
The macOS packaging configuration and launcher set the Info.plist key to true. The test asserts the packaging configuration value. The launcher cache version increases from 19 to 20.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~5 minutes

Change: Bug fix

Suggested reviewers: juliusmarminge

Merge Risk: ⚪ Minimal · up to 31673

The change constrains one-time-code suggestions in packaged and locally launched macOS apps; no material merge risk remains.

Security architecture risk: ⚪ Minimal · up to 31673

The change narrows unsolicited verification-code suggestions without adding permissions or expanding access to sensitive data. No material security risk introduced or worsened by this PR was identified.

Retained concerns
No architecture-level concerns identified.

Security review details

Security Blast Radius

  • inferred — The changed control operates at the macOS application-bundle level, affecting code-suggestion eligibility across that application's text inputs. Its scope is the desktop application and the current user's OS-provided suggestions, not a new tenant, service, or data-store authority.

Trust Boundaries and Controls

  • inferred — The setting tightens OS-mediated suggestion eligibility; it does not introduce a Messages/Mail reader or a new verification-code transmission path. It is not a blanket prohibition on autofill: explicitly designated one-time-code fields remain eligible under the stated platform contract.

Resilience and Maintainability Implications

  • observed — The existing launcher rebuilds the shared bundle in place without transactional staging or locking. Cache acceptance checks file existence and matching metadata rather than independently verifying completed signing or plist contents. These recovery limitations predate the PR; version-19 metadata cannot validate a partial version-20 upgrade, and no worsened security exposure was established.
Pre-merge checks · Passed 4
Passed Passed checks (4 passed)
Check name Status Explanation
Title check Passed The title clearly and concisely describes the main change: stopping unsolicited macOS Messages code autofill in the desktop app.
Description check Passed The description explains the problem, the configuration change, the launcher version bump, and focused verification results. It does not use the template headings or explicitly address scope and appro…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@Yash-Singh1
Yash-Singh1 merged commit 380bba3 into pingdotgg:main Oct 13, 2026
29 checks passed
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Oct 13, 2026
## What's Changed
* fix(web): remember editor selections before opening folders by @Yash-Singh1 in pingdotgg/t3code#19078
* fix(ci): retry Cursor webhook HTTP 400s on main by @Yash-Singh1 in pingdotgg/t3code#19077
* fix(web): let context handoff details use the available width by @Yash-Singh1 in pingdotgg/t3code#19098
* fix(server): snoozed threads allow queued automatic wakes by @Yash-Singh1 in pingdotgg/t3code#19099
* fix(web): merge button fits its label and animates width changes by @flamboh in pingdotgg/t3code#18478
* fix(web): Cmd+Enter creates the new project while an option is highlighted by @SunkenInTime in pingdotgg/t3code#18901
* fix(pi): queue turn-start prompts when native work is running by @StiensWout in pingdotgg/t3code#18639
* fix(pi): load T3 tool schemas for completion gateways by @StiensWout in pingdotgg/t3code#18643
* fix(devices): report agent tool startup failures by @PixPMusic in pingdotgg/t3code#18502
* fix(web): settings warn when an environment silently drops a setting by @flamboh in pingdotgg/t3code#18334
* fix(desktop): stop unsolicited Messages code autofill by @StiensWout in pingdotgg/t3code#19118
* feat(chat): show pending context handoff when selecting a model by @maria-rcks in pingdotgg/t3code#18369
* fix(server): collect SQLite planner statistics when the database opens by @otavio in pingdotgg/t3code#18471
* fix(server): failed threads no longer scan every tool item for errors by @realhasanshoaib in pingdotgg/t3code#18628
* fix(web): keep clone folder names readable in the setup project picker by @tachytelicdetonation in pingdotgg/t3code#12474
* fix(composer): allow slash skill search within messages by @Bil0000 in pingdotgg/t3code#19107

## New Contributors
* @tachytelicdetonation made their first contribution in pingdotgg/t3code#12474

**Full Changelog**: pingdotgg/t3code@v0.0.46-nightly.20261013.3066...v0.0.46-nightly.20261013.3080

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.46-nightly.20261013.3080
github-actions Bot added a commit to davidvanderklay/t3code-flake that referenced this pull request Oct 13, 2026
## What's Changed
* fix(web): remember editor selections before opening folders by @Yash-Singh1 in pingdotgg/t3code#19078
* fix(ci): retry Cursor webhook HTTP 400s on main by @Yash-Singh1 in pingdotgg/t3code#19077
* fix(web): let context handoff details use the available width by @Yash-Singh1 in pingdotgg/t3code#19098
* fix(server): snoozed threads allow queued automatic wakes by @Yash-Singh1 in pingdotgg/t3code#19099
* fix(web): merge button fits its label and animates width changes by @flamboh in pingdotgg/t3code#18478
* fix(web): Cmd+Enter creates the new project while an option is highlighted by @SunkenInTime in pingdotgg/t3code#18901
* fix(pi): queue turn-start prompts when native work is running by @StiensWout in pingdotgg/t3code#18639
* fix(pi): load T3 tool schemas for completion gateways by @StiensWout in pingdotgg/t3code#18643
* fix(devices): report agent tool startup failures by @PixPMusic in pingdotgg/t3code#18502
* fix(web): settings warn when an environment silently drops a setting by @flamboh in pingdotgg/t3code#18334
* fix(desktop): stop unsolicited Messages code autofill by @StiensWout in pingdotgg/t3code#19118
* feat(chat): show pending context handoff when selecting a model by @maria-rcks in pingdotgg/t3code#18369
* fix(server): collect SQLite planner statistics when the database opens by @otavio in pingdotgg/t3code#18471
* fix(server): failed threads no longer scan every tool item for errors by @realhasanshoaib in pingdotgg/t3code#18628
* fix(web): keep clone folder names readable in the setup project picker by @tachytelicdetonation in pingdotgg/t3code#12474
* fix(composer): allow slash skill search within messages by @Bil0000 in pingdotgg/t3code#19107

## New Contributors
* @tachytelicdetonation made their first contribution in pingdotgg/t3code#12474

**Full Changelog**: pingdotgg/t3code@v0.0.46-nightly.20261013.3066...v0.0.46-nightly.20261013.3080

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.46-nightly.20261013.3080
vedprakash2302 added a commit to vedprakash2302/Cody that referenced this pull request Oct 14, 2026
Brings in upstream through pingdotgg#19248 (4d73e1d).

- Dev launcher: kept Cody's bundle id, cody:// scheme and icons beside upstream's Messages autofill opt-out (pingdotgg#19118); bumped LAUNCHER_VERSION to 21 because Cody and upstream both used 20.
- Effect 4.0.4 (pingdotgg#19213): no fork code still reads randomUUIDv4 as a property.
- Delegated task worktrees (pingdotgg#19102): they start from a commit with startFromOrigin off, so Cody's prepareWorktreeBase still runs and has nothing to fetch.
- Superseded: none. Adapted: none.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XS 0-9 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants