Commit Graph

  • 113da76c36 fix(design): a user row answers as a whole card — the hover layer under its badges and buttons, a click anywhere opens the account (E28) peter 2026-09-25 23:43:26 +02:00
  • 4ef11901db fix(design): the nav rail's footer rows (language, About, Sign out) share the rail row and glyph (E28) peter 2026-09-25 17:21:01 +02:00
  • 29abf609f3 fix(design): the lab draws with the primitives' own classes, not a height-ladder copy; DESIGN no longer claims accent-color tints the colour well (E28) peter 2026-09-25 17:15:03 +02:00
  • e13d93a3ed fix(design): a toggle is pressed, never a bare aria-pressed; static labels are flat Badges with a tone, edged label spans lint-refused (E28) peter 2026-09-25 17:04:08 +02:00
  • b9850b1710 feat(release-notes): terse bilingual notes as data files — new/fixed only, the dialog lists the latest ten (E28) peter 2026-09-25 15:49:16 +02:00
  • 905a9f2856 feat(design): Fjord, a trial fifth scheme — Midnight's navy with a steel-blue accent and steel rules (E28) peter 2026-09-25 15:39:49 +02:00
  • 1d8b83c37c fix(plex): a sidecar subtitle in a legacy code page rendered its accents as U+FFFD peter 2026-09-25 15:20:31 +02:00
  • 62dbf35ea3 fix(player): the Plex bars hold while hovered, volume is the native slider, tooltips no longer re-layer the row (E28) peter 2026-09-25 14:48:45 +02:00
  • e9ccd9bc98 fix(player): the YouTube player's full window filled only its card — a blurred ancestor trapped the fixed stage (E28) peter 2026-09-25 14:20:23 +02:00
  • cc8e0648db fix(design): the button and chip hover colours were never generated — an act: variant instead of a runtime prefix (E28) peter 2026-09-25 14:13:51 +02:00
  • ff80cc96fd fix(design): rating and live colour tokens, the player's menus over its notices, the info overlay on a light theme (E28) peter 2026-09-25 13:55:26 +02:00
  • 295c1db5f1 fix(design): claim audit part 1b — whole-row switches, the field-family edge, state-layer hovers, icon links, reason-disabled controls, 24/44 targets (E28) peter 2026-09-25 03:58:17 +02:00
  • 0521149cf1 fix(design): claim audit part 1 — a closing key no longer re-presses its trigger, the Switch box and name, named z-levels (E28) peter 2026-09-25 02:25:54 +02:00
  • b4a6569d0d fix(design): the saved-view chip on one line, one Escape per layer, the /watch action row (E28 S3d) peter 2026-09-25 01:40:45 +02:00
  • 1833f594cb fix(design): an audit of the S3d claims — the float shadow, filter hints, one action size per row (E28 S3d) peter 2026-09-25 01:16:20 +02:00
  • 1615838f33 fix(design): the rail's active edge bar was clipped by the scrolling list (E28 S3d3) peter 2026-09-25 00:59:23 +02:00
  • 7fa8f4ebde feat(design): the NavRail primitive with optional short labels, the flat surfaces onto roles (E28 S3d3, B7/B5) peter 2026-09-25 00:47:46 +02:00
  • 6354454cc9 feat(design): skeleton first loads by shape on the shared reveal clock (E28 S3d2, B8) peter 2026-09-25 00:37:45 +02:00
  • c47c193ad1 feat(design): glass surfaces by role, the static Badge, LinkButton, user pickers on the Combobox (E28 S3d1) peter 2026-09-25 00:34:35 +02:00
  • db10bfbbca feat(design): the header search is a 40 glass pill; a wrapper field dims for its input only (E28 S3c) peter 2026-09-25 00:05:31 +02:00
  • dac9d89f91 feat(design): the field family, the dropdown trigger, native controls, the no-raw-input lint rule (E28 S3c) peter 2026-09-24 23:48:22 +02:00
  • 81936e9f56 feat(design): every button on its family, the chip primitive, the lint rule (E28 S3b2) peter 2026-09-24 23:03:23 +02:00
  • 86f467bd65 feat(design): the button families on the decided ladder, first half of the sweep (E28 S3b1) peter 2026-09-24 05:25:55 +02:00
  • 7d480e2ad0 feat(design): Matrix toned down to moss, text on an accent fill held to --accent-fg peter 2026-09-24 04:49:07 +02:00
  • ad136c3fe8 feat(design): the scheme set, the colour contract and the token utilities (E28 S3a) peter 2026-09-24 04:33:13 +02:00
  • 9c4a999e54 feat(design): C5 recorded, every E28 decision taken peter 2026-09-24 04:12:19 +02:00
  • 3f5634a44f feat(design): C5 redrawn around the owner's reworked Plex controls peter 2026-09-24 04:05:09 +02:00
  • f4bc60d659 feat(design): batch C recorded, the player row open as C5 (E28 S2d) peter 2026-09-24 03:27:26 +02:00
  • 7055548260 feat(design): batch B recorded, batch C in the design lab (E28 S2c) peter 2026-09-24 03:10:00 +02:00
  • 477271907e feat(design): batch A recorded, batch B in the design lab (E28 S2b) peter 2026-09-24 02:21:20 +02:00
  • 50923bb684 fix(build): keep JSX line-end spaces in dev and vitest peter 2026-09-24 02:21:20 +02:00
  • d2e40dcffb feat(design): design lab + DESIGN.md skeleton (E28 S2a) peter 2026-09-24 01:34:12 +02:00
  • 58878958d8 merge: chore/e2e-password-from-store (E2E password from the secret store, no committed default) peter 2026-09-23 23:05:17 +02:00
  • b47d22cf3b chore(e2e): no committed default for the E2E account password peter 2026-09-23 02:35:19 +02:00
  • e804ff3b8e release: 0.95.0 (improvement/p1-upload-auth-first) v0.95.0 peter 2026-09-23 01:32:45 +02:00
  • cd6f119883 chore(release): 0.95.0 peter 2026-09-23 01:32:32 +02:00
  • 321776480e fix(uploads): make the drift guards fail for the reasons they claim peter 2026-09-23 01:20:22 +02:00
  • 7c0647f87a fix(uploads): finish the sweeps round 1 left half-done peter 2026-09-22 23:31:55 +02:00
  • efd7b217ca fix(uploads): make both caps answerable, and stop holding a connection peter 2026-09-22 22:41:22 +02:00
  • 3d7ef9e945 fix(uploads): drain an over-cap body before refusing it peter 2026-09-22 02:11:21 +02:00
  • 7fce7a7ce5 chore(deps): drop python-multipart -- nothing parses a multipart body now peter 2026-09-22 01:59:09 +02:00
  • f5018bdcbc fix(uploads): read the body after authenticating, not before it peter 2026-09-22 01:59:03 +02:00
  • b82c22b888 release: 0.94.0 (improvement/e27-contract-hardening) v0.94.0 peter 2026-09-22 00:34:12 +02:00
  • f839a461e6 chore(release): 0.94.0 — framework & contract hardening peter 2026-09-22 00:34:06 +02:00
  • 8525666913 test: round 4 — an assertion that could not fail, and a comment that did not add up peter 2026-09-22 00:22:30 +02:00
  • 3f24248e01 fix: round 3 — a vacuous ordering test, a clamp that was a silent rewrite, a regex that missed peter 2026-09-22 00:12:30 +02:00
  • 6b86673af4 chore: untrack tsconfig.tsbuildinfo, and hold the CI baseline the way the local gate does peter 2026-09-21 23:59:59 +02:00
  • d924c665f8 fix(frontend): round 2 — the popover latch reset read a stale, negative count peter 2026-09-21 23:59:59 +02:00
  • aa51644f5f fix(security): round 2 — the SEC-20 fix had four defects of its own peter 2026-09-21 23:59:45 +02:00
  • 378b7559e4 build(frontend): finish the React 19 move, and hold the versions that were left in prose peter 2026-09-21 23:33:02 +02:00
  • 05121fbc99 fix(security): SEC-20's exemptions become raised ceilings, and the 413 is dressed peter 2026-09-21 23:32:49 +02:00
  • bf518223e5 fix(frontend): the scheduler's two number editors stop swallowing what you typed peter 2026-09-21 23:32:32 +02:00
  • 332d24a646 fix(frontend): four state defects the deep-review found in the E27 S2 sweep peter 2026-09-21 23:32:22 +02:00
  • c5e022f056 refactor(frontend): the long tail — and eslint-suppressions.json is gone (E27 S2) peter 2026-09-21 01:44:21 +02:00
  • 4065ac7e6a refactor(frontend): the two players — one real ordering bug avoided, five suppressions gone (E27 S2) peter 2026-09-21 00:27:15 +02:00
  • ce08fc2aec refactor(frontend): a stable useHistorySubview, and PlexBrowse can stop disabling the check (E27 S2) peter 2026-09-21 00:20:05 +02:00
  • ea6d829c29 refactor(frontend): the context providers adjust state in render, not after it (E27 S2) peter 2026-09-21 00:12:44 +02:00
  • 6a7ff330f6 refactor(frontend): the shared hooks in lib/ stop lying about their deps (E27 S2) peter 2026-09-21 00:07:12 +02:00
  • 7e1aeeb9fe refactor(frontend): honest effect deps in the app shell and the ui layer (E27 S2) peter 2026-09-20 23:57:08 +02:00
  • 7d682c90d5 build(frontend): React 18 -> 19 with the React Compiler (E27 S1) peter 2026-09-20 23:21:08 +02:00
  • cc9fc3b544 build: pin one Python version across the app, the images and the gate peter 2026-09-20 23:02:11 +02:00
  • c9101e3450 ci: type-check the backend — the gate's ninth lane (E27 S3) peter 2026-09-20 23:02:02 +02:00
  • 51daf3e388 feat(security): cap every request body before auth runs (SEC-20) peter 2026-09-20 22:51:32 +02:00
  • 09d351a0e7 docs(ci): the two gate jobs queue, they do not run in parallel peter 2026-09-20 22:05:56 +02:00
  • b5078003ce release: 0.93.2 (bug/ci-node-version-split) v0.93.2 peter 2026-09-20 21:49:56 +02:00
  • f2c32cfb8e chore(release): 0.93.2 — a Plex amount reads the same in every browser peter 2026-09-20 21:49:36 +02:00
  • 1453fa4a33 ci: run the gate on branch pushes only, not on release tags peter 2026-09-20 19:47:19 +02:00
  • efe106dfda build: pin one Node major across the dev, CI and build machines peter 2026-09-20 18:06:24 +02:00
  • ec63056bd7 test(api): assert the export body's brand, not which realm built its Blob peter 2026-09-20 16:33:26 +02:00
  • 09becb3d00 fix(plex): pin the compact currency format instead of inheriting the engine's peter 2026-09-20 16:33:26 +02:00
  • 8d2ec5e867 release: 0.93.1 (bug/preview-crashes-the-tracker) v0.93.1 peter 2026-09-20 07:55:37 +02:00
  • 0e9839e73d chore(release): 0.93.1 — the report preview works again peter 2026-09-20 07:51:16 +02:00
  • 05ab963951 fix(issues): the preview must not ask the tracker for a repository context peter 2026-09-20 07:51:08 +02:00
  • 8142484347 release: 0.93.0 (feature/e16-debug-issue) v0.93.0 peter 2026-09-20 05:54:26 +02:00
  • 0d91b82f86 chore(release): 0.93.0 — report a fault from inside the app peter 2026-09-20 05:54:03 +02:00
  • 90fc86d437 fix(diagnostics): deep-review round 4 — a claim only its owner may write, and a player that keeps the Tab peter 2026-09-20 04:30:42 +02:00
  • 2fe58073e4 fix(diagnostics): deep-review round 3 — a keyboard owner that is not a Tab trap peter 2026-09-20 02:43:56 +02:00
  • bc03e82687 fix(issues): a send keeps its claim through every step, not just up to the issue peter 2026-09-20 01:03:23 +02:00
  • 3f983e6d76 fix(diagnostics): deep-review round 2 — a send that claims, not one that blocks peter 2026-09-20 00:51:12 +02:00
  • 134ec9a68e fix(diagnostics): deep-review round 1 — a send that cannot race, lose or repeat itself peter 2026-09-20 00:09:52 +02:00
  • 9cf177b198 feat(diagnostics): send a bug report to a private Gitea issue tracker (E16 S4) peter 2026-09-19 22:48:20 +02:00
  • a5fae489e0 test: a request that raises is rolled back, as production rolls it back peter 2026-09-19 22:48:20 +02:00
  • 8d0083d4e4 feat(diagnostics): the issue composer — draft, review, screenshots, zip export (E16 S3) peter 2026-09-19 22:26:49 +02:00
  • 9f177557d2 docs(ui): the toast dock in the primitives catalog peter 2026-09-19 22:08:21 +02:00
  • 46fce4a767 feat(diagnostics): the debug recorder — start, the pill, steps, screenshots, stop (E16 S2) peter 2026-09-19 22:08:10 +02:00
  • 2d9595b0e5 feat(ui): a control can dock under the toasts and ride every toast host peter 2026-09-19 22:08:10 +02:00
  • a7d7456279 feat(diagnostics): debug sessions — start, stop, the tag on every line, screenshots (E16 S1) peter 2026-09-19 21:38:53 +02:00
  • 44a792c34f test(i18n): a 404 target the scan cannot read fails the backend-id contract peter 2026-09-19 21:38:53 +02:00
  • 3987cd4260 release: 0.92.0 (improvement/debt-burn) v0.92.0 peter 2026-09-19 19:53:37 +02:00
  • 95d9ed4aa6 chore(release): 0.92.0 peter 2026-09-19 19:53:32 +02:00
  • 8d0063d514 fix(ui): the reader's own use of a stand-in stops the restore; the pill's name carries its cap peter 2026-09-19 19:30:27 +02:00
  • 0ca0cac534 fix(api): a waiting reorder deals from the fresh order; the commit check sees staged writes peter 2026-09-19 19:30:27 +02:00
  • cf0c55ba80 fix(a11y): names that carry what they show; the unused-key check stops covering whole files peter 2026-09-19 19:19:43 +02:00
  • fa4f823fc8 fix(ui): Back finds the item again past the focus keeper; nested drags stay in their list peter 2026-09-19 19:19:43 +02:00
  • 884060891e test: a handler that flushes a write and never commits it fails its test peter 2026-09-19 19:19:30 +02:00
  • 955c8c3445 fix(api): a token hiccup is not "reconnect"; reorders and approvals are one unit each peter 2026-09-19 19:19:29 +02:00
  • 99df44d7fb fix(api): mutations answer ok; route helpers flush and leave the commit to the handler peter 2026-09-19 18:21:06 +02:00
  • 30fbdc52b2 fix(ui): a focused, disabled FocusSafeButton no longer lights up on hover peter 2026-09-19 18:14:18 +02:00
  • 046ff735cf test: close the last coverage debt the roadmap still listed peter 2026-09-19 18:14:18 +02:00
  • 7afaba0547 feat(playlists): say which lists YouTube's API cannot give us peter 2026-09-19 17:58:40 +02:00