Surface the existing pin (keep-from-cull) and per-file delete actions as visible inline buttons on each offline cache row instead of context-menu-only: a star toggles protection from auto-cull (and restore-if-missing), a trash culls that file early. Aligns wording/icons to the star metaphor. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
5.5 KiB
5.5 KiB
Glossary (v2)
Extends docs/glossary.md with pillar vocabulary.
Pillars
- Watch — playback, Player, Home rails, queue, Continue Watching UX.
- Library — catalog scan, index, grouping, metadata enrichment.
- Download — torrent acquisition, transmission, custody floor, reaper,
peers_for, seed TTL, governor prefetch buffer. - Net — TVAnarchy data synced between installs (editions over
friend_mesh); trust per part (friendsvsnetwork). Not video bytes. - Devices — device registry + install pairing (the product term that replaced "fleet" in UI), storage pools, shared media volume, offline/extension policy.
Cross-pillar settings — theme, Winamp skins, shell chrome (settings.md).
Tagline (press/GTM): Napster for Netflix — see docs/marketing/.
Pillars: Watch · Library · Download · Net · Devices.
Additional terms (from 2026-06 doc build-out)
- Pillar (lens): Organizational product/engineering boundary. See plan.md Appendix C for how separation is achieved while staying DRY (correlation tags + manifest as truth, packages/faces for engines, pattern reuse like TitleLibrary → Net obs, state path segregation, UI surface mapping). Not runtime modules or separate apps.
- Faces pattern: See packages/README.md + bittorrentdrive.md.
- ContentKey: Stable non-path identity (ContentID.canonical + optional fingerprint). Used by Library/TitleLibrary, Net observations/editions, Devices placement, Download hints.
- Winamp chrome / .wsz system: Custom retro skin implementation (real .wsz BMP sprites + TXT parsing into ThemePalette + exact sprite views for transport/LED/spectrum). Hybrid AppKit (NSImage, no interpolation) + SwiftUI (environment, custom buttons/sliders). macOS Player-focused; standard theme + iOS unaffected. Detailed in plan.md Appendix C + pillars/watch-appearance.md.
- Embedded UI (Net): No dedicated tab. Lives in Settings sections + Player hooks (bounds, contribute observation). See correlation/ui.md.
- Switching pillars: Single-shell navigation (RootView NavigationSplitView sidebar enum Section + selection-driven @ViewBuilder detail switch + library subnav). Global cross chrome (queue, theme env, offline, notifications) always available. Controllers per pillar; heavy pollers gated to relevant selection. See plan.md Appendix C + RootView.swift + correlation/ui.md.
- PathGuard: Reusable input guard (realpath + ext allow + media roots containment after realpath of roots; model on bridge/library.ts resolveStreamId). Implemented + wired for blacktv (sh + TS dispatch in tools); model/pattern for future Swift/MCP/Net surfaces (cf. existing prefix checks in LibraryScanner/MediaPaths and resolveStreamId for bridge streams). See plan.md App C + security inserts.
- Mandatory auth: No default-open for daemons/bridges/serves/HTTP/MCP surfaces (bearer token or equiv required; fatal if missing post-install). Per v1 review + v2 plan (fleet serve bearer, Phase 7 control-plane, bridge). See plan.md checklist + cross-cutting.
Net terms
- part — named dataset type (
intro-markers,grouping,quality,signal,peers-hints). - edition — versioned snapshot of a part, distributed as a small torrent.
- observation — one install's contribution (value + confidence + provenance).
- merge — local policy producing the subscribed view from observations.
- trust —
friends(f2f_only) ornetwork(k-anon aggregates).
Disambiguation
| Term | Means | Pillar |
|---|---|---|
| torrent peers | seeders/leechers for an infohash | Download |
| Net peers | other TVAnarchy installs | Net |
| friend_mesh | source kind / transport | Download + Net |
| watchlog | append-only play events JSONL | Watch write, Download read |
| signal | k-anon watch aggregates | Net part (not raw watchlog) |
| holdings | completed copies on install nodes | Download |
| install | one operator identity + devices (UI term) | Devices |
| fleet | legacy impl name for install registry | Devices (internal) |
| shared media volume | logical library across storage + extension tiers | Devices |
| extension tier | spare disk on laptop expanding canonical storage | Devices |
| extended warmup | placement to extension while watching; alias not duplicate | Devices + Watch |
| Title Library | local contentKey → episode title dataset we own |
Library |
| episode refiner | M2 MLX parser for cache misses; writes Title Library | Library / recommender |
| BitTorrentDrive | shared package: internal (Devices) + external (Net) faces | packages/ |
| internal face | within-install pins, pools, extension tiers | Devices → drive |
| external face | cross-install edition swarms | Net → drive |
Legacy terms (unchanged)
Fleet, custody floor, duty, F2F relay, reaper, peers_for, PlayerTarget,
meta-tracker, Identity (discord_id root), Discord planes/bridge (notify surface only) — see main glossary + v2/plan.md §13.5 (Phase 8). Map to pillars:
| Legacy term | Pillar |
|---|---|
| custody floor, rolling baton, zombie, reaper | Download |
peers_for, meta-tracker |
Download |
| PlayerTarget, Continue Watching | Watch |
appTheme, .wsz skin |
Watch (local appearance) |
| discovery/signal graph (aggregates) | Net |
| broadcast, f2f_relay duties | Download |
| Identity (discord_id + fleets[]), Discord planes/bridge (notify surface) | Devices (duty + identity) + Download (governor runtime) |