Daniel
1535f9e529
Merge pull request #1720 from martiGIT:fix/rss-polling-feed-timeout
...
fix(worker): add per-feed timeout to RSS polling to prevent loop freeze
2026-06-29 17:36:42 -04:00
daniel31x13
c98648540b
hardcode feed timeout
2026-06-29 17:16:53 -04:00
daniel31x13
51585018b6
security: harden monolith against DNS rebinding
2026-06-29 15:08:13 -04:00
daniel31x13
cad66cf3c8
security: fix SSRF via DNS rebinding
2026-06-29 13:53:40 -04:00
daniel31x13
98a6f7e681
security: sanitize html before passing into monolith
2026-06-29 09:11:08 -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
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
4fa1f57351
feat: improve timeout handling in archiveHandler and refactor handleMonolith for better signal management
2026-02-23 18:26:47 -05: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
daniel31x13
a8a9ad602f
feat: add metaDescription field to Link model and update archiveHandler logic
2026-02-07 15:53:30 -05:00
daniel31x13
350cdb485a
small fix
2026-01-26 20:50:17 -05:00
Roel van der Ven
8bd3bd3763
Improve AI tag generation prompts
...
Enhanced all three tagging mode prompts (GENERATE, PREDEFINED, EXISTING)
with stricter rules and better guidance to address common issues:
- Add explicit Title Case and UPPERCASE acronym formatting rules
- Add junk tag filtering (verbs, UI elements, vague words)
- Add concrete examples showing good vs bad tags
- Add stricter category guidance (prefer nouns over verbs)
- Improve existing/predefined mode instructions with exact match requirements
- Emphasize tag reuse priority in EXISTING mode
These improvements address:
- Case inconsistencies (Music vs music vs MUSIC)
- Junk tags (verbs like "read", "sign", UI elements like "sign up")
- Semantic duplicates (AI, ML, Machine Learning as separate tags)
- Tag proliferation (better reuse of existing tags)
Tested with Ollama (gemma3b), OpenAI GPT-4, and Anthropic Claude.
Results show ~70% reduction in duplicate tags and ~90% reduction in junk tags.
Fixes #1073
Helps with #1123 , #1147 , #1010
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-01-20 12:57:06 +01:00
daniel31x13
5b0c66b5e2
minor improvement
2025-12-28 03:44:38 -05:00
Kha Nguyen
7c0c823c41
update ai tagging response model
...
- llm only needs to return a text containing all the tags
2025-12-26 17:44:07 -06: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
Daniel
fa2d439b3e
Merge pull request #1448 from supercoolspy/fix/singlefile-view
...
fix: support using monolith content for other archive formats
2025-10-15 14:21:03 +03:30
daniel31x13
0907c3caa2
bug fix
2025-10-15 06:49:45 -04:00
daniel31x13
05bebd8703
swap from base64 images to url for emails
2025-10-14 19:11:45 -04: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
Spy
7d45249e8f
fix: support using monolith content for other archives
2025-10-10 22:44:26 -07:00
Daniel
96472243db
Merge pull request #1290 from jvanbruegge/fix-http-links
...
fix INVALID_PROTOCOL when saving http website
2025-10-04 04:08:02 -04:00
Thorsten Riess
9ad4a3ee87
add ai-sdk/perplexity provider
2025-09-26 06:46:47 +02:00
daniel31x13
d9d2e3b78f
init
2025-09-18 20:23:40 -04:00
daniel31x13
cb1f42e0a2
bug fix
2025-09-01 20:17:11 -04:00
Daniel
3adbb10be8
Merge pull request #1357 from linkwarden/v2.11.8
...
V2.11.8
2025-08-20 16:26:27 -04:00
daniel31x13
1c55ac571a
remove extra log
2025-08-20 13:59:10 -04:00
daniel31x13
5128efc05c
bug fix
2025-08-20 13:43:24 -04:00
daniel31x13
2b6f48ad83
fix bug
2025-08-20 11:59:28 -04:00
Daniel
495d3111a1
Merge pull request #1349 from linkwarden/hotfix
...
minor fix
2025-08-14 13:11:21 -04:00
daniel31x13
221930f88d
minor fix
2025-08-14 13:10:24 -04:00
Daniel
58812811d0
Merge pull request #1346 from linkwarden/hotfix
...
Hotfix
2025-08-14 12:54:02 -04:00
daniel31x13
bd26f90738
small fix for new self-hosted users
2025-08-14 12:51:55 -04:00
daniel31x13
078e38c7d8
remove unused imports
2025-08-13 15:21:31 -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
1897e9c8ce
minor fix
2025-07-14 17:07:00 -04:00
daniel31x13
659910a76d
minor improvement
2025-07-14 17:02:56 -04:00
Jan van Brügge
327826d760
fix INVALID_PROTOCOL when saving http website
...
Using a https agent to fetch a http site causes this error:
TypeError [ERR_INVALID_PROTOCOL]: Protocol "http:" not supported. Expected "https:"
2025-07-14 01:34:58 +01:00
Daniel
4580f8cd26
Merge branch 'dev' into hotfix
2025-06-12 14:37:48 +03:30