Add dry-run open consent flow

This commit is contained in:
jwinterm
2026-07-05 20:23:12 -04:00
parent ff287b8b4b
commit 237d1e4fcb
7 changed files with 233 additions and 0 deletions
+1
View File
@@ -21,6 +21,7 @@ browser engine until those contracts are stable.
- `ampbrowser.routing`: deterministic URL-to-transport rules.
- `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.docsgen`: generated public documentation from code-owned metadata.
## Browser Strategy
+29
View File
@@ -0,0 +1,29 @@
# Open Flow
> Status: draft | Updated 2026-07-05 | Applies to: AMPB users and implementers
`ampbrowser open` prepares a safe launch plan for one URL. It routes the URL, checks only
the selected transport, and reports whether the browser can open immediately or needs a
first-use setup prompt.
## Consent Model
AMPB does not install or start Tor, I2P, Reticulum, or other optional transports when the
application starts. Setup is lazy:
1. The user opens a URL.
2. AMPB selects the required transport.
3. If the transport is already running, AMPB adopts it.
4. If the transport is missing, AMPB shows a prompt naming what will be installed or started.
5. AMPB proceeds only after approval.
Current `open` output is a dry-run launch spec. It is intentionally side-effect free while
the transport adapters and browser launcher are being stabilized.
## Examples
```sh
python3 -m ampbrowser open https://wownero.org/
python3 -m ampbrowser open http://example.b32.i2p/
python3 -m ampbrowser open http://example.b32.i2p/ --yes
```
+3
View File
@@ -5,6 +5,9 @@
Transport management follows one rule: use what is already healthy, and manage missing
transports only after the user opens a URL that needs them and approves setup.
`ampbrowser open` currently emits a dry-run launch spec. The spec includes the selected
profile, proxy endpoint, required setup steps, and whether user consent is still needed.
## Lifecycle
1. Inspect known local endpoints.