Skip to content

Add OS-authenticated native write approval on Linux and Windows - #372

Draft
ymote wants to merge 8 commits into
feat/platform-native-acceptancefrom
feat/os-authenticated-review
Draft

ymote wants to merge 8 commits into
feat/platform-native-acceptancefrom
feat/os-authenticated-review

Conversation

@ymote

@ymote ymote commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

Linux and Windows currently refuse native business-write approval because their pointer events have no trusted provenance. This change keeps synthetic input untrusted and adds a distinct OS-authenticated approval path to the existing Gmail, GitHub, Calendar and declared-backend native review.

The opaque one-use proof binds the admitted bundle/grant, account generation, exact operation (including resource versions), host sheet and native window. Authorization and the earlier review/authentication deadline are checked again after the per-app execution lock; backend mutations check after refresh. Linux requires an exact root-owned polkit auth_self policy without retained authorization. Windows uses owner-window Windows Hello and accepts only native Verified. The .deb mapping includes the policy; AppImage/source launches require separate administrator installation.

Validation: 93 macOS OAuth tests; 95 Linux OAuth tests plus the real missing-policy refusal test; two native shell review tests; desktop/Home compile checks; ten packaging tests; CI mapping/drift checks. The descriptor follow-up passed both catalog tests. Actual Windows CI passed 97 OAuth/adapter tests and the native non-prompting Windows Hello availability probe (run 37730749450). The OS reported unavailable; no authentication or business write was attempted. A sanitized receipt records this negative-path result.

Draft: successful human OS authentication and the resulting synthetic business write remain unverified on Linux and Windows. No system policy was installed on the shared test host. Windows availability, browser login and native vault passes are distinct from user approval. No new provider registration or personal account is included.

Stacked on #369; browser and credential acceptance belong to that PR. Design and remaining native acceptance are documented in ADR 0013 and the bilingual desktop approval guide.

This branch has not been deployed

No deployments
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.

1 participant