Daniel
4a02b818d1
Merge pull request #1665 from profiteroles1/on-demand-browser
...
Add on-demand browser lifecycle mode (BROWSER_LIFECYCLE=on-demand)
2026-06-30 17:04:06 -04:00
daniel31x13
b8f4489fe7
code cleanup
2026-06-30 17:03:24 -04:00
daniel31x13
c98648540b
hardcode feed timeout
2026-06-29 17:16:53 -04:00
Marcin Rybak
76e566c786
fix(worker): add per-feed timeout to RSS polling to prevent loop freeze
...
safeFetch (node-fetch v2) has no default timeout, so a single subscribed
feed whose server accepts the connection but never responds keeps its fetch
pending forever. Because every feed is awaited together in one Promise.all,
that one hung request makes the whole batch never settle and freezes the
polling loop indefinitely — no further cycles run and no new links are
ingested until the worker is restarted.
Wrap each feed fetch in an AbortController-based timeout (configurable via
RSS_FEED_TIMEOUT_SECONDS, default 30s) and switch Promise.all to
Promise.allSettled so one failing feed can never reject the whole batch.
Observed in production: feeds that accept connections but stall (e.g. some
news RSS endpoints) froze polling for hours; with this change those requests
abort after the timeout and the loop keeps cycling on schedule.
2026-06-10 10:12:39 +01:00
Profiteroles, LLC
d32fb58df1
Add on-demand browser lifecycle mode (BROWSER_LIFECYCLE=on-demand)
...
Launch Chromium only when links need processing and shut it down after
an idle period, freeing 300-800 MB of RAM on instances with sporadic
usage. The default ("persistent") preserves existing always-on behavior.
2026-04-13 22:45:10 -05:00
daniel31x13
5596144452
refactor(worker): move preserved-link auto-tagging into dedicated worker
2026-03-31 22:22:13 -04:00
daniel31x13
23da4b8d79
implement safe fetch functionality across the app and the worker
2026-03-24 01:02:17 -04:00
daniel31x13
c8b1129e4f
feat(worker): index links instantly without waiting for them to be preserved
2026-02-19 01:20:24 -05:00
daniel31x13
7e34d98bc4
Refactor imports to use global types from "@linkwarden/types/global" instead of "@linkwarden/types" across components
2026-02-18 15:40:12 -05:00
daniel31x13
e9c1c5217b
refactor: update import paths to use specific utility modules
2026-02-18 15:33:20 -05:00
daniel31x13
209e0faa1b
add hasUnIndexedLinks fields to dashboard data
2026-02-18 15:32:40 -05:00
daniel31x13
6b3dba3faf
Refactor worker-related functionality and update UI components
...
- Updated ConfirmationModal to use a callback for toggleModal.
- Modified DeleteUserModal to handle admin checks more robustly.
- Removed unnecessary config usage in SettingsSidebar and updated links.
- Cleaned up TagListing by removing unused context logging.
- Enhanced admin page to redirect non-admin users to the dashboard.
- Simplified API for archiving links by removing unused actions.
- Updated billing settings page for better UI consistency.
- Adjusted password settings page for responsive design.
- Deleted obsolete worker-console page and redirected to background-jobs.
- Added new background-jobs page with worker stats and preservation actions.
- Introduced new API endpoints for fetching worker stats and managing preservations.
- Created new hooks for managing worker-related actions in the router.
- Updated localization files to reflect new UI changes and actions.
- Removed deprecated preservation file handling from filesystem management.
2026-02-12 15:16:22 -05:00
Daniel
389e5df117
Chore/tech debts ( #1536 )
...
* build(deps): bump the npm_and_yarn group across 5 directories with 22 updates
Bumps the npm_and_yarn group with 18 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [axios](https://github.com/axios/axios ) | `1.5.1` | `1.12.0` |
| [dompurify](https://github.com/cure53/DOMPurify ) | `3.0.6` | `3.2.4` |
| [formidable](https://github.com/node-formidable/formidable ) | `3.5.1` | `3.5.4` |
| [next](https://github.com/vercel/next.js ) | `13.4.12` | `14.2.35` |
| [next-auth](https://github.com/nextauthjs/next-auth ) | `4.22.1` | `4.24.12` |
| [playwright](https://github.com/microsoft/playwright ) | `1.55.0` | `1.55.1` |
| [@mozilla/readability](https://github.com/mozilla/readability ) | `0.4.4` | `0.6.0` |
| [ai](https://github.com/vercel/ai ) | `4.3.9` | `5.0.52` |
| [nodemailer](https://github.com/nodemailer/nodemailer ) | `6.9.3` | `7.0.11` |
| [brace-expansion](https://github.com/juliangruber/brace-expansion ) | `1.1.11` | `1.1.12` |
| [braces](https://github.com/micromatch/braces ) | `3.0.2` | `3.0.3` |
| [form-data](https://github.com/form-data/form-data ) | `3.0.3` | `3.0.4` |
| [js-yaml](https://github.com/nodeca/js-yaml ) | `3.14.1` | `3.14.2` |
| [micromatch](https://github.com/micromatch/micromatch ) | `4.0.5` | `4.0.8` |
| [min-document](https://github.com/Raynos/min-document ) | `2.19.0` | `2.19.2` |
| [nanoid](https://github.com/ai/nanoid ) | `3.3.6` | `3.3.8` |
| [node-forge](https://github.com/digitalbazaar/forge ) | `1.3.1` | `1.3.3` |
| [tar](https://github.com/isaacs/node-tar ) | `6.1.13` | `6.2.1` |
Bumps the npm_and_yarn group with 1 update in the /apps/web directory: [next](https://github.com/vercel/next.js ).
Bumps the npm_and_yarn group with 2 updates in the /apps/worker directory: [@mozilla/readability](https://github.com/mozilla/readability ) and [ai](https://github.com/vercel/ai ).
Bumps the npm_and_yarn group with 1 update in the /packages/lib directory: [nodemailer](https://github.com/nodemailer/nodemailer ).
Bumps the npm_and_yarn group with 1 update in the /packages/router directory: [next](https://github.com/vercel/next.js ).
Updates `axios` from 1.5.1 to 1.12.0
- [Release notes](https://github.com/axios/axios/releases )
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md )
- [Commits](https://github.com/axios/axios/compare/v1.5.1...v1.12.0 )
Updates `dompurify` from 3.0.6 to 3.2.4
- [Release notes](https://github.com/cure53/DOMPurify/releases )
- [Commits](https://github.com/cure53/DOMPurify/compare/3.0.6...3.2.4 )
Updates `formidable` from 3.5.1 to 3.5.4
- [Release notes](https://github.com/node-formidable/formidable/releases )
- [Changelog](https://github.com/node-formidable/formidable/blob/master/CHANGELOG.md )
- [Commits](https://github.com/node-formidable/formidable/commits )
Updates `next` from 13.4.12 to 14.2.35
- [Release notes](https://github.com/vercel/next.js/releases )
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js )
- [Commits](https://github.com/vercel/next.js/compare/v13.4.12...v14.2.35 )
Updates `next-auth` from 4.22.1 to 4.24.12
- [Release notes](https://github.com/nextauthjs/next-auth/releases )
- [Commits](https://github.com/nextauthjs/next-auth/compare/next-auth@4.22.1...next-auth@4.24.12 )
Updates `playwright` from 1.55.0 to 1.55.1
- [Release notes](https://github.com/microsoft/playwright/releases )
- [Commits](https://github.com/microsoft/playwright/compare/v1.55.0...v1.55.1 )
Updates `postcss` from 8.4.26 to 8.5.3
- [Release notes](https://github.com/postcss/postcss/releases )
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md )
- [Commits](https://github.com/postcss/postcss/compare/8.4.26...8.5.3 )
Updates `@mozilla/readability` from 0.4.4 to 0.6.0
- [Changelog](https://github.com/mozilla/readability/blob/main/CHANGELOG.md )
- [Commits](https://github.com/mozilla/readability/compare/0.4.4...0.6.0 )
Updates `ai` from 4.3.9 to 5.0.52
- [Release notes](https://github.com/vercel/ai/releases )
- [Changelog](https://github.com/vercel/ai/blob/main/CHANGELOG.md )
- [Commits](https://github.com/vercel/ai/compare/ai@4.3.9...ai@5.0.52 )
Updates `nodemailer` from 6.9.3 to 7.0.11
- [Release notes](https://github.com/nodemailer/nodemailer/releases )
- [Changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md )
- [Commits](https://github.com/nodemailer/nodemailer/compare/v6.9.3...v7.0.11 )
Updates `@babel/runtime` from 7.21.5 to 7.27.0
- [Release notes](https://github.com/babel/babel/releases )
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md )
- [Commits](https://github.com/babel/babel/commits/v7.27.0/packages/babel-runtime )
Updates `brace-expansion` from 1.1.11 to 1.1.12
- [Release notes](https://github.com/juliangruber/brace-expansion/releases )
- [Commits](https://github.com/juliangruber/brace-expansion/compare/1.1.11...v1.1.12 )
Updates `braces` from 3.0.2 to 3.0.3
- [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md )
- [Commits](https://github.com/micromatch/braces/compare/3.0.2...3.0.3 )
Updates `follow-redirects` from 1.15.3 to 1.15.11
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases )
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.3...v1.15.11 )
Updates `form-data` from 3.0.3 to 3.0.4
- [Release notes](https://github.com/form-data/form-data/releases )
- [Changelog](https://github.com/form-data/form-data/blob/master/CHANGELOG.md )
- [Commits](https://github.com/form-data/form-data/compare/v3.0.3...v3.0.4 )
Updates `jose` from 4.14.4 to 4.15.9
- [Release notes](https://github.com/panva/jose/releases )
- [Changelog](https://github.com/panva/jose/blob/v4.15.9/CHANGELOG.md )
- [Commits](https://github.com/panva/jose/compare/v4.14.4...v4.15.9 )
Updates `js-yaml` from 3.14.1 to 3.14.2
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md )
- [Commits](https://github.com/nodeca/js-yaml/compare/3.14.1...3.14.2 )
Updates `micromatch` from 4.0.5 to 4.0.8
- [Release notes](https://github.com/micromatch/micromatch/releases )
- [Changelog](https://github.com/micromatch/micromatch/blob/master/CHANGELOG.md )
- [Commits](https://github.com/micromatch/micromatch/compare/4.0.5...4.0.8 )
Updates `min-document` from 2.19.0 to 2.19.2
- [Commits](https://github.com/Raynos/min-document/compare/v2.19.0...v2.19.2 )
Updates `nanoid` from 3.3.6 to 3.3.8
- [Release notes](https://github.com/ai/nanoid/releases )
- [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md )
- [Commits](https://github.com/ai/nanoid/compare/3.3.6...3.3.8 )
Updates `node-forge` from 1.3.1 to 1.3.3
- [Changelog](https://github.com/digitalbazaar/forge/blob/main/CHANGELOG.md )
- [Commits](https://github.com/digitalbazaar/forge/compare/v1.3.1...v1.3.3 )
Updates `tar` from 6.1.13 to 6.2.1
- [Release notes](https://github.com/isaacs/node-tar/releases )
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md )
- [Commits](https://github.com/isaacs/node-tar/compare/v6.1.13...v6.2.1 )
Updates `next` from 13.4.12 to 14.2.35
- [Release notes](https://github.com/vercel/next.js/releases )
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js )
- [Commits](https://github.com/vercel/next.js/compare/v13.4.12...v14.2.35 )
Updates `@mozilla/readability` from 0.4.4 to 0.6.0
- [Changelog](https://github.com/mozilla/readability/blob/main/CHANGELOG.md )
- [Commits](https://github.com/mozilla/readability/compare/0.4.4...0.6.0 )
Updates `ai` from 4.3.19 to 5.0.113
- [Release notes](https://github.com/vercel/ai/releases )
- [Changelog](https://github.com/vercel/ai/blob/main/CHANGELOG.md )
- [Commits](https://github.com/vercel/ai/compare/ai@4.3.9...ai@5.0.52 )
Updates `nodemailer` from 6.10.1 to 7.0.11
- [Release notes](https://github.com/nodemailer/nodemailer/releases )
- [Changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md )
- [Commits](https://github.com/nodemailer/nodemailer/compare/v6.9.3...v7.0.11 )
Updates `next` from 13.4.12 to 14.2.35
- [Release notes](https://github.com/vercel/next.js/releases )
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js )
- [Commits](https://github.com/vercel/next.js/compare/v13.4.12...v14.2.35 )
---
updated-dependencies:
- dependency-name: axios
dependency-version: 1.12.0
dependency-type: direct:production
dependency-group: npm_and_yarn
- dependency-name: dompurify
dependency-version: 3.2.4
dependency-type: direct:production
dependency-group: npm_and_yarn
- dependency-name: formidable
dependency-version: 3.5.4
dependency-type: direct:production
dependency-group: npm_and_yarn
- dependency-name: next
dependency-version: 14.2.35
dependency-type: direct:production
dependency-group: npm_and_yarn
- dependency-name: next-auth
dependency-version: 4.24.12
dependency-type: direct:production
dependency-group: npm_and_yarn
- dependency-name: playwright
dependency-version: 1.55.1
dependency-type: direct:production
dependency-group: npm_and_yarn
- dependency-name: postcss
dependency-version: 8.5.3
dependency-type: direct:development
dependency-group: npm_and_yarn
- dependency-name: "@mozilla/readability"
dependency-version: 0.6.0
dependency-type: direct:production
dependency-group: npm_and_yarn
- dependency-name: ai
dependency-version: 5.0.52
dependency-type: direct:production
dependency-group: npm_and_yarn
- dependency-name: nodemailer
dependency-version: 7.0.11
dependency-type: direct:production
dependency-group: npm_and_yarn
- dependency-name: "@babel/runtime"
dependency-version: 7.27.0
dependency-type: indirect
dependency-group: npm_and_yarn
- dependency-name: brace-expansion
dependency-version: 1.1.12
dependency-type: indirect
dependency-group: npm_and_yarn
- dependency-name: braces
dependency-version: 3.0.3
dependency-type: indirect
dependency-group: npm_and_yarn
- dependency-name: follow-redirects
dependency-version: 1.15.11
dependency-type: indirect
dependency-group: npm_and_yarn
- dependency-name: form-data
dependency-version: 3.0.4
dependency-type: indirect
dependency-group: npm_and_yarn
- dependency-name: jose
dependency-version: 4.15.9
dependency-type: indirect
dependency-group: npm_and_yarn
- dependency-name: js-yaml
dependency-version: 3.14.2
dependency-type: indirect
dependency-group: npm_and_yarn
- dependency-name: micromatch
dependency-version: 4.0.8
dependency-type: indirect
dependency-group: npm_and_yarn
- dependency-name: min-document
dependency-version: 2.19.2
dependency-type: indirect
dependency-group: npm_and_yarn
- dependency-name: nanoid
dependency-version: 3.3.8
dependency-type: indirect
dependency-group: npm_and_yarn
- dependency-name: node-forge
dependency-version: 1.3.3
dependency-type: indirect
dependency-group: npm_and_yarn
- dependency-name: tar
dependency-version: 6.2.1
dependency-type: indirect
dependency-group: npm_and_yarn
- dependency-name: next
dependency-version: 14.2.35
dependency-type: direct:production
dependency-group: npm_and_yarn
- dependency-name: "@mozilla/readability"
dependency-version: 0.6.0
dependency-type: direct:production
dependency-group: npm_and_yarn
- dependency-name: ai
dependency-version: 5.0.113
dependency-type: direct:production
dependency-group: npm_and_yarn
- dependency-name: nodemailer
dependency-version: 7.0.11
dependency-type: direct:production
dependency-group: npm_and_yarn
- dependency-name: next
dependency-version: 14.2.35
dependency-type: direct:production
dependency-group: npm_and_yarn
...
Signed-off-by: dependabot[bot] <support@github.com >
* bug fixes and improvements
* always show navbar in reader view
* bug fix and small performance improvement
* minor fix
* Refactor link selection management and bulk actions
- Replaced the use of selectedLinks with selectedIds in the link store for better performance and clarity.
- Updated LinkListOptions, BulkDeleteLinksModal, and BulkEditLinksModal components to utilize the new selection management.
- Modified LinkCard, LinkMasonry, and LinkList components to handle selection state through props.
- Enhanced updateLinks API to support bulk updates with improved tag management.
- Cleaned up unused imports and code related to previous selection methods.
* move refetching logic to Links component
* move disableDraggable and user hook out of each card to improve efficiency
* cleaner code
* memoize components and increase performance
* fix: update announcement links to use the correct domain
* feat: add favicon field to Link model + update packages + bug fix
* feat: implement favicon fetching API and update Link model for favicon support
* feat: add priority attribute to Image components in Sidebar
* Refactor pages to use consistent layout handling (yes, I forgot to do that until now :P)
* bump version
* Refactor setting pages to use consistent layout handling
* upgrade yarn to 4.12.0
* fix DnD bug
* Enhance announcement handling by adding support for announcement messages
* slimmed down the docker image size
* update Node and yarn versions in playwright tests workflow
* small fix
* fix attempt 2
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-21 18:09:05 -05:00
daniel31x13
2c727ccd47
improved email templates
2025-10-14 19:03:49 -04:00
daniel31x13
1205cdce1c
remove unused import
2025-10-13 17:29:04 -04:00
daniel31x13
6ae4c37d0c
minor fix
2025-10-13 17:28:35 -04:00
daniel31x13
4148c0f5fb
add trial ended email for cloud
2025-10-13 17:26:09 -04:00
daniel31x13
cb1f42e0a2
bug fix
2025-09-01 20:17:11 -04:00
daniel31x13
577f8600ae
use a single browser with separate context
2025-08-13 00:10:18 -04:00
daniel31x13
c54fbbc985
remove unused code
2025-08-12 22:54:01 -04:00
daniel31x13
794c2f2657
improvement
2025-08-12 22:52:33 -04:00
daniel31x13
658434afaf
improvement
2025-08-12 22:08:38 -04:00
daniel31x13
eb3f1eeb5b
fix user blocking queue
2025-08-12 17:58:25 -04:00
daniel31x13
14340afb99
code cleanup
2025-05-04 12:01:24 -04:00