···11+# Open Tasks for Next Agent
22+33+## Task 1: iOS Webview — Set User-Agent to Fix Site Rejection
44+55+**Status:** Research complete, implementation needed
66+77+**Problem:** Inline webviews in the Tauri iOS app are rejected by YouTube, Reddit, and other sites. Wikipedia works fine.
88+99+**Root cause:** WKWebView's default User-Agent string is missing `Version/X.X` and `Safari/604.1` tokens that Safari includes. Sites server-side detect this absence and reject the webview.
1010+1111+**Solution:** Set `customUserAgent` on the inline WKWebView to match Safari's UA:
1212+1313+```
1414+Mozilla/5.0 (iPhone; CPU iPhone OS 18_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.2 Mobile/15E148 Safari/604.1
1515+```
1616+1717+This is exactly what Firefox iOS, Brave iOS, Chrome iOS, and DuckDuckGo all do (all iOS browsers use WKWebView under the hood).
1818+1919+**Implementation options (ranked):**
2020+1. **Tauri config:** `tauri.conf.json` supports `userAgent` per window — but may only apply to main window, not child webviews
2121+2. **Tauri iOS Swift plugin:** Create a plugin with `load(webview:)` hook to set `customUserAgent` on inline WKWebView instances
2222+3. **Wry's Rust API:** `WebViewBuilder::with_user_agent()` if creating webviews from Rust
2323+2424+**Additional settings needed on inline WKWebView:**
2525+- `allowsInlineMediaPlayback = true` (for video on YouTube/Reddit)
2626+- Don't register `WKScriptMessageHandler` on the content webview (or inject JS to clean up `window.webkit.messageHandlers`)
2727+2828+**Full research:** See research output at `/private/tmp/claude-501/-Users-dietrich-misc-mpeek-tmp-release-7140/tasks/aacd54a.output`
2929+3030+---
3131+3232+## Task 2: Notes with URLs — Open as Web Pages (Mobile App)
3333+3434+**Status:** Wrong target implemented, needs redo for mobile
3535+3636+**Problem:** Note-type items containing URLs should be openable as web pages, using the same webview mechanism that URL-type items use.
3737+3838+**What was done (WRONG TARGET):** Commit `mrwsnryu` (14a36011) modified `extensions/tags/home.js`, `extensions/tags/home.html`, `extensions/tags/home.css`, and `extensions/groups/background.js`. These are **Electron desktop** extensions, NOT the Tauri mobile app.
3939+4040+**What needs to happen:** The mobile app frontend is in `backend/tauri-mobile/src/App.tsx` (125KB React app). The feature needs to be implemented THERE, not in the extensions/ directory.
4141+4242+**Implementation approach:**
4343+1. Read `App.tsx` to find how URL-type items currently trigger web page viewing
4444+2. Add URL detection for text/note items (extract first URL from content)
4545+3. Wire up the same web page viewing path for notes that contain URLs
4646+4. Show visual indicator (link icon, "Open Page" button) on note cards with URLs
4747+4848+**The `extractUrl()` logic from the desktop implementation is reusable** (priority: full URL → bare domain → embedded URL, validated with `URL` constructor).
4949+5050+---
5151+5252+## Build Notes Discovered
5353+5454+### Stale Rust Cache (CRITICAL)
5555+- Changing `Cargo.toml` features (e.g., removing `custom-protocol`) does NOT invalidate the Tauri dependency's build cache
5656+- `build-ios.sh --force` only recompiles the app crate, not dependencies
5757+- **Must run `npm run clean:rust:full`** (from `backend/tauri-mobile/`) to clear dependency caches when changing features
5858+- Symptom: blank white page in simulator (loads bundled assets instead of devUrl)
5959+- Verify fix: check that `/target/aarch64-apple-ios-sim/debug/build/tauri-*/out/checked_features` does NOT contain `custom-protocol` for dev builds
6060+6161+### Dev Session Race Condition
6262+- `dev-ios-sim.sh` launches the app BEFORE starting vite → WKWebView gets connection refused → blank page
6363+- Workaround: run `npm run sim:launch` to relaunch after vite is up
6464+- Should be fixed: start vite first, wait for ready, then launch app