dank
f46bf60939
fix(alloy): make the copier's refusal case actually refuse
...
The engine-rejects test corrupted its own cfg file, but the copier always
renders from the repo config, so the gate validated a good file and
installed it; the test only surfaced where it was written, not where it
broke, because '!' suppresses errexit. Add an ALLOY_CONFIG_SRC seam
(alongside the *_CONF_ROOT seams) so the refusal case feeds the copier
the broken config it claims to test, and pin the repo-relative sed paths
to $REPO_ROOT — run.sh cds into tests/, so the relative path was dead
on any box that has the alloy image.
2026-11-04 14:45:29 -08:00
dank
b3eb9c6314
Merge pull request 'feat(homepage): Audiobookshelf's own mark, and frank-tts in the Model Information block' ( #150 ) from feat/homepage-abs-icon-and-tts-card into main
2026-11-04 13:50:50 -08:00
dank
a3ddb4c65a
Merge pull request 'fix(caddy): the *arr stack and qBittorrent are LAN-only at the edge' ( #151 ) from fix/arr-lan-only into main
2026-11-04 13:49:33 -08:00
dank
52d6da4f49
Merge pull request 'docs(caddy): the exposure gates measured, and the guarded set published' ( #149 ) from docs/caddy-exposure-gates into main
2026-11-04 13:36:24 -08:00
dank
e6a85176c4
Merge pull request 'feat(homepage): give the not-open-yet apps their own section, below AI' ( #148 ) from feat/homepage-wip-section into main
2026-11-04 13:20:57 -08:00
dank
9ff7ce6a12
Merge pull request 'docs(frank-archon): record the crash signature — clean-looking exit, silent engine' ( #147 ) from docs/frank-archon-crash-signature into main
2026-11-04 13:19:50 -08:00
dank
fee8121d47
Merge pull request 'docs(openwebui): re-key the model rows at swap time; default model is frank-archon' ( #146 ) from docs/openwebui-model-rows-default into main
2026-11-04 13:08:52 -08:00
dank
cae283047f
Merge pull request 'docs(authentik,openwebui): the roles claim mints the OpenWebUI role; jason joins the census' ( #144 ) from docs/authentik-jason-provision into main
2026-11-04 12:57:07 -08:00
dank
51007ac604
Merge pull request 'fix(homepage): Jellyfin takes the family login; document the voice models' ( #145 ) from docs/homepage-jellyfin-login-and-tts into main
2026-11-04 12:56:44 -08:00
dank
9961ed62c0
Merge pull request 'docs(jellyfin,authentik): the LDAP admin filter is inert; the auth door lives in Users' ( #143 ) from docs/jellyfin-ldap-sso-laws into main
2026-11-04 12:27:00 -08:00
dank
70aa40a24a
Merge pull request 'The --after help names the trigger’s epoch, not a file mtime' ( #142 ) from fix/after-epoch-help into main
2026-11-04 12:25:46 -08:00
dank
0161ab2aa8
Merge pull request 'Media refresh drivers: the two scan doors become commands' ( #140 ) from feat/media-refresh-drivers into main
2026-11-04 12:15:38 -08:00
dank
085a5d570c
Merge pull request 'docs(openwebui): the browser-kokoro switch is the user's settings row, not browser storage' ( #141 ) from docs/openwebui-tts-kokoro-user-row into main
2026-11-04 12:14:35 -08:00
dank
e1bf1d6e80
Merge pull request 'Household docs: rewrite the family guide, and make the model cards tell the truth' ( #139 ) from docs/household-guide-refresh into main
2026-11-03 04:08:09 -08:00
dank
b875256500
Merge pull request 'feat(jellyfin): big-screen theme for the TV - repo CSS in the Media Center slot' ( #138 ) from feat/jellyfin-big-screen-theme into main
2026-11-03 03:40:04 -08:00
dank
64f489023e
Merge pull request 'feat(homepage): Jellyfin goes live, Audiobookshelf joins the household, Marreta says what it is' ( #137 ) from feat/homepage-media-cards into main
2026-11-03 03:32:49 -08:00
dank
c9a8469d04
Merge pull request 'docs(audiobookshelf): the wide listener default is a decision, not a defect' ( #136 ) from docs/abs-listener-default-decision into main
2026-11-03 03:09:19 -08:00
dank
1a47b831ee
Merge pull request 'docs(audiobookshelf): /api/login is not a route — and what auto-registration grants' ( #135 ) from docs/abs-login-path-and-listener-shape into main
2026-11-03 03:04:05 -08:00
dank
d3aedd1837
Merge pull request 'Every authentik account that signs in to Audiobookshelf becomes a listener' ( #134 ) from feat/audiobookshelf-sso-default-listener into main
2026-11-03 02:19:14 -08:00
dank
3a6f7c7280
Merge pull request 'feat(caddy): Audiobookshelf outside the guard chain, so the phone app works from anywhere' ( #133 ) from feat/audiobookshelf-public-app-access into main
2026-11-03 01:56:51 -08:00
dank
6083903ccb
Merge pull request 'fix(e2e): judge only body-carrying script responses in the ABS SSO spec' ( #132 ) from fix/e2e-mime-304 into main
2026-11-03 01:42:28 -08:00
dank
df597bb1b1
Merge pull request 'fix(abs-guard): audiobooks.franksdank.cloud completes OIDC (forwarded scheme + provider OAuth defaults)' ( #131 ) from fix/abs-guard-oauth-defaults into main
2026-11-03 01:26:32 -08:00
dank
17ea2f4110
Merge pull request 'feat(caddy): give Audiobookshelf a guarded abs.franksdank.cloud address' ( #130 ) from feat/abs-vhost into main
2026-11-03 00:57:47 -08:00
dank
80a65b013f
Merge pull request 'fix(authentik): provision the Audiobookshelf provider with grant types and OpenID scopes' ( #129 ) from fix/abs-grant-types into main
2026-11-02 20:24:53 -08:00
dank
7e9bfbc2be
Merge pull request 'fix(audiobookshelf): serve under /audiobookshelf, send the OIDC redirect subfolder' ( #128 ) from fix/abs-base-path-sso into main
2026-11-02 20:02:57 -08:00
dank
f3a6b4f715
Merge pull request 'docs(jellyfin): the recursive Movie list is not proof an item is indexed' ( #126 ) from docs/jellyfin-verification-read into main
2026-11-02 19:14:33 -08:00
dank
5c888ff948
Merge pull request 'docs(audiobookshelf): the phone app's connection facts and where its token lives' ( #127 ) from docs/abs-phone-app into main
2026-11-02 19:11:23 -08:00
dank
988c4899d4
Merge pull request 'docs(media): point plan/journal/park paths at .media-campaign and NeedsProcessing' ( #125 ) from docs/media-artifact-paths into main
2026-11-02 18:42:34 -08:00
dank
aea24353ad
Merge pull request 'docs(jellyfin): the switches live under LibraryOptions; a pinned art pass is not a provider census' ( #124 ) from feat/jellyfin-provider-keys into main
2026-11-02 17:39:21 -08:00
dank
f80148c5db
Merge pull request 'fix(media-apply): refuse a plan row whose verb the tool does not know' ( #123 ) from fix/media-apply-unknown-action into main
2026-11-02 14:07:55 -08:00
dank
541067e6b2
Merge pull request 'docs(tv): split the TV arm into its own page, add the folder-identity laws' ( #122 ) from docs/tv-folder-identity-law into main
2026-11-02 14:03:56 -08:00
dank
4a33898a6c
Merge pull request 'fix(jellyfin): anchor the provider-key write on the file’s real root' ( #121 ) from chore/jellyfin-tvdb-key into main
2026-11-02 07:17:25 -08:00
dank
21c98bd485
Merge pull request 'docs(jellyfin): the door that scans is /Library/Refresh, and the art door names its field' ( #120 ) from docs/jellyfin-scan-door into main
2026-11-02 07:16:52 -08:00
dank
a651c81dfb
Merge pull request 'feat(audiobookshelf): bootstrap the account, library and scan from the deployer' ( #119 ) from feat/audiobookshelf-bootstrap into main
2026-11-02 07:16:45 -08:00
dank
7a8c6bd2e3
Merge pull request 'fix(audiobookshelf): set the port with the env names the image actually reads' ( #118 ) from fix/audiobookshelf-image-env into main
2026-11-02 02:28:44 -08:00
dank
a6ec644ecb
Merge pull request 'feat(audiobookshelf): the audiobook server as a boot-persistent quadlet' ( #117 ) from feat/audiobookshelf into main
2026-11-02 02:20:03 -08:00
dank
b93e8481f9
Merge pull request 'feat(media): per-episode TV duplicate census, and the Jellyfin library that indexed but fetched nothing' ( #116 ) from feat/jellyfin-provider-keys into main
2026-11-02 02:03:02 -08:00
dank
010b9affc7
Merge pull request 'media-verify reads the WAL; the metadata view is live; duplicates get a page' ( #115 ) from fix/media-verify-wal-and-prune-record into main
2026-11-01 01:42:20 -07:00
dank
6c115c1394
Merge pull request 'fix(deploy): make the view's upper base before installing the view' ( #113 ) from fix/media-view-ensure-base into main
2026-10-31 19:36:52 -07:00
dank
0336f42e2a
Merge pull request 'test(scoping): stop pinning a purgeable trash archive' ( #112 ) from fix/scoping-seam-disposable-archive into main
2026-10-31 19:30:35 -07:00
dank
1d92627935
Merge pull request 'chore: stop tracking .AGENTTRASH so a purge cannot dirty a checkout' ( #111 ) from chore/untrack-agenttrash into main
2026-10-31 18:49:41 -07:00
dank
6a4291f224
Merge pull request 'feat(fleet): give the media servers an I/O share that actually exists' ( #110 ) from feat/media-io-weight into main
2026-10-31 18:43:49 -07:00
dank
6d274acc47
Merge pull request 'fix(fleet): refuse a container start until the mount it binds has answered' ( #109 ) from fix/array-mount-gate into main
2026-10-31 18:20:40 -07:00
dank
3344b51fbd
Merge pull request 'perf(media): the apply fsyncs the journal once per batch, not per move' ( #108 ) from perf/media-apply-batch into main
2026-10-31 18:20:17 -07:00
dank
75b04dc313
Merge pull request 'fix(media): a number too long to be an episode is not one' ( #107 ) from fix/episode-marker-guard into main
2026-10-31 14:51:03 -07:00
dank
9c25b1cccb
Merge pull request 'feat(media): the operator's map gives a folder the id its name cannot reach' ( #106 ) from feat/media-tvdb-id-map into main
2026-10-31 13:15:37 -07:00
dank
576c3421b8
Merge pull request 'feat(media): the folder carries its tvdb id; specials and year-seasons resolve' ( #105 ) from feat/shows-ids-and-specials into main
2026-10-31 12:56:35 -07:00
dank
04802b3e48
Merge pull request 'fix(media): verify read the library the way the servers write it' ( #103 ) from fix/media-verify-wal-read into main
2026-10-31 12:12:23 -07:00
dank
44e55ad172
Merge pull request 'feat(media): tvdb names the show — titled episode files, id-backed series folders, park outside' ( #102 ) from feat/tv-tvdb-naming into main
2026-10-31 12:12:15 -07:00
dank
132805a25a
Merge pull request 'fix(dankserver): mount /mnt/entropy from its LUKS mapper at boot' ( #104 ) from fix/dankserver-entropy-automount into main
2026-10-31 12:04:08 -07:00
dank
3613f69593
Merge pull request 'feat(media): the audiobook relayout, filed by the book Plex matched' ( #101 ) from feat/media-audiobook-relayout into main
2026-10-31 00:38:02 -07:00
dank
382e3eb0b8
Merge pull request 'feat(media): the music library's own relayout, filed by its tags' ( #100 ) from feat/jellyfin-provider-keys into main
2026-10-31 00:04:41 -07:00
dank
82f6ec55c2
Merge pull request 'feat(media): plan a TV relayout from the numbering Jellyfin already has' ( #99 ) from feat/media-tv-relayout into main
2026-10-30 23:38:36 -07:00
dank
1a1dbac268
Merge pull request 'Jellyfin metadata providers: keys ride a host file the deployer installs' ( #98 ) from feat/jellyfin-provider-keys into main
2026-10-30 22:48:21 -07:00
dank
38737ab84e
Merge pull request 'Media metadata view: Jellyfin writes, Plex reads, the array stays read-only' ( #97 ) from feat/media-metadata-view into main
2026-10-30 22:18:27 -07:00
dank
409a8d8b0c
Merge pull request 'feat(media): a TV mover that will not file a show the library already has' ( #96 ) from feat/media-tv-mover into main
2026-10-30 20:31:38 -07:00
dank
5cd9a0c4c2
Merge pull request 'fix(media): the series is the name before the marker; a sweep carries its own empty subfolders' ( #95 ) from fix/media-series-key into main
2026-10-30 20:20:24 -07:00
dank
dd76fcf5d4
Merge pull request 'feat(media): sweep removes the folders a completed run emptied' ( #94 ) from feat/media-sweep into main
2026-10-30 20:04:24 -07:00
dank
e1760e3316
Merge pull request 'feat(media): the movie-library relayout toolchain — census, plan, executor' ( #93 ) from feat/media-relayout into main
2026-10-30 19:38:03 -07:00
dank
4db985b90d
Merge pull request 'fix(qwen38): the preflight asks whether the pin is ONE of an image's digests' ( #92 ) from fix/quant-pipeline-hardening into main
2026-10-30 16:30:07 -07:00
dank
8073d0aa9d
Merge pull request 'fix(qwen38): one identity preflight owns every fact a calibration window needs' ( #91 ) from fix/quant-pipeline-hardening into main
...
Merge pull request #91
2026-10-30 16:26:41 -07:00
dank
81e0995f7d
Merge pull request 'fix(qwen38): the calibration window must prove the rig owns the socket' ( #90 ) from fix/quant-pipeline-hardening into main
2026-10-30 16:08:29 -07:00
dank
608b0058e3
Merge pull request 'campaign(qwen38): the calibration floor is 12M tokens' ( #89 ) from fix/quant-pipeline-hardening into main
2026-10-30 15:47:25 -07:00
dank
7b2b5b66fe
Merge pull request 'fix(qwen38): the calibration tap runs on latest radiance, not the production pin' ( #87 ) from fix/quant-pipeline-hardening into main
2026-10-30 15:30:21 -07:00
dank
b45771e87e
Merge pull request 'docs(radiance): reference the engine — options, plugins, conversion, tools, operations' ( #88 ) from docs/radiance-engine-reference into main
2026-10-30 15:17:58 -07:00
dank
9f997f0841
Merge pull request 'perf(quant): the calibration boot's step and slots are its own knobs — probe at the measured 71 tok/s' ( #86 ) from fix/qwen38-calib-shape into main
2026-10-29 16:50:50 -07:00
dank
f14efdce1a
Merge pull request 'fix(quant): a flat calibration round is not a failure — the tap's floor is pooled' ( #85 ) from fix/qwen38-flat-round into main
2026-10-29 16:17:52 -07:00
dank
92a412e99d
Merge pull request 'fix(quant): a tap is only a tap when its rig is running — marker gate, gated calib window, tail-and-slices gate' ( #84 ) from fix/qwen38-tap-marker into main
2026-10-29 16:14:34 -07:00
dank
da5eb968f9
Merge pull request 'fix(quant): harden the campaign pipeline, then refactor its corpus tools onto one module' ( #83 ) from fix/quant-pipeline-hardening into main
2026-10-29 15:29:33 -07:00
dank
b3052e9243
Merge pull request 'fix(frank-archon): fold the pinned host pool back to 49,152; keep the 2,048 step' ( #82 ) from feat/qwen38-w5nl64 into main
2026-10-29 15:29:29 -07:00
dank
f83c241668
Merge pull request 'feat(frank-archon): raise the pinned host pool to 66,560; the campaign inherits MNBT 2,048' ( #81 ) from feat/frank-archon-pool-step into main
2026-10-29 13:14:27 -07:00
dank
b4d7f6e7fe
Merge pull request 'fix(qwen38): calib rides the shared step; the wide one cost the container its cache' ( #80 ) from feat/qwen38-w5nl64 into main
2026-10-29 11:18:36 -07:00
dank
fad87aa522
Merge pull request 'feat(scripts): deterministic .AGENTTRASH purger with bats seam' ( #79 ) from wt/20261028-122814 into main
2026-10-28 19:22:20 -07:00
dank
58dc7a64c1
Merge pull request 'feat(qwen38): score the inherited corpus at the window the container really has' ( #78 ) from feat/qwen38-w5nl64 into main
2026-10-28 11:04:59 -07:00
dank
fca47d25d8
Merge pull request 'fix(qwen38): the rig's card split is inherited from frank-archon.env, not invented' ( #77 ) from feat/qwen38-w5nl64 into main
2026-10-27 23:53:12 -07:00
dank
8270524edd
Merge pull request 'feat(qwen38): the w5nl64 heavier-quant campaign toolchain (fetch, BF16 reference, arms, FP8-anchored gate)' ( #76 ) from feat/qwen38-w5nl64 into main
2026-10-27 19:59:37 -07:00
dank
0ecfe830f7
Merge pull request 'fix(deploy): relay firewall DROP must be appended, not -I-inserted above its ACCEPTs' ( #75 ) from fix/signal-relay-fw-order into main
2026-10-21 16:59:16 -07:00
dank
94a9f3aa31
Merge pull request 'feat(security): digest-pin every registry image; drop batch-killing HostAddr' ( #74 ) from security/quadlet-digest-pins into main
2026-10-21 16:32:44 -07:00
dank
c4623f1629
Merge pull request 'fix(blackbox): flags-only Exec; bind loopback+LAN; exec-form HealthCmd' ( #73 ) from fix/blackbox-entrypoint-bind into main
2026-10-21 16:25:32 -07:00
dank
745d66d60d
Merge pull request 'fix(blackbox): --web.listen-address (repeatable), not --listen-address' ( #72 ) from fix/blackbox-web-listen-flag into main
2026-10-21 15:58:36 -07:00
dank
7de343c171
Merge pull request 'fix(blackbox): complete the unit - Image, Network=host, honest bind topology' ( #71 ) from fix/blackbox-unit-generation into main
2026-10-21 15:52:30 -07:00
dank
5ffbf19fb2
Merge pull request 'fix(deploy): blackbox-exporter was gated out of its own deploy path' ( #70 ) from fix/blackbox-service-gates into main
2026-10-21 15:34:49 -07:00
dank
d61c19d41f
Merge pull request 'Observability: kill every structural error (blackbox, labels, gates)' ( #69 ) from fix/observability-errors-gone into main
2026-10-21 14:53:16 -07:00
dank
425994515a
Merge pull request 'fix(deploy): grafana copier provisions EVERY dashboard json' ( #68 ) from fix/grafana-copier-glob into main
2026-10-21 09:49:15 -07:00
dank
127621bdd7
Merge pull request 'docs(vault)+fix(grafana): audit tranche 1 and dashboard data-flow fixes' ( #67 ) from fix/dragoon-context-200k into main
2026-10-21 09:28:43 -07:00
dank
ccb805cf0b
Merge pull request 'fix(frank-dragoon): mount the distro XRT at the third prefix the NPU child searches' ( #66 ) from fix/dragoon-context-200k into main
2026-10-21 02:25:42 -07:00
dank
9eb53ef937
Merge pull request 'feat(frank-dragoon): 200,000-token harness window via the native 262,144 ceiling' ( #65 ) from fix/dragoon-context-200k into main
2026-10-21 01:40:40 -07:00
dank
fbeb9701e4
Merge pull request 'fix(observability): serve every exporter bind; scrape same-host cadvisor via gateway' ( #64 ) from fix/gpu-serve-and-cadvisor-target into main
2026-10-21 00:39:54 -07:00
dank
b62a05837f
Merge pull request 'fix(deploy): client allowlist missing cadvisor/gpu-exporter/prowlarr' ( #63 ) from fix/deploy-sh-allowlist-drift into main
2026-10-21 00:15:45 -07:00
dank
656d9567d5
Merge pull request 'chore(plex): bump pin to 1.43.5.11029-6bf8af3f0-ls329 (latest)' ( #62 ) from chore/plex-1435 into main
2026-10-21 00:07:28 -07:00
dank
a2011f4eb6
Merge pull request 'feat(observability): per-GPU metrics for the mixed AMD/NVIDIA fleet' ( #61 ) from feat/gpu-stats into main
2026-10-20 23:50:11 -07:00
dank
b35269bfa5
Merge pull request 'docs(archon): four-slot ledger, resolver law from source, probe self-calibration' ( #60 ) from wt/20261020-213526 into main
2026-10-20 23:30:27 -07:00
dank
7993a336bf
Merge pull request 'feat(frank-archon): four decode slots over a >=700k-token KV pool' ( #59 ) from wt/20261020-213526 into main
2026-10-20 23:14:35 -07:00
dank
31b71a16d6
Merge pull request 'feat(observability): per-container metrics via cadvisor + Containers dashboard' ( #58 ) from feat/containers-observability into main
2026-10-20 23:08:23 -07:00
dank
a4edaa7d9d
Merge pull request 'feat(frank-archon): arm --prefill-interleave at 1' ( #57 ) from wt/20261020-213526 into main
2026-10-20 22:55:58 -07:00
dank
961713e92d
Merge pull request 'test(e2e): cover notebook + prometheus guard-surface gaps (full-suite audit)' ( #56 ) from feat/e2e-audit-coverage into main
2026-10-20 21:21:44 -07:00
dank
01db29e754
Merge pull request 'feat(grafana): starter dashboards (host/system, Loki logs, observability self-monitoring)' ( #55 ) from feat/grafana-starter-dashboards into main
2026-10-20 21:20:53 -07:00
dank
7d85fed1c9
Merge pull request 'Fix Grafana Authentik SSO (500 + missing email claim) + RP landing test' ( #54 ) from fix/grafana-authentik-sso into main
2026-10-20 21:04:02 -07:00
dank
980491668c
Merge pull request 'Alloy ships logs: root host-network service so it can read the journal' ( #53 ) from feat/alloy-root-journal into main
2026-10-20 20:05:00 -07:00
dank
2fe68e69af
Merge pull request 'Observability: vllm rule group for frank-archon + Loki datasource; correct stale log-pipeline facts' ( #52 ) from fix/observability-vllm-loki into main
2026-10-20 19:39:38 -07:00