1.4 KiB
1.4 KiB
id, title, status, wave, depends_on, plan, spec
| id | title | status | wave | depends_on | plan | spec | |
|---|---|---|---|---|---|---|---|
| 06-external-links | Scoped native external-link handling | done | 5 |
|
plan.md | ../../specs/desktop/requirements/desktop-tauri-app.md |
Task 06: Scoped Native External-Link Handling
Acceptance
- Desktop
http,https, andmailtodestinations open in the system handler. - Unsupported schemes, malformed URLs, credentials-in-URL surprises, and non-owned command inputs fail closed.
- Loopback Kandev routes, downloads, and blob URLs retain their existing in-WebView behavior.
- Direct external
window.open/anchor call sites use one shared helper without changing ordinary browser behavior. - Help and release-note menu links use the same restricted path.
Files Likely Touched
apps/desktop/src-tauri/src/main.rsand a scoped opener moduleapps/desktop/src-tauri/Cargo.tomland capabilities- New external-link helper under
apps/web/lib/desktop/ - Existing external-link and
window.opencall sites underapps/web/ - Focused URL classification and integration tests
Verification
cd apps/desktop/src-tauri && rtk cargo fmt --check && rtk cargo test --features desktop-runtime
cd apps/web && rtk pnpm run typecheck
cd apps/web && rtk pnpm test external
cd apps && rtk pnpm --filter @kandev/web lint
Output Contract
Update this task to done and check its plan item only after scheme allowlisting and loopback
retention are covered by tests.