Add mobile platform capability planning

This commit is contained in:
jwinterm
2026-07-05 20:53:12 -04:00
parent ba620e32ca
commit 6c209b6557
14 changed files with 353 additions and 28 deletions
+1
View File
@@ -22,6 +22,7 @@ browser engine until those contracts are stable.
- `ampbrowser.transports`: local readiness checks for Tor, I2P, Reticulum, and Gemini.
- `ampbrowser.plan`: dry-run action planner for browser launches.
- `ampbrowser.launch`: side-effect-free launch specs and first-use consent state.
- `ampbrowser.platforms`: platform capability matrix for desktop, Android, and iOS.
- `ampbrowser.docsgen`: generated public documentation from code-owned metadata.
## Browser Strategy
+26
View File
@@ -0,0 +1,26 @@
# Generated Platform Capabilities
> Status: generated | Updated by `python3 -m ampbrowser docs generate` | Applies to: AMPB
This file is generated from code. Do not edit it by hand.
| Transport | Platform | Browse | Adopt | Manage | Install | Note |
| --- | --- | --- | --- | --- | --- | --- |
| `clearnet` | `desktop` | `ready` | `ready` | `unsupported` | `unsupported` | Use system browser or isolated desktop profile. |
| `clearnet` | `android` | `ready` | `ready` | `unsupported` | `unsupported` | Use Android browser shell, WebView, or Custom Tabs. |
| `clearnet` | `ios` | `ready` | `ready` | `unsupported` | `unsupported` | Use iOS browser shell with platform web constraints. |
| `tor` | `desktop` | `ready` | `ready` | `planned` | `planned` | Adopt local Tor or prompt before managed desktop daemon setup. |
| `tor` | `android` | `planned` | `planned` | `planned` | `planned` | Use an app-owned foreground service or compatible installed Tor provider. |
| `tor` | `ios` | `foreground-only` | `planned` | `foreground-only` | `constrained` | Plan for in-app foreground sessions; do not assume always-on background service. |
| `i2p` | `desktop` | `ready` | `ready` | `planned` | `planned` | Adopt local I2P proxy or prompt before managed desktop daemon setup. |
| `i2p` | `android` | `planned` | `planned` | `planned` | `planned` | Use an app-owned foreground service or compatible installed I2P provider. |
| `i2p` | `ios` | `constrained` | `planned` | `foreground-only` | `constrained` | Treat iOS I2P support as foreground-only until native adapter constraints are proven. |
| `gemini` | `desktop` | `ready` | `ready` | `ready` | `unsupported` | Built-in fetch/render path can be shared by desktop shell. |
| `gemini` | `android` | `ready` | `ready` | `ready` | `unsupported` | Built-in fetch/render path can be shared by Android shell. |
| `gemini` | `ios` | `ready` | `ready` | `ready` | `unsupported` | Built-in fetch/render path can be shared by iOS shell. |
| `reticulum` | `desktop` | `planned` | `planned` | `planned` | `planned` | Adapter and local interface readiness checks are planned. |
| `reticulum` | `android` | `planned` | `planned` | `planned` | `planned` | Mobile adapter should use explicit foreground service consent. |
| `reticulum` | `ios` | `constrained` | `planned` | `foreground-only` | `constrained` | Do not assume background Reticulum operation on iOS. |
| `unknown` | `desktop` | `unsupported` | `unsupported` | `unsupported` | `unsupported` | No platform route is available. |
| `unknown` | `android` | `unsupported` | `unsupported` | `unsupported` | `unsupported` | No platform route is available. |
| `unknown` | `ios` | `unsupported` | `unsupported` | `unsupported` | `unsupported` | No platform route is available. |
+25
View File
@@ -0,0 +1,25 @@
# Mobile Browser
> Status: draft | Updated 2026-07-06 | Applies to: AMPB mobile shells
Mobile is a first-class AMPB target. The core router, policy model, consent flow, profile
isolation, and fixture checks should stay shared across desktop, Android, and iOS. Native
mobile shells should implement only the platform-specific browser and transport pieces.
## Android
Android is the primary mobile target for full AMPB browsing. Tor, I2P, and Reticulum
adapters should run only after a URL selects that transport and the user approves setup.
Managed adapters must use visible, stoppable foreground services and app-owned state.
## iOS
iOS is a supported design target, but transport management is constrained. AMPB should
assume foreground-only sessions unless a reviewed platform capability proves otherwise.
The iOS shell should still share routing, policy, consent, fixture, Gemini, and clearnet
behavior with the rest of AMPB.
## Capability Matrix
Generated platform capability metadata lives in
[generated platform capabilities](generated/platform-capabilities.md).
+1
View File
@@ -27,4 +27,5 @@ python3 -m ampbrowser open https://wownero.org/
python3 -m ampbrowser open http://example.b32.i2p/
python3 -m ampbrowser open http://example.b32.i2p/ --yes
python3 -m ampbrowser open http://example.b32.i2p/ --config examples/config.toml
python3 -m ampbrowser open http://example.b32.i2p/ --platform android
```