Nishi Family › Compare › Media Serving, Management and Delivery
Nishi Compare · measured, not asserted
Media Serving, Management and Delivery
Nishi vs the field — every Nishi cell is measured against real organ source at emit time; each gap names the watch contract that will close it.
Nishi /gallery + /library vs Jellyfin and Plex and Immich and Kavita
Overview
The purpose, declared position and evidence coverage of this domain. Source presence and completed acceptance are different measures.
Where we are. Measured 2026-08-19 against the matrix, not recalled. Ingest, thumbnails, keyframe index, fly-remux and the reader library are present and live; the page-level gaps are the ones users SEE: a harsh white surface, clunky mobile UX, broken comic rendering, no scrub previews or chapters, no HEVC. The reading-surface theme engine (nx_media_theme: five modes, WCAG-scored palettes, typography tokens) is BUILT and UNWIRED -- no serving organ imports it -- so seven theme rows sit absent one wiring rung away. Two rows (flicker-free, reflective paper feel) are physical display properties the web cannot set and are served by the e-ink reading-surface lane, not by a rung here.
Where we need to go. Meet Jellyfin, Plex and Kavita on the delivery UX they are judged by (theme, mobile, comics, trickplay, chapters, HEVC, ABR) with every claim measured by the live judge and page_verify, then exceed on the axes no media server holds: on-demand super-resolution, LLM-native book packing, and a sovereign semantic index over the library.
Latest recorded release
No valid dated release entry is recorded for this domain.
Release entries describe recorded changes; they do not establish that every capability passed evaluation.
15 of 35 capabilities measured|4 of them measured exceeds|20 open|coverage 428/1000|adoption 3 full / 12 partial
Evidence profile — what the gaps on this board actually are
Measured by nx_swcompare_evidence, read back by nx_evprofile_lib. Every figure is a count with its denominator — there is deliberately no score, no grade and no percentage anywhere in this band, because a stored scalar is a field a seat can edit and a counted partition is not.
evidence|grounded 15/15|unsupported 0|gates green 1/1|proven able to fail 1/1|never bitten 0|green at 0/0 0|open gaps 20|of them unnamed 2|of them proof withheld 0|flips ready 0
proven able to fail counts the gates that have a RECORDED RED — nx_gate_bite mutated the gate subject, rebuilt it, watched the gate go red, and that record is inside the shared TTL. never bitten is its complement over the same denominator: those gates ran and were green, and nothing has ever shown them able to detect anything, so their green is a statement about this run and not about the gate. green at 0/0 is a separate and much weaker observation — the gate printed GREEN on a zero denominator, so its own tooth counter says it examined nothing. A gate can be green, non-zero, and still never bitten; that is the common case and it is now visible instead of implied.
partition: grounded + unsupported = 15 vs present 15 · named + unnamed + withheld = 20 vs open 20 · both reconcile
liar-kill conj=GPQN · all four conjuncts held
graded document: BUILDROOT tree, 8894 bytes · gates map: PRIMARY · stamped 0d 6h ago · source ../knowledge/status/evstamp_media.verdict
| Gap class | What it is, and the work it names |
|---|---|
| UNNAMED-GAP | A gap row carries a bare _ABSENT_ with no symbol after it, so it names no build contract and no seat can pick it up. Give it an _ABSENT_:<symbol> and it becomes work somebody can do. |
nx_swcompare_evidence media itself and are not carried on the stamp, so this page names the classes and the producer names the rows. That split is stated rather than hidden: a count without a worklist is not actionable, and this band is honest about which half of that it is.Production map
Follow the dependencies, declared acceptance criteria and recorded priorities. Inspect source binding before treating a rank as executable work.
Ranking source binding: PLAN_MATRIX_BOUND_ONLY. Recorded priorities require current acceptance evidence and resource checks before execution.
Ranking matches the captured plan and matrix only. Latest execution outcome, research freshness, accepted delivery and investment return are unverified.
Recorded priority estimates
Order from nx_compare_rank (nx_dr_ocm: (deficit + cost-of-delay + option + enables) x sponsor x self-sufficiency x momentum / cost). FINISH rows are rungs whose symbol is present but whose organ is short of full adoption: listed before new work by this heuristic. Priority is not measured delivery cost or execution readiness. Stamp: # asof=1789541447 domain=media target_version=0.1 rungs=12 done=0 open=12 finish=0 ranker=nx_dr_ocm
| # | Stage | Rung | Priority | Derivation |
|---|---|---|---|---|
| #1 | 0.1 | Wire the theme engine into /gallery and /library (R0) ms_theme_css | 15000 | v=15 m=1 c=1 |
| #2 | 0.1 | Live UX judge over the media surfaces (R3) uj_live_media | 3400 | v=17 m=1 c=5 |
| #3 | 0.1 | Responsive mobile-first shell (R4) ux_shell | 1200 | v=12 m=1 c=10 |
| #4 | 0.1 | Accessibility pass (R5) ma_audit | 400 | v=4 m=1 c=10 |
| #5 | later | Resume and watch-state per user (R2) ms_watch_state | 3000 | v=9 m=1 c=3 |
| #6 | later | Ambient-light adaptation (R11) mt_ambient_sensor | 800 | v=4 m=1 c=5 |
| #7 | later | Trickplay scrub-preview sprites (R6) gt_sprite_sheet | 400 | v=6 m=1 c=15 |
| #8 | later | Chapters and track selection (R7) mc_chapters | 400 | v=6 m=1 c=15 |
| #9 | later | Comics and manga served correctly (R1) ms_cbx_serve | 333 | v=1 m=1 c=3 |
| #10 | later | Adaptive-bitrate HLS ladder (R9) abr_ladder | 300 | v=6 m=1 c=20 |
| #11 | later | HEVC and broad-codec playback (R8) ht_transcode | 266 | v=8 m=1 c=30 |
| #12 | later | Face, object and semantic media search (R10) msm_search | 66 | v=2 m=1 c=30 |
Declared roadmap — contract, acceptance, executor, effort
| Rung | Closes with | Definition of done (pre-declared) | Executor | Est. |
|---|---|---|---|---|
| Wire the theme engine into /gallery and /library (R0) | ms_theme_css | The served reader and gallery pages carry the stylesheet emitted by nx_media_theme (light, sepia, dark, night, sun modes with data-theme override); every mode passes the MT_FLOOR_READ contrast floor through nx_uiq_contrast; nx_page_verify GREEN on /library and /gallery. Closes the seven theme rows that share this symbol; the engine already exists and is BUILT+UNWIRED (zero importers measured 2026-08-19) | Organ | 0.5 u |
| Live UX judge over the media surfaces (R3) after R0 | uj_live_media | nx_ui_judge pmil runs on the SERVED /gallery and /library pages on a beat and a planted regression (white flash, contrast drop, missing viewport meta) turns it RED; the number is published beside the matrix so symbol-presence can no longer over-credit the surface | Organ | 0.5 u |
| Responsive mobile-first shell (R4) after R3 | ux_shell | One-handed reading and browsing on small screens: touch targets, no horizontal scroll, viewport meta; graded by the live judge (R3), never by the eyeball | Organ | 1 u |
| Accessibility pass (R5) after R0 | ma_audit | nx_uiq_atree and nx_uiq_contrast run over every served media page; contrast, keyboard order and ARIA landmarks reported as numbers; page_verify a11y reads 0 on the whole surface, not on a sample | Organ | 1 u |
| Comics and manga served correctly (R1) | ms_cbx_serve | /library serves nx_cbx_pages output as ordered page images (CBZ and RAR4 and RAR5 fixtures end to end) with pinch-zoom; page_verify GREEN; the operator buy-off that kept this row absent is recorded as a row, not remembered | Organ | 1 u |
| Resume and watch-state per user (R2) | ms_watch_state | Reader position and video position unified in one per-user additive record; resumes across devices; history never destroyed | Organ | 1 u |
| Trickplay scrub-preview sprites (R6) | gt_sprite_sheet | A sprite sheet plus index is derived per video on ingest (the existing galx pipeline pass); scrub hover shows frames; an on-disk byte probe proves the sheet exists for every indexed video | Organ | 1.5 u |
| Chapters and track selection (R7) | mc_chapters | Container chapters parsed from MP4 and MKV and exposed on the seekbar with an audio and subtitle track menu; a fixture with three chapters and two tracks round-trips | Organ | 1.5 u |
| HEVC and broad-codec playback (R8) | ht_transcode | A sovereign HEVC decode into the existing nx_vcodec encode path so a HEVC sample plays in the browser; bit-exact decode against a banked reference frame set; the won't-play gap closes | Organ | 3 u |
| Adaptive-bitrate HLS ladder (R9) after R8 | abr_ladder | Multi-rendition HLS playlist served per asset; the client switches renditions on measured bandwidth and the switch is logged; composes the RTC per-device tiers already shipped in the video lane | Organ | 2 u |
| Face, object and semantic media search (R10) | msm_search | A sovereign embedding index over the image library (the existing ViTPose port wired to serving plus a CLIP-class encoder); recall at 10 against BM25 on a labeled set is PRE-DECLARED to exceed or the lane stays unwired | Local model | 3 u |
| Ambient-light adaptation (R11) after R0 | mt_ambient_sensor | Mode follows an AmbientLightSensor reading with the OS prefers-color-scheme signal as fallback; measured on a device, never claimed from a knob | Organ | 0.5 u |
Milestones
| Milestone | Rungs | Cumulative |
|---|---|---|
| M0 · Easy on the eyes | R0,R3,R4,R5 | 3 u |
| M1 · Reader correctness and continuity | R1,R2 | 5 u |
| M2 · Player parity | R6,R7 | 8 u |
| M3 · Codec reach | R8,R9 | 13 u |
| M4 · Beyond the incumbents | R10,R11 | 16.5 u |
Inspect a rung and its prerequisites
Declared nodes 12. Rank input binding: PLAN_MATRIX_BOUND_ONLY. Dependency order is authored. Implementation, acceptance evidence, authority and resource readiness are unverified. No action is recommended or dispatched here.
Plan SHA-256 0edbfe1a164acf3efab28b304989e082b5f8cfc0090a07ccfc81f27c71f8c6cf. Target rows 0; role rows 0. Existing risks and release worklog retain their own scope; no node completion is inferred.
Use Enter or Space on a rung to inspect its contract. Prerequisite links locate another rung in this list; open its summary to inspect it. Estimates are authored effort, not forecasts.
R0 — Wire the theme engine into /gallery and /library
Prerequisites: None declared; this does not establish execution eligibility.
Contract:
ms_theme_cssAcceptance: The served reader and gallery pages carry the stylesheet emitted by nx_media_theme (light, sepia, dark, night, sun modes with data-theme override); every mode passes the MT_FLOOR_READ contrast floor through nx_uiq_contrast; nx_page_verify GREEN on /library and /gallery. Closes the seven theme rows that share this symbol; the engine already exists and is BUILT+UNWIRED (zero importers measured 2026-08-19)
Authored effort: 0.5. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.
R3 — Live UX judge over the media surfaces
Prerequisites: R0 (acceptance unverified)
Contract:
uj_live_mediaAcceptance: nx_ui_judge pmil runs on the SERVED /gallery and /library pages on a beat and a planted regression (white flash, contrast drop, missing viewport meta) turns it RED; the number is published beside the matrix so symbol-presence can no longer over-credit the surface
Authored effort: 0.5. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.
R4 — Responsive mobile-first shell
Prerequisites: R3 (acceptance unverified)
Contract:
ux_shellAcceptance: One-handed reading and browsing on small screens: touch targets, no horizontal scroll, viewport meta; graded by the live judge (R3), never by the eyeball
Authored effort: 1. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.
R5 — Accessibility pass
Prerequisites: R0 (acceptance unverified)
Contract:
ma_auditAcceptance: nx_uiq_atree and nx_uiq_contrast run over every served media page; contrast, keyboard order and ARIA landmarks reported as numbers; page_verify a11y reads 0 on the whole surface, not on a sample
Authored effort: 1. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.
R1 — Comics and manga served correctly
Prerequisites: None declared; this does not establish execution eligibility.
Contract:
ms_cbx_serveAcceptance: /library serves nx_cbx_pages output as ordered page images (CBZ and RAR4 and RAR5 fixtures end to end) with pinch-zoom; page_verify GREEN; the operator buy-off that kept this row absent is recorded as a row, not remembered
Authored effort: 1. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.
R2 — Resume and watch-state per user
Prerequisites: None declared; this does not establish execution eligibility.
Contract:
ms_watch_stateAcceptance: Reader position and video position unified in one per-user additive record; resumes across devices; history never destroyed
Authored effort: 1. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.
R6 — Trickplay scrub-preview sprites
Prerequisites: None declared; this does not establish execution eligibility.
Contract:
gt_sprite_sheetAcceptance: A sprite sheet plus index is derived per video on ingest (the existing galx pipeline pass); scrub hover shows frames; an on-disk byte probe proves the sheet exists for every indexed video
Authored effort: 1.5. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.
R7 — Chapters and track selection
Prerequisites: None declared; this does not establish execution eligibility.
Contract:
mc_chaptersAcceptance: Container chapters parsed from MP4 and MKV and exposed on the seekbar with an audio and subtitle track menu; a fixture with three chapters and two tracks round-trips
Authored effort: 1.5. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.
R8 — HEVC and broad-codec playback
Prerequisites: None declared; this does not establish execution eligibility.
Contract:
ht_transcodeAcceptance: A sovereign HEVC decode into the existing nx_vcodec encode path so a HEVC sample plays in the browser; bit-exact decode against a banked reference frame set; the won't-play gap closes
Authored effort: 3. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.
R9 — Adaptive-bitrate HLS ladder
Prerequisites: R8 (acceptance unverified)
Contract:
abr_ladderAcceptance: Multi-rendition HLS playlist served per asset; the client switches renditions on measured bandwidth and the switch is logged; composes the RTC per-device tiers already shipped in the video lane
Authored effort: 2. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.
R10 — Face, object and semantic media search
Prerequisites: None declared; this does not establish execution eligibility.
Contract:
msm_searchAcceptance: A sovereign embedding index over the image library (the existing ViTPose port wired to serving plus a CLIP-class encoder); recall at 10 against BM25 on a labeled set is PRE-DECLARED to exceed or the lane stays unwired
Authored effort: 3. Executor kind: Local model. Responsible, accountable and verifier not established. Inspect retained worklog.
R11 — Ambient-light adaptation
Prerequisites: R0 (acceptance unverified)
Contract:
mt_ambient_sensorAcceptance: Mode follows an AmbientLightSensor reading with the OS prefers-color-scheme signal as fallback; measured on a device, never claimed from a knob
Authored effort: 0.5. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.
Learning and practice paths
No structured learning path is declared for this plan. Existing research, roadmap and worklog remain available above.
Capability comparisons
Compare the field, search individual capabilities and open their source and adoption evidence. Documented presence does not establish comparative quality.
Position map — centrality and distinctiveness
The four-quadrant map the field uses for brand strategy (Dawar and Bagga, HBR June 2015), re-derived from this matrix on every publish. Centrality is the share of the category's feature mass a player covers, each feature weighted by how many hold it; distinctiveness is the average lead over each rival on the rows the player holds; breadth is the depth-weighted share of the whole matrix (the bubble); depth is how deeply the rows held are held; momentum is the day-over-day move off the spine (green rising, red falling, grey until day two); the dashed path runs first day → previous day → today. Dividers are the category means. Axes are fitted to the field of play, so read the tick numerals, not the frame. Rival marks are documented presence, so a rival's position reads the record, never its quality. The picture grades its own readability below; the table beside it is the same data for a screen reader or a second method.
knowledge/compare/media.cdmap (cut|x|y, cube|x|y|z); absent = the HBR defaultsbubble area = breadth · ring = momentum (green rising, red falling, grey until day two) · dashed = category means · axes fitted to the field of play: centrality 300–1000, distinctiveness 150–400 of 0–1000 permil (the full range put every player in one corner)
readability of the 2D cut, self-graded by the layout ruler: label overlaps 0 · labels over marks 0 · off-canvas 0 · unresolved labels 0 · mark overlaps 1 (a fact of the data: two players that close are that close) · data spread 668 permil of the plot · quadrant words unseated 0
text contrast, measured with wcag2-ratio (floors from contrast.conf), light theme: labels 16.24 (floor 4.50) · notes 16.24 (floor 4.50) · quadrant words 5.89 (floor 4.50) · tick numerals 5.89 (floor 4.50) · axis titles 5.59 (floor 4.50) · dark theme: labels 13.78 (floor 4.50) · quadrant words 5.55 (floor 4.50) · axis titles 5.97 (floor 4.50) · dark classes under their floor 0 (one figure serves both themes: a dark shortfall is a token to fix, never a class to hide) · classes refused under their floor 0 (a refused class is not drawn; the scale classes are measured, never hidden) · export: SVG PNG (receipt, rendered by the estate's own rasteriser from this page)
readability of the 3D cube, self-graded by the layout ruler: label overlaps 0 · labels over marks 0 · off-canvas 0 · unresolved labels 0 · mark overlaps 1 (a fact of the data: two players that close are that close) · data spread 412 permil of the plot
10 panels over 5 registered axes, every pair once (the lower axis on x, the higher on y) · each panel fitted to its own field of play, first and last tick numerals shown · no labels in a small cut, the legend names the colours; the grade below reports the mark terms only (MM summed over the panels, spread averaged)
readability of the small multiples, self-graded by the layout ruler: label overlaps 0 · labels over marks 0 · off-canvas 0 · unresolved labels 0 · mark overlaps 15 (a fact of the data: two players that close are that close) · data spread 515 permil of the plot
| Player | Quadrant | centrality | distinctiveness | breadth | depth | momentum | Rows held | Days on spine | First seen |
|---|---|---|---|---|---|---|---|---|---|
| Nishi | Unconventional | 438 | 377 | 323 | 755 | 0 since 2026-09-15 | 15 | 2 | 2026-09-15 |
| Jellyfin | Mainstream | 912 | 287 | 647 | 839 | 0 since 2026-09-15 | 27 | 2 | 2026-09-15 |
| Plex | Mainstream | 912 | 287 | 647 | 839 | 0 since 2026-09-15 | 27 | 2 | 2026-09-15 |
| Immich | Mainstream | 789 | 212 | 504 | 803 | 0 since 2026-09-15 | 22 | 2 | 2026-09-15 |
| Kavita | Aspirational | 771 | 297 | 533 | 811 | 0 since 2026-09-15 | 23 | 2 | 2026-09-15 |
| Day | Matrix rows reviewed | Players recorded |
|---|---|---|
| 2026-09-15 | 35 | 5 |
| 2026-09-16 | 35 | 5 |
players 5|matrix rows 35|feature mass 114|centrality mean 764|distinctiveness mean 292|axes 5|spine days 2 (shown 2)|rows written today 0|readability defects 2D 0 cube 0|spine knowledge/status/cdmap/media.spine
comparewatch- plane row flips with it. A dark tag means the organ file EXISTS but does not declare the contracted symbol: something shipped there under another name, and until the contract is repointed to the real entry point (the plan rung and this row) or the function is renamed, that capability is invisible to this board — a build lost to darkness, named so it is not. The flip is necessary, not sufficient: it proves the symbol exists, never that the capability is good. The bar is the rung's pre-declared done-rule, proven by its gate — a symbol shipped without the behaviour behind it is a defect, and the flip is exactly what makes that defect visible instead of quiet. Competitor marks record documented capability presence — presence, not depth or scale. Adoption is measured too: every measured row carries where its organ stands on the estate's ladder (source → built → promoted → registered → invoked; libraries by importer reach minus validation importers; gates by the execution surfaces that run them). A row is fully adopted only at the top of its ladder; anything short is tagged partial with the exact remedy, so a build nobody promoted can no longer read as shipped. Census stamps: importers asof 1789497476, gate census asof 1789498715 (unix seconds; -1 = census absent).Capability matrix — measured against source
◉ leads / measured exceed● present◐ partial○ absent · click any capability for its evidence
| Capability | Nishi | Jellyfin | Plex | Immich | Kavita |
|---|---|---|---|---|---|
Analysis-on-ingest derivation pipelineMeasured:mp_run exists in runtime/nx_media_ingest_pipeline.nx, verified at emit. LIVE 2026-07-14: one idempotent pass derives thumbnails + NXVI on ingest, auto-fired per torrent; incumbents scan-on-add with deeper metadata agents rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them Adoption: BUILT-UNPROMOTED — PARTIAL: compiled, never promoted to the serving root: /api/promote it.Pros Nishi has it, measured on diskCons behind Jellyfin (leads), Plex (leads), Immich (leads); not adopted yet: compiled, never promoted to the serving root: /api/promote it | ● | ◉ | ◉ | ◉ | ● |
Image thumbnail generation + cacheMeasured:gs_thumb exists in runtime/_hdl_build/nx_gallery_serve.nx, verified at emit. Cache-first thumbs, cold-generate via nx_galx_thumb; all incumbents thumbnail on ingest rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them Adoption: BUILT-UNPROMOTED — PARTIAL: compiled, never promoted to the serving root: /api/promote it.Pros Nishi has it, measured on diskCons not adopted yet: compiled, never promoted to the serving root: /api/promote it | ● | ● | ● | ● | ● |
Video poster / recording thumbnailMeasured:gs_vidthumb exists in runtime/_hdl_build/nx_gallery_serve.nx, verified at emit. Poster.jpg served instantly for cam recordings; harvested video is a gap (no frame extractor yet); incumbents grab a frame on scan rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them Adoption: BUILT-UNPROMOTED — PARTIAL: compiled, never promoted to the serving root: /api/promote it.Pros Nishi has it, measured on disk; ahead of KavitaCons behind Jellyfin (leads), Plex (leads); not adopted yet: compiled, never promoted to the serving root: /api/promote it | ● | ◉ | ◉ | ● | ○ |
Duration + keyframe index (seekable MSE)Measured:bidx_ok exists in runtime/nx_galx_idx_backfill.nx, verified at emit. Sovereign NXVI keyframe index for accurate seek [w3c-mse]; H.264 only (HEVC gap); incumbents probe all codecs. SYMBOL REPOINTED 2026-09-01 and this ONE row was the whole domain RED: the row named bidxv2, which does not exist. THE ROW ROTTED WHEN THE CODE CORRECTLY ADVANCED -- the index format moved v2 to v3 and the organ own comment says why (v2 has no srcsize at all, so v2 is treated as unverifiable and rebuilt; 79 of 150 live indexes once pointed PAST EOF because the source was replaced under the same name and nothing could tell). The live predicate is bidx_ok, which accepts an index only if it is v3 AND its recorded source size still matches the file. A VERSIONED SYMBOL NAME PUTS AN EXPIRY DATE ON EVERY ROW THAT CITES IT Adoption: BUILT-UNPROMOTED — PARTIAL: compiled, never promoted to the serving root: /api/promote it.Pros Nishi has it, measured on disk; ahead of Immich, KavitaCons behind Jellyfin (leads), Plex (leads); not adopted yet: compiled, never promoted to the serving root: /api/promote it | ● | ◉ | ◉ | ○ | ○ |
On-the-fly remux + MSE streamingMeasured:gs_vid_stream exists in runtime/_hdl_build/nx_gallery_serve.nx, verified at emit. TS->fMP4 fly-remux + MSE segments [w3c-mse]; no adaptive ladder yet; incumbents ship HW-transcode ABR ladders Adoption: BUILT-UNPROMOTED — PARTIAL: compiled, never promoted to the serving root: /api/promote it.Pros Nishi has it, measured on disk; ahead of Immich, KavitaCons behind Jellyfin (leads), Plex (leads); not adopted yet: compiled, never promoted to the serving root: /api/promote it | ● | ◉ | ◉ | ○ | ○ |
Dead-air / motion / scene / rhythm markersMeasured exceed:ts_classify in runtime/nx_ts_marks.nx, verified at emit. Sovereign demux-signal analyzer emits NXMK markers on the seekbar; Jellyfin/Plex only do intro-skip, no motion/rhythm classification rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them Adoption: LIB-WIRED importers=5 nonval=3 — fully adopted (top of its ladder).Pros Nishi leads, a measured exceed; ahead of Jellyfin, Plex, Immich, Kavita; fully adopted on the estate ladderCons none on the measured axes (rival marks are documented presence, not depth) | ◉ | ◐ | ◐ | ○ | ○ |
On-demand super-resolution upscaleMeasured exceed:gs_upscale in runtime/_hdl_build/nx_gallery_serve.nx, verified at emit. Sovereign 2x upscale endpoint per asset; no incumbent media server upscales media on demand Adoption: BUILT-UNPROMOTED — PARTIAL: compiled, never promoted to the serving root: /api/promote it.Pros Nishi leads, a measured exceed; ahead of Jellyfin, Plex, Immich, KavitaCons not adopted yet: compiled, never promoted to the serving root: /api/promote it | ◉ | ○ | ○ | ○ | ○ |
Auto-derive on ingest (orchestrated)Measured:cmd_galxpipeline exists in runtime/_hdl_build/nx_hostctl.nx, verified at emit. Torrent worker fires the guarded galxpipeline sub after indexing; incumbents auto-scan watch folders rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them Adoption: LIVE-DAEMON — fully adopted (top of its ladder).Pros Nishi has it, measured on disk; fully adopted on the estate ladderCons behind Jellyfin (leads), Plex (leads), Immich (leads) | ● | ◉ | ◉ | ◉ | ● |
Unified media library listing + filtersMeasured:gs_api_list exists in runtime/_hdl_build/nx_gallery_serve.nx, verified at emit. Mixed image+video grid, state filters, BM25 search; incumbents have mature library UIs rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them Adoption: BUILT-UNPROMOTED — PARTIAL: compiled, never promoted to the serving root: /api/promote it.Pros Nishi has it, measured on diskCons behind Jellyfin (leads), Plex (leads), Immich (leads), Kavita (leads); not adopted yet: compiled, never promoted to the serving root: /api/promote it | ● | ◉ | ◉ | ◉ | ◉ |
Book / manga / comic reader libraryMeasured:ms_handle_list exists in runtime/_hdl_build/nx_media_server.nx, verified at emit. /library serves books/manga/photos/STL; Kavita is a dedicated manga/book server and leads depth [kavita] Adoption: SOURCE-ONLY — PARTIAL: source exists, never compiled: /api/build it.Pros Nishi has it, measured on disk; ahead of Jellyfin, Plex, ImmichCons behind Kavita (leads); not adopted yet: source exists, never compiled: /api/build it | ● | ○ | ○ | ○ | ◉ |
Range-streaming file deliveryMeasured:ms_handle_file exists in runtime/_hdl_build/nx_media_server.nx, verified at emit. HTTP Range on any NAS file; all incumbents range-stream rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them Adoption: SOURCE-ONLY — PARTIAL: source exists, never compiled: /api/build it.Pros Nishi has it, measured on diskCons not adopted yet: source exists, never compiled: /api/build it | ● | ● | ● | ● | ● |
Book cover thumbnail extractionMeasured:ms_cover_thumb exists in runtime/_hdl_build/nx_media_server.nx, verified at emit. Embedded-cover extract + cache; Kavita/Komga extract covers on scan rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them Adoption: SOURCE-ONLY — PARTIAL: source exists, never compiled: /api/build it.Pros Nishi has it, measured on disk; ahead of Jellyfin, Plex, ImmichCons behind Kavita (leads); not adopted yet: source exists, never compiled: /api/build it | ● | ○ | ○ | ○ | ◉ |
LLM-native content packing (push a book into an LLM)Measured exceed:tok_estimate in runtime/_hdl_build/nx_token_counter.nx, verified at emit. /api/llmpack packs a book into a token budget natively; no media server does this Adoption: LIB-WIRED importers=3 nonval=2 — fully adopted (top of its ladder).Pros Nishi leads, a measured exceed; ahead of Jellyfin, Plex, Immich, Kavita; fully adopted on the estate ladderCons none on the measured axes (rival marks are documented presence, not depth) | ◉ | ○ | ○ | ○ | ○ |
Per-user auth + private library areaMeasured:ms_login exists in runtime/_hdl_build/nx_media_server.nx, verified at emit. Modern auth + per-user private area; all incumbents are multi-user rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them Adoption: SOURCE-ONLY — PARTIAL: source exists, never compiled: /api/build it.Pros Nishi has it, measured on diskCons not adopted yet: source exists, never compiled: /api/build it | ● | ● | ● | ● | ● |
Resilient multi-strategy fetch (acquisition)Measured exceed:fa_is_real in runtime/nx_fetch_any.nx, verified at emit. Cascade + classify + always-inform fetch for INGEST sources; incumbents lean on external download clients Adoption: BUILT-UNPROMOTED — PARTIAL: compiled, never promoted to the serving root: /api/promote it.Pros Nishi leads, a measured exceed; ahead of Jellyfin, Plex, Immich, KavitaCons not adopted yet: compiled, never promoted to the serving root: /api/promote it | ◉ | ○ | ○ | ○ | ○ |
Trickplay / BIF scrub-preview spritesOpen — watchingruntime/nx_galx_trickplay.nx : gt_sprite_sheet, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. Top delivery-UX gap; Jellyfin .trickplay [jellyfin109] + Plex BIF [plex-bif] generate scrub-preview sprites on scanPros none measured yetCons behind Jellyfin (leads), Plex (leads); open contract, nothing on disk yet | ○ | ◉ | ◉ | ○ | ○ |
Chapters + subtitle / audio-track selectionOpen — watchingruntime/nx_media_chapters.nx : mc_chapters, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. No chapter markers or track menus; incumbents parse container chapters + expose track selection rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind themPros none measured yetCons behind Jellyfin (leads), Plex (leads); open contract, nothing on disk yet | ○ | ◉ | ◉ | ○ | ○ |
Face / object / CLIP semantic media searchOpen — watchingruntime/nx_media_semantic.nx : msm_search, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. Immich leads: on-device face clustering [immich-faces] + CLIP semantic photo search [immich-search] [clip21]; ours is text BM25 (pose/ViTPose port exists but is unwired to serving)Pros none measured yetCons behind Immich (leads); open contract, nothing on disk yet | ○ | ○ | ○ | ◉ | ○ |
HEVC / broad-codec playback (transcode)Open — watchingruntime/nx_hevc_transcode.nx : ht_transcode, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. The genuine won't-play gap; incumbents HW-transcode HEVC/AV1/VP9 to browser-safe streams rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind themPros none measured yetCons behind Jellyfin (leads), Plex (leads), Immich; open contract, nothing on disk yet | ○ | ◉ | ◉ | ● | ○ |
Adaptive-bitrate HLS / DASH ladderOpen — watchingruntime/nx_media_abr.nx : abr_ladder, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. No ABR ladder; incumbents ship multi-rendition HLS/DASH for bandwidth adaptation [rfc8216]Pros none measured yetCons behind Jellyfin (leads), Plex (leads); open contract, nothing on disk yet | ○ | ◉ | ◉ | ○ | ○ |
Comic / manga page rendering (CBZ/CBR correctness)DARK —runtime/_hdl_build/nx_media_server.nx EXISTS but does not declare ms_cbx_serve: something shipped at this path under another name, and this mark would read open forever. Repoint the contract to the real entry point (the plan rung AND this row) or rename the function; the flip follows on the next beat, and the comparewatch- plane row reads DARK until then. OPERATOR BUY-OFF 2026-07-14: comic/manga rendering is BROKEN in practice -- the nx_cbx_pages symbol exists but the served format is wrong, so symbol-presence over-credited it; Kavita/Komga render CBZ/CBR reliably rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind themPros none measured yetCons behind Kavita (leads); open contract, nothing on disk yet | ○ | ○ | ○ | ○ | ◉ |
Polished easy-on-the-eyes UI (light + dark theme)DARK —runtime/_hdl_build/nx_media_server.nx EXISTS but does not declare ms_theme_css: something shipped at this path under another name, and this mark would read open forever. Repoint the contract to the real entry point (the plan rung AND this row) or rename the function; the flip follows on the next beat, and the comparewatch- plane row reads DARK until then. OPERATOR BUY-OFF 2026-07-14: the screen is a harsh plain white with no dark theme -- not easy on the eyes; Jellyfin/Plex/Immich/Kavita all ship polished dark + light themes rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind themPros none measured yetCons behind Jellyfin (leads), Plex (leads), Immich (leads), Kavita (leads); open contract, nothing on disk yet | ○ | ◉ | ◉ | ◉ | ◉ |
Responsive / non-clunky UX polishOpen — watchingruntime/nx_media_uxpolish.nx : ux_shell, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. OPERATOR BUY-OFF 2026-07-14: the UI is clunky; incumbents have refined, responsive, mobile-first interfaces rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind themPros none measured yetCons behind Jellyfin (leads), Plex (leads), Immich (leads), Kavita; open contract, nothing on disk yet | ○ | ◉ | ◉ | ◉ | ● |
Accessibility (contrast / keyboard / ARIA)Open — watchingruntime/nx_media_a11y.nx : ma_audit, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. No measured contrast/keyboard/ARIA pass; incumbents meet baseline accessibility [wcag22]Pros none measured yetCons behind Jellyfin, Plex, Immich, Kavita; open contract, nothing on disk yet | ○ | ● | ● | ● | ● |
Live UX-judged quality (beyond symbol-presence)DARK —runtime/nx_ui_judge.nx EXISTS but does not declare uj_live_media: something shipped at this path under another name, and this mark would read open forever. Repoint the contract to the real entry point (the plan rung AND this row) or rename the function; the flip follows on the next beat, and the comparewatch- plane row reads DARK until then. MEASUREMENT DISCIPLINE: a symbol on disk is NECESSARY-NOT-SUFFICIENT. UX polish, format correctness and theme are NOT captured by c_file_has -- they need a live UI-judge + user buy-off. Operator flagged clunky/broken/white -> the earlier 750 was over-optimistic; this axis exists so the census stops over-crediting presence rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind themPros none measured yetCons behind Jellyfin (leads), Plex (leads), Immich (leads), Kavita (leads); open contract, nothing on disk yet | ○ | ◉ | ◉ | ◉ | ◉ |
Sunlight / outdoor readabilityDARK —runtime/_hdl_build/nx_media_server.nx EXISTS but does not declare ms_theme_css: something shipped at this path under another name, and this mark would read open forever. Repoint the contract to the real entry point (the plan rung AND this row) or rename the function; the flip follows on the next beat, and the comparewatch- plane row reads DARK until then. COMPLETENESS-ADVERSARY MISS caught 2026-07-14 (operator flagged): a mobile web reader needs a high-contrast/auto sunlight mode -- e-ink wins outright; incumbents' native apps offer high-brightness; ours has none rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind themPros none measured yetCons behind Jellyfin, Plex, Immich, Kavita; open contract, nothing on disk yet | ○ | ● | ● | ● | ● |
Ambient-light auto-adaptationDARK —runtime/_hdl_build/nx_media_theme.nx EXISTS but does not declare mt_ambient_sensor: something shipped at this path under another name, and this mark would read open forever. Repoint the contract to the real entry point (the plan rung AND this row) or rename the function; the flip follows on the next beat, and the comparewatch- plane row reads DARK until then. COMPLETENESS MISS: no ambient-light / auto-brightness / time-of-day adaptation; native reader apps adapt to sensor + time rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind themPros none measured yetCons behind Jellyfin, Plex, Immich, Kavita; open contract, nothing on disk yet | ○ | ● | ● | ● | ● |
Mobile / responsive legibilityDARK —runtime/_hdl_build/nx_media_server.nx EXISTS but does not declare ms_theme_css: something shipped at this path under another name, and this mark would read open forever. Repoint the contract to the real entry point (the plan rung AND this row) or rename the function; the flip follows on the next beat, and the comparewatch- plane row reads DARK until then. COMPLETENESS MISS (operator flagged): the reader is not tuned for small-screen one-handed reading; incumbents ship mobile-first apps rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind themPros none measured yetCons behind Jellyfin (leads), Plex (leads), Immich (leads), Kavita (leads); open contract, nothing on disk yet | ○ | ◉ | ◉ | ◉ | ◉ |
Anti-glare / matte reading surfaceDARK —runtime/_hdl_build/nx_media_server.nx EXISTS but does not declare ms_theme_css: something shipped at this path under another name, and this mark would read open forever. Repoint the contract to the real entry point (the plan rung AND this row) or rename the function; the flip follows on the next beat, and the comparewatch- plane row reads DARK until then. COMPLETENESS MISS: no matte/low-glare treatment (pure-white glare is the harsh case); reader apps offer paper/sepia low-glare modes rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind themPros none measured yetCons behind Jellyfin, Plex, Immich, Kavita; open contract, nothing on disk yet | ○ | ● | ● | ● | ● |
Color temperature / warm night shiftDARK —runtime/_hdl_build/nx_media_server.nx EXISTS but does not declare ms_theme_css: something shipped at this path under another name, and this mark would read open forever. Repoint the contract to the real entry point (the plan rung AND this row) or rename the function; the flip follows on the next beat, and the comparewatch- plane row reads DARK until then. COMPLETENESS MISS: no warm color-temperature or night shift; Kavita/Kindle have warm + sepia reading modes rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind themPros none measured yetCons behind Jellyfin, Plex, Immich, Kavita (leads); open contract, nothing on disk yet | ○ | ● | ● | ● | ◉ |
Flicker-free / refresh comfortOpen — no implementing organ is measured for this axis yet. COMPLETENESS MISS: no flicker/refresh consideration; e-ink is flicker-free by nature rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind themPros none measured yetCons behind Jellyfin, Plex, Immich, Kavita; no implementing organ measured | ○ | ● | ● | ● | ● |
Reflective / paper-like feelOpen — no implementing organ is measured for this axis yet. COMPLETENESS MISS: emissive-only; the researched comfort target is a reflective paper-like feel (e-ink) -- a category-wide web gap rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind themPros none measured yetCons behind Kavita; no implementing organ measured | ○ | ○ | ○ | ○ | ● |
Reading typography (measure / leading / serif)DARK —runtime/_hdl_build/nx_media_server.nx EXISTS but does not declare ms_theme_css: something shipped at this path under another name, and this mark would read open forever. Repoint the contract to the real entry point (the plan rung AND this row) or rename the function; the flip follows on the next beat, and the comparewatch- plane row reads DARK until then. COMPLETENESS MISS: no reading-optimized typography (serif long-form, ~65ch measure, leading); reader apps tune all three rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind themPros none measured yetCons behind Jellyfin, Plex, Immich, Kavita (leads); open contract, nothing on disk yet | ○ | ● | ● | ● | ◉ |
Blue-light reduction / circadianDARK —runtime/_hdl_build/nx_media_server.nx EXISTS but does not declare ms_theme_css: something shipped at this path under another name, and this mark would read open forever. Repoint the contract to the real entry point (the plan rung AND this row) or rename the function; the flip follows on the next beat, and the comparewatch- plane row reads DARK until then. COMPLETENESS MISS: no blue-light reduction / circadian awareness; reader apps + OS night modes reduce blue light rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind themPros none measured yetCons behind Jellyfin, Plex, Immich, Kavita (leads); open contract, nothing on disk yet | ○ | ● | ● | ● | ◉ |
Resume / watch-state per userDARK —runtime/_hdl_build/nx_media_server.nx EXISTS but does not declare ms_watch_state: something shipped at this path under another name, and this mark would read open forever. Repoint the contract to the real entry point (the plan rung AND this row) or rename the function; the flip follows on the next beat, and the comparewatch- plane row reads DARK until then. COMPLETENESS MISS: reader /api/pos position-sync exists but resume/watch-state is not unified across the media plane; incumbents track it everywhere rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind themPros none measured yetCons behind Jellyfin (leads), Plex (leads), Immich (leads), Kavita; open contract, nothing on disk yet | ○ | ◉ | ◉ | ◉ | ● |
Delivery and evidence
Inspect risks, technical debt, rendered observations, experiments and references. Read scope and limitations alongside every result.
Release history and work log
| When | Rung | Kind | Entry |
|---|---|---|---|
| 2026-09-12 | R3 | requirement | OPERATOR MIGRATION-RECOVERY PILOT 2026-09-12: Elder AI, Media Manager and Companion AI reportedly delivered useful capabilities before Docker-to-Nishi migration; user reports capabilities have not been recovered. Treat this as an audit hypothesis, not a measured blanket regression or proven Docker cost. Mine historical source, manifests, transcripts, tests and served UI evidence; map every user workflow to old and current owners, API/MCP contracts, dependencies and evidence. Classify verified working, implemented but unwired, behavioral regression, intentional replacement, absent, and unknown separately. Keep source presence distinct from runtime and end-user acceptance. Reuse existing Compare domains after owner discovery, no duplicate recovery product. Rank recovery by user value, confidence, dependency reuse and measured effort; compare dated current alternatives per workflow and retain older baselines. Produce portable fixture-based alpha tests, beta integration and actual served review. Track recovered workflows and repeatable one-call primitive/workflow/team abilities, with full mining coverage and unresolved gaps. This is a secondary pilot; Beach and shared reliability fixes retain priority. |
| 2026-09-12 | R3 | clarification | OPERATOR 2026-09-12: migration is only one pilot for a general one-call domain-development workflow. Given an existing or new domain/product target, the estate must discover requirements and dated research, inventory reusable primitives/workflows/teams, map breadth and prerequisite depth, identify and rank gaps, cost and dispatch bounded work, independently verify it, and emit Compare plus reviewable alpha/beta outcomes. One public invocation orchestrates visible internal steps; it does not imply instant completion, arbitrary authorization or unsupported SOTA claims. Reuse existing product decomposition, researcher/librarian, catalogue, ranker, swarm and publisher owners. Expose job identity, assumptions, stage/evidence coverage, measured vs estimated effort, dependencies, retries, decisions and completed artifacts. Acceptance: replay an existing-domain recovery and a genuinely new-domain pilot through the same native MCP/API workflow with retained evidence and no manual hidden orchestration. Domains with unverified baselines remain unmeasured. This extends the recovery pilot rather than creating a competing workflow. |
Person · product · place — not yet measured for this domain
knowledge/compare/media.ppp (rows surface|nishi or c1..c4|label|url|connect naming OUR live surface and each rival's front door), run nx_ppp_probe domain media, and this section fills itself on the next beat: the same ruler on both sides — privacy and CX (third-party hosts, tracker classes, cookies, security headers), design and longevity (design hygiene, computed WCAG contrast, render-blocking resources, unsized media, script weight, theme and motion queries), findability (landmarks, skip link, on-site search, breadcrumb, headings, internal links).The field — discovered, not chosen
Rows written by nx_field_discover from media.seeds: the industry's own lists (Wikipedia wikitext, GitHub topics, awesome lists) read mechanically, every candidate counted across seeds. The matrix columns above are a SEAT'S pick; this band is the population they were picked from, and the stats line measures one against the other. A rival here is a lead, never a verdict — it earns a column when its capabilities are read and pinned.
field|seeds=4|scanned=4|fetched=4|reused=0|failed=0|named=4|candidates=4|mentions=4|capped=0
rival|Jellyfin|1|1|col0-jellyfin|https://jellyfin.org/posts/jellyfin-release-10.9.0/|named
rival|Plex|1|1|col1-plex|https://support.plex.tv/articles/202197528-video-preview-thumbnails/|named
rival|Immich|1|1|col2-immich|https://docs.immich.app/features/searching|named
rival|Kavita|1|1|col3-kavita|https://wiki.kavitareader.com/|named
| Rank | Rival | Seeds | Mentions | First seed | Kind | Link |
|---|---|---|---|---|---|---|
| 1 | Jellyfin | 1 | 1 | col0-jellyfin | named | https://jellyfin.org/posts/jellyfin-release-10.9.0/ |
| 2 | Plex | 1 | 1 | col1-plex | named | https://support.plex.tv/articles/202197528-video-preview-thumbnails/ |
| 3 | Immich | 1 | 1 | col2-immich | named | https://docs.immich.app/features/searching |
| 4 | Kavita | 1 | 1 | col3-kavita | named | https://wiki.kavitareader.com/ |
field candidates 4|shown 4 of 4|matrix columns in the field 4 of 4|discovered rivals with no column 0|malformed rows 0 (counted, never rendered)|read-capped 0
Gaps from the record — what the estate does that no board carries
The record census (nx_goalmap record) reads the invoked-tool population and every plan queue row and files each organ or directive that NO matrix, plan or gates row names. A row here is a callout the boards missed: adjudicate it onto a board or declare it infrastructure. Census state BLIND (age 74236 s), sources read 4 of 7 declared — a BLIND census is a FLOOR: unread sources can only add rows.
| kind | name | board | source | evidence |
|---|
rows shown 0|this board's directives 0|estate-wide un-boarded organs 492 (listed in full on /compare/ecosystem)|census rows 611|malformed 0 (counted, never rendered)
References
- [jellyfin109] Jellyfin Project. Jellyfin 10.9.0 release notes: trickplay (live video scrubbing previews) upstreamed from the Jellyscrub plugin, multiple subtitle tracks, improved search. May 2024. publisher · read in our library
knowledge/fetched/cmp_media_jellyfin109.html· pinhff91aae75c8ec9c87b8ce37c7195e73f11dc43d9cc8ce118e6ee69990021376d· accessed 2026-08-18 · vendor-docGrounds: The Jellyfin column code 2 on "Trickplay / BIF scrub-preview sprites": Jellyfin generates seek-bar preview images server-side since 10.9 -- the top delivery-UX gap row names exactly this capability as absent in ours. - [plex-bif] Plex Support. Video Preview Thumbnails: BIF media-index files generated during scheduled tasks or on add, used by the timeline scrubber; documented as CPU-heavy (10+ minutes per movie). publisher · read in our library
knowledge/fetched/cmp_media_plex-bif.html· pinh6b01f2145a33dae2d9b798380063c92b31272bd6a0ffd04c3c1f542b7bbb3faf· accessed 2026-08-18 · vendor-docGrounds: The Plex column on "Trickplay / BIF scrub-preview sprites" and "Video poster / recording thumbnail": Plex derives BIF sprites at scan time and says what it costs, which is why our row is a scan-time derivation contract and not a serve-time one. - [immich-search] Immich documentation. Searching: contextual CLIP search over Postgres via the VectorChord extension, selectable English-only or multilingual CLIP models, freeform queries over photo and video content. publisher · read in our library
knowledge/fetched/cmp_media_immich-search.html· pinh7f5bdaa03daa66e6b6c50b743fdc8857c03dd9de48460c8c4d84bad8f19e49cc· accessed 2026-08-18 · vendor-docGrounds: The Immich code 2 on "Face / object / CLIP semantic media search": semantic photo search is CLIP embeddings in a vector index; ours is text BM25 over metadata, the named gap. - [immich-faces] Immich documentation. Facial Recognition: faces detected in photos and videos and grouped into people by a DBSCAN-derived incremental clustering with tunable detection score, recognition distance and minimum faces. publisher · read in our library
knowledge/fetched/cmp_media_immich-faces.html· pinh2702f577b4ed99892ba9c54a84677e0c779105cb59ab8672273c32287634093a· accessed 2026-08-18 · vendor-docGrounds: The face-clustering half of "Face / object / CLIP semantic media search" (Immich leads: on-device face clustering) -- the row grades our absent clustering against a documented algorithm, not a marketing claim. - [kavita] Kavita wiki. Kavita: a self-hosted digital library for manga, comics and books supporting a vast array of file formats, multi-user, open source (v0.9 series). publisher · read in our library
knowledge/fetched/cmp_media_kavita.html· pinhe55444833ee52a70cbfa2b5db53ca2b323609a2b8a401addb41328fc3b8445e3· accessed 2026-08-18 · vendor-docGrounds: The Kavita code 2 on "Book / manga / comic reader library", "Book cover thumbnail extraction" and "Comic / manga page rendering (CBZ/CBR correctness)": a dedicated manga/book server is the depth bar our /library and the operator-flagged broken CBZ/CBR path are graded against. - [rfc8216] Pantos, May. HTTP Live Streaming. IETF RFC 8216, August 2017. publisher · read in our library
knowledge/fetched/cmp_media_rfc8216.html· pinh6839d54f21b1f95d9d1b0bf334790c3ef90bd829be832ce35b6db2be9dc93ac4· accessed 2026-08-18 · published-standardGrounds: "Adaptive-bitrate HLS / DASH ladder": the multi-rendition master-playlist protocol the incumbents ship for bandwidth adaptation; our TS-to-fMP4 fly-remux serves one rendition, so the row is honestly 0. - [w3c-mse] W3C. Media Source Extensions (Recommendation 17 November 2016; MSE-2 Working Draft 07 August 2026 adds codec switching, worker support and managed media source). publisher · accessed 2026-08-18 · published-standardGrounds: "On-the-fly remux + MSE streaming" and "Duration + keyframe index (seekable MSE)": the MediaSource/SourceBuffer append model gs_vid_stream feeds with fMP4 segments and the NXVI keyframe index seeks against. Mirror absent by declaration: three sovereign fetches of w3.org returned 5.8KB truncated bodies.
- [wcag22] W3C. Web Content Accessibility Guidelines (WCAG) 2.2. W3C Recommendation, 05 October 2023. publisher · accessed 2026-08-18 · published-standardGrounds: "Accessibility (contrast / keyboard / ARIA)": contrast minimum, keyboard operability and name/role/value are WCAG success criteria; the row's incumbents-1 ours-0 grade is measured against this document, and no pass has been run on our surface. Mirror absent by declaration (same w3.org truncation).
- [clip21] Radford, Kim, Hallacy et al. Learning Transferable Visual Models From Natural Language Supervision (CLIP). ICML 2021, arXiv:2103.00020. publisher · read in our library
knowledge/fetched/cmp_media_clip21.html· pinhf1f97fccf5d26c75e369795b14fbf4150037910175d469b1f6d4341a7137ab94· accessed 2026-08-18 · published-paperGrounds: The CLIP half of "Face / object / CLIP semantic media search": the joint image-text embedding Immich's smart search runs is this paper's model, which defines what a freeform semantic query over photos means and what our BM25 text search cannot answer.
generated by nx_swcompare_matrix (sovereign NishiLang organ) from knowledge/compare/media.matrix · source checks show implementation presence; runtime and user-outcome evidence are reported separately · JavaScript supports page controls