tv-anarchy/project.yml
Natalie 92b38b1bae refactor(tv-anarchy): rename PlumTV→TVAnarchy and land session work
Renames Sources/PlumTV→TVAnarchy and PlumTVCore→TVAnarchyCore (the rename
the auto-commit service couldn't stage — it git-add'd the old, now-gone
paths and aborted every cycle), and commits the accumulated work:

- Library: black-built index fast path (LibraryIndex + scanFromIndex) with
  NFS-walk fallback; incremental --add on download-complete; mtime staleness
  gate; loose-file series-collapse fix; determinate scan/index progress.
- Cover art: keyless TVmaze cartoon-vs-live-action disambiguation (type/year).
- Player: sleep timer (timed + end-of-episode); visibility-gated polling.
- Home: Continue Watching cover art + live refresh; Recently Added; adult gate.
- Logs: multi-line selection + copy; truncated giant tx-list errors.
- Hover previews (opt-in) via black ffmpeg + scp.

Also gitignores foreign project trees (governor/mcp/fleet/recommender) that
sit in this directory but belong to their own repos.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 22:04:22 -07:00

74 lines
2.9 KiB
YAML

name: TVAnarchy
options:
bundleIdPrefix: local.lilith
createIntermediateGroups: true
deploymentTarget:
macOS: "14.0"
settings:
base:
SWIFT_VERSION: "5.0" # Swift 6.2 compiler, language mode 5 (relaxed concurrency)
MACOSX_DEPLOYMENT_TARGET: "14.0"
MARKETING_VERSION: "1.1.0" # human version — bump here on a feature milestone.
# The build number (CFBundleVersion) + git SHA + build
# time are stamped onto the built Info.plist by the app
# target's always-run "Stamp version" phase below.
CODE_SIGNING_ALLOWED: "NO" # local dev, unsigned
CODE_SIGNING_REQUIRED: "NO"
ENABLE_HARDENED_RUNTIME: "NO" # needs Process/ssh + localhost+overlay network, no sandbox
targets:
TVAnarchyCore:
type: framework
platform: macOS
sources: [Sources/TVAnarchyCore]
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: local.lilith.TVAnarchyCore
GENERATE_INFOPLIST_FILE: "YES"
TVAnarchy:
type: application
platform: macOS
sources: [Sources/TVAnarchy]
dependencies:
- target: TVAnarchyCore
info:
path: Sources/TVAnarchy/Info.plist
properties:
CFBundleDisplayName: TVAnarchy
# XcodeGen regenerates this Info.plist from these properties on every
# `xcodegen generate`, so the version MUST live here (a hand-edit to the
# plist gets clobbered). `$(MARKETING_VERSION)` resolves at build time.
CFBundleShortVersionString: "$(MARKETING_VERSION)"
LSMinimumSystemVersion: "14.0"
LSApplicationCategoryType: public.app-category.video
NSAppTransportSecurity:
NSAllowsLocalNetworking: true # talk to VLC on 127.0.0.1 over http
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: local.lilith.TVAnarchy
GENERATE_INFOPLIST_FILE: "NO"
# The human version (CFBundleShortVersionString) comes from MARKETING_VERSION
# via info.properties above — reliable. The dynamic git SHA / build time live
# in a generated Swift constant (Sources/TVAnarchyCore/BuildStamp.swift,
# gitignored) written by tools/stamp-build.sh, which build-install.sh runs
# BEFORE `xcodegen generate`. A compiled constant can't be lost the way a
# post-build Info.plist edit was (TARGET_BUILD_DIR there pointed at an
# intermediate, so the stamp never reached the copied app plist).
TVAnarchyCoreTests:
type: bundle.unit-test
platform: macOS
sources: [Tests/TVAnarchyCoreTests]
dependencies:
- target: TVAnarchyCore
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: local.lilith.TVAnarchyCoreTests
GENERATE_INFOPLIST_FILE: "YES"
schemes:
TVAnarchy:
build:
targets:
TVAnarchy: all
test:
targets:
- TVAnarchyCoreTests
gatherCoverageData: false