noelorin
|
f48f0c8d51
|
chore(product): replace template branding with 弹弹 Web copy and product SEO
|
2026-09-26 03:13:48 +08:00 |
noelorin
|
11a18a367c
|
fix(ui): mobile media nav, product chrome, empty CTAs, density label, a11y
|
2026-09-26 01:11:13 +08:00 |
noelorin
|
a7873891f2
|
fix: caveman-review findings (danmaku match, SSRF, progress ownership, i18n errors, paging, QueryClient)
|
2026-09-26 00:49:08 +08:00 |
noelorin
|
e65acd1e9c
|
fix(models,dao): media_items unique key includes mountId
|
2026-09-25 12:15:50 +08:00 |
noelorin
|
3af8ebead7
|
fix(trpc): stream Content-Type fallback by extension
|
2026-09-25 12:15:50 +08:00 |
noelorin
|
d9ebcb10bd
|
fix(trpc): open danmaku official API match/comment + 16MB MD5
|
2026-09-25 12:15:50 +08:00 |
noelorin
|
728a576a4f
|
fix(web): danmaku density range 0.1-1 per product ruling
|
2026-09-25 11:30:44 +08:00 |
noelorin
|
f96afbc4b5
|
feat(web): danmaku settings page + watch local prefs
|
2026-09-25 05:29:28 +08:00 |
noelorin
|
8ecfee686c
|
fix(web): watch error states and unload progress flush
|
2026-09-25 05:15:56 +08:00 |
noelorin
|
426a65e448
|
feat(web): artplayer watch page with danmaku overlay and progress
|
2026-09-25 05:04:44 +08:00 |
noelorin
|
c7c6e30a56
|
feat(web): library grid + bangumi manual bind
|
2026-09-25 04:51:16 +08:00 |
noelorin
|
99fd2a58e7
|
style: biome format browse/ensurePath changes
|
2026-09-25 04:36:10 +08:00 |
noelorin
|
5a291a9127
|
feat(web): browse page with ensurePath play
|
2026-09-25 04:35:58 +08:00 |
noelorin
|
2c6bc8818d
|
feat(web): protect media routes + i18n keys
|
2026-09-25 03:23:10 +08:00 |
noelorin
|
94e923486e
|
fix(trpc): stream backpressure via pull-driven pause and RFC range edge cases
|
2026-09-25 03:17:42 +08:00 |
noelorin
|
cfddf5bbe1
|
feat(web): authenticated range stream proxy
|
2026-09-25 03:12:49 +08:00 |
noelorin
|
f009d2cce4
|
feat(trpc): media router mount/library/scrape/playback/danmaku
|
2026-09-25 03:06:12 +08:00 |
noelorin
|
8839763f24
|
feat(trpc): playback progress + danmaku open-network relay
|
2026-09-25 03:00:16 +08:00 |
noelorin
|
c37f9dcf62
|
fix(trpc): bound scrape concurrency and surface DB errors
|
2026-09-25 02:56:23 +08:00 |
noelorin
|
94d389b855
|
feat(trpc): library scan + bangumi scrape
|
2026-09-25 02:52:08 +08:00 |
noelorin
|
cdc40d61b1
|
feat(trpc): webdav client + mount service with secret encryption
|
2026-09-25 02:48:17 +08:00 |
noelorin
|
2f5000cc97
|
feat(dao): mount/media/progress/danmaku-cache daos
|
2026-09-25 02:44:01 +08:00 |
noelorin
|
f94aabe8a5
|
feat(models): mounts/media_items/playback_progress/danmaku_cache
|
2026-09-25 02:40:32 +08:00 |
noelorin
|
3143a9c7d0
|
fix(types): exclude test files from build output
|
2026-09-25 02:36:59 +08:00 |
noelorin
|
c0779dffdf
|
feat(types): media mount/library/playback/scrape/danmaku schemas
|
2026-09-25 02:35:52 +08:00 |
noelorin
|
a5ba7124dc
|
chore: initial app template scaffold
Astro + tRPC + Drizzle monorepo starter with auth/user vertical slice.
No product domain logic; extend via the user slice pattern.
|
2026-09-24 15:21:45 +08:00 |