| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | fix(security): sanitize badge_wall_css server-side, render via textContent | Fuwn | 29 hours | 1 | -0/+2 |
| | | | | | | | | | | | | | | | | | Custom badge-wall CSS was sanitised only client-side with a fragile regex and injected via innerHTML, while the stored value stayed raw. Sanitise at the write boundary instead (setCSS, covering both the REST and GraphQL paths) with a css-tree pass that parses leniently and drops @import, behavior/-moz-binding, expression()/javascript: values, and </style> break-out attempts; render with textContent instead of innerHTML so break-out is impossible by construction (CSP already blocks inline script). css-tree stays server-only. A behaviour-gate test confirms ordinary CSS (backdrop-filter, content, url(), @media, @keyframes) is preserved while the dangerous constructs are removed. The previous regex also silently stripped all `content:` declarations; those now render correctly. | ||||
| * | fix(security): sanitize third-party RSS HTML before {@html} | Fuwn | 38 hours | 1 | -0/+1 |
| | | | | | | | | | | | | The /updates page rendered manga/novel feed fields (content, titles, series names) from mangaupdates/syosetu/wlnupdates via {@html} with no sanitization. CSP already blocks script execution, but injected markup could still phish, redirect, or track. Add sanitizeFeedHtml (DOMPurify with a small safe allow-list) and apply it on ingest. A behaviour-gate test plus a check against the live mangaupdates feed confirm legitimate formatting (entities, <i>/<b>/<a href>) is preserved while <script>, event handlers, <iframe>/<meta>/<style> and javascript: URLs are removed. | ||||
| * | feat(scroll): add global smooth scrolling via Lenis | Fuwn | 2026-05-08 | 1 | -0/+1 |
| | | |||||
| * | fix(dev): route portless .localhost URL through app origin and proxy CORS | Fuwn | 2026-04-18 | 1 | -1/+1 |
| | | |||||
| * | build(dev): use portless for named .localhost dev URL | Fuwn | 2026-04-18 | 1 | -1/+2 |
| | | |||||
| * | chore: normalise graphql generation scripts | Fuwn | 2026-03-22 | 1 | -2/+3 |
| | | |||||
| * | chore(pnpm): Update pnpm | Fuwn | 2026-03-22 | 1 | -1/+1 |
| | | |||||
| * | chore(effect): add v4 cookie decode foundation and tests | Fuwn | 2026-03-03 | 1 | -0/+1 |
| | | |||||
| * | chore(dx): add fast changed-files lint and format commands | Fuwn | 2026-03-01 | 1 | -1/+5 |
| | | |||||
| * | chore(dx): add local check with fallback env defaults | Fuwn | 2026-03-01 | 1 | -1/+2 |
| | | |||||
| * | chore(dx): add CI-equivalent local check command | Fuwn | 2026-03-01 | 1 | -0/+1 |
| | | |||||
| * | ci(quality): add graphql + env placeholders for reproducible typecheck | Fuwn | 2026-03-01 | 1 | -0/+1 |
| | | |||||
| * | chore(trigger): migrate project setup from v3 to v4 | Fuwn | 2026-03-01 | 1 | -2/+1 |
| | | |||||
| * | chore(tooling): add biome format check script | Fuwn | 2026-03-01 | 1 | -1/+2 |
| | | |||||
| * | chore(biome): drop formatter style overrides | Fuwn | 2026-03-01 | 1 | -65/+65 |
| | | |||||
| * | chore(tooling): remove legacy eslint and prettier | Fuwn | 2026-03-01 | 1 | -7/+0 |
| | | |||||
| * | chore(tooling): migrate lint and format to biome | Fuwn | 2026-03-01 | 1 | -2/+3 |
| | | |||||
| * | fix(anime): unify due classification and harden subtitle matching | Fuwn | 2026-03-01 | 1 | -1/+3 |
| | | |||||
| * | feat(+layout.svelte): Add Web Analytics | Fuwn | 2026-01-26 | 1 | -0/+1 |
| | | |||||
| * | feat: Add BotID | Fuwn | 2026-01-26 | 1 | -0/+1 |
| | | |||||
| * | chore(deps): Update Trigger.dev packages | Fuwn | 2026-01-23 | 1 | -2/+2 |
| | | |||||
| * | fix: Add null guards and improve error messaging for user lookups | Fuwn | 2026-01-23 | 1 | -2/+1 |
| | | |||||
| * | fix: Resolve unused imports, dead code, and type definitions | Fuwn | 2026-01-23 | 1 | -0/+1 |
| | | |||||
| * | deps(houdini): Bump version to next | Fuwn | 2026-01-23 | 1 | -1/+1 |
| | | |||||
| * | chore(prettier): Remove deprecated pluginSearchDirs option | Fuwn | 2026-01-23 | 1 | -2/+2 |
| | | |||||
| * | fix(deps): Add missing fast-levenshtein dependencysvelte-5-migration | Fuwn | 2026-01-22 | 1 | -3/+4 |
| | | |||||
| * | chore(deps): Prepare for Corepack | Fuwn | 2026-01-22 | 1 | -1/+2 |
| | | |||||
| * | chore(deps): Migrate from npm to pnpm | Fuwn | 2026-01-22 | 1 | -9/+1 |
| | | |||||
| * | fix(notifications): Replace svelte-notifications with custom store for Svelte 5 | Fuwn | 2026-01-22 | 1 | -1/+0 |
| | | |||||
| * | fix(deps): Pin SvelteKit and adapter versions for sveltekit-graphql ↵ | Fuwn | 2026-01-22 | 1 | -3/+11 |
| | | | | | compatibility | ||||
| * | deps(svelte): Migrate to Svelte 5 with compatibility mode | Fuwn | 2026-01-22 | 1 | -1/+3 |
| | | |||||
| * | deps(svelte): Migrate to Svelte 5 | Fuwn | 2026-01-22 | 1 | -9/+9 |
| | | |||||
| * | deps(sveltekit): Migrate to SvelteKit 2 | Fuwn | 2026-01-22 | 1 | -4/+4 |
| | | |||||
| * | deps: Revert to commit 731733e | Fuwn | 2025-12-01 | 1 | -38/+30 |
| | | |||||
| * | fix(stores): Move anime and manga from localStorage to IndexedDB | Fuwn | 2025-06-11 | 1 | -0/+1 |
| | | |||||
| * | deps: Update all applicable dependencies | Fuwn | 2025-06-09 | 1 | -28/+35 |
| | | |||||
| * | deps(Trigger.dev): Bump dependencies | Fuwn | 2025-06-09 | 1 | -2/+2 |
| | | |||||
| * | fix: SvelteKit migration errors | Fuwn | 2025-06-09 | 1 | -1/+1 |
| | | |||||
| * | deps(Svelte): Migrate to Svelte 5 | Fuwn | 2025-06-09 | 1 | -10/+10 |
| | | |||||
| * | deps(SvelteKit): Migrate to SvelteKit 2 | Fuwn | 2025-06-09 | 1 | -2/+3 |
| | | |||||
| * | feat(tools): add simple tracker | Fuwn | 2024-10-12 | 1 | -0/+1 |
| | | |||||
| * | chore(prettier): use spaces instead of tabs | Fuwn | 2024-10-09 | 1 | -62/+62 |
| | | |||||
| * | chore(npm): fix graphql builder | Fuwn | 2024-09-28 | 1 | -1/+1 |
| | | |||||
| * | feat(api): set up graphql api | Fuwn | 2024-09-28 | 1 | -0/+1 |
| | | |||||
| * | deps(nodejs): bunx update-browserslist-db@latest | Fuwn | 2024-09-01 | 1 | -0/+1 |
| | | |||||
| * | deps(web-push): add types | Fuwn | 2024-07-25 | 1 | -0/+1 |
| | | |||||
| * | ci(trigger): update project references | Fuwn | 2024-07-24 | 1 | -60/+60 |
| | | |||||
| * | refactor(trigger): v2 -> v3 | Fuwn | 2024-07-24 | 1 | -60/+60 |
| | | |||||
| * | feat: background notifications | Fuwn | 2024-07-24 | 1 | -1/+7 |
| | | |||||
| * | fix(match): delayed and subtitled time compatibility | Fuwn | 2024-05-24 | 1 | -53/+53 |
| | | |||||