Initial commit: Jarvis iOS app
SwiftUI client for a self-hosted RSS news-correlation platform: signal feed, story detail, article reader, feed manager, and LAN⇄Tailscale connectivity. Project generated from project.yml via XcodeGen. Includes CI build matrix (macOS 14/15 × Debug/Release), issue templates, backlog, and API/backend handoff docs. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
32
docs/BACKLOG.md
Normal file
32
docs/BACKLOG.md
Normal file
@@ -0,0 +1,32 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user