fix: restore imported libraries and directory-user flows #2

Merged
Wuast94 merged 16 commits from fix/ldap-crypto-provider into main 2026-10-17 22:53:43 +02:00
Owner

Imported libraries could not finish their native rebuild, directory login could panic before authentication, and the official Web stalled on catalog and name queries. This bundle repairs those observed failures while preserving imported identities, user state and the Jellyfin client contracts.

  • Initialize the actual Rustls crypto provider before LDAP connections. Preserve accepted transcode-directory ownership through caller cancellation and use modern query authentication for subtitle delivery and WebSockets.
  • Repair imported media enums, six missing native roots, persistent studio identities and exactly six original .NET date bounds. Allow anonymous image-byte delivery as Jellyfin does, retaining authenticated visibility and protected image information/mutations.
  • Page catalog predicates, summaries and filter facets without full source graphs. Index ratings once. Filter actual named metadata/UserData before shared repeatable-read relation/episode-inheritance batches, retaining current ACLs, role/parent scope, owned-person credits, counts and physical-artist identity.

Validation: full just gate passed with 612 Rust and 192 Node tests, none failed or ignored; all 48 Python import tests passed. The native host release build passed with unchanged production defaults, Fat-LTO and CGU1 (12 min 11 s during concurrent verification; this is not an isolated compiler comparison or an AMD64-image proof).

The full restored real PostgreSQL dataset preserves protected imported data and 90,204 assets/21,979,647,374 bytes by SHA. All 21,348 physical media DTOs pass actual HTTP GET validation in 743.215 s. The repeated API comparison preserves counts and observed result sets. Actual LLDAP plus unchanged deployed Web assets pass login, home, 100-film library, movie detail, real search, all 19 read-only native module pages, authenticated query-only WebSocket and logout. A separate fresh Web scenario covers v13 API-key creation/use/revocation and persistent module/SSE/OMDb/Webhook forms.

Observed search prerequisites now take 0.630/0.564 s for persons and 0.031/0.024 s for studios. An unfiltered 20-person page still spends approximately 27 s computing the complete 37,594-person scope; this remaining latency is documented. Evidence and exact scope: docs/migration/jellyfin-import.md.

The PR must complete AMD64 production build/runtime CI before merge. New-image cluster acceptance follows through GitOps: resume the real scan/keyframe rebuild, then verify API playback and Intel hardware on actual files. Existing v0.2.0 hardware probes do not substitute for that final new-image proof.

Imported libraries could not finish their native rebuild, directory login could panic before authentication, and the official Web stalled on catalog and name queries. This bundle repairs those observed failures while preserving imported identities, user state and the Jellyfin client contracts. - Initialize the actual Rustls crypto provider before LDAP connections. Preserve accepted transcode-directory ownership through caller cancellation and use modern query authentication for subtitle delivery and WebSockets. - Repair imported media enums, six missing native roots, persistent studio identities and exactly six original .NET date bounds. Allow anonymous image-byte delivery as Jellyfin does, retaining authenticated visibility and protected image information/mutations. - Page catalog predicates, summaries and filter facets without full source graphs. Index ratings once. Filter actual named metadata/UserData before shared repeatable-read relation/episode-inheritance batches, retaining current ACLs, role/parent scope, owned-person credits, counts and physical-artist identity. Validation: full `just gate` passed with 612 Rust and 192 Node tests, none failed or ignored; all 48 Python import tests passed. The native host release build passed with unchanged production defaults, Fat-LTO and CGU1 (12 min 11 s during concurrent verification; this is not an isolated compiler comparison or an AMD64-image proof). The full restored real PostgreSQL dataset preserves protected imported data and 90,204 assets/21,979,647,374 bytes by SHA. All 21,348 physical media DTOs pass actual HTTP GET validation in 743.215 s. The repeated API comparison preserves counts and observed result sets. Actual LLDAP plus unchanged deployed Web assets pass login, home, 100-film library, movie detail, real search, all 19 read-only native module pages, authenticated query-only WebSocket and logout. A separate fresh Web scenario covers v13 API-key creation/use/revocation and persistent module/SSE/OMDb/Webhook forms. Observed search prerequisites now take 0.630/0.564 s for persons and 0.031/0.024 s for studios. An unfiltered 20-person page still spends approximately 27 s computing the complete 37,594-person scope; this remaining latency is documented. Evidence and exact scope: `docs/migration/jellyfin-import.md`. The PR must complete AMD64 production build/runtime CI before merge. New-image cluster acceptance follows through GitOps: resume the real scan/keyframe rebuild, then verify API playback and Intel hardware on actual files. Existing v0.2.0 hardware probes do not substitute for that final new-image proof.
fix(tests): make process spawn failure deterministic under emulation
Some checks failed
CI / Quality (pull_request) Successful in 52m17s
CI / Build production (pull_request) Failing after 48m50s
d2eaecbc17
Use an interior-NUL executable to exercise synchronous spawn rejection. AMD64 emulation can report successful posix_spawn for a missing executable and subsequently exit 127. Keep cancellation independent and verify no child or pipe ownership remains.
fix(ci): install pinned Rust toolchain for image acceptance
Some checks failed
CI / Quality (pull_request) Successful in 52m14s
CI / Build production (pull_request) Failing after 42s
44526a3a63
fix(ci): transfer image acceptance fixtures through Docker volumes
Some checks failed
CI / Quality (pull_request) Successful in 55m18s
CI / Build production (pull_request) Failing after 16m48s
637c0f5f67
Keep Wolfi fonts and package configuration, but select a small dedicated configuration for the Fontconfig parser embedded in portable FFmpeg. Real multilingual subtitle encoding and decoded frame checks pass without parser warnings.
fix(ci): share image acceptance network namespace with its caller
All checks were successful
CI / Quality (pull_request) Successful in 54m5s
CI / Build production (pull_request) Successful in 36m59s
d727c2cdd1
Run the isolated PostgreSQL fixture and production server in the job container network namespace, or the native Linux host namespace, with dynamic matching ports. Select AMD64 explicitly and prioritize pinned Node in CI and release. Install the pinned active Rust toolchain explicitly and report image acceptance stages.

Verified: 52 dispatch tests, 15 SBOM publication tests, workflow/shell/JavaScript syntax, and complete real-image acceptance in a fresh OrbStack Docker job (exit 0, startup 580.34s). No full gate rerun.
Wuast94 deleted branch fix/ldap-crypto-provider 2026-10-17 22:53:47 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Wuast94/rustfin!2
No description provided.