mirror of
https://github.com/euzu/tuliprox.git
synced 2026-10-20 23:02:34 +02:00
feat(dvr)!: unify live and VOD/series recording into one recoverable DVR Merge fix/merge_live_and_vod_recording into develop. - One recording queue for scheduled live captures and VOD/series transfers, with a shared transition graph, provider-slot scheduling, resumable HTTP transfers (strong ETag / Last-Modified validation) and ffmpeg live capture. - Crash-recoverable persistence: B+Tree repository with a journal-first recovery history; one file can be shared by several library entries. - Admission checks quota and disk on request, at transfer start (real size) and before an entry attaches to a finished file; idempotent requests. - REST is command-only; state reaches clients via owner-filtered WebSocket snapshots. - Deleting a recording removes the file once no entry holds it; removing an entry keeps a finished file and cleans up orphaned partials. - User ids derive from the configured username (web:/api:); the identity registry is gone. - Spanish locale added; ru/ar completed; locale parity test. BREAKING CHANGE: `video.download` is now `video.recording` (nested `recording` keys move up, `download_priority`/`recording_priority` become `priority`); old configs fail to load with a migration hint. BREAKING CHANGE: `/api/v1/file/download*` and `/file/record` are removed in favour of `/api/v1/recording/*`. BREAKING CHANGE: `download.*` and `recording.write` permissions are replaced by `recording.read|create|manage|delete`; tokens from before the change must re-authenticate. BREAKING CHANGE: the old recording queue does not migrate; existing `identity_registry.json` is ignored.
84 lines
1.3 KiB
Plaintext
84 lines
1.3 KiB
Plaintext
.tools
|
|
.worktrees
|
|
dist
|
|
/resources/*.ts
|
|
/release
|
|
/target
|
|
/frontend/build
|
|
# Default ignored files
|
|
/shelf/
|
|
/workspace.xml
|
|
# Editor-based HTTP Client requests
|
|
/httpRequests/
|
|
# Datasource local storage ignored files
|
|
/dataSources/
|
|
/dataSources.local.xml
|
|
/dev/
|
|
/debug/
|
|
/testkit-report
|
|
|
|
# ignore everything inside docs
|
|
docs/**/*
|
|
|
|
# allow src inside docs
|
|
!docs/src/
|
|
|
|
# allow everything inside src
|
|
!docs/src/**/*
|
|
|
|
docker/binaries
|
|
.DS_Store
|
|
|
|
*.m3u
|
|
|
|
.idea/
|
|
*.idea
|
|
*.iml
|
|
|
|
node_modules
|
|
yarn.lock
|
|
*.log
|
|
|
|
docker/web
|
|
docker/tuliprox
|
|
docker/resources
|
|
artifacts
|
|
|
|
# Ignore VSCode settings and files
|
|
/.vscode
|
|
|
|
.envrc
|
|
backend/app/Cargo.lock
|
|
|
|
# Ignore markdown files
|
|
*.md
|
|
!docs/src/**/*.md
|
|
!README.md
|
|
!CHANGELOG.md
|
|
!CONTRIBUTING.md
|
|
|
|
# Ignore ai documentation files
|
|
# no ai files
|
|
|
|
# Local AI tooling configuration. Machine-specific (it names binaries that
|
|
# only exist on a developer's own machine), so it is not project source.
|
|
/.claude/
|
|
/.mcp.json
|
|
|
|
# Local refactoring measurements (clippy inventories, cargo metadata, timings).
|
|
# These are engineering artifacts of the modularization work, not project docs.
|
|
/baselines/
|
|
|
|
# Scratch directory some backend tests create relative to the crate root.
|
|
# Test output must never become tracked source.
|
|
/backend/app/tmp/
|
|
|
|
# Local secret environment files
|
|
.env
|
|
.env.*
|
|
!.env.example
|
|
|
|
# Testkit report artifacts
|
|
/testkit-report/
|
|
|