P1 — add typed Android app, browser, YouTube and ChatGPT adapters #199

Open
opened 2026-08-24 06:24:53 +00:00 by lost-rob0t · 0 comments
lost-rob0t commented 2026-08-24 06:24:53 +00:00 (Migrated from github.com)

Parent: #194
Depends on: #159, #174, #198
Integrates with: #150, #152, #177

Goal

Add closed typed device capabilities for application launch and safe web/media handoff without exposing package identifiers in portable intents.

Required capabilities

  • open_app(alias);
  • open_uri(validated_uri);
  • open_browser(target);
  • open a server-selected web-search result on the initiating device;
  • YouTube video/search opening with configured ReVanced/Vanced variants, stock YouTube and browser fallback;
  • official ChatGPT application launch;
  • optional ask_chatgpt(Text) only when a standard installed-version handoff/share mechanism is feature-detected.

Return typed installed, unavailable, ambiguous, visibility_limited, unsupported_handoff, permission_denied and launch_failed results.

Security

Respect package-visibility restrictions, keep bounded package inventory private, validate URI scheme/authority/size, prohibit arbitrary Intent deserialization/extras and do not automate ChatGPT with AccessibilityService.

Tests

TDD package visibility/absence/ambiguity, fallback ordering, malformed URIs, unsafe schemes, handler disappearance, launch exceptions, configured variant changes and ChatGPT handoff supported/unsupported behavior.

Acceptance

Portable semantics name applications/providers, Android adapters resolve them locally, and every failure/fallback is typed and observable.

Parent: #194 Depends on: #159, #174, #198 Integrates with: #150, #152, #177 ## Goal Add closed typed device capabilities for application launch and safe web/media handoff without exposing package identifiers in portable intents. ## Required capabilities - open_app(alias); - open_uri(validated_uri); - open_browser(target); - open a server-selected web-search result on the initiating device; - YouTube video/search opening with configured ReVanced/Vanced variants, stock YouTube and browser fallback; - official ChatGPT application launch; - optional ask_chatgpt(Text) only when a standard installed-version handoff/share mechanism is feature-detected. Return typed installed, unavailable, ambiguous, visibility_limited, unsupported_handoff, permission_denied and launch_failed results. ## Security Respect package-visibility restrictions, keep bounded package inventory private, validate URI scheme/authority/size, prohibit arbitrary Intent deserialization/extras and do not automate ChatGPT with AccessibilityService. ## Tests TDD package visibility/absence/ambiguity, fallback ordering, malformed URIs, unsafe schemes, handler disappearance, launch exceptions, configured variant changes and ChatGPT handoff supported/unsupported behavior. ## Acceptance Portable semantics name applications/providers, Android adapters resolve them locally, and every failure/fallback is typed and observable.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
nsaspy/zara#199
No description provided.