Commit Graph

  • cde5a98fd2 refactor(frontend): each module defines itself in its folder; rails load lazily and keep their own state peter 2026-10-23 04:00:58 +02:00
  • e83c5e2d97 fix(frontend): the content is padded by the filled header before paint, not when the observer catches up peter 2026-10-23 03:24:23 +02:00
  • 6a0c1d377f fix(frontend): the channels, files and playlists faces stop exporting the stores' read hooks only the old header used peter 2026-10-23 00:30:14 +02:00
  • 4ef963b005 refactor(frontend): each page fills the floating header itself; the header knows no page peter 2026-10-23 00:23:38 +02:00
  • 0b24f2d8fa fix(frontend): the chunk guard's logic lives in the guard, so no file sits in two TypeScript projects peter 2026-10-22 23:48:16 +02:00
  • d5867bacca feat(frontend): the folders are layers — an import only goes down, a module is reached through its index.ts peter 2026-10-22 23:30:27 +02:00
  • 63a0fecc8b refactor(frontend): the flat components/ folder moves into shell/, modules/<page>/ and features/<name>/ peter 2026-10-22 23:12:45 +02:00
  • fdf8076013 release: 0.109.0 (improvement/e43-identity-diet) v0.109.0 peter 2026-10-21 03:05:48 +02:00
  • 6287fc9cf8 chore(release): 0.109.0 — one account per browser, settings that follow the account, a tab that names its account peter 2026-10-21 02:54:28 +02:00
  • 3c6c23507b fix(frontend): a page opened at a //path boots, and the account-switch copy reads right in Hungarian peter 2026-10-21 02:51:48 +02:00
  • ef99f7b5c7 fix(auth): a Google connect names its tab's account too, and a refused tab says why peter 2026-10-21 02:05:33 +02:00
  • 94418a087e fix(auth): a tab acts only as the account it was built for, and the review's other findings peter 2026-10-21 01:05:12 +02:00
  • 28b77fed1e docs: storage kinds in the canonical patterns, a password beside Google sign-in, performance mode is this device's peter 2026-10-20 23:34:43 +02:00
  • 50764a916d fix(deps): certifi 2026.10.19 (GHSA-6q48-6c7w-9gw2) peter 2026-10-20 23:14:37 +02:00
  • f21cdfa156 refactor(frontend): every stored key declares its kind, and preferences follow the account peter 2026-10-20 23:04:48 +02:00
  • d6dada7fe5 refactor(frontend): one account per browser, its local state under plain keys peter 2026-10-20 15:29:41 +02:00
  • 6645caa157 refactor(auth): one Google connect route for a sign-in and for YouTube access peter 2026-10-20 12:49:11 +02:00
  • 59ec4a28ba refactor(auth): one account per browser session peter 2026-10-20 04:36:26 +02:00
  • dc4f4f5143 test(e2e): a plain member's shell is held end to end, and a page it cannot open lands on the feed peter 2026-10-20 04:08:11 +02:00
  • 909732b3c1 release: 0.108.1 (improvement/e42-backend-units) v0.108.1 peter 2026-10-20 02:12:49 +02:00
  • 215f022fe3 chore(release): 0.108.1 — the backend in four units, each owning its tables; a first Watch later and a first resume point survive a write beside them peter 2026-10-20 02:04:56 +02:00
  • 6ea750a698 test: the commit check starts every request clean, and the fence docs claim what it holds peter 2026-10-20 01:56:31 +02:00
  • c5f121139b fix: every first watch state survives a write beside it, and a folded Watch later keeps its pin peter 2026-10-20 01:56:30 +02:00
  • b04b2cbd62 test: the rewritten write handlers commit, and three more owner filters hold peter 2026-10-20 00:45:22 +02:00
  • 3a5212cd8a fix: a first watch state and a first Watch later survive two requests at once peter 2026-10-20 00:45:22 +02:00
  • b376373af5 fix(files): a folder's kind is answered before its new name, as before peter 2026-10-20 00:45:22 +02:00
  • 8206384c91 test(fence): owner filters in any form, statement writes under any name, core commits by list peter 2026-10-20 00:45:21 +02:00
  • e27656ee7e test: the request commit check sees Core DML and row locks peter 2026-10-20 00:45:20 +02:00
  • d73cdcee97 fix(capture): every process registers every table before its first query peter 2026-10-20 00:45:20 +02:00
  • 5ce292cd28 test(fence): the unit fence has no exemptions, and the owner filter is held in every module peter 2026-10-19 23:36:01 +02:00
  • ad6ccbac05 refactor(core): the core's owner filters go through userscope, each held by a second account peter 2026-10-19 23:36:01 +02:00
  • 531eb2eef1 refactor(plex): playlists, playback, Discover and admin through the unit; the plex package is fenced peter 2026-10-19 22:42:46 +02:00
  • 2cf1b688d9 test(plex): a collection's editable flag and the mirror's reads, committed through HTTP peter 2026-10-19 22:11:57 +02:00
  • 3b0e365e26 refactor(plex): the browse, detail, people and collection pages read through queries and write through the service peter 2026-10-19 22:11:20 +02:00
  • 533571f572 refactor(plex): the unit's tables move into plex/models peter 2026-10-19 21:42:07 +02:00
  • 4b6db47083 test(catalog): the channel manager's local writes, committed through HTTP peter 2026-10-19 02:36:19 +02:00
  • 5229fd96be refactor(catalog): the HTTP layer reads through queries and writes through the service peter 2026-10-19 02:32:20 +02:00
  • 238e6f8a61 refactor(catalog): the unit's tables move into catalog/models peter 2026-10-19 02:03:14 +02:00
  • a35eece652 fix(e2e): the seed imports Reader's tables from reader/models peter 2026-10-19 01:33:32 +02:00
  • b703234c17 test(reader): the service tests hold each rule their mutant broke peter 2026-10-19 01:28:38 +02:00
  • dbb4065e7b refactor(reader): the HTTP layer reads through queries and writes through the service peter 2026-10-19 01:20:14 +02:00
  • e82f87acb0 refactor(reader): the unit's tables move into reader/models peter 2026-10-19 00:53:44 +02:00
  • e9c60f72cd refactor(capture): the HTTP layer reads through queries and writes through the service peter 2026-10-19 00:19:03 +02:00
  • 3a688fa0f5 refactor(capture): the unit's tables move into downloads/models peter 2026-10-18 23:45:53 +02:00
  • d66174ed16 test(arch): a unit's HTTP layer does no database work beyond its pin peter 2026-10-18 23:01:12 +02:00
  • c85ae42b31 release: 0.108.0 (feature/e40-job-history) v0.108.0 peter 2026-10-18 21:48:23 +02:00
  • cb9a89682a chore(release): 0.108.0 — one Activity page for runs, admin actions, the server log and quota; every background run has a history peter 2026-10-18 21:40:52 +02:00
  • b842e4e871 fix(ui): a looping pulse stops for reduced motion; the e2e waits for skeleton bones, not for any pulse peter 2026-10-18 21:40:52 +02:00
  • 5082636f15 fix(activity): a run nothing here has open reads as interrupted, a rollback sums a stopped run's spend peter 2026-10-18 21:21:19 +02:00
  • 13b7577d9f fix(activity): an ad-hoc run's row is one run's, a rollback keeps a run whole, Back reads one entry's filters peter 2026-10-18 17:32:22 +02:00
  • fad656988a fix(activity): runs keep their true outcome and spend, the page reaches every kept row, a closing dialog leaves the server log alone peter 2026-10-18 15:38:32 +02:00
  • 3021be5166 fix(activity): a run's quota reads with its unit, its outcome keeps room at a large text size, a token's audit rows read in Hungarian peter 2026-10-18 04:22:52 +02:00
  • c288ba147b fix(activity): an old audit/log link opens its tab, times read relative, one name for admin actions peter 2026-10-18 04:00:38 +02:00
  • fe6308d844 refactor(activity): the window's hours stay private to its URL state peter 2026-10-18 03:48:30 +02:00
  • 24448e7c6f feat(activity): one Activity page — runs, admin actions, server log and quota under one filter bar peter 2026-10-18 03:45:18 +02:00
  • d13483a593 feat(config): job intervals live in sysconfig, every setting says when it applies, the unread SponsorBlock default goes peter 2026-10-18 02:23:15 +02:00
  • 3bab2e7dc7 docs(scheduler): the snapshot docstring names the ad-hoc runs it now carries peter 2026-10-18 01:29:46 +02:00
  • 1b1e3cdcf2 feat(scheduler): each row shows its last three runs, an interrupted run as such, and the ad-hoc runs beside the jobs peter 2026-10-18 01:20:53 +02:00
  • 27c2fcbd2e feat(scheduler): a channel's "get full history" backfill is a recorded run, and a row knows its last three runs peter 2026-10-18 01:05:24 +02:00
  • 911527a548 fix(scheduler): the dashboard no longer says a job has not run "this session" — runs are kept across restarts peter 2026-10-17 23:22:13 +02:00
  • 8fd91b7b15 fix(scheduler): keep run history 180 days, as long as the audit log kept the runs it moved over peter 2026-10-17 23:15:17 +02:00
  • 45c0ee7d58 feat(scheduler): every background run is a durable row peter 2026-10-17 23:08:55 +02:00
  • 4b1f6d7ec2 release: 0.107.3 (improvement/dev-tooling) v0.107.3 peter 2026-10-17 21:34:53 +02:00
  • 51bf780100 chore(release): 0.107.3 — text on glass holds 4.5:1; the e2e suite runs axe, the gate lints every shell script peter 2026-10-17 21:21:37 +02:00
  • 3ada34073b fix(theme): text on glass holds 4.5:1 — light --muted kept at 6:1 on the page, tonal fills opaque peter 2026-10-17 20:06:54 +02:00
  • d74f2a9ca1 fix(deps): source-map-js 1.2.2 — the indexed-source-map denial-of-service advisory (dev tooling only) peter 2026-10-17 17:51:10 +02:00
  • a8dddc8c24 test(e2e): axe-core's WCAG A + AA rules over every page and the player (chromium only); contrast stays with the visual check peter 2026-10-17 17:48:53 +02:00
  • 460bdec406 chore(tooling): drop scripts/lint-changed.sh — the shared gate runner's Stop hook lints the turn's files, shellcheck included peter 2026-10-17 17:22:35 +02:00
  • 66181d1394 chore(gate): shellcheck joins the gate — every tracked shell script, the host binary held to a pin peter 2026-10-17 15:31:34 +02:00
  • 0a1fef28ac docs(claude): the YouTube write-error helper, the overlay and z-scale rule, and px-frozen sizes join the canonical patterns peter 2026-10-17 14:47:57 +02:00
  • fe572d9207 docs: a copy-only change runs the Conformance check's step 4 alone, in both languages peter 2026-10-17 14:27:45 +02:00
  • c8247c0dde release: 0.107.2 (improvement/gate-runner) v0.107.2 peter 2026-10-17 04:37:30 +02:00
  • 722c37a6d0 chore(release): 0.107.2 — the gate lists and runs single lanes, the backend tests use every core peter 2026-10-17 04:30:33 +02:00
  • 5ba5679239 test: tests that assumed an idle machine wait for what they assert, or carry a budget for their work peter 2026-10-17 01:08:15 +02:00
  • 926e5e9899 chore(gate): check.sh can list its lanes and run one of them peter 2026-10-16 02:53:30 +02:00
  • 9251918e08 chore(test): the DB lane runs on every core — each pytest-xdist worker gets its own database peter 2026-10-16 01:13:31 +02:00
  • 2b6d968833 release: 0.107.1 (improvement/gate-timing) v0.107.1 peter 2026-10-16 00:45:45 +02:00
  • 95e6b2c3d9 chore(release): 0.107.1 — a failed download's explanation says press Retry peter 2026-10-16 00:33:59 +02:00
  • 80c55fbf1b merge bug/download-retry-copy into improvement/gate-timing peter 2026-10-16 00:33:38 +02:00
  • 011f269152 chore(gate): every lane reports how long it took, and a run can log the times for comparison peter 2026-10-16 00:13:47 +02:00
  • dcb244dd04 fix(downloads): a failed download's explanation says press Retry, not retry it from a list that is gone peter 2026-10-15 22:56:40 +02:00
  • 08a9f4e255 release: 0.107.0 (feature/e39b-machine-access) v0.107.0 peter 2026-10-15 06:20:35 +02:00
  • 1673134c36 chore(release): 0.107.0 — API tokens for your machines, share a whole folder by link peter 2026-10-15 06:09:23 +02:00
  • 27427eef32 fix(files): ending every session and making a token lock the user without holding up rows that refer to it peter 2026-10-15 06:05:51 +02:00
  • a248ca6c13 fix(files): the token list is fresh after the sessions end, a copy again reads Copied again, the Copied button says so peter 2026-10-15 05:47:00 +02:00
  • 620f84dba4 fix(files): a token made as every session ends goes with them, and a file being shared holds its job peter 2026-10-15 05:47:00 +02:00
  • 2efa7d5a75 fix(files): an upload is said once in any order, copy buttons speak, a link list that failed says so peter 2026-10-15 04:58:17 +02:00
  • 827df7494c fix(files): ending every session ends every API token, and the share links hold their folder peter 2026-10-15 04:58:16 +02:00
  • 86712b6b0e feat(files): share a folder by link — its page lists what is in it, plays a video above the list peter 2026-10-15 02:23:24 +02:00
  • 90567718b2 feat(files): share-link tokens are kept only hashed and encrypted, and every link change is audited peter 2026-10-15 01:02:29 +02:00
  • c31d7f9d65 fix(files): an upload is announced once, as an upload, and a finish shows in Files at once peter 2026-10-14 23:54:19 +02:00
  • db56f25387 feat(files): API tokens in Settings, the Hub folder in Files, a notice before a token runs out peter 2026-10-14 23:33:34 +02:00
  • 4f58d15d3f Merge branch 'main' into feature/e39b-machine-access peter 2026-10-14 21:19:14 +02:00
  • 2c66ce1cf4 release: 0.106.2 (improvement/thumbs-and-apt-refresh) v0.106.2 peter 2026-10-14 21:17:39 +02:00
  • ce45445d17 chore(release): 0.106.2 — pictures that fail to load retry instead of breaking peter 2026-10-14 21:06:18 +02:00
  • 383d394e32 fix(ui): a picture that fails to load shows the card's own frame, then retries peter 2026-10-14 20:51:08 +02:00
  • 06e8291896 build(image): rebuild the apt-get upgrade layer when APT_REFRESH changes peter 2026-10-14 20:51:07 +02:00
  • db6b60029f Merge branch 'main' into feature/e39b-machine-access peter 2026-10-14 20:17:05 +02:00
  • 02134799cc release: 0.106.1 (bug/plex-settings-outside-click) v0.106.1 peter 2026-10-14 20:03:38 +02:00
  • c8bc843517 chore(release): 0.106.1 — the Plex player survives a click outside its Settings panel peter 2026-10-14 19:44:25 +02:00