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>
74 lines
2.9 KiB
YAML
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
|