Files
jarvis/docs/BACKLOG.md

33 lines
2.1 KiB
Markdown
Raw Normal View History

# Backlog
Seed list for the issue tracker. Each becomes a GitHub issue (see
`scripts/create-issues.sh`). `[client]` = iOS, `[backend]` = coordinate with the
backend service.
1. **[client][backend] Add `Sport` (F1) and `World` topic pills.** The 47 feeds now
include heavy F1 + global-news coverage that gets squeezed into finance/tech/
politics/africa. Add pills in `Topic.filters`; backend classifier must emit `sport`
/ `world` slugs to match.
2. **[client] Wire the Tailscale remote host in Connectivity.** Populate the Remote
Access card's host so away-from-home auto-selects the Tailscale address. Verify the
LAN⇄Tailscale switch via `/health` probing.
3. **[client] SSID-based trusted networks.** Pin trusted Wi-Fi by name ("Add current
network"). Needs the *Access WiFi Information* entitlement (real device + paid
account); no-ops in the simulator. Currently approximated by LAN reachability.
4. **[client] Optional in-app WireGuard tunnel.** NetworkExtension packet-tunnel so
Jarvis can bring up a WireGuard tunnel itself (WireGuard/Netmaker configs only).
Needs entitlement + real device. Deferred.
5. **[client] App icon + launch assets.** `AppIcon` is an empty placeholder.
6. **[client] Flesh out Latest / Saved / Search tabs.** Currently minimal reuse of the
feed components; add proper empty/loading states and dedicated behavior.
7. **[client] Verify hero image loading.** `AsyncImage` against real feed `imageUrl`s
(ATS, redirects, grey fallback) in the article reader.
8. **[client] Infinite scroll / pagination at scale.** Validate `loadMore`/cursor
round-trips against the live ~850-story dataset; guard against dupes.
9. **[backend] Topic-classifier coverage for the 47 feeds.** Ensure science/tech/world/
sport map sensibly into the supported topic slugs.
10. **[ci] Add unit/UI tests.** The build matrix compiles but runs no tests yet; add a
test target and a `test` matrix leg.
11. **[client] Offline polish.** Green "cached" dot + Saved tab depend on opening an
article; consider pre-caching top stories for true offline-first.