Skip to content

LinkBreeze v1.1.4

Latest

Choose a tag to compare

@Manak-hash Manak-hash released this 22 Jul 13:29

Fixed

  • CI badge showed failing on default branch — The CI workflow only triggered on pull_request, so no runs ever executed on main. Shields.io checks the default branch, causing the README badge to always show "failing". Added push: branches: [main] to the workflow triggers.
  • Theme import card didn't state the expected file format (#44) — The import/export card description was ambiguous about which file type to use. The system is and has always been JSON-only. The card description and helper text now explicitly say .json.
  • Type error in manifest testmanifest.test.ts called .startsWith() on start_url typed as unknown. Added the same as string cast already used for short_name.
  • Image background overlay rendered as a dark gradientresolveBackground() for image backgrounds built the overlay as a gradient with alpha only on the first stop. Fixed to a uniform translucent layer, and opacity 0 now skips the overlay entirely.
  • mode column comment claimed auto was supported — Comment documented dark, light, auto but only dark and light are valid. Comment aligned to reality.
  • Click-inflation attack on /go/:id (security) — The JS-free click redirect endpoint had no rate limit. Now applies the same 60 req/min/IP throttle as the JS tracking endpoint.
  • "Zero client JavaScript" claim was inaccurate — Inline onclick handlers for mailto/tel links are technically client-side JS. Claims softened to "zero client-side JS bundles" across docs.

Added

  • Theme system regression matrix (69 tests) — Locks the contract between DB schema defaults, Zod validator, token resolver, and the 9 preset definitions. Prevents the drift bugs seen in v1.1.2 and v1.1.3.
  • Image overlay regression test (4 tests) — Pins the fixed overlay render behavior.
  • PWA manifest upgrade (closes #18) — Added start_url, scope, orientation, maskable icons, and screenshots to the manifest for proper install prompt support.
  • Manifest contract test (6 tests) — Parses public/site.webmanifest and asserts install-critical fields.

Changed

  • Extracted theme presets and Zod schema into modules — Enables the regression matrix tests without importing server-only code.
  • Dependency bumps — Merged minor-and-patch group and vitest 3→4. Closed typescript 7, eslint 10, and node 26 as blocked.
  • Disabled theme font preloading (perf) — 483KB → ~20KB on public pages. ~60% transfer reduction. The browser only downloads the active theme's font.

Full changelog: https://github.com/Manak-hash/LinkBreeze/blob/main/CHANGELOG.md#114---2026-07-22