2bdcebdb34
fix(notifications): a confirm names its user and channel again; t() and a notice's text are kept apart by a contract
peter2026-10-30 01:54:00 +01:00
046dde44a4
test(notifications): the center re-says its rows after a switch, a repeat coalesces by content; e2e helper fails with a cause
peter2026-10-30 00:17:46 +01:00
74f58ea001
fix(notifications): the English log formats its numbers in English; the ui/ contract sees msg() keys
peter2026-10-30 00:15:22 +01:00
b515c16117
fix(notifications): a notice's button is said when shown, like its text
peter2026-10-30 00:10:38 +01:00
4a0d4b0964
fix(notifications): a notice value is no plain string, so a translated name cannot freeze in one language
peter2026-10-30 00:03:48 +01:00
cb8b99e0e7
fix(notifications): keep the history under a key of its own, so an older build never reads its new shape
peter2026-10-29 23:54:48 +01:00
e5c75702e8
fix(views,tags): a rename onto a taken name names the taken one, not the row's old name
peter2026-10-29 23:07:54 +01:00
4ef772d37b
fix(notifications): a notice keeps what to say and says it in the reader's language when shown
peter2026-10-29 22:37:14 +01:00
6986eb1937
test(e2e): look for a hittable channel link until one is, not once on a fresh load
peter2026-10-29 22:37:14 +01:00
91256b10b0
test(nav): pin the restore's last look and the clearing of the name it looks for
peter2026-10-29 01:31:41 +01:00
b22e903174
fix(notifications): Earlier opens on Back only for a row that can be nowhere else, and Mark read reads read at once
peter2026-10-29 01:31:40 +01:00
d6e72d7576
fix(notifications): Back to a row that folded away since opens Earlier on it
peter2026-10-29 00:47:52 +01:00
e3a4593acf
fix(nav): Back looks for a moved item only in the page's lists, once its own list has had its chance, and its reveal stops the scroll restore
peter2026-10-29 00:47:52 +01:00
fa271a31b9
fix(notifications): Mark all read waits for the fresh list, is not offered where it cannot act, and a row says it is unread
peter2026-10-29 00:38:34 +01:00
947efaba6e
docs(design): the notification order's decision row carries what it was chosen over and why
peter2026-10-29 00:38:34 +01:00
22d873ed49
fix(nav): an item Back finds in another list is brought into view
peter2026-10-28 22:04:07 +01:00
d825aff30d
fix(notifications): a row is named by what it is about, not its kind alone
peter2026-10-28 22:04:06 +01:00
9dd56e94d4
docs(design): the notification center's order and its Earlier fold
peter2026-10-28 21:54:00 +01:00
25ad2ee1ba
test(ui): a self-closing dialog leaves the focus in a menu that stays open
peter2026-10-28 21:54:00 +01:00
c86ec7f7a5
fix(nav): Back finds an item that moved to another list by its name
peter2026-10-28 21:54:00 +01:00
0469812499
fix(notifications): Mark all read empties a band of read rows, and a read landing mid-write cannot refill it
peter2026-10-28 21:54:00 +01:00
ee658b8bfc
test(plex): pin the late-checkpoint race, its window, and the bulk mark's push supersede
peter2026-10-28 21:53:59 +01:00
52b93d0014
fix(plex): a restart that fails to start still deletes the session it moved aside
peter2026-10-28 21:53:59 +01:00
c3ad7684ea
test(ui): pin the notifications Earlier fold as a plain Pressable
peter2026-10-28 20:44:01 +01:00
a5666bfde9
style(notifications): the Earlier fold reads as a section heading, like its siblings
peter2026-10-28 20:42:18 +01:00
f49dc6532f
feat(notifications): what asks for you comes first, then one stream; old read rows fold
peter2026-10-28 20:01:21 +01:00
0d410592e2
fix(plex): a stale finish refusal no longer sticks, and a refusal keeps the player's detail
peter2026-10-28 19:05:24 +01:00
7e5d4a7d93
fix(ui): a closing dialog's focus restore reaches the dialog left standing above it, and survives a menu
peter2026-10-28 19:05:24 +01:00
24190e4c16
fix(plex): a checkpoint sent just before the finish no longer lands on the watched row
peter2026-10-28 18:56:12 +01:00
e96a562f14
fix(plex): a segment name ffmpeg never spells is refused; teardown no longer holds the registry lock
peter2026-10-28 18:48:21 +01:00
5686759bca
fix(nav): a page settling keeps a reload's overlay entry; an old entry's sub-view goes to its own (review round 4)
peter2026-10-28 01:39:26 +01:00
99a33e7fd1
fix(history): a sub-view reads only its own module's from the entry it mounts on
peter2026-10-28 00:29:40 +01:00
8804bdde63
Merge branch 'main' into feature/e46-url-is-the-view
peter2026-10-28 00:11:30 +01:00
9d6d7525e5
fix(feed): a live search whose first page failed offers Retry where trying again can help
peter2026-10-25 14:05:07 +01:00
ee4a5b46f8
refactor(player): the watched toggle is stamped at each answer, with no hold while a write is out
peter2026-10-25 13:56:40 +01:00
0bc1024287
fix(player): marks are weighed when answered, lit and pressed hold under the pointer, and Restart is one glyph
peter2026-10-25 13:51:26 +01:00
13f65b4844
test(db): lock probes read only their own database's locks
peter2026-10-25 13:51:26 +01:00
2e1934689f
fix(search): a search that never reached YouTube gets its slot back, and a busy one waits a bounded time
peter2026-10-25 13:51:25 +01:00
84db570951
fix(player): marks give way to newer lists, Watch later items mark, and auto-advance has its own glyphs
peter2026-10-25 04:01:43 +01:00
b25179c06a
fix(search): a paid search keeps its slot, refunds are few, and the budget check holds the call
peter2026-10-25 04:01:42 +01:00
620dd8178f
feat(player): the side panel's list controls and watch toggle are glyphs on one line
peter2026-10-25 02:43:01 +01:00
5d009964d8
fix(i18n): the related cap message reads right at any limit
peter2026-10-25 02:16:20 +01:00
4b5b66343d
fix(player): related marks survive, Restart restarts, and refused pages offer nothing to click
peter2026-10-25 02:50:34 +02:00
ed51f5be7e
fix(search): the API-sourced live search takes its slot under the lock too
peter2026-10-25 02:50:34 +02:00
005784e291
test(player): a related video's end leaves an auto-advancing queue where it was
peter2026-10-25 00:42:34 +02:00
b5045165c0
fix(player): a related video played is tracked, and its list is honest about its state
peter2026-10-25 00:32:28 +02:00
d53729a63d
fix(youtube): a related page is empty only on YouTube's own word
peter2026-10-25 00:32:27 +02:00
b04b51c909
fix(search): every related and live-search request takes a slot, and a failed one gives it back
peter2026-10-25 00:32:26 +02:00
7d45c4f59f
fix(keys): a list inside the topmost layer walks by keyboard
peter2026-10-24 22:45:26 +02:00
5205091116
refactor(player): the related-region pref key stays private to its list
peter2026-10-24 17:03:01 +02:00
686c673fb2
feat(player): a video's related videos, on demand beside it
peter2026-10-24 16:57:52 +02:00
8b37c470ba
feat(catalog): a video's related videos, without what the user has seen
peter2026-10-24 16:00:37 +02:00
0892a1a400
chore(release): 0.109.1 — the frontend in one folder per page with lint-held layers; an edited saved view survives a visit away
peter2026-10-23 14:13:44 +02:00
b443ac0c84
fix(frontend): the layer gates cover what the move left outside them, and each page keeps its own logic
peter2026-10-23 13:45:40 +02:00
ad05932217
docs(frontend): the canonical table and the ui README name the module shape; adding a page is written down
peter2026-10-23 12:52:04 +02:00
6ae7825a14
refactor(frontend): the module stores mount from the registry, and the feed and Plex each own their saved views
peter2026-10-23 04:59:10 +02:00