Commit Graph

  • d1704a5519 revert: the Modal Escape guard for a fullscreen own-content video peter 2026-10-07 23:59:32 +02:00
  • 121ebeebc1 fix(ui): an Escape while a dialog's own video is fullscreen does not close the dialog peter 2026-10-07 23:57:04 +02:00
  • ee5290ba01 refactor(plex): the item progress body extends the shared checkpoint peter 2026-10-07 23:16:38 +02:00
  • dd6a666ad1 test(player): hold the session stop and the kept-point rule to the server peter 2026-10-07 23:16:38 +02:00
  • 392099770a fix(plex): an episode Plex has no number for is named by its title alone peter 2026-10-07 23:16:38 +02:00
  • 2aa3ac6e85 fix(player): the browser Back peels each layer over the Plex video, one press at a time peter 2026-10-07 23:16:38 +02:00
  • 891dc628f3 fix(library): a listing poll can no longer put back an older resume point peter 2026-10-07 23:16:25 +02:00
  • 0a35f2a3b1 fix(player): a stale session answer can no longer stop the playback that won peter 2026-10-07 23:16:25 +02:00
  • d25a132495 fix(ui): a dialog whose own video goes fullscreen no longer crashes the app peter 2026-10-07 23:16:25 +02:00
  • 61d3a1a189 chore(db): drop plex_items.markers, a column nothing writes or reads peter 2026-10-07 02:23:37 +02:00
  • d482a5e8e2 chore(dev): the dev proxy answers a failed connect with 502, as the prod proxy does peter 2026-10-07 02:23:37 +02:00
  • 2064373ac2 fix(history): a step back never leaves the app for an older page peter 2026-10-07 02:23:37 +02:00
  • 0cda5b6dd4 fix(player): only the credits that end an item move on to the next one peter 2026-10-07 01:48:10 +02:00
  • f3c94641a7 fix(player): a library item played from the start keeps its point peter 2026-10-07 00:36:28 +02:00
  • 59b27467ab feat(player): the OS media controls, the basic keys and resume for the library and shared-link players peter 2026-10-06 23:55:41 +02:00
  • 02feaa9a1c refactor(player): one panel at a time over the Plex video, and one Back cascade peter 2026-10-06 23:04:35 +02:00
  • c1058f1d5a refactor(player): the Plex session machine is a tested engine, one request per item in flight peter 2026-10-06 22:31:48 +02:00
  • 23f16b69df release: 0.101.0 (improvement/e36-delivery) v0.101.0 peter 2026-10-06 21:14:35 +02:00
  • c813814c3c chore(release): 0.101.0 peter 2026-10-06 21:04:19 +02:00
  • ed6facb703 fix(downloads): a conversion's commit, a stopped upload, the fast join and a clip's copy hold up peter 2026-10-06 21:02:07 +02:00
  • d44d8d6dda fix(gate): knip sees the watch entry, the build must emit watch.html, and two hand copies are held peter 2026-10-06 03:19:33 +02:00
  • b20e9a3947 fix(player): the stacked layout's minimum width no longer clips the wide one peter 2026-10-06 03:19:33 +02:00
  • 6073a006b8 fix(downloads): an upload's cancel, progress, failure and notice speak of an upload peter 2026-10-06 03:19:32 +02:00
  • dba4758c59 fix(watch): a link whose video is being made again says so, in the page's language peter 2026-10-06 03:19:32 +02:00
  • 68cfc7e25d fix(downloads): an upload's conversion is guarded, counted, named and cleaned up peter 2026-10-06 03:19:32 +02:00
  • 00886d92fe fix(player): the YouTube player keeps its size on a short window and when maximised peter 2026-10-05 23:40:13 +02:00
  • e7d2eb8cf6 test(downloads): what a share link serves passes the phone-safe rule peter 2026-10-05 21:05:22 +02:00
  • e886890d6e perf(watch): a shared link loads the player, not the app peter 2026-10-05 20:51:39 +02:00
  • 5561d9a379 feat(downloads): every ready file is phone-safe — uploads and clips too peter 2026-10-05 03:16:27 +02:00
  • 2768ab5bdd fix(gate): the plan-code guard catches decision codes, and the purge takes them peter 2026-10-05 03:16:13 +02:00
  • 8c79590165 release: 0.100.0 (improvement/e35-tooling) v0.100.0 peter 2026-10-05 01:42:39 +02:00
  • eef3ac9c5c chore(release): 0.100.0 peter 2026-10-05 01:14:41 +02:00
  • 4ba7c966d7 fix(nav): the dead-page rewrite does not restore a spent focus stamp peter 2026-10-05 01:13:06 +02:00
  • 513dd8175a fix(auth): becoming admin through ADMIN_EMAILS drops the password, on any sign-in peter 2026-10-05 01:13:06 +02:00
  • c4298b0a73 docs(comments): no WebSocket and no CI in the present tense peter 2026-10-05 00:50:36 +02:00
  • 5ca2a0e6ee fix(gate): the plan-code guard catches bare sprint and phase codes, and the purge takes the P ones peter 2026-10-05 00:50:36 +02:00
  • 5257d57196 fix(nav): Back onto a removed page also rewrites the entry to the feed peter 2026-10-05 00:50:35 +02:00
  • 58ad95263c fix(auth): a Google sign-in that makes an account admin drops a password nobody proved peter 2026-10-05 00:50:35 +02:00
  • 96ad1ef306 docs(comments): correct comments the cuts left stale peter 2026-10-05 00:12:23 +02:00
  • d1bbe4524c fix(gate): close the gaps in the plan-code guard, the button lists and the tooling peter 2026-10-05 00:12:22 +02:00
  • eecc195b7e fix(migrations): dropping the demo also takes its reset job's interval-change audit rows peter 2026-10-05 00:12:22 +02:00
  • 2f901ad643 fix(nav): Back onto a page this build no longer has lands on the feed peter 2026-10-05 00:12:22 +02:00
  • 1f357b0c21 fix(auth): Google adoption revokes the password of a never-activated account peter 2026-10-05 00:12:22 +02:00
  • fb962682eb chore(blame): skip the plan-code purge in git blame peter 2026-10-04 23:03:27 +02:00
  • 4e71723a07 test(comments): no plan code lands in the code again peter 2026-10-04 23:03:18 +02:00
  • 4aaaaa7860 chore(comments): drop epic, sprint and review-round ids from the code peter 2026-10-04 23:03:17 +02:00
  • c73d8be094 docs(welcome): retake the landing screenshots on today's UI peter 2026-10-04 22:25:14 +02:00
  • 30545d0d88 fix(gate): --brief leaves the test database's own log out of an excerpt peter 2026-10-04 22:18:09 +02:00
  • ac702192c9 docs(claude): drop the canonical-pattern rows a lint rule already holds peter 2026-10-04 22:12:02 +02:00
  • 24c47d12bd refactor(backend): select() and an inline now everywhere, held by a test peter 2026-10-04 22:12:02 +02:00
  • ab76166878 docs(gates): basedpyright keeps new-errors-only, without a burn-down mandate peter 2026-10-04 22:09:53 +02:00
  • a42f346a32 test(gates): the snapshot holds a config per scope, not a path per file peter 2026-10-04 22:09:38 +02:00
  • f2fe0fc0df build(gate)!: coverage leaves the gate and runs on demand peter 2026-10-04 22:07:00 +02:00
  • ca707fd390 build(eslint): focus-safe-disabled folds into button-primitive peter 2026-10-04 22:06:21 +02:00
  • 2eb20ca227 build(eslint): one px-frozen box selector for box utilities and grid minimums peter 2026-10-04 22:03:19 +02:00
  • adaa7dc23c build(eslint): drop the Z_RAW and EDGED_LABEL selectors peter 2026-10-04 22:00:56 +02:00
  • 91f6a77fa3 build(eslint): drop the three React Compiler rules that cannot fire on 7.1.1 peter 2026-10-04 21:59:55 +02:00
  • 36653886d5 build(frontend)!: knip drops --production; plain knip stays peter 2026-10-04 21:59:27 +02:00
  • 7e681e112e test(gates)!: the size/complexity ratchet leaves the gate; audit_metrics reports it peter 2026-10-04 21:58:26 +02:00
  • 3642397f63 fix(tooling): audit_metrics counts the demo footprint by the banned word peter 2026-10-04 21:50:48 +02:00
  • 6d8b7be6d8 feat!: remove the shared demo account peter 2026-10-04 21:50:48 +02:00
  • cca3315836 feat!: remove direct messaging (chat) peter 2026-10-04 21:02:03 +02:00
  • 7f08c510bf feat(auth)!: remove the public access-request endpoint peter 2026-10-04 21:02:03 +02:00
  • a499f00209 refactor(compose): localdev is an override of docker-compose.yml, not a copy peter 2026-10-04 20:09:58 +02:00
  • c2bf8fb7f6 feat(tooling): audit_metrics.py — size, complexity, gate weight and a speed baseline peter 2026-10-04 20:09:58 +02:00
  • 11d35910fd feat(tooling): lint-changed.sh — fast lint lanes on the uncommitted files, usable as a Stop hook peter 2026-10-04 20:09:58 +02:00
  • 27f48b7a8b feat(gate): check.sh --brief prints a red lane's first error lines only peter 2026-10-04 20:09:58 +02:00
  • bc856ab2af test: warm cold dynamic imports before the timed cases peter 2026-10-04 20:09:58 +02:00
  • 0dfb4a984b release: 0.99.2 (bug/b1-e34-defects) v0.99.2 peter 2026-10-04 18:28:53 +02:00
  • 5bcd1d8d8a chore(release): 0.99.2 peter 2026-10-04 18:19:37 +02:00
  • f49789665e fix(i18n): label the history cleanup's quota_reaped result peter 2026-10-04 18:03:19 +02:00
  • 0e077b84c8 fix(search): the live-search tooltip says what a search costs peter 2026-10-04 17:53:19 +02:00
  • ce8ccfc3c0 fix(quota): prune quota history past a retention window peter 2026-10-04 17:53:19 +02:00
  • 33dec56e45 fix(worker): obey the stored concurrency and log level, live peter 2026-10-04 17:53:19 +02:00
  • 2a699e26ba release: 0.99.1 (improvement/drop-ci) v0.99.1 peter 2026-10-04 06:45:48 +02:00
  • 13c8c05661 chore(release): 0.99.1 peter 2026-10-04 06:36:06 +02:00
  • cc414de952 build: the gate is scripts/check.sh, and CI goes peter 2026-10-04 06:20:58 +02:00
  • 0528b35f2d release: 0.99.0 (feature/e32-gate-integrity) v0.99.0 peter 2026-10-04 05:19:05 +02:00
  • cb46774851 chore(release): 0.99.0 peter 2026-10-04 05:09:33 +02:00
  • f1cc6ce5dc fix: the reconcile scan's return type names its settled sections; the composer stays at its size ceiling peter 2026-10-04 05:04:14 +02:00
  • 4efe799eda fix(ui): the issue composer opens on its title, not on the Edit switch peter 2026-10-04 04:56:57 +02:00
  • 40b27f2982 fix(sync): a channel with no uploads backfills as done, not as a failure peter 2026-10-04 04:51:25 +02:00
  • 0314c4cce2 fix(plex): the watch reconcile settles each library on its own walk peter 2026-10-04 04:49:55 +02:00
  • 182ec31120 test(gates): hold the lint and lane configs to a committed snapshot peter 2026-10-04 04:47:10 +02:00
  • 12a39f5291 fix(plex): the watch reconcile clears only what it walked, and doubts a mirrored 0 peter 2026-10-04 04:16:52 +02:00
  • 79704b0001 fix(youtube): "this playlist no longer exists" only where the user picked that list peter 2026-10-04 04:16:52 +02:00
  • 4191189b4c fix(ui): a late form takes a dialog's focus once, even if it arrived elsewhere peter 2026-10-04 04:16:52 +02:00
  • 7dbda60815 fix(ui): an undo in the same tick as a rebase steps back to a rebased snapshot peter 2026-10-04 04:16:52 +02:00
  • d1df76e8e5 test(gates): the complexity ratchet names a function by what it is bound to peter 2026-10-04 04:16:52 +02:00
  • 3f6a9efd57 test(gates): the register test parses ruff's TOML and holds pytest.ini line by line peter 2026-10-04 04:16:52 +02:00
  • 64e8f1da3d fix(lint): E402 is on — the ignore meant for main.py had let 11 late imports in elsewhere peter 2026-10-04 03:14:24 +02:00
  • a1224e9a8c test(gates): the repo-root scripts are linted and format-checked peter 2026-10-04 03:00:49 +02:00
  • da4b19a39a docs(lint): the config comments say which rules can report, and count what is suppressed peter 2026-10-04 03:00:49 +02:00
  • 5a74cf86b7 test(api): the wire-key checks send every filter field, and tsc says when one is new peter 2026-10-04 02:57:09 +02:00
  • e432dc2780 test(gates): the complexity ratchet holds each function by name, and its scope is registered peter 2026-10-04 02:55:07 +02:00
  • 3741d1a46d fix(playlists): a list reopened from the cache keeps its rows peter 2026-10-04 02:48:10 +02:00
  • 98ec1abf25 test(gates): the register test reads every config block, option and key, not eight samples and severities peter 2026-10-04 02:37:33 +02:00
  • e5b155ada9 refactor(ui): reuse the store, media-query and deleted-tag rules the review found rebuilt, and name a loading pick peter 2026-10-04 02:29:03 +02:00
  • e09d613b04 fix(ui): a reviewed log takes the focus back once, and a dialog's focus survives a Retry peter 2026-10-04 02:29:03 +02:00
  • 38943fa93e fix(maintenance): one clock per run, so a video phase 1 recovers is not fetched again in phase 2 peter 2026-10-04 02:14:04 +02:00