@torrent-tv/proxy 2.89.6 → 2.89.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +32 -12
- package/CHANGELOG.md +2340 -2330
- package/assets/calibration/audio/NOTICE.md +19 -19
- package/assets/calibration/audio/manifest.json +98 -98
- package/biome.json +412 -412
- package/docs/browser-proxy-contract.md +155 -155
- package/docs/container-architecture.md +273 -273
- package/docs/encode-run-state.md +1 -1
- package/docs/playback-start-forecast.md +113 -98
- package/package.json +51 -50
- package/routes/api/sources/files/get.js +106 -106
- package/scripts/build-audio-samples.mjs +31 -31
- package/services/encode/EncodeRun.js +67 -15
- package/services/encode/EncodeRuns.js +19 -7
- package/services/encode/OutputOpening.js +784 -784
- package/services/encode/audio-calibration.js +67 -67
- package/services/encode/audio-work-rate.js +15 -15
- package/services/encode/encode-exit.js +2 -0
- package/services/encode/hwaccel.js +1894 -1894
- package/services/encode/output/index.js +24 -24
- package/services/encode/piece-completeness.js +60 -2
- package/services/encode/run-command.js +757 -755
- package/services/encode/segment-formats/index.js +1 -0
- package/services/encode/segment-formats/mp4-boxes.js +8 -1
- package/services/media/ContainerOrchestrator.js +202 -202
- package/services/media/KeyframeTables.js +356 -356
- package/services/media/SubtitleCues.js +592 -592
- package/services/media/audio-inventory.js +299 -299
- package/services/media/container/AviContainer.js +268 -268
- package/services/media/container/Container.js +632 -632
- package/services/media/container/ContainerFactory.js +38 -38
- package/services/media/container/MatroskaContainer.js +1031 -1031
- package/services/media/container/Mp4Container.js +1354 -1354
- package/services/media/container/SubtitleFileContainer.js +339 -339
- package/services/media/container/ebml-stream.js +174 -174
- package/services/media/container/matroska-clusters.js +1165 -1165
- package/services/media/container/unavailable.js +77 -77
- package/services/media/tracks/ContainerTrack.js +84 -84
- package/services/media/tracks/TextSubtitleTrack.js +295 -295
- package/services/storage/piece-store/shared-piece-store.js +1937 -1937
- package/services/storage/segment-store/SegmentStore.js +1294 -1294
- package/services/torrent/Contents.js +382 -382
- package/services/torrent/episode-naming.js +182 -182
- package/services/torrent/torrent-pool.js +2688 -2688
- package/services/torrent/worker/client.js +836 -836
- package/services/torrent/worker/held-bytes.js +231 -231
- package/services/torrent/worker/worker.js +1137 -1137
- package/services/transport/data-channel-handler.js +1373 -1373
- package/services/viewer/PriorityMap.js +421 -421
- package/test/audio-calibration.test.js +23 -23
- package/test/auto-quality-step.test.js +762 -762
- package/test/coalesce.test.js +39 -39
- package/test/coverage-follows-the-disk.test.js +5 -0
- package/test/decode-cost.test.js +475 -475
- package/test/encode-run.test.js +58 -0
- package/test/episode-naming.test.js +131 -131
- package/test/failed-encoder-still-serves-what-exists.test.js +1 -1
- package/test/fixtures/audio-frame-boundary.json +1 -1
- package/test/fixtures/refused-audio-20261002.json +10 -0
- package/test/fmp4-presentation-clock.test.js +4 -2
- package/test/format-keyed-outputs.test.js +78 -78
- package/test/health-metrics.test.js +11 -13
- package/test/held-read-ownership.test.js +77 -77
- package/test/helpers/encode-run.js +14 -6
- package/test/helpers/held-file.js +77 -77
- package/test/helpers/manager.js +62 -62
- package/test/helpers/matroska-file.js +296 -296
- package/test/keyframe-table-budget.test.js +123 -123
- package/test/matroska-cluster-discovery.test.js +323 -323
- package/test/one-output-one-session.test.js +273 -273
- package/test/output-speed.test.js +6 -1
- package/test/piece-completeness.test.js +37 -1
- package/test/quality-variants.test.js +1274 -1270
- package/test/rate-control-in-the-output.test.js +4 -3
- package/test/reads-not-yet-arrived.test.js +218 -218
- package/test/seek-frees-the-viewers-requests.test.js +1 -1
- package/test/segment-closed-on-both-branches.test.js +114 -114
- package/test/segment-judged-by-its-own-header.test.js +222 -222
- package/test/segment-serve-wiring.test.js +481 -481
- package/test/serving-existing-output.test.js +111 -111
- package/test/source-files-route.test.js +113 -113
- package/test/subtitle-cue-walk.test.js +385 -385
- package/test/subtitle-metadata.test.js +15 -15
- package/test/subtitle-plan-waits.test.js +125 -125
- package/test/subtitle-track-numbering.test.js +391 -391
- package/test/two-viewers-one-picture.test.js +508 -508
- package/test/viewer-requests-admission.test.js +92 -92
- package/test/viewer-starts-on-map.test.js +27 -27
- package/test/viewer-states.test.js +5 -2
- package/test/viewing-generations.test.js +390 -390
- package/test/whole-file-held-read.test.js +30 -30
- package/utils/coalesce.js +41 -41
package/AGENTS.md
CHANGED
|
@@ -318,21 +318,41 @@ rented infra (flat-rate/unmetered bandwidth — Hetzner dedicated / OVH; NOT
|
|
|
318
318
|
metered-egress clouds). Provider/economics analysis in the parent
|
|
319
319
|
`../CLAUDE.md` "Cloud proxy" section.
|
|
320
320
|
|
|
321
|
-
##
|
|
321
|
+
## Commits
|
|
322
|
+
|
|
323
|
+
Every commit header follows Conventional Commits (`<type>(<scope>)!: <subject>`,
|
|
324
|
+
types `feat fix perf refactor docs test build ci chore style revert`); CI refuses
|
|
325
|
+
a pushed commit that does not. Enable the local check once per clone:
|
|
326
|
+
`git config core.hooksPath .githooks`. Rules: `torrent-tv/.github` CONTRIBUTING.md.
|
|
322
327
|
|
|
323
|
-
|
|
324
|
-
a new `## <version>` heading at the top, following the existing
|
|
325
|
-
`- **New**/**Fix**/**Chore**:` format.
|
|
328
|
+
## Changelog
|
|
326
329
|
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
330
|
+
Every behavioural change must be recorded in `CHANGELOG.md` — add a bullet
|
|
331
|
+
under `## Unreleased` at the top (create the heading if it is missing),
|
|
332
|
+
following the existing `- **New**/**Fix**/**Chore**:` format. Never write a
|
|
333
|
+
version heading and never edit the `package.json` version: the release job
|
|
334
|
+
does both. CI refuses a releasable push without an `## Unreleased` entry.
|
|
332
335
|
|
|
333
336
|
## Release
|
|
334
337
|
|
|
335
|
-
|
|
336
|
-
|
|
338
|
+
GitHub Actions releases; nothing is published from a workstation. A push to
|
|
339
|
+
`main` runs `.github/workflows/main.yml`: lint, the tests, and
|
|
340
|
+
`scripts/check-tests-start-no-torrent.mjs` (no check may start a real
|
|
341
|
+
torrent). Then, when the commits since the last `v*` tag ask for it (`feat`
|
|
342
|
+
→ minor; `fix`/`perf`/`revert` → patch; anything else → none), the release
|
|
343
|
+
job in the `production` environment:
|
|
344
|
+
|
|
345
|
+
1. writes the version into `package.json`/`package-lock.json` and renames
|
|
346
|
+
`## Unreleased` to it, commits `chore(release): <version>` and tags it;
|
|
347
|
+
2. publishes `@torrent-tv/proxy` to npm with provenance;
|
|
348
|
+
3. pushes the tag and the commit and creates the GitHub release;
|
|
349
|
+
4. pushes `fix(proxy)`/`feat(proxy): install proxy <version>` to
|
|
350
|
+
`torrent-tv/ha-addon` (`PROXY_VERSION` and the add-on changelog), whose own
|
|
351
|
+
workflow builds the add-on image and releases the add-on.
|
|
352
|
+
|
|
353
|
+
So the order proxy → add-on is kept by construction. A release can also be
|
|
354
|
+
started by hand from the Actions tab with an explicit `patch` or `minor` step.
|
|
355
|
+
Updating the add-on on the Home Assistant host is still done there.
|
|
337
356
|
|
|
338
|
-
|
|
357
|
+
`.github/workflows/dependencies.yml` updates dependencies daily within the
|
|
358
|
+
ranges, runs the same checks and pushes to `main`.
|