# Feature State Comparison: v1 vs v2

This matrix summarizes the current implementation state for key features across the TVAnarchy pillars. States:

- **complete**: Fully shipped, tested, and production-ready in the described scope.
- **partial**: Core functionality exists and is usable, but missing polish, full integration, advanced features, or complete pillar alignment.
- **exists**: Basic support or scaffolding is present (or was in v1), but not meeting v2 pillar goals or completeness criteria. (For v1 this often means the need/concept exists but implemented differently or incompletely for v2 lens.)

| Feature | Description | v1 State | v2 State | Pillar(s) | Notes |
|---------|-------------|----------|----------|-----------|-------|
| Device Registry | Register devices with types, host kinds, services | complete | complete | Devices | `DeviceConfig`, Devices tab, presets for cellphone/laptop/storage/seed/broadcast |
| Device Services & Duties | stream, offlineCache, custody, publicSwarmFace, f2fRelay, meshAnchor, ttlSeed | partial | complete | Devices, Download, Net | Engine in governor; full actuation, Net integration, and UI toggles in v2 |
| Storage Pools & Extension Warmup | Shared logical volume across devices, alias paths, no duplicate caches | exists (offline cache only) | complete | Devices | Specified + implementation plan; reuses BTD internal face |
| Playback Targets | Support for VLC, mpv (SSH), QuickTime, Roku (ECP control), etc. | complete (Roku control only) | complete | Watch, Devices | + host daemon support for additional thin clients |
| Library Scanning & Organization | Index media, parse filenames, group shows, dedup | complete | complete | Library | Enhanced with quality-variant support, advanced org from prior art |
| Title Library & Canonical Display Names | Persistent `contentKey`-based episode titles, never raw filenames | partial | complete | Library | Core shipped (TitleLibrary, DisplayNames, refiner, scanner integration); goldens, full dual-scanner (mcp), ingest remaining |
| Metadata Enrichment | TMDB/IMDb/TVmaze + MLX + sidecars | complete | complete | Library | One-shot episode ingest planned for full v2 |
| Torrent Search & Download UI | Search (TPB etc.), add to transmission, dashboard | complete | complete | Download | Single-fleet focus in v1; full mesh prep in v2 |
| Custody Floor, Reaper, Re-pin | N-copy replication, dead torrent handling, cross-host moves | complete (single-fleet) | complete | Download, Devices | Multi-host + Net signal priority in v2 |
| Peers / Broadcast / Fleet Serve | Source model, `peers_for`, HTTP exposure | partial | complete | Download | Single-fleet core shipped; full broadcast host + iOS in v2 |
| Net Editions & Sharing | Observations, merge (intro-markers, grouping, quality, signal, peers-hints), torrents | does not exist | complete | Net | Specified + phased (local MVP → editions → friend_mesh) |
| Watch Progress / Resume / Sync | Position tracking, continue watching, cross-device | partial | complete | Watch, Net | + Net sharing of progress facts in v2 |
| Per-pillar Settings | Split `settings.json` into cross/watch/library/download/net/devices | does not exist | complete | Cross, all | Tolerant nested decode + UI sections in v2 |
| Watch Appearance (Winamp skins) | Custom .wsz import, sprites, LED, transport | complete (macOS base) | complete | Watch (cross) | Polish (PLAYPAUS, MiniTransport, preview) remaining in v2 |
| Control-plane Host Daemon | HTTP player control, library index, media range/streaming | does not exist | complete | Watch (thins), Devices, Download | Progressive transcoding from prior art |
| On-demand Progressive Transcoding / HLS | Efficient segment-based streaming, adaptive quality, no full-file upfront | partial (local players) | complete | Watch, Devices | Core for host daemon media plane; enables Roku/RPi/others |
| Cross-platform Builds & Distribution | Release assets per OS via platform.sh / update.sh | partial (mac full; others scaffolded) | complete | Cross | + device-optimized pkgs |
| Optimized Device Packages | Roku channel (BrightScript), RPi/ARM (optimized Linux), web thin client | does not exist | complete | Devices, Watch | Listed in builds section; monorepo + streaming from prior project |
| iOS Companion | Separate app with VLCKit + bridge for library/remote | complete (via bridge) | complete | Watch, Devices | Via host daemon + Capacitor thin client in v2 north star |
| Universal / Thin Client | Single codebase for all devices + control of non-install targets | designed | complete | Watch | North star: host daemon + TS web client (Tauri/Capacitor) + retire fat Swift UIs |

**Notes on states:**
- v1 reflects the shipped single-fleet media client + governor fleet core (as of the latest `docs/roadmap.md`).
- v2 reflects the pillar model + targeted completeness (many Library/Devices/Watch items "largely shipped" or specified + implementation in progress; Net is the primary new work).
- "complete" in v2 does not mean "no future enhancements" — it means the pillar scope is met per the v2 lens.

This table is the single source for "what is the state of X in v1 vs v2". Update it when code or plans change, and keep the pillar docs + manifest in sync.

See also [v2/plan.md](./plan.md) and [v2/roadmap.md](./roadmap.md) for phased implementation details.