Releases: hoarder-app/hoarder
0.19.0
Welcome to the 0.19.0
release of Hoarder! This release is packed with a lot of new features! The long awaited REST APIs, RSS subscriptions, AI summarization, Image OCR, archiving videos, importing from Omnivore, and more!
If you're enjoying Hoarder, you can consider supporting it here ☕️.
New Feature
- RSS Subscriptions 🧪: You can now subscribe to RSS feeds and Hoarder will automatically pull them every hour.
- You can use this to auto hoard stuff from your favourite blogs, subreddits, or youtube channels.
- This feature is still experimental and haven't been tested on a a wide variety of feeds. Please file issues whenever you face any problems using it.
- The long awaited REST API is here. You can view the API docs here.
- You can view the OpenAPI spec here in case you want to generate clients for it. I'm planning to offer an official Typescript SDK some time in the future.
- AI Summarization: Hoarder now has the ability to generate summaries for the links that you hoard! Check the screenshots section to see it in action.
- Currently, summarization is a manual action. In the future, we'll add support for auto summarization.
- Video downloads: For ultimate hoarding, Hoarder now has the ability to download videos from the links that you hoard (e.g. youtube) thanks to @kamtschatka.
- Omnivore Imports: Omnivore is shutting down. You can now import your bookmarks from Omnivore into Hoarder. Check the documentation here.
- User Management: Admins can now reset user passwords, change their roles and even create new users thanks to @kamtschatka.
- Image OCR: Hoarder will now attempt to read and index text in the images that you hoard! Check the configuration variables here.
- Others:
- @kamtschatka Added authentication failure logging in case you want to configure fail2ban against hoarder logs.
UX Improvements
- We have a new redesigned settings page to better support the new options we're adding. Check it out in the screenshot section.
- You can use
Cmd/Ctrl + K
to quickly focus on Hoarder's searchbar. - We reverted the mobile apps to again view webpages inline, but now added buttons for quick actions underneath it.
Fixes
- Single new lines in notes were getting lost in markdown. @kamtschatka fixed that.
- Pocket switched their export format to CSVs instead of their old format. Hoarder now supports importing the new format.
- Tags that had numbers or dashes in them were getting skipped, this is now fixed. Thanks @MakeSomeGood for the bug report and investigation!
- The
All Tags
page was getting very slow when there's a lot of tags. This turned out to be a small misconfiguration in the database that we fixed. - Custom prompts had a max length of 100, which wasn't enough to some people. The new limit is 500.
Screenshots
AI Summarization
Screen.Recording.2024-11-09.at.4.12.35.PM.mov
RSS Feeds & New Settings Page
Admin User Management
Upgrading
To upgrade:
- If you're using HOARDER_VERSION=release, run
docker compose pull && docker compose up -d
. - If you're pinning it to a specific version, upgrade the version and then run
docker compose pull && docker compose up -d
.
All Commits
- fix: Increase max prompt length to 500 chars instead of 100 - @MohamedBassem in 8ce272d
- docs: Add documentation about how to import from pocket and omnivore - @MohamedBassem in 2b6eb7c
- docs: Update CLI importing docs to better handle large collections (#630) - @bjornmonnens in e57937e
- fix: Remove old downloaded video when it gets refreshed - @MohamedBassem in a24755d
- fix: Only update bookmark tagging/crawling status when worker is out of retries - @MohamedBassem in f8bed57
- fix: Feed refreshes were not getting re-enqueued for failed jobs - @MohamedBassem in 10070c1
- ui: Mark the RSS subscriptions as an experimental feature - @MohamedBassem in 9ca49b2
- fix: Fix slow AllTags page because of misconfigured tagId index. Fixes #528 - @MohamedBassem in 8f44c81
- fix: Pass arguments to monolith and yt-dlp as array for better escaping - @MohamedBassem in cbaa033
- feature: Add support for importing bookmarks from Omnivore. Fixes #602 - @MohamedBassem in 7ec5746
- fix: Adopt pocket's new export format. Fixes #570 - @MohamedBassem in 7042f26
- fix: Fix bug in tag normalization regex. Fixes #595 - @MohamedBassem in 306567b
- feature: Schedule RSS feed refreshes every hour - @MohamedBassem in d34b538
- feature(web): Add the ability to view the bookmarks of a particular rss feed - @MohamedBassem in fa8286a
- feature: Add support for subscribing to RSS feeds. Fixes #202 - @MohamedBassem in cf1a251
- fix(mobile): Fix bookmarkview page on android not showing bookmark actions. Fixes #603 - @MohamedBassem in 2efc7c8
- fix: Fix type in the separate container env variable - @MohamedBassem in 4c94b37
- feature: Archive videos using yt-dlp. Fixes #215 (#525) - @kamtschatka in 4a13c36
- docs: Add a FAQ page (#590) - @kamtschatka in 3b7451f
- deps: Extract the queue implementation into its own repos - @MohamedBassem in a746e9a
- ui: Redesign the settings page and move it to its own layout - @MohamedBassem in eb7da99
- fix: Index the summary in search - @MohamedBassem in 801ba36
- fix: Some visual fixes to the AI summary - @MohamedBassem in e06a5ea
- fix: Fix search input escape listener to only work when the input is in focus - @MohamedBassem in 9d6d70d
- fix: Fix build by regenerating the openai spec - @MohamedBassem in c0b0691
- feature: Add a summarize with AI button for links - @MohamedBassem in 731d2df
- refactor: Move inference to the shared package - @MohamedBassem in 3e727f7
- docker: Add a flag to detect apps running in legacy container setup - @MohamedBassem in db45aaf
- release(mobile): Bump mobile version to 1.6.5 - @MohamedBassem in bb344e5
- feature(mobile): Use inline WebView for expanding bookmarks - @MohamedBassem in 2ce42a8
- feature: Add OCR support for images. Fixes #296 - @MohamedBassem in 019b5d2
- ci: Add a build step that ensures that open api spec doesn't diverge - @MohamedBassem in f793646
- ci: Fix build by adding corepack enable to CI - @MohamedBassem in 5b20d97
- docs: Add link to discord to navbar - @MohamedBassem in 09d29e4
- api: Add tag ids and support variable baseURL - @MohamedBassem in b476e91
- docs: Generate OpenAPI docs - @MohamedBassem in 6ffa51d
- chore: Define hoarder's rest API in zod format - @MohamedBassem in 3c1ec3a
- fix: Improve field names in the tag APIs - @MohamedBassem in 4086c37
- feature(api): Add REST APIs to update bookmarks, tags and lists - @MohamedBassem in e89a386
- feature(api): Add REST APIs to manipulate lists and tags for bookmarks - @MohamedBassem in 20e5225
- feature: Add APIs to create new lists and bookmarks - @MohamedBassem in 10dcf2e
- fix: Better handling for body JSON parsing errors - @MohamedBassem in f5fd3c4
- feature: Add DELETE REST APIs for bookmarks, lists and tags - @MohamedBassem in 719e25d
- feature: Add GET REST APIs for bookmarks, lists and tags - @MohamedBassem in 62395ec
- featue: Add infra for REST APIs and implement GET /bookmarks - @MohamedBassem in fb297ea
- fix(workers): Pin execa to avoid ERR_PACKAGE_PATH_NOT_EXPORTED error - @MohamedBassem in a822ff2
- feature(web): Add keyboard shortcut to focus on search bar. Fixes #449 (#554) - @kamtschatka in cbc268e
- feature: Allow reseting user password, change their roles and create new users. Fixes #495 (#567) - @kamtschatka in 9a56e58
- feature: Log authentication failures to support fail2ban. Fixes #477 (#569) - @kamtschatka in 0debc6b
- chore: Adding issue templates (#546) - @Inventhrice in e55362e
- fix(web): Single linebreaks are lost when viewing textnote card. Fixes #549 (#551) - @kamtschatka in 6977ba7
- release(mobile): Bump mobile version to 1.6.4 - @MohamedBassem in 4454d63
- fix(mobile): Improve connection testing accuracy - @MohamedBassem in 90953fd
0.18.0
Welcome to the 0.18.0
release of Hoarder! This release introduces customizable tagging rules (aka customizing the prompt), new UI look, selective full page archives, infinite scrolling, more bulk actions and more! As usual, we'd like to welcome our first time contributors @jarednipper, @Trugamr, @cedmax and @CrypticC3s4r! We also have @lucius346346 working behind the scene on improving the UX of Hoarder with amazing designs! And finally, we have our usual contributors @kamtschatka and @mdsaban! Also thanks to @Papierkorb for the help in suggestions to improve the LLM prompt!
We also now have a public roadmap which you can check for the features that we're planning to deliver here. Go upvote the features that you're waiting for!
If you're enjoying Hoarder, you can consider supporting it here ☕️.
New Feature
- Introducing customizable tagging rules: You can now customize the prompt that we use to generate the tags to your linkings and add custom rules for the LLM to adhere to!
- You can use this to define your tagging rules in natural language and let the LLM take care of applying it.
- If you don't want to enable "Full page archives" by default, you can now selectively archive particular pages that you want to keep forever thanks to @kamtschatka!
- You can now export your bookmarks from Hoarder and re-import them back in another instance (note: currently images and pdfs are not exported).
- You can now customize the context length of the inference model using the
INFERENCE_CONTEXT_LENGTH
flag:- The bigger this value is, the more of your content the model will see and will be able to give you better tagging.
- However, the bigger the context window, the more expensive the request is for OpenAI money-wise and for ollama resource-wise.
- The current default is
2048
tokens (~2048 words).
- Better asset tracking and management:
- We're now currently correctly accounting for all asset sizes in the database. You can view the usage of every user now in the admin panel.
- Old assets are not automatically accounted for and you'll have to click the new
Compact Asset
button in the admin panel to backfill that data. This button also removes assets that are dangling (aka not linked to any bookmark). - This work is in preparation for supporting better privacy checks in the future when we implement public and collaborative lists.
- You can now attach custom image banners to your notes.
- Those banners will appear at the top of your notes when you expand them as well as in the
List
layout. - We're still figuring out a good way to render them in the grid and masonry layouts.
- Those banners will appear at the top of your notes when you expand them as well as in the
UX Improvements
- We have a refreshed UI looks thanks to amazing designs by @lucius346346!
- We now have a sticky navbar for better experience in bulk editing thanks to @mdsaban.
- We also have a new profile options dropdown in the header where the user and admin settings buttons got moved to.
- We now have infinite scrolling for pagination so that you no longer need to click the
Show more
button. - Bulk actions improvements:
- There's now a
Select all
button to select all the currently visible bookmarks. Copy links
is also a thing to bulk copy the source links of a bunch of bookmarks thanks to @kamtschatka.
- There's now a
- You can now trigger AI tag regeneration for all bookmarks or the ones that that failed only in the admin panel.
- When you hoard text from other webpages by the extension (by highlighting text -> right click -> add to hoarder) the source link will now be preserved with the text.
- We have a new tabbed user settings page as it was getting quite long.
- Sidebar items were not clickable around the boarder which was annoying. @Trugamr fixed that!
Fixes
- For those who want to go all-in on Oauth, you can now set
DISABLE_PASSWORD_AUTH=true
which will forbid any password-based authentication/signup. This is implemented by @kamtschatka. - The All Tags page was taking too long to load when you have too many tags. @kamtschatka landed some improvements to the performance of this page.
- Editing lists from the sidebar was broken, now it's fixed.
- When you wipe your hoarder's database while still logged in the browser, users were getting some confusing behavior with confusing database errors. This is now fixed, and hoarder will automatically log you out if your account is no longer there.
- @Mxrk Added docker healthchecks to the dockerfile and also source label so that hoarder's updates can be correctly reflected in stuff like renovate.
Screenshots
The new UI Look
Profile Options
AI Settings and Tagging Rules
New Import/Export Buttons
Num Bookmarks & Asset Sizes in Admin Panel
New Admin Actions
Upgrading
To upgrade:
- If you're using HOARDER_VERSION=release, run
docker compose pull && docker compose up -d
. - If you're pinning it to a specific version, upgrade the version and then run
docker compose pull && docker compose up -d
.
All Commits
- fix: Add support for importing notes from the hoarder export - @MohamedBassem in 43ed698
- fix(web): Fix settings tab overflow on mobile layouts - @MohamedBassem in cdd0088
- fix(web): Fix profile option icon in mobile layouts - @MohamedBassem in 8741ab0
- fix(web): Fix slowness in loading the all tags UI. Fixes #382 (#390) - @kamtschatka in 4791a53
- feature: Allow importing hoarder's own bookmark file. Fixes #527 - @MohamedBassem in de9cf0a
- feature: Support regenerating AI tags only for failed bookmarks - @MohamedBassem in 2ccc15e
- build: Use node 22 for CI - @MohamedBassem in fb57f25
- deps: Upgrade nodejs to v22 - @MohamedBassem in 1390337
- deps: Upgrade metascraper for faster docker builds - @MohamedBassem in 31bcad8
- feature(web): Implement a new profile options drop menu and move user and admin settings there - @MohamedBassem in b36eea8
- docs: Add a section to installation docs about optional features - @MohamedBassem in 0d94506
- docs: Remove the warning about ollama being new - @MohamedBassem in 5e44cfb
- fix(web): Fix react error in search input - @MohamedBassem in 6035dff
- feature: Allow customizing the inference's context length - @MohamedBassem in 1b09682
- feature: Introduce a mechanism to cleanup dangling assets - @MohamedBassem in c16173e
- feature: Allow to disable default password login after SSO is configured. Fixes #406 (#502) - @kamtschatka in 9f87207
- fix(web): Reset search query and bulk edit when navigating away from the current page - @MohamedBassem in 02a5b35
- feature(web): Introduce a new sticky navbar. Fixes 520 (#515) - @mdsaban in 1f768be
- docker: Add HEALTHCHECK to Dockerfile (#508) - @Mxrk in e2644eb
- docker: add Source Label to Dockerfile (#509) - @Mxrk in 904eb5a
- fix(web): Fix sidebar list edit dialog not working. Fixes #447 - @MohamedBassem in 09e0659
- refactor: Start tracking bookmark assets in the assets table - @MohamedBassem in 1e5c575
- refactor: Include userId in the assets table - @MohamedBassem in db2d346
- readme: Add a security policy - @MohamedBassem in e6d4ff9
- feature: Allow disabling password signups (#413) - @kamtschatka in 4a3775a
- feature: Allow attaching custom banners to notes. Fixes: #106 - @MohamedBassem in 8a13095
- fix: Drop the usage of useCursorV2 from the server - @MohamedBassem in 99c6232
- fix(mobile): Drop the floating add button. Fixes #439 - @MohamedBassem in c017328
- feature: Persevere the source URL of clipped texts from the extension. Fixes #448 - @MohamedBassem in b147c8e
- feature(web): Async validate JWT account and sign out the user if they no longer exist - @MohamedBassem in f1c956a
- feature(web): Change the settings page to be tabbed - @MohamedBassem in 3a8d197
- fix(web): Simplify the language for inference settings - @MohamedBassem in 03e938a
- fix(web): Change export format to have content as a top level key - @MohamedBassem in 1f7da9a
- docker: Fix the docker-based development env (#456) - @CrypticC3s4r in 3f22801
- docs: Fix typo in installation docs (#465) - @jarednipper in f6192da
- feature(web): Allow users to export their links and notes - @MohamedBassem in c8a3c1e
- readme: Fix installation link in the readme (#482) - @disappointingsupernova in 463d041
- feature(cli): Add ability to get all bookmark IDs of a list. Fixes #442 (#446) - @kamtschatka in 4bda7a9
- deps: Upgrade openai package - @MohamedBassem in b56655c
- feature(web): Add ability to manually trigger full page archives. Fixes #398 (#418) - @kamtschatka in 8b69cdd
- feature(web): Add ability to rerun inference on all bookmarks. Fixes 443 - @MohamedBassem in 5281531
- fix(web): Improve SidebarItem tap target accessibility (#409) - @Trugamr in 8fe1927
- feature(web): Add the ability to customize the inference prompts. Fixes #170 - @MohamedBassem in 36fb5a4
- deps: Upgrade drizzle-kit - @MohamedBassem in 57f5faa
- fix(web): Fix another hydration error in copy to clipboard - @MohamedBas...
0.17.1
This is a small hotfix for the 0.17.0 release.
🐞 Fixes
- When importing bookmarks from a netscape html file, there was a bug that would result in the importing bookmarks getting all of your tags. This is fixed in 12d3371 & 4db50c2.
- A "name" is no longer required from SSO providers. @kamtschatka fixed that in e1feece.
0.17.0
Welcome to the 0.17.0
release of Hoarder. We have a bunch of new features and UX improvements including SSO support (finally), bulk tag/list actions, better bookmark importing experience, and bunch of other stuff. In this release, we're welcoming @nghduc97 and @Mxrk as first time contributors!
If you're enjoying Hoarder, you can consider supporting it here ☕️.
New Features
- Single Sign On (SSO) support is finally here for OIDC compliant providers. This was the most requested feature and it's now here thanks to @kamtschatka. You can read about how to configure it here.
- We've done multiple improvements to the bookmark importing experience:
- Bookmark importing now live in the settings page.
- You can now import bookmarks from a Pocket export.
- Imported bookmarks will keep their title, tags and creation date.
- A new list will be created that will include all your newly imported bookmarks. You can remove/rename this list after making sure that everything went according to plan.
- You can now customize the banner image for links and manipulate all its other attachments in the bookmark preview page.
- You can now bulk add/remove tags and lists to bookmarks.
- Some mobile app improvements:
- In case you were facing issues connecting to hoarder from the app, there's now a "Connection testing" functionality that shows you a more descriptive issue about the problem you're hitting.
- The app was by default following the theme (e.g. light/dark mode) of the system. You can now configure explicitly the theme that you want in the settings.
- There's a new floating quick add button to quickly save new bookmarks from within the app.
- For ollama users, you can now configure the timeout of the inference worker in case ollama's responses are slow. You can also configure a model keep alive TTL so that ollama can drop the model from memory if it's not used for that configure period.
- We have a new compact layout to quickly skim through your bookmarks.
UX Improvements
- In the tags editor, you can now quickly remove the last tags by pressing backspace.
- The tags editor will now feel much faster by optimistically applying the changes before they are committed on the server.
- On the mobile app, server errors (e.g. connection errors) will have a much better UI indicating the problem and giving you an option to retry.
- Lists are now sorted alphabetically thanks to @kamtschatka.
- Signup dialog now shows a less confusing message when signups are disabled thanks @nghduc97
Fixes
- Completely deleting a tag was broken, now it's fixed.
Screenshots
New Mobile Settings Page
Connection Testing
SSO Support
Compact Layout
New Import UI
New Bulk Actions
New Attachments Section
Upgrading
To upgrade:
- If you're using HOARDER_VERSION=release, run
docker compose pull && docker compose up -d
. - If you're pinning it to a specific version, upgrade the version and then run
docker compose pull && docker compose up -d
.
All Commits
- fix(web): Show a scrollbar in the tag editor. Fixes #368 (#404) by @kamtschatka in d0e7ca2
- feature(web): Show attachments and allow users to manipulate them. by @MohamedBassem in a770e55
- release: Release mobile and extension to include SSO changes by @MohamedBassem in 55f5c7f
- feature(mobile): Allow users to login with API keys in the mobile app by @MohamedBassem in 5fe330c
- feature(extension): Allow login directly with an API key by @kamtschatka in 26521b7
- feature(web): Add support for importing bookmarks from Pocket by @MohamedBassem in 9dd6f21
- feature(web): Preserve title, tags and createdAt when importing a netscape html. Fixes #401 by @MohamedBassem in d62c972
- feature(web): Move bookmark imports into settings by @MohamedBassem in 52024ab
- refactor: Extract useUpload into its own reusable hook by @MohamedBassem in 6b5c597
- feature(web): Add healthecheck api endpoint (#332) by @Mxrk in 3377969
- build: Fix nextjs build after upgrading to 14.2 by @MohamedBassem in 7cd857c
- deps: Upgrade turbo by @MohamedBassem in 8fa2009
- deps: Upgrade nextjs to 14.2.13 by @MohamedBassem in 55201db
- docs: Fix docs build and add sso to readme by @MohamedBassem in e585ce6
- fix(web): Better message when signups are disabled (#374) by @nghduc97 in 34fb5fb
- feature: Added support for custom OIDC providers to set up authentication. Fixes #92 (#307) by @kamtschatka in b9724b7
- deps: Upgrade drizzle and next auth drizzle adapter by @MohamedBassem in 80749d5
- fix: Fix deleting tags broken due to wrong column name by @MohamedBassem in fb63f55
- feature(web): Alphabetical sorting for lists. Fixes #315 (#351) by @kamtschatka in 064d5f8
- feature(web): Add a compact layout. Fixes #379 by @MohamedBassem in 47939a5
- feature(worker): Allow configuring inference job timeout and ollama keep alive. Fixes #389 #224 by @MohamedBassem in f263f9e
- fix(web): removing referrer header when clicking on links. Fixes #387 (#388) by @kamtschatka in 3b8cebb
- fix(mobile): Fix some icon colors in dark mode by @MohamedBassem in 095995d
- feature(mobile): Add a page for testing connection to server by @MohamedBassem in 3452e47
- feature(mobile): Add settings page for configuring the theme by @MohamedBassem in 66fcf02
- feature(mobile): Add proper error handling for server errors by @MohamedBassem in b9c7857
- docs: Update screenshots in docs by @MohamedBassem in 09e16ba
- release(mobile): Bump mobile version to 1.6.2 by @MohamedBassem in 21aaf83
- feature(mobile): Show the view bookmark modal for links as well by @MohamedBassem in cddae8f
- feature(mobile): Add a floating button for quickly adding new bookmarks by @MohamedBassem in 2bfa73f
- readme: Add full page archive and bulk actions to readme by @MohamedBassem in 3944505
- fix(web): Add optimistic rendering for the tags editor by @MohamedBassem in 300f3c5
- feature(web): Manage tags in bulk actions by @MohamedBassem in 67729c1
- feature(web): Pop tag in TagEditor on pressing backspace. #368 by @MohamedBassem in 6d4d1a6
- feature(web): Show the number of bulk selected bookmarks by @MohamedBassem in 77adb84
- feature(web): Allow adding to lists in bulk actions. #368 by @MohamedBassem in ddc7e5d
0.16.0
Welcome to the 0.16.0
release of Hoarder. Sorry for the long delay since the last release! We'd like to welcome to our first time contributors @Mxrk, @j-fuentes & @rootly-be!
NOTE: This release is backward compatible with the previous release, but it's highly recommended that you check out the
Upgrading
section in the release notes.
New Features
- Deploying Hoarder is now simpler. We're getting rid of two containers in this release:
- Redis is no longer needed as a dependency and is replaced by a sqlite-backed queue implementation.
- There's now a new container that acts as both the
web
andworkers
container. You no longer need two different hoarder containers. - The old images will continue to work just fine for the foreseeable future to make this release backward compatible. Upgrading to the new image is highly recommended though.
gpt-4o-mini
is now the default OpenAI model. This model is 3X cheaper than the previous default!- The mobile app received a bunch of overdue updates:
- Added the ability to manage bookmark lists from the app.
- You can now add/remove lists from the app.
- You can view full notes by tapping on the notes card and you can now edit them as well
- You can zoom into uploaded images.
- You can add/view attached notes to bookmarks.
- There's now a unified editor for new links and notes. Still pretty basic though.
- You can now configure the image quality of the uploaded images. Keep in mind that for large images, you might want to increase
MAX_ASSET_SIZE_MB
from the default of4MB
, otherwise, you'll get anAsset too big
error.
- Hoarder's notes now support checklists, tables and auto-links in markdown thanks to @kamtschatka
- If you have the browser extension installed, you'll find now a new
Add to Hoarder
button that you can use to send links, texts, images, to hoarder directly. Note: If you're using chrome, you'll need to be on v127 or older. Thanks @kamtschatka! - @j-fuentes added kubernetes installation instruction to the wiki.
UX Improvements
- When renaming bookmark titles or tags, pressing Enter will save the changes.
Fixes
- Importing a lot of URLs from the UI used to error, this no longer the case thanks @kamtschatka.
- SVG weren't correctly loading in full page archives using monolith, @kamtschatka fixed it.
- Bulk deletion confirmation dialog wasn't automatically dismissed after the deletion. This is now fixed by @kamtschatka.
- On the mobile app, login fails if your server URL had an extra slash at the end. @Mxrk fixed that!
Upgrading
⚠️ If you have ongoing crawlings/inference/indexing jobs in Hoarder, you'll need to re-enqueue them from the admin panel after the upgrade.
As mentioned in the release notes, this release removes the need for the redis
container and the worker container. Although the migration is optional given that the old images will work, it's highly recommended, to migrate, you'll need to do the following:
- Remove the redis container and its volume if it had one.
- Move the environment variables that you've set exclusively to the
workers
container to theweb
container. - Delete the
workers
container. - Rename the web container image from
hoarder-app/hoarder-web
tohoarder-app/hoarder
.
The diff for the compose file will look something like this:
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
index cdfc908..6297563 100644
--- a/docker/docker-compose.yml
+++ b/docker/docker-compose.yml
@@ -1,7 +1,7 @@
version: "3.8"
services:
web:
- image: ghcr.io/hoarder-app/hoarder-web:${HOARDER_VERSION:-release}
+ image: ghcr.io/hoarder-app/hoarder:${HOARDER_VERSION:-release}
restart: unless-stopped
volumes:
- data:/data
@@ -10,14 +10,10 @@ services:
env_file:
- .env
environment:
- REDIS_HOST: redis
MEILI_ADDR: http://meilisearch:7700
+ BROWSER_WEB_URL: http://chrome:9222
+ # OPENAI_API_KEY: ...
DATA_DIR: /data
- redis:
- image: redis:7.2-alpine
- restart: unless-stopped
- volumes:
- - redis:/data
chrome:
image: gcr.io/zenika-hub/alpine-chrome:123
restart: unless-stopped
@@ -37,24 +33,7 @@ services:
MEILI_NO_ANALYTICS: "true"
volumes:
- meilisearch:/meili_data
- workers:
- image: ghcr.io/hoarder-app/hoarder-workers:${HOARDER_VERSION:-release}
- restart: unless-stopped
- volumes:
- - data:/data
- env_file:
- - .env
- environment:
- REDIS_HOST: redis
- MEILI_ADDR: http://meilisearch:7700
- BROWSER_WEB_URL: http://chrome:9222
- DATA_DIR: /data
- # OPENAI_API_KEY: ...
- depends_on:
- web:
- condition: service_started
volumes:
- redis:
meilisearch:
data:
To upgrade:
- If you're using HOARDER_VERSION=release, run
docker compose pull && docker compose up -d
. - If you're pinning it to a specific version, upgrade the version and then run
docker compose pull && docker compose up -d
.
All Commits
- feature(mobile): Allow interacting with images in the app. Fixes #352 - @MohamedBassem in 2fb8559
- feature(mobile): Add support for deleting lists - @MohamedBassem in 7593982
- feature(mobile): Allow configuring uploaded image quality in the mobile app - @MohamedBassem in fdf055a
- feature(mobile): Add ability to create basic lists from the app - @MohamedBassem in 1405540
- release(mobile): Bump mobile version to 1.6.1 - @MohamedBassem in 410b0e7
- ui(mobile): Merge the editors for notes and links - @MohamedBassem in 49dc06e
- feature(mobile): Change the view bookmark page to be a modal and add tags and notes - @MohamedBassem in b094b2c
- ui(mobile): Change the add/edit note editor dialogs to be bottom sheets - @MohamedBassem in 8410a6d
- feature(mobile): Allow editing notes from the mobile app - @MohamedBassem in d8cf7c1
- fix(mobile): trim slash from url on signin. Fixes #311 (#361) - @Mxrk :) in 6fba4aa
- fix(mobile): Allow expanding the text by clicking on bookmark card - @MohamedBassem in 0584ad2
- fix(mobile): Change the next note text input to have multiple lines by default - @MohamedBassem in dc68b44
- [docker] Adding chrome-service.yaml and adapt kustomization.yaml. Fixes #357 (#358) - @rootly-be in 809a9bc
- fix(extension): Upgrade crxjs to 2.0 to add support for firefox - @MohamedBassem in 485276e
- release(extension): Release version 1.2.2 - @MohamedBassem in 99b24bc
- [extension] Add context menu item in the browser extension. Fixes #155 (#278) - @kamtschatka in 0710147
- fix(mobile): Change the hoarded page to no longer be a modal to allow AddToList to work - @MohamedBassem in c7f9feb
- docs: Add Kubernetes installation with Kustomize (#324) - @j-fuentes in 7ddfcad
- release(mobile): Bump mobile version to 1.6.0 - @MohamedBassem in 1ca951a
- feat(mobile): Add ability to manage lists - @MohamedBassem in 93afb75
- fix(workers): Shutdown workers on SIGTERM - @MohamedBassem in 92c92c1
- docker: Change all images to be built from the same AIO base - @MohamedBassem in c72dbd0
- feat: Upgrade default openai models to gpt-4o-mini which are 3x cheaper - @MohamedBassem in b74bee8
- cli: Extract tag management into separate subcommand - @MohamedBassem in f6ecef8
- release(cli): Bump CLI version to 0.13.6 - @MohamedBassem in 4f661c4
- feature(cli): Allow updating tags/lists from CLI (#211) - @kamtschatka in 5e4decb
- refactor: Remove unused BookmarkedTextViewer (#310) - @kamtschatka in eb0a28e
- build: Add an all-in-one container - @MohamedBassem in 98fc559
- fix: async/await issues with the new queue (#319) - @kamtschatka in c5c62de
- chore(deps): Upgrade turbo and disable its daemon - @MohamedBassem in 4c23ea9
- refactor: Replace the usage of bullMQ with the hoarder sqlite-based queue (#309) - @MohamedBassem in 9edd154
- [docs] Change the docs to versioned - @MohamedBassem in edbd98d
- feature: Add github markdown support which includes tables, checklists and auto links #300 (#302) - @kamtschatka in 888dad6
- chore: Add a new sqlite based queue package - @MohamedBassem in f77a41a
- fix: monolith not embedding SVG files correctly. Fixes #289 (#306) - @kamtschatka in aa3dce0
- fix: Fix TRPC batchign failure because of long URLs. Fixes #281 (#291) - @kamtschatka in a222564
- feature(web): Save title and tag name changes on enter. Fixes #283 (#293) - @kamtschatka in 1396dd2
- fix: Delete confirmation doesn't disappear after bulk deletion of links using WebUI. Fixes #290 (#292) - @kamtschatka in e65aadb
- chore: added a new table to store the config in the database (#279) - @kamtschatka in ee167be
- landing: update landing page to include bulk actions - @MohamedBassem in 6a8d839
- fix(web): Suppress hydration warnings caused by the dates in the bookmark grid - @MohamedBassem in d7fff89
0.15.0
Welcome to the 0.15.0
release of Hoarder! It's been a while since the previous release, but this release is packed with a lot of new quality of life improvements and features. This releases wouldn't have been possible without the tons of contributions from @kamtschatka, @mdsaban & @AhmadMuj. I also want to welcome our first time contributors @kou029w & @devome. If you're interested in helping us develop hoarder, you can join our #development channel on hoarder's discord.
New Features
- Bulk actions are now a thing thanks to a contribution from @mdsaban. You can now bulk favourite, archive or delete bookmarks. In the next release, you'll be able to bulk add/remove bookmarks from lists.
- Full page archival is now here (powered by monolith). This will download everything that's in the page so that you can have an offline copy of that page even if that page disappears from the internet afterwards. The archives are typically quite large, so this feature is disabled by default. If you're a true hoarder, you can enable it with
CRAWLER_FULL_PAGE_ARCHIVE=true
. - When you hoard a URL that points to a pdf or an image, Hoarder will now treat them as pdfs/images instead of links while keeping a reference to their original source. This will also allow automatic tagging to work correctly on those links. (thanks @kamtschatka!)
- You can now import your chrome bookmarks (or any Netscape compatible bookmark file) by exporting them from chrome, then drag and drop the exported file to hoarder. All links in the export will be imported. (thanks @kamtschatka!)
- For those hoarding code snippets, @kamtschatka added syntax highlighting to code blocks and a way to quickly copy the block.
- Hoarder is now available on arch linux's user repo (AUR) and is maintained by @devome. A new wiki page with installation instructions is now available.
UX Improvements
- @mdsaban revamped how both the user and admin settings pages look like.
- In the list layout, the editor will expand as you type longer notes thanks to @AhmadMuj.
- You can now paste images directly in the editor card and they'll get automatically uploaded thanks to @AhmadMuj.
Fixes
- The layout selector is now more clearly shown above the bookmark grid thanks to @mdsaban.
- Tags that were added manually were not correctly propagating to the search index. This is now fixed by @kamtschatka. You might want to trigger a reindex from the admin page if you've attached some manual tags.
- @kamtschatka fixed a long standing bug that prevented firefox users from using the browser extension without a valid HTTPS certificate.
- The editor card previously allowed you to save empty notes, this has now been fixed by @mdsaban.
- Increased list name max size to 40 chars up from 20.
- We previously had an upper limit on note sizes that we removed a while ago. However, we forgot to remove it when editing a note. @AhmadMuj fixed that.
- The CLI was previously printing invalid JSONs. Now there's a proper JSON mode thanks to @kamtschatka.
- For CJK environments, there's now a sans-serif fallback font thanks to @kou029w.
- Automatically inferred tags could have contained an extra space in the beginning of the tag, @kamtschatka fixed that.
Screenshots
Bulk Editing in Action
Screen_Recording_2024-06-26_at_10.46.49_AM.mp4
Revamped Admin Page
Revamped Settings Page
Full Page Archives
PDF/Image URL recognition
Screen.Recording.2024-07-06.at.11.50.14.AM.mov
Upgrading
To upgrade:
- If you're using HOARDER_VERSION=release, run
docker compose pull && docker compose up -d
. - If you're pinning it to a specific version, upgrade the version and then run
docker compose pull && docker compose up -d
.
All Commits
- fix(web): Add sans-serif fallback for Inter font in CJK environments (#272) by @kou029w in #72f03b2
- fix: Renaming full page archive asset file doesn't work inside docker. Fixes #273 by @MohamedBassem in #5e9b04a
- feat: Add bulk edit option for bookmarks. Fixes #84 (#259) by @mdsaban in #d193d9b
- fix: fixed an issue that would half the textarea in grid layout after submitting a bookmark (#269) by @kamtschatka in #bf92fa3
- refactor: fixed typos in BookmarkTypes (#268) by @kamtschatka in #4e70fe3
- refactor: drag and drop improvements (#264) by @kamtschatka in #9cd6170
- fix: Increase list name size to max 40 chars up from 20. Fixes #254 by @MohamedBassem in #9883c6b
- fix: Fix duplicate bookmarks in links with assets by @MohamedBassem in #3d495cd
- refactor: added the bookmark type to the database (#256) by @kamtschatka in #e648646
- refactor: remove redundant code from crawler worker and refactor handling of asset types (#253) by @kamtschatka in #ccbff18
- ui: refactor admin settings page (#249) by @mdsaban in #e107f8b
- ui: Changes for user settings page (#251) by @mdsaban in #a637130
- feature: Automatically transfer image urls into bookmared assets. Fixes #246 by @MohamedBassem in #1071095
- ui(web): move layout selector to main screen (#252) by @mdsaban in #8f0e9b1
- refactor: extract assets into their own database table. #215 (#220) by @kamtschatka in #9ce6958
- fix(landing): image width on landing page (#250) by @mdsaban in #0f54a18
- feature: add support for PDF links. Fixes #28 (#216) by @kamtschatka in #be1b7f7
- fix(web): Fix save action on empty card. Fixes #225 (#243) by @mdsaban in #ccfff6b
- ui: Improve landing page for homepage (#238) by @mdsaban in #16f21bf
- feature(web): Enhance the bookmark textarea in the list layout (#247) by @AhmadMuj in #ac05ecf
- readme: broken readme links (#233) by @mdsaban in #348bd80
- fix: Remove the bookmark update text limit (#244) by @AhmadMuj in #671fc32
- fix(web): text paste bug introduced with image paste (#232) by @mdsaban in #23faf46
- docs: add Arch Linux installation docs (#223) by @devome in #dc19313
- feature(web): support pasting image in the Editor Card (#228) by @AhmadMuj in #6823caf
- release(cli): Bump CLI version to 0.13.5 by @MohamedBassem in #219329b
- release(cli): Bump CLI version to 0.13.4 by @MohamedBassem in #5f263a3
- fix(cli): Bookmark list output is not a valid JSON. Fixes #150 (#181) by @kamtschatka in #cde9726
- refactor: Extract the bookmark polling logic into a separate shared component by @MohamedBassem in #6928800
- fix: Trigger search re-index on bookmark tag manual updates. Fixes #208 (#210) by @kamtschatka in #546139e
- feature(web): Add syntax highlighting to code blocks and a quick copy button. Fixes #195 (#197) by @kamtschatka in #be1bb38
- fix(cli): Fix CLI version in help message. Fixes #139 by @MohamedBassem in #f7a7753
- feature(extension): Add a context menu to open your hoarder saves. Fixes #188 (#206) by @kamtschatka in #2d0af0b
- fix(web): Changed the toast to contain a more detailed error message in case the bookmark is already part of the list. Fixes #179 (#213) by @kamtschatka in #049e79d
- fix(workers): AI infered tags can contain " " at the beginning. Fixes #184 (#194) by @kamtschatka in #be8b91f
- fix(crawler): Only update the database if full page archival is enabled by @MohamedBassem in #9d89f98
- docs: Document the new CRAWLER_FULL_PAGE_ARCHIVE flag by @MohamedBassem in #9198c1b
- feature: Full page archival with monolith. Fixes #132 by @MohamedBassem in #dedc5fb
- feature: Allow import Netscape HTML format (#163) by @kamtschatka in #033e8a2
- build: Let the upload-artificat action do the compression by @MohamedBassem in #bb431be
- release(extension): Bump extension version to 1.2.1 by @MohamedBassem in #8688dd4
- build: Add a workflow to build the extension by @MohamedBassem in #c9b1307
- fix(extension): Drop the https restriction in firefox. Fixes #23 by @kamtschatka in #875cc35
- fix(cli): Switched to cursorV2 to make use of the fix for #140 and prevent infinite loops (#176) by @kamtschatka in #6dc67cf
0.14.0
Welcome to the 0.14.0
release of Hoarder! I want to welcome our two new contributors @kamtschatka who added a bunch of quality of life improvements and @lilacpixel who fixed a bunch of cosmetic issues in Hoarder! I also want to thank @Collectathon who published Hoarder's template on unraid which was a very popular request from unraid users!
Note: You probably want to read the Upgrading section for that release. No breaking changes, but some recommendations are mentioned.
Announcements
- Hoarder is now available on the unraid store thanks to @Collectathon! The docs now include an unraid installation section here.
- The iOS app has finally been accepted in the app store (link). Thanks a lot to all the beta testers during that time! You can still continue using TestPilot if you want the latest versions fasters, but you can also now switch to the prod version if you want stability.
New Features
- Link deduping is here. When adding a link that you've hoarded before, it won't be re-added and instead you'll be prompted to go to your original link. When adding it from the browser extension, the existing bookmark's tags and lists will be shown allowing you to alter them if needed.
- Note: Unless you're on the latest mobile version, a deduped link will be silently ignored (without any visual indications). Upgrade to the latest version to get a message telling you that it already exists.
- To quickly merge tags, @kamtschatka added support for dragging and dropping tags on each others to merge them together! To aid with the merging, you can now sort the tags in the "All tags" page by name instead of count.
- You can now batch add multiple links to the bookmark editor card (one per line) and hoarder will import them in one go.
- Hoarder can now take full page screenshots (instead of only the top of the page) thanks to @kamtschatka. This is disabled by default as it consumes a lot of space, but can be enabled by setting
CRAWLER_FULL_PAGE_SCREENSHOT=true
. - In the list management dialog, you can now quickly archive a bookmark after adding it to lists. This is useful to those who follow
Inbox Zero
for their homepage. - Hoarder is now using openai's new model
gpt-4o
by default for image tagging. It's faster and 50% cheaper!
Fixes
- Local tagging with Ollama is now more robust thanks to @kamtschatka refactoring the prompt a bit so that model doesn't lose context on what the instructions actually are.
- Bookmarks that were created in the same second (usually as part of a mass import) were sometimes skipped between pages. This is now fixed.
- A lot of cosmetic touches by @lilacpixel:
- Clicking on images in the bookmark list now opens the bookmark preview popup.
- Clicking on an image in the preview popup will open it in full quality in a new browser tab.
- Long titles used to overflow in modals and in the bookmark grid. This is also fixed by @lilacpixel.
- The bookmark preview popup's input fields now have full width to better show the available tags.
- The tags in the tags editor are now sorted lexicographically.
Screenshots
Link Deduping
New Archive Button in "Manage Lists" Dialog
Multi-URL import
Drag and Drop tag merging
Untitled.mov
Upgrading
- The repo got moved to its own organization, and the docker images unfortunately didn't get moved. which means you might want to update the docker images to the new urls. I'll keep updating the old images for the foreseeable future though. In your docker-compose file, change:
ghcr.io/mohamedbassem/hoarder-web
toghcr.io/hoarder-app/hoarder-web
ghcr.io/mohamedbassem/hoarder-workers
toghcr.io/hoarder-app/hoarder-workers
- To improve chrome's stability for large pages, add
--disable-dev-shm-usage
to the existing list of arguments of the chrome container.
To upgrade:
- If you're using HOARDER_VERSION=release, run
docker compose pull && docker compose up -d
. - If you're pinning it to a specific version, upgrade the version and then run
docker compose pull && docker compose up -d
.
All Commits
- build: Attempt to fix docker permission error - @MohamedBassem in eac54e6
- docker: Update docker images to point to the new repo URLs - @MohamedBassem in 6839289
- docs: Change references from the old repo URL to the new one - @MohamedBassem in 1506ff0
- fix(web): Stop pre-loading all the bookmark lists in the bookmark grid - @MohamedBassem in 8274d07
- feature(web): Add an archive button to list management dialog - @MohamedBassem in f99f4c0
- fix(web): Sort the tags in the TagsEditor of the preview dialog. Fixes #171 - @MohamedBassem in bfcf0a4
- fix: Fix missing bookmarks during pagination if they got created in the same second. Fixes #140 - @MohamedBassem in e8b4775
- feature(web): Allow adding multiple URLs at once #158 (#167) - @kamtschatka in d1ad84b
- ui(web): Set tag input field in preview modal to 100% width to fix overflow issues on select dropdown (#165) - @lilacpixel in cb62db7
- feature(inference): Improve ollama tagging (#162) - @kamtschatka in fdc27d3
- docs: Add documentation for installing hoarder on unraid. Fixes #81 - @MohamedBassem in eb218ce
- fix: Add the missing bookmark URL index migration - @MohamedBassem in c9dc23f
- fix(web): Simplify the logic for tag drag and dropping - @MohamedBassem in e5fd9ee
- feature(web): Improve merging of tags by simple drag and drop #144 (#154) - @kamtschatka in 1fee129
- build: An empty commit to fix vercel's build - @MohamedBassem in 6eea671
- feature(inference): Upgrade the default vision model to the new gpt-4o-2024-05-13 which is faster and 2x cheaper - @MohamedBassem in 168aed0
- feature(web): Clicking an image in the preview modal will open it in a new tab (#159) - @lilacpixel in c0aa6d5
- ui(web): Fixed overflow issues for very long titles (#152) - @lilacpixel in 747efa5
- feature(crawler): Allow connecting to browser's websocket address and launching the browser on demand. This enables support for browserless - @MohamedBassem in 39025a8
- feature(worker): Allow configuring redis with a password - @MohamedBassem in f64a5f3
- fix(crawler): Add --disable-dev-shm-usage to chrome container - @MohamedBassem in 9b5ef3a
- feature(mobile): Show server address in the settings - @MohamedBassem in 8521580
- ui(mobile): Add horizontal margins to the bookmark cards - @MohamedBassem in e6c9ef4
- tests: Add tests for bookmark deduplication - @MohamedBassem in ecfcba5
- feature: Take full page screenshots #143 (#148) - @kamtschatka in d33be14
- feature: Clicking preview for image assets brings up the details modal (#147) - @lilacpixel in cbc8dde
- Development Instructions are incomplete/not working (fixes #145) (#146) - @kamtschatka in 1e317d9
- landing: Add google and ios badges to the landing page - @MohamedBassem in edf5fdb
- readme: Add the iOS app store link to the readme and docs - @MohamedBassem in 7f3e482
- feature: Dedup links on creation. Fixes #49 - @MohamedBassem in 32b5a02
- build: Add iOS and android builds to github actions - @MohamedBassem in 02ef4bf
- fix(cli): Remove limit from array length when listing bookmarks. Fixes #135 - @MohamedBassem in 2ed134e
- build: Add a workflow to auto publish the CLI to npm - @MohamedBassem in 79777bd
- fix(cli): Allow bookmark listing to fetch all pages instead of only the first one. Fixes #135 - @MohamedBassem in 27f45d5
- fix: Allow zod to coerce the crawler timeout from strings. Fixes #134 - @MohamedBassem in 81e49fa
0.13.1
0.13.0
Welcome to the 0.13.0
release of Hoarder! This release is packed with a lot of new features to better organize your bookmarks. This includes: Nested lists, tag merging, a new suggested cleanups page, and more! Crawler also now takes screenshots and downloads the banner images locally. The CLI is now more powerful giving you ability to do mass modifications (e.g. archiving/adding to lists) until the mutli-select feature is developed.
Note: You probably want to read the
Upgrading
section for that release. No breaking changes, but some nice recommendations are mentioned.
Announcements
- The android app has been finally released on the play store (link)! Thanks a lot to all the beta testers during that time! Go check it out (and maybe give it a review while you're there 😉). The iOS app is still stuck in apple's review queue unfortunately, so you still need to use the beta version for now.
- The new chrome/firefox extensions allow you to quickly add tags and lists to your newly saved bookmarks!
New Features
- Nested lists are here! When you're creating a new list, you can choose a parent for that list and it'll be nested under it. The
All lists
page has been revamped to support showing the list tree. - Merging tags is now a thing.
- A new
Cleanups
page that will suggest to you ways to cleanup your collection. As a start, it now detects potentially duplicate tags and suggests merging them. Currently, the algorithm is very simple and will detect duplicates if they have different cases (e.g.Chess
andchess
), and also tags that differ by at most one character (e.g.web-devopment
andWeb development
). The inference job now is also fixed to avoid creating those duplicates in the first place.- In the future, tag duplication detection will be able to suggest merging semantically equivalent tags.
- The crawler now by default downloads the banner images. This is to protect against bookmarked links going away, but also to get around rate limits when you have multiple bookmarks from the same website (e.g. github). This will result into a larger storage space utilization. If you don't care about that, you can disable by setting
CRAWLER_DOWNLOAD_BANNER_IMAGE=false
. - The crawler also will now take screenshots of the website it crawls and allows you to see them in the preview page. The screenshots will also be used as a fallback banner for links that don't have an image. Again, this will use some extra storage, so if you don't want screenshots, you can disable them with
CRAWLER_STORE_SCREENSHOT=false
. - You can now edit lists to change its name or update its parent.
- You can now see (and manage) all the bookmarks a list is in from the new
Manage Bookmarks
drop down option. - You can now delete tags from the
All tags
page. TheAll tags
page will also show you the "unused" tags and gives you a quick way to mass delete them. - The CLI got a lot of new commands. You can now update bookmarks from the CLI (e.g. to archive or favourite them), and you can add or remove bookmarks from lists. You can have a look on the updates docs page here. Also, you can now get the CLI directly from NPM using
npm install -g @hoarderapp/cli
. The CLI is very useful for now to do mass actions on your bookmark while we develop the multi-select feature #84.
Fixes
- When you preview a bookmark (using the maximize button), the address bar of the browser will now show a unique link for that bookmark.
- The crawler now can correctly find the images in amazon links.
- The search indexing worker was in some rare cases incorrectly reporting success while it actually failed. This is now fixed.
Screenshots
The new Cleanups page
Viewing and mass deleting unused tags
Nested lists
The new extension capabilities
Quick tag deletion
Viewing the screenshots
Upgrading
- If you're using HOARDER_VERSION=release, run docker compose pull && docker compose up -d.
- If you're pinning it to a specific version, upgrade the version and then run docker compose pull && docker compose up -d.
After Ugprading:
- Now that we're taking screenshots for pages, you'll want to tell chrome to hide scrollbars by adding
--hide-scrollbars
to thecommand
section under the chrome container. Check the update docker compose (here) for reference on how to do it. - Apparently, meillisearch collects analytics by default unless you opt out. Add
MEILI_NO_ANALYTICS=true
in the environment section of the meillisearch container if you don't want that. Check the update docker compose (here) for reference on how to do it. Thanks for the report and fix @vivekmiyani! - The release introduced the ability to download banner images and take screenshots from webpages. Those will be applied only on newly crawled pages. if you want to do the same for your old bookmarks, you can re-crawl all the links from the admin panel by pressing on the
Recrawl All Links (Without Inference)
. Make sure you click the(Without inference)
button otherwise you'll be re-running automatic tagging which can be expensive.
All commits
- docker: Attempt to improve build times by changing cache backend by @MohamedBassem in #5d805e2
- fix(inference): Attempt to reuse existing identical tags by @MohamedBassem in #b4c7de2
- feature: Allow users to delete all unused tags in one go by @MohamedBassem in #7d163f2
- fix: Fix error when merging empty tags by @MohamedBassem in #0b02f94
- fix: Change tag listing API to return unused tags by @MohamedBassem in #5aabbec
- fix: Re-index affected bookmarks when one of their tags gets updated by @MohamedBassem in #4efcac7
- feature(crawler): Allow increasing crawler concurrency and configure storing images and screenshots by @MohamedBassem in #a91aff2
- feature: A new cleanups page to suggest ways to tidy up your bookmarks by @MohamedBassem in #9dace18
- feature(web): Add ability to rename, merge and fast delete tags. Fixes #105 (#125) by @MohamedBassem in #d07f2c9
- docs: Update docs to include the links to the android app by @MohamedBassem in #da6df7c
- fix(web): Fix hydration error in the bookmark preview page by @MohamedBassem in #92cff68
- ui(web): Show bookmark URL when maximizing a bookmark by @MohamedBassem in #ec15d20
- docs: Update the CLI docs to reference the published NPM package by @MohamedBassem in #4804f98
- style(cli): Change all help messages to lowercase by @MohamedBassem in #ac2f78f
- build(cli): Prepare for publishing CLI to npm by @MohamedBassem in #3352a3e
- feature(cli): Add ability to manipulate lists, tags and update bookmarks by @MohamedBassem in #af0cf9c
- fix(crawler): Better extraction for amazon images by @MohamedBassem in #5dac180
- fix(docs): Update the social image from the generic docusaurus image by @MohamedBassem in #ab92969
- feature(web): Change the AddList modal to allow adding and removing bookmarks from lists by @MohamedBassem in #88b92d8
- fix(workers): Increase robustness of search worker and add extra logging. Fixes #118 by @MohamedBassem in #c1baada
- fix(workers): Set a modern user agent and update the default viewport size by @MohamedBassem in #cca81ca
- release(extension): Release version 1.2.0 by @MohamedBassem in #3d1eeef
- feature(extension): Allow adding tags and lists to newly hoarded bookmarks by @MohamedBassem in #77b1aba
- fix(web): Fix missing link card image in list view by @MohamedBassem in #0e26095
- ui(extension): Use shadcn and better dark mode support by @MohamedBassem in #7ddcb5f
- fix(mobile): Add a bigger button to collable the nested list by @MohamedBassem in #5f599f2
- fix: Update docker-compose.yml (#119) by @Rosin1 in #cbdaf56
- docker: Disable meilisearch analytics (#117) by @vivekmiyani in #9b9cdcf
- fix: Ensure that downloaded asset images are from the allowed content types by @MohamedBassem in #12c682b
- fix: Use next/image for serving bookmark images by @MohamedBassem in #e12fe02
- feature: Allow recrawling bookmarks without running inference jobs by @MohamedBassem in #4c589d4
- feature: Download images and screenshots by @MohamedBassem in #4402e6f
- mobile: Bump mobile version to 1.5 by @MohamedBassem in #b4a13ce
- fix(mobile): Fix the color of the collapsible triangle...
0.12.2
Another small hotfix for the 0.12.0 release.
Fixes:
- Preferred layout was getting lost when the browser is closed and reopened. This is fixed in this release.
Commits:
- fix: Fix user local settings cookie to have max age as by default it's a session cookie. Fix #104 by @MohamedBassem in bb44ebc