Commit Graph
43 Commits
Author SHA1 Message Date
dtourolleandClaude Opus 5 c04d5a3dcc JR-004, JR-005, JR-006: scene-scoped read path
Presence was decided by a LINQ predicate inline in the controller, so the
semantics SR-002 sets were nowhere stated in code -- the read path complied by
accident rather than by requirement. PresenceLookup is now the unit that
decides, tagged, with the reasoning next to it.

JR-004: windows are served exactly as given. UT-021 pins that [0,10] and
[10,20] are not merged despite looking mergeable -- two windows mean a genuine
departure and return, and collapsing them answers a different question from the
one the truth file asked. UT-022 pins a byte-identical round trip.

JR-005: bounds inclusive at both ends, zero-length windows are real sightings
rather than degenerate ones to discard, overlaps resolve.

The wording was the larger half of JR-005. The overlay rendered a bare list: it
asserted nothing, but told the viewer nothing either, and the default reading of
a paused frame is "these people are on screen" -- exactly what SR-002 forbids.
It now carries an "In this scene" heading. ActorAtTime became ActorInScene, and
README no longer contains "on screen" anywhere; it stated the forbidden reading
outright in seven places, including the opening sentence.

JR-006: measured rather than assumed. UT-023 builds 50 actors x 1000 windows and
asserts the response is bounded by actor count, never window count. The lookup
is a full scan on purpose -- an early exit on `start > t` would exploit the
sortedness the format requires, but would silently under-report the moment one
producer emitted windows out of order. UT-020 pins that unsorted input still
resolves; WindowsAreSorted is a diagnostic, not a correctness dependency.

Third mutation check: making the end bound exclusive fails UT-016 and UT-018 and
nothing else. One character turns an inclusive window into a half-open one,
dropping an actor at exactly the moment a scene ends.

TRACES: UT-016, UT-017, UT-018, UT-019, UT-020, UT-021, UT-022, UT-023
TRACES: JR-004, JR-005, JR-006 | SR-002

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 11:29:46 +02:00
dtourolleandClaude Opus 5 d9a38bb7fb JR-021, JR-022, JR-023: File Transformation is a hard dependency
🏗️ Build Plugin / build (push) Successful in 59s
Latest Release / latest-release (push) Successful in 30s
🧪 Test Plugin / test (push) Successful in 22s
Deletes the on-disk index.html injection rather than leaving it switched off.
Plugin.cs had already stopped calling it, but an unreachable write path with a
live signature is the one a later refactor re-enables by accident, and it was
still the behaviour the README and the release changelog advertised.

Patching index.html on disk is destructive in ways a plugin cannot clean up
after: the patch outlives an uninstall, a web-client upgrade discards it
silently, and it races any other plugin touching the same file. It is also a
second code path, and the one nobody runs is the one that rots.

WebClientPatchService is now removal-only. The strip is factored out as
RemoveInjection so it is testable without a filesystem. Removal is the one
write JR-021 permits -- an earlier JRay did patch the file, and those users
must not be left with a stale injection pointing at endpoints that have since
changed. It keys on JRay's own marker, so it touches nothing another plugin
added.

JR-021 is a requirement to *not do* something, which no unit test can
demonstrate, so scripts/checks/no-index-injection.sh verifies it by absence.
The check was confirmed to fail on a reintroduced Apply() and on reintroduced
ReplaceLast injection -- a check that has only ever passed is not evidence.

Jellyfin has no plugin dependency mechanism, so nothing installs File
Transformation for the user and a log warning alone is one nobody reads.
GET /Plugins/JRay/Status/Dependencies reports whether the dependency is
satisfied, and the configuration page renders it with the repository URL and
what to do with it. Absent the plugin only the overlay is disabled; every
other feature works.

JR-022 and JR-023 stay In Progress rather than Done: neither has a test that
executes, and this repo has no test project yet.

TRACES: JR-021, JR-022, JR-023 | PR-004

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-30 18:58:12 +02:00
dtourolle f6762fcf29 feat: prioritise and blacklist media and overview in setting page of progress in adding info
🏗️ Build Plugin / build (push) Successful in 1m16s
Latest Release / latest-release (push) Successful in 27s
🧪 Test Plugin / test (push) Successful in 20s
🚀 Release Plugin / build-and-release (push) Successful in 24s
2026-07-04 21:08:59 +02:00
dtourolle f11e5508ad update readme and spec for current release 2026-06-28 12:16:07 +02:00
dtourolle f1cffa7dfa Added work remaining url for remote extraction client 2026-06-12 19:03:31 +02:00
T-GanderandGitHub 7a9dbdafcc Update README for .NET SDK version and setup instructions (#85) 2025-11-23 11:26:03 -07:00
Shadowghost 3afa1fc407 Upgrade template to 10.9.x and .NET 8 2024-10-05 17:06:23 +02:00
Anthony LavadoandGitHub 2c1143b49f Merge pull request #65 from mrnoname1000/master 2024-10-05 11:01:52 -04:00
ErikandGitHub 2ddd08221d Updated to specify that you need to place the plugin DLL into a subfolder (#71) 2024-05-19 08:08:00 -06:00
mrnoname1000andGitHub 7fe332f29c README.md: Fix sh UUID generator
And make call to head POSIX-compliant
2023-10-19 23:35:44 +00:00
Johannes KauffmannandGitHub 0cb471baa2 Fix typo in interface name (#61) 2023-06-30 18:23:54 -06:00
Tuur VanhoutteandGitHub 6495c17c7f (chore: README.md) change codeblock language to jsonc
The markdown codeblocks in the README were using `json`, which has no support for comments, making them highlighted in red. `jsonc` does have support, correctly rendering the codeblocks.
2023-04-30 23:47:45 +02:00
Matthew Strasiotto 5e63c884e8 Update README to reflect new .vscode structure 2022-04-23 20:19:25 +10:00
Patrick Farwick 28a25a426c Add an example tasks.json file 2022-01-23 11:51:22 +01:00
Patrick Farwick d943670461 Automate the setup on visual studio code
This commit describes how to setup an automation for Visual Studio Code.
The automation aims to build the plugin and then start the server and
optionally the web-client. This way, only one IDE project has to be
opened which starts all necessary dependencies.
2022-01-22 23:00:50 +01:00
ldellisola f7a179e9eb Added information about debugging plugins using Visual Studio 2022-01-22 14:12:32 +01:00
Konrad RejandGitHub 503f7e4696 Update dotnet version
Change references to dotnet 5.0 to dotnet 6.0 as the plugin template has been updated to dotnet 6.0.
2022-01-12 00:04:39 +01:00
Cody RobiberoandGitHub c6e0e3414a Merge pull request #34 from jellyfin/BaronGreenback-patch-1 2021-11-17 17:46:46 -07:00
Patrick Farwick aec58cd20d Clarify the directory to copy the plugin to 2021-10-06 23:32:06 +02:00
Patrick Farwick 7c634d9ccc Describe how to debug the plugin
Close #15
2021-10-06 23:24:58 +02:00
BaronGreenbackandGitHub b44c58f11b Update README.md
Add caveat on IServerEntryPoint
2021-05-29 11:55:59 +01:00
David e65a260699 Remove more outdated interfaces 2021-01-24 17:35:49 +01:00
David f21f3f16f8 Remove no longer available interfaces from README 2021-01-24 17:21:24 +01:00
dkanadaandGitHub cc20076fbd fix trailing space 2021-01-10 20:30:04 +09:00
dkanadaandGitHub ee82d22666 readme changes 2021-01-10 20:23:01 +09:00
crobibero a2444f776c Update README.md 2020-12-09 16:29:14 -07:00
crobibero 50468fd108 Update dotnet sdk version and remove IIsoManager 2020-12-03 07:52:32 -07:00
artiumeandGitHub 8ae0207131 add additional UUID gen methods 2020-07-17 14:49:55 -04:00
Joshua M. Boniface edff9891d8 Add licensing blurb to README 2020-06-16 12:31:21 -04:00
dkanada 888677b117 update metadata and remove deprecated checkbox method 2020-05-26 22:11:35 +09:00
Niels van Velzen 126a0eb6b6 Update to .NET 2.1 and Jellyfin 10.5 2020-03-09 21:17:32 +01:00
dkanadaandGitHub e70a1f09df Merge branch 'master' into dkanada-patch-1 2020-01-21 14:53:23 +09:00
dkanada 644088bad2 make some readme changes 2020-01-21 13:03:21 +09:00
dkanadaandGitHub 6afbcbb0eb update some documentation links 2020-01-21 12:40:24 +09:00
Anthony LavadoandGitHub 3a9152eb8b Change link to contribution guide
Changes the link to the docs to be the contribution guide, as that will be the best starting point.
2019-09-30 18:08:23 -04:00
Anthony LavadoandGitHub 36d6c99a74 Update links
Removes reference to other GitHub repo for the template, and uses the one in this repo.
Updates documentation link to new location.
2019-09-30 18:05:39 -04:00
Arun MahapatraandGitHub e3fe274d51 Fix links to example project in readme 2019-08-17 15:52:46 +05:30
LogicalPhallacyandGitHub a14d1d988d remove missing weather interface
the interfaces in general need a little more attention and love.
2019-03-25 23:58:27 -07:00
LogicalPhallacyandGitHub dbe5b1f311 Added plugin license info, fixed urls 2019-03-07 23:53:59 -08:00
Phallacy 0f54a9b89d Updated readme with dotnet template 2019-03-03 01:51:09 -08:00
Phallacy 5af09f0fd5 Updated readme with example plugin link, minor gitignore update 2019-02-21 01:59:47 -08:00
Phallacy e2f35ac6cc initial readme, gitignore 2019-02-21 00:36:01 -08:00
LogicalPhallacyandGitHub b4d5cd8bb1 Initial commit 2019-02-20 21:59:28 -08:00