Add JetBrains Toolbox extension#22
Conversation
PitNikola
left a comment
There was a problem hiding this comment.
Hi, the extension looks pretty 👍
I installed AppCode to test it (I didn't have any JetBrains product), and experienced two issues:
- Loading never completes if there are no recent projects.
- I'm consistently getting this error after adding few projects:
Here's full error log:
TypeError: Cannot read properties of undefined (reading 'title')
OpenInJetBrainsAppAction:recent.tsx:77:37
---
74: return entries;
75: }
76:
77: function OpenInJetBrainsAppAction({ tool, recent }: { tool: file, recent: recentEntry }) {
78: function handleAction() {
79: exec(`${tool.path.replace(" ", "\\ ")} "${recent.path}"`, (err, stdOut, stdErr) => {
80: err
---
at ray-menu-section
Ki:index.js:46:25457
at ray-action-panel
or:index.js:46:25315
Yi:index.js:46:25207
hp:index.js:5:4179
yp:index.js:5:5559
at ray-root
Go:index.js:5:5905
Ds:index.js:5:6209
Here's what I have in AppCode:

I didn't have a chance to test it further so I'll need you to fix that issue first. Also left few other suggestions inline.
extensions/jetbrains/package.json
Outdated
| @@ -0,0 +1,55 @@ | |||
| { | |||
| "name": "jetbrains", | |||
| "title": "JetBrains", | |||
There was a problem hiding this comment.
Since it's only one command extension, let's name it something like JetBrains Recent Projects.
extensions/jetbrains/package.json
Outdated
| "title": "JetBrains Recent Projects", | ||
| "subtitle": "", |
There was a problem hiding this comment.
Suggestion:
Change title to "Search Recent Projects"
Subtitle to "JetBrains"
|
@PitNikola thanks for the review.
Did you install it via JetBrains Toolbox or as a standalone app? |
|
Standalone app from their website. |
|
@PitNikola Okay, updated as this was currently only designed to work with Jetbrains Toolbox installations |
|
Got it, makes sense. Merging then. |
|
@gdsmith I have toolbox and pycharm (via toolbox) installed. The plugin still shows me this error message:
|
|
@pyinto in Toolbox / Settings there's a Generate shell scripts option, do you have that enabled? And if it is enabled did you change that from the default? |
|
@gdsmith it is enabled, I enabled it myself, first thing I've tried after I found that extension does not work |
|
@pyinto I had the same issue. Change the path to |
|
Working on a fix. Had not realised I had customised that path.
…On Wed, 3 Nov 2021, 15:14 Sebastiaan Kloos, ***@***.***> wrote:
@pyinto <https://github.com/pyinto> I had the same issue. Change the path
to ~/.config/jetbrains/bin. That should work!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#22 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAG53F4XQEVQ57QKT6IARH3UKEKSTANCNFSM5F63DU5Q>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
|
|
@pyinto @SebastiaanKloos updated extension version is released if you can try that and see if it solves your issues |
Yes it works great! The config option is also very nice! Many thanks 🎉 |
* Add JetBrains extension * Update to be more specifically for jetbrains toolbox
- Update list of commands screenshot on Readme - Hosting Command Palette: Prepare metadata and screenshots for submission to the store (raycast#38) - Fix commands title case to make the linter happier - Hosting Command Palette: Use extension name as ref for new URLs (raycast#37) - Fixes grammar error in the description and subtitle of the command (raycast#34) - Fixes project title to use the right capitalization (raycast#36) - Hosting Command Palette: Add cache action commands on Raycast (raycast#31) - Hosting Command Palette: Add more site management commands (raycast#29) - Hosting Command Palette: Add keywords for each command (raycast#28) - Hosting Command Palette: Add \'Open Jetpack Scan\' and \'Open Jetpack Social\' (raycast#26) - Hosting Command Palette: Use Jetpack Cloud for Activity and Backup (raycast#24) - Hosting Command Palette: Fix command description at root (raycast#32) - Fix linting issue - Hosting Command Palette: After selecting a command that opens a web page, the list of sites is empty (raycast#22) - Hosting Command Palette: Add \'Open Reader\' command (raycast#23) - Fix linting failure (raycast#25) - Hosting Command Palette: Add \'View media uploads\' command to Raycast (raycast#20) - Hosting command Palette: Add url to label (raycast#21) - Hosting Command Palette: Switch oAuth provider back to \'WordPress.com\' (raycast#19) - Hosting Command Palette: Change the package.json author (raycast#13) - Hosting Command Palette: Fix site item styling (raycast#9) - Hosting Command Palette: Tweak oAuth connection strings (raycast#17) - Hosting Command Palette: Fix JP product name (raycast#18) - Hosting Command Palette: Register additional site management commands for Raycast (raycast#15) - Add a PULL_REQUEST_TEMPLATE (raycast#14) - Hosting Command Palette: Apply WordPress.com branding to WordPress.com-specific commands (raycast#12) - Hosting Command Paltte: Fix lint errors (raycast#11) - Hosting Command Palette: Navigate to root after site command (raycast#8) - Hosting Command Pallette: Add navigational commands (raycast#7) - Hosting Command Palette: Add ssh commands (raycast#5) - Hosting Command Palette: Add OAuth support (raycast#3) - Hosting Command Palette: Add running locally docs (raycast#4) - Hosting Command Pallete: Update the name of the extension (raycast#2) - Prototype: minor refactor (raycast#1) - Initial commit using the code from Raycast exploration - Initial commit
* Add jetpack-commands extension - Update list of commands screenshot on Readme - Hosting Command Palette: Prepare metadata and screenshots for submission to the store (#38) - Fix commands title case to make the linter happier - Hosting Command Palette: Use extension name as ref for new URLs (#37) - Fixes grammar error in the description and subtitle of the command (#34) - Fixes project title to use the right capitalization (#36) - Hosting Command Palette: Add cache action commands on Raycast (#31) - Hosting Command Palette: Add more site management commands (#29) - Hosting Command Palette: Add keywords for each command (#28) - Hosting Command Palette: Add \'Open Jetpack Scan\' and \'Open Jetpack Social\' (#26) - Hosting Command Palette: Use Jetpack Cloud for Activity and Backup (#24) - Hosting Command Palette: Fix command description at root (#32) - Fix linting issue - Hosting Command Palette: After selecting a command that opens a web page, the list of sites is empty (#22) - Hosting Command Palette: Add \'Open Reader\' command (#23) - Fix linting failure (#25) - Hosting Command Palette: Add \'View media uploads\' command to Raycast (#20) - Hosting command Palette: Add url to label (#21) - Hosting Command Palette: Switch oAuth provider back to \'WordPress.com\' (#19) - Hosting Command Palette: Change the package.json author (#13) - Hosting Command Palette: Fix site item styling (#9) - Hosting Command Palette: Tweak oAuth connection strings (#17) - Hosting Command Palette: Fix JP product name (#18) - Hosting Command Palette: Register additional site management commands for Raycast (#15) - Add a PULL_REQUEST_TEMPLATE (#14) - Hosting Command Palette: Apply WordPress.com branding to WordPress.com-specific commands (#12) - Hosting Command Paltte: Fix lint errors (#11) - Hosting Command Palette: Navigate to root after site command (#8) - Hosting Command Pallette: Add navigational commands (#7) - Hosting Command Palette: Add ssh commands (#5) - Hosting Command Palette: Add OAuth support (#3) - Hosting Command Palette: Add running locally docs (#4) - Hosting Command Pallete: Update the name of the extension (#2) - Prototype: minor refactor (#1) - Initial commit using the code from Raycast exploration - Initial commit * Using images from metadata * Update package.json * Update CHANGELOG.md and optimise images --------- Co-authored-by: Per Nielsen Tikær <per@raycast.com> Co-authored-by: raycastbot <bot@raycast.com>
- Merge pull request raycast#22 from thuoe/next - Merge pull request raycast#21 from thuoe/docs/2023-12-26-changelog - docs: update changelog - Merge pull request raycast#20 from thuoe/feature/thu-33-redesign-test-api-command - docs: update screenshots - chore: delete unused assets - feat: action to open ext preferences - feat: use form to test API access token - Merge pull request raycast#19 from thuoe/bugfix/fetch-teams - fix: optional position name - Merge pull request raycast#2 from thuoe/feature/thu-15-raycast-create-search-command - Merge pull request raycast#10 from thuoe/feature/thu-26-create-command-screenshots - docs: include command screenshots in README.md - docs: player stats screenshot - docs: team list screenshot - docs: update team details & API screenshots - docs: delete outdated screenshots - docs: create command screenshots - Merge pull request raycast#17 from thuoe/bugfix/type-errors - build: include build step during CI pipeline - fix: type error fetch teams hook - fix: type error command arg - fix: type errors for fetching fixtures - fix: type erros from player stats - fix: 2d array type further improvements - fix: array type - fix: multidimensional array type - Merge pull request raycast#18 from thuoe/feature/unit-tests - build: test step to ci job - test: create markdown from 2d array - test: grouping obj - test: format & select fields - build: install jest - Merge pull request raycast#16 from thuoe/feature/thu-32-search-command-create-readme - docs: add missing command subheading - docs: create README.md template - Merge pull request raycast#15 from thuoe/feature/thu-29-player-markdown-season-stats - feat: include yellow/red card stats - refactor: set/filter events - fix: map player id - feat: fetch player stats across seasons for teams - feat: create markdown table function - Merge remote-tracking branch \'origin/next\' into feature/thu-15-raycast-create-search-command - Merge pull request raycast#14 from thuoe/chore/gh-actions-ci - build: provide extension description - refactor: ci pipeline - Merge remote-tracking branch \'origin/next\' into feature/thu-15-raycast-create-search-command - Merge pull request raycast#13 from thuoe/feature/thu-28-create-extension-icon - feat: create extension icon - feat: create argument to search by team name - feat: group squad by positions in grid view - feat: create grouping function - feat: create simple grid view for squad players - feat: map tvstations to fixture calendar events - feat: provide calendar name preference - feat: wrap action in confirmation alert - feat: create calendar event action for upcoming fixtures - feat: icon for player details action button - feat: introduce limit across fixture list items - feat: populate upcoming fixtures list section - fix: correct time range when fetching fixtures - fix: rename fixture list category - refactor: format fixture timestamp during response mapping - feat: fetch latest fixtures and populate list items - fix: correct squad subtitle count - fix: populate title & placeholder with team name - refactor: generic function to compute select fields - fix: maximise player image size in markdown - feat: create player details view - feat: map player dob - feat: restructure search command to search, favorite & display teams details - feat: create new view for team details using dummy data - build: create alias for shared types - feat: create hook to fetch team with player info - fix: invoke custom hook after change to path & provide execute flag - refactor: rename search team command - fix: prevent persisting dropdown value - feat: create dropdown with team sections using dummy data - feat(command): create search command template - Merge pull request raycast#12 from thuoe/chore/env-var-gh-actions - chore: default env vars for gh actions - chore: create basic ci pipeline (raycast#11) - Merge pull request raycast#6 from thuoe/chore/local-dev-improvements - fix: add missing package - chore: format remaining files - chore: update editorconfig - chore: format code on save - chore: create editorconfig file - Merge pull request raycast#5 from thuoe/feature/thu-23-create-preferences - refactor: remove optional chaining - refactor: create custom hook for API call - feat: test API command - chore: provide ESLint config (raycast#4) - Merge pull request raycast#1 from thuoe/feature/thu-14-create-project-template - feat: create simple command template - Initial commit
* Add footy-report extension - Merge pull request #22 from thuoe/next - Merge pull request #21 from thuoe/docs/2023-12-26-changelog - docs: update changelog - Merge pull request #20 from thuoe/feature/thu-33-redesign-test-api-command - docs: update screenshots - chore: delete unused assets - feat: action to open ext preferences - feat: use form to test API access token - Merge pull request #19 from thuoe/bugfix/fetch-teams - fix: optional position name - Merge pull request #2 from thuoe/feature/thu-15-raycast-create-search-command - Merge pull request #10 from thuoe/feature/thu-26-create-command-screenshots - docs: include command screenshots in README.md - docs: player stats screenshot - docs: team list screenshot - docs: update team details & API screenshots - docs: delete outdated screenshots - docs: create command screenshots - Merge pull request #17 from thuoe/bugfix/type-errors - build: include build step during CI pipeline - fix: type error fetch teams hook - fix: type error command arg - fix: type errors for fetching fixtures - fix: type erros from player stats - fix: 2d array type further improvements - fix: array type - fix: multidimensional array type - Merge pull request #18 from thuoe/feature/unit-tests - build: test step to ci job - test: create markdown from 2d array - test: grouping obj - test: format & select fields - build: install jest - Merge pull request #16 from thuoe/feature/thu-32-search-command-create-readme - docs: add missing command subheading - docs: create README.md template - Merge pull request #15 from thuoe/feature/thu-29-player-markdown-season-stats - feat: include yellow/red card stats - refactor: set/filter events - fix: map player id - feat: fetch player stats across seasons for teams - feat: create markdown table function - Merge remote-tracking branch \'origin/next\' into feature/thu-15-raycast-create-search-command - Merge pull request #14 from thuoe/chore/gh-actions-ci - build: provide extension description - refactor: ci pipeline - Merge remote-tracking branch \'origin/next\' into feature/thu-15-raycast-create-search-command - Merge pull request #13 from thuoe/feature/thu-28-create-extension-icon - feat: create extension icon - feat: create argument to search by team name - feat: group squad by positions in grid view - feat: create grouping function - feat: create simple grid view for squad players - feat: map tvstations to fixture calendar events - feat: provide calendar name preference - feat: wrap action in confirmation alert - feat: create calendar event action for upcoming fixtures - feat: icon for player details action button - feat: introduce limit across fixture list items - feat: populate upcoming fixtures list section - fix: correct time range when fetching fixtures - fix: rename fixture list category - refactor: format fixture timestamp during response mapping - feat: fetch latest fixtures and populate list items - fix: correct squad subtitle count - fix: populate title & placeholder with team name - refactor: generic function to compute select fields - fix: maximise player image size in markdown - feat: create player details view - feat: map player dob - feat: restructure search command to search, favorite & display teams details - feat: create new view for team details using dummy data - build: create alias for shared types - feat: create hook to fetch team with player info - fix: invoke custom hook after change to path & provide execute flag - refactor: rename search team command - fix: prevent persisting dropdown value - feat: create dropdown with team sections using dummy data - feat(command): create search command template - Merge pull request #12 from thuoe/chore/env-var-gh-actions - chore: default env vars for gh actions - chore: create basic ci pipeline (#11) - Merge pull request #6 from thuoe/chore/local-dev-improvements - fix: add missing package - chore: format remaining files - chore: update editorconfig - chore: format code on save - chore: create editorconfig file - Merge pull request #5 from thuoe/feature/thu-23-create-preferences - refactor: remove optional chaining - refactor: create custom hook for API call - feat: test API command - chore: provide ESLint config (#4) - Merge pull request #1 from thuoe/feature/thu-14-create-project-template - feat: create simple command template - Initial commit * Update footy-report extension - Merge pull request #26 from thuoe/next - Merge pull request #25 from thuoe/bugfix/squad-details - fix: map fixture id to item key - fix: increase limit of squad players rendered in grid - chore: remove console log - fix: display age && render if dob provided - fix: show seasons based on relevant team - fix: filter season stats if no details found - fix: render players without shirt no - Merge pull request #23 from thuoe/main * Update footy-report extension - Merge pull request #29 from thuoe/next - Merge pull request #28 from thuoe/feature/thu-34-error-handling-faulty-api-tokens - fix: handle errors across views - refactor: hooks response types - fix: handle hook data responses if invalid token is found - fix: provide error from promise hook - feat: create error toast hook - Merge pull request #27 from thuoe/main * Update footy-report extension - Merge pull request #32 from thuoe/next - Merge pull request #31 from thuoe/feature/thu-35-api-test-command-validate-sportmonks-endpoint - feat: validate endpoint before submit - Merge pull request #30 from thuoe/main * Update CHANGELOG.md and optimise images --------- Co-authored-by: raycastbot <bot@raycast.com>
* Add footy-report extension - Merge pull request #22 from thuoe/next - Merge pull request #21 from thuoe/docs/2023-12-26-changelog - docs: update changelog - Merge pull request #20 from thuoe/feature/thu-33-redesign-test-api-command - docs: update screenshots - chore: delete unused assets - feat: action to open ext preferences - feat: use form to test API access token - Merge pull request #19 from thuoe/bugfix/fetch-teams - fix: optional position name - Merge pull request #2 from thuoe/feature/thu-15-raycast-create-search-command - Merge pull request #10 from thuoe/feature/thu-26-create-command-screenshots - docs: include command screenshots in README.md - docs: player stats screenshot - docs: team list screenshot - docs: update team details & API screenshots - docs: delete outdated screenshots - docs: create command screenshots - Merge pull request #17 from thuoe/bugfix/type-errors - build: include build step during CI pipeline - fix: type error fetch teams hook - fix: type error command arg - fix: type errors for fetching fixtures - fix: type erros from player stats - fix: 2d array type further improvements - fix: array type - fix: multidimensional array type - Merge pull request #18 from thuoe/feature/unit-tests - build: test step to ci job - test: create markdown from 2d array - test: grouping obj - test: format & select fields - build: install jest - Merge pull request #16 from thuoe/feature/thu-32-search-command-create-readme - docs: add missing command subheading - docs: create README.md template - Merge pull request #15 from thuoe/feature/thu-29-player-markdown-season-stats - feat: include yellow/red card stats - refactor: set/filter events - fix: map player id - feat: fetch player stats across seasons for teams - feat: create markdown table function - Merge remote-tracking branch \'origin/next\' into feature/thu-15-raycast-create-search-command - Merge pull request #14 from thuoe/chore/gh-actions-ci - build: provide extension description - refactor: ci pipeline - Merge remote-tracking branch \'origin/next\' into feature/thu-15-raycast-create-search-command - Merge pull request #13 from thuoe/feature/thu-28-create-extension-icon - feat: create extension icon - feat: create argument to search by team name - feat: group squad by positions in grid view - feat: create grouping function - feat: create simple grid view for squad players - feat: map tvstations to fixture calendar events - feat: provide calendar name preference - feat: wrap action in confirmation alert - feat: create calendar event action for upcoming fixtures - feat: icon for player details action button - feat: introduce limit across fixture list items - feat: populate upcoming fixtures list section - fix: correct time range when fetching fixtures - fix: rename fixture list category - refactor: format fixture timestamp during response mapping - feat: fetch latest fixtures and populate list items - fix: correct squad subtitle count - fix: populate title & placeholder with team name - refactor: generic function to compute select fields - fix: maximise player image size in markdown - feat: create player details view - feat: map player dob - feat: restructure search command to search, favorite & display teams details - feat: create new view for team details using dummy data - build: create alias for shared types - feat: create hook to fetch team with player info - fix: invoke custom hook after change to path & provide execute flag - refactor: rename search team command - fix: prevent persisting dropdown value - feat: create dropdown with team sections using dummy data - feat(command): create search command template - Merge pull request #12 from thuoe/chore/env-var-gh-actions - chore: default env vars for gh actions - chore: create basic ci pipeline (#11) - Merge pull request #6 from thuoe/chore/local-dev-improvements - fix: add missing package - chore: format remaining files - chore: update editorconfig - chore: format code on save - chore: create editorconfig file - Merge pull request #5 from thuoe/feature/thu-23-create-preferences - refactor: remove optional chaining - refactor: create custom hook for API call - feat: test API command - chore: provide ESLint config (#4) - Merge pull request #1 from thuoe/feature/thu-14-create-project-template - feat: create simple command template - Initial commit * Update footy-report extension - Merge pull request #26 from thuoe/next - Merge pull request #25 from thuoe/bugfix/squad-details - fix: map fixture id to item key - fix: increase limit of squad players rendered in grid - chore: remove console log - fix: display age && render if dob provided - fix: show seasons based on relevant team - fix: filter season stats if no details found - fix: render players without shirt no - Merge pull request #23 from thuoe/main * Update footy-report extension - Merge pull request #29 from thuoe/next - Merge pull request #28 from thuoe/feature/thu-34-error-handling-faulty-api-tokens - fix: handle errors across views - refactor: hooks response types - fix: handle hook data responses if invalid token is found - fix: provide error from promise hook - feat: create error toast hook - Merge pull request #27 from thuoe/main * Update footy-report extension - Merge pull request #32 from thuoe/next - Merge pull request #31 from thuoe/feature/thu-35-api-test-command-validate-sportmonks-endpoint - feat: validate endpoint before submit - Merge pull request #30 from thuoe/main * Update CHANGELOG.md and optimise images * Update footy-report extension - Merge pull request #37 from thuoe/next - Merge pull request #36 from thuoe/chore/sync-raycast-repo - Merge branch \'contributions/merge-1705420963700882000\' into chore/sync-raycast-repo - Pull contributions - Merge pull request #35 from thuoe/next - Merge pull request #24 from thuoe/feature/thu-18-raycast-command-search-league-standings - docs: update timestamp - fix: filter only domestic leagues - Merge remote-tracking branch \'origin/next\' into feature/thu-18-raycast-command-search-league-standings - docs: include install button (#34) - Merge pull request #33 from thuoe/main - Merge remote-tracking branch \'origin/next\' into feature/thu-18-raycast-command-search-league-standings - docs: update changelog - feat: action to open team details from standing - docs: include command screenshot - feat: include search bar placeholder - fix: map league id - feat: display standing once league is selected - feat: map recent form for each standing - fix: map image path - feat: map matches played - feat: create hook to fetch league standing data - fix: map active season - feat: fetch leagues * Already an install button 🙂 * fix: error handle invalid api tokens for fetching standings (#38) * fix: linting issues (#39) * fix: error handle fetch league hook (#40) * Update README.md * Update CHANGELOG.md and optimise images --------- Co-authored-by: raycastbot <bot@raycast.com> Co-authored-by: Per Nielsen Tikær <per@raycast.com>
- move screenshots - new screens - Screenshots - update readme - small adjustments - fixed time bug - run ray lint - delted unused libs - type error - Merge pull request raycast#22 from marcjulianschwarz/12-store-preparation - Merge pull request raycast#21 from marcjulianschwarz/16-date-fields-required - check for valid dates and times - added contributors - Merge pull request raycast#20 from marcjulianschwarz/19-time-for-confirm-alert - move confirmation to display selected times - Merge pull request raycast#18 from marcjulianschwarz/14-add-confirmation-pop-up-when-tracking-time - added the confirmation for submitting the time - Merge pull request raycast#15 from marcjulianschwarz/13-pop-to-root-tracktime - add pop to root - Update README.md - First readme - Merge pull request raycast#11 from marcjulianschwarz/5-for-future-publishing-timezone-needs-to-be-changeable-via-the-settings - added timezone dropdown and some timezones - Merge pull request raycast#10 from marcjulianschwarz/9-attendances-loading-indicator - add loading indicator for attendances list - Merge pull request raycast#7 from marcjulianschwarz/4-client-secret-and-id - Merge branch \'main\' into 4-client-secret-and-id - move client id and secret to preferences - Merge pull request raycast#6 from marcjulianschwarz/1-language-normalisation - normalised language to english - initial commit
* Add personio extension - move screenshots - new screens - Screenshots - update readme - small adjustments - fixed time bug - run ray lint - delted unused libs - type error - Merge pull request #22 from marcjulianschwarz/12-store-preparation - Merge pull request #21 from marcjulianschwarz/16-date-fields-required - check for valid dates and times - added contributors - Merge pull request #20 from marcjulianschwarz/19-time-for-confirm-alert - move confirmation to display selected times - Merge pull request #18 from marcjulianschwarz/14-add-confirmation-pop-up-when-tracking-time - added the confirmation for submitting the time - Merge pull request #15 from marcjulianschwarz/13-pop-to-root-tracktime - add pop to root - Update README.md - First readme - Merge pull request #11 from marcjulianschwarz/5-for-future-publishing-timezone-needs-to-be-changeable-via-the-settings - added timezone dropdown and some timezones - Merge pull request #10 from marcjulianschwarz/9-attendances-loading-indicator - add loading indicator for attendances list - Merge pull request #7 from marcjulianschwarz/4-client-secret-and-id - Merge branch \'main\' into 4-client-secret-and-id - move client id and secret to preferences - Merge pull request #6 from marcjulianschwarz/1-language-normalisation - normalised language to english - initial commit * Update personio extension - Merge pull request #26 from marcjulianschwarz/25-attendance-month-bug - fix bug by caching individual attendance combinations - cache values (#24) - add month selection for attendances command * Update personio extension - Merge pull request #29 from marcjulianschwarz/27-stats - add stats to attendances command - update cache logs * Update personio extension - add new screenshots - Added use case for submit time - Hotfixes/ready-for-release (#32) - Merge pull request #30 from marcjulianschwarz/2-time-noting - added time noting and changed function name to submit times * Update personio extension - linting issues - await the post request - change variable name of token to token_ * Update CHANGELOG.md * Update package.json * Update personio extension - Merge branch \'contributions/merge-1713278318830455000\' - Pull contributions - remove console error - wrong credential error message * linting issues * refactor and fix authentication issues * added timezones * Update CHANGELOG.md and optimise images --------- Co-authored-by: Per Nielsen Tikær <per@raycast.com> Co-authored-by: raycastbot <bot@raycast.com>
- removed owner
- - minor browser extension CSS / UI changes - added raycast metadata, readme - new Chrome and Firefox screenshots
- release notes
- added integrations settings section
- added error handling to CLI and Raycast extension
- fixed application path
- fixed build error
- - raycast extension - changes for raycast extension on CLI - updated SQLite.swift framework to SQLiteSwift to avoid name collations
- added raycast extension draft
- - new unified image - split search string by space, save quoted strings - css improvements - larger placeholder image size - fixed localization in host extension
- - search in web trigger values - fixed open urls in background if not http(s) scheme - new css style for search input - new web trigger function action regex match all
- - fixed crash in SurfedExtensionHost if password protected - updated extension localisation
- removed build files
- - use web trigger v3 definition - added release notes - allow opening multiple urls via web trigger - new build number
- fixed archive problem
- - added new browser onboarding view - added Opera, Brave to Open In action
- new rename device action
- - added update device name action - changed host extension path
- minor fixes
- - check if runWebtrigger is enabled for all event states - added a new filter menu to filter web trigger by events
- - removed webNavigation permission - added scripting permission to Firefox manifest - fixed duplicated localisation keys (case sensitive)
- - fixed iCloud (long text) upload conflict - show date picker in devices history - added Firefox extension link - fixed settings tab crash (macOS) - fixed deleting devices (transferDevice uuid to correct column) - fixed bright background in dashboard/popover - updated extension description - only enable iCloud sync if db version is the current - added Chrome extension screenshots
- removed tmp files
- Renamed folder from Chrome to development
- created min.js files with uglify
- fixed build error
- select browser in extension settings via deep link query parameter
- added deep link to settings view (with tab actions)
- - added translation strings - added base64 decoding function - fixed append HTML code in extension - added "Assigned to Space" in edit web trigger view
- - fixed global search with multiple search terms - fixed iOS build
- added setting to show/hide Mac status bar item
- fixed database upgrade crash and moved code to app delegate
- fixed web trigger sorting issues
- updated runestone package
- - added new web trigger actions sorting mechanism - changed trigger json data type response - add new web trigger type "CSS" and "Search & Replace" in HTML content
- - added assign space menu to web trigger table view - fixed favorite bug in popup - added html actions in background script - added html append and replace web trigger actions - fixed build error
- fixed showing filter bar immediately
- fixed application table sync bug
- fixed notification actions (by adding a new notification service extension) to the ExtensionHost target
- added app icon for ExtensionHost
- - fixed showing weekdays in popover date filter - fixed showing notifications in ExtensionHost (by requesting permissions)
- - enable WAL mode in SQLite database - fixed missing Keychain framework in SurfedExtensionHost target - finalist Install Extension UI on macOS settings - fixed InstallHost action (if folder is not available) - moved JS code to platform JS file - use gpt4o model for OpenAI
- - implemented redirect url correct - bug fixes
- - Browser Extension settings - async image loading in popup - more meta data in popup - try busyhandler for database connection
- - lot of extension fixes - added log debug for safari extension - added logging settings
- implemented "Save as Collection" in Browser Extension
- - App: split search string in tokens and only search on enter - only split in tokens if at least two colons inside the search string
- - added new search tokens - open surfed dashboard with keyboard shortcut su
- fixed chrome translation
- - localization updates - minor ui fixes
- a lot of fixes
- - a lot of extension fixes and improvements - refactored tag and collection ui in extension
- - major fixes in extension - added images
- implemented search tokens in browser extension dashboard
- - added dashboard to Safari browser extension - new tab
- - fixed bugs in extension, and host and debugger
- - implemented Delete Device Action - show ShowActions in multiselect view - moved debug log function into new class
- - added Brave browser - omnibox - crash fixed in safari extension
- implemented "Application" search filter
- converted SurfedExtensionHost to a macCatalyst app to use UIKit API
- - added signing private key - added Firefox setting
- added chrome extension code
- new files for the SurfedExtensionHost binary
- - update metadata with article - update history entry with application
- adopted code to support third party browser extensions
- moved iOS Safari extension code into own class
- added safari extension emm images
- updated release notes
- - show pro features state in settings view - reload global menu after validating license - changed extension manifest to 2.0.2 - load correct app icons on emm version extension - fixed refreshing receipt
- new build number
- - fixed missing iCloud entitlement in emm version
- Merge pull request #46 from hosy/milestone/2.0.1
- - new build number - changed iMessage icons
- - new build number - removed unneeded code
- - fixed share action crash - try to fix crash
- fixed visionOS ui issues
- - fixed database migration - add setting database version via deep link
- fixed setting database version
- - fixed show record private mode setting - Safari extension: fixed rare bug, that some websites could not be added to history
- - fixed startup crash - fixed saving onboarding items - url scheme to reset iCloud settings - added release notes
- - fixed splitview hide primary column bug - fixed archive mac build - new build and version numbers
- fixed database setup process
- Merge pull request #45 from hosy/feature/visionOS
- new build number
- added visionOS screenshots
- minor visionOS fixes (mostly color and size)
- - fixed database upgrade bug (if columns already exists) - fixed database setup on visionOS - added app version to settings view
- minor fixes
- - added some new copy actions - fixed build errors for visionOS and macOS Meracto package
- removed SwiftyStoreKit
- migrated to StoreKit 2 with Mercato package
- fixed iOS and macOS builds
- fixed button lock on visionOS
- fixed code signing (Archive)
- - fixed crashed when showing popovers - fixed cancel buttons on visionOS
- added missing xcconfig support for new targets
- prepared visionOS archive
- more fixed and visionOS refinement
- added surfboard for visionOS app icon
- First draft of a visionOS build
- Merge pull request #42 from hosy/milestone/2.0
- updated release notes
- added promote draft
- updated metadata and release notes press kit
- activated app license
- - added custom symbols - fixed popup tag/history errors
- - fixed applock manager - added two new cell types - enabled Reload image for bulk actions - updated localisations - minor changes
- - updated release notes - added background to activity indicator - added activity indicator to AI actions
- added "From this domain" action
- - added new filters for morning, afternoon, evening, at night - added new reload image action
- - minor fixes - move delete tag into an action - added in-app event images - added release note
- - fixed root collections with not assigned parent groups to space - show assign and unassign space in more places - updated release image - updated release notes - new press release text
- - fixed share article audio metadata - fixed show "More" row
- working solution with metadata
- added "Share Article as Audio" feature
- - added "Load more" data loading in lists with offset - changed limit length to 100 for data loading
- - added missing Chinese localisation strings - changed Chinese app store description
- - added resolver (not working) to AppIntent - AppIntent changes
- - added Shortcuts colors - Intent fixes
- - fixed a bug in get tag urls (duplicated history join) - new build number
- - read article title - show voice region, siri and quality in voice options - fixed bugs in "is not" filter statement
- - fixed launch screen safe area - renamed Surfed to Surfed Pro for emm version
- replaced safari extension icon with new version
- fixed EMM project setup
- - added iCloud identifier for EMM version - updated app description
- - fixed setting standard toolbar - fixed join error for hidden items filter - added release image - new build number
- new build number
- - new Play Article widget - added "Duplicate" action to smart editing view for groups - fixed opening url scheme duplicated view, if already opened
- version 2 marketing release notes image
- - fixed apply reader settings - fixed close reader view
- - fixed show global search, if already opened - fixed favourite entries in browser popup
- - fixed openAI actions with new model and moved to new api chat completion - added copy and open AI actions to actions menu - only save listening location for articles - new build number
- fixed build errors on macOS
- fixed missing try!
- - fixed crash - try to fix crashes by removing try! with do statements
- updated release notes
- fixed missing table join
- - fixed player bugs - fixed AppIntents bugs - localization fixes
- - print lists - save lists as PDF - more copy actions - show url parameter action - show space name in space "All" in history cell - settings for reader view and listen article - fixed multiple select action completion handler - save listening, listened and read state - new shortcut actions listen tag or collection article, listen url article - speaker: queue, next, previous, skip - listen and listen all actions - fixed select multiple items - selectable uitextview in reader view - new filter: listened, listening, read
- - get history years and show in search suggestions - show "not like images" in state search suggestions
- - Speaker improvements - Listen all - new search types: listened, listening, read - adopted database
- - show biometrical unlock when switching to private mode profile - on app start switch to profile "all" if private mode is enabled - fixed selected items sorting (removed set) - filter private mode profiles from all lists in profile "All"
- - refactored the Speaker with queue, skip, next, previous, playback position - added private mode in assign profile action selection - fixed fullscreen context bug
- - fixed bugs - PDF and Print action only for licensed app version
- added localisations
- - updated Readability version - refactored Speaker to shared instance - fixed article settings - fixed minor bugs
- - implemented printing and PDF export - new article settings font and voice - refactored code to retrieve ItemType images and titles globally - global function to retrieve formatted history string
- add a share item to the article view
- - web trigger: show save panel instead of share sheet on macOS - fixed importing web trigger with notification actions
- - fixed deleting web trigger (updating list) - new build number
- - added new debug setting to show push notification for background task - fixed background task - setting sync to background task and process activity for extensions - added web trigger search - filter web trigger by enabled/disabled - new mac icon
- fixed sorting smart collections by date, frequency
- - improved Safari extension background sync - improved sync algorithm - added devices to history sidebar - added devices to the global search - schedule sync items to a minimum of 20 for syncing - added missing localizations - fixed crash on showing CSV share sheet on iPad - added debug options to show sync notifications
- - new CSV Export Action - show session time in history lists - new coloured app icons - pass article to web trigger if performed in app - fixed: use hidden filter for Safari extension popup items - fixed: today statistics value was wrong - fixed: sometimes the tagging view was not opened - fixed: use new activation rules for share sheet action - fixed: app clean install had db setup bug
- - new sort type "Session Time" - share sheet is now available in all apps, which sharing URLs - show more context menu actions in global search results - fixed deselect only, if no "select" action was performed - moved actions "Open In", "Run Web Trigger", "Actions Menu" into new view controller - more actions are now available in multiple selection - update pending sync items in settings view - only show private browsing space, if recording is enabled - show multiple select actions on the end of actions - updated chinese and french translation - fixed crash on syncronize list actions - fixed bugs in statistics view - fixed broken alternative url titles, after sync import
- - added new filter rule "Session Time" (get history entries which matches the chosen session time) - show "Private Mode" space in Share Sheet (if Private Mode recording is enabled) - Favourite Action (in multiple selection may set wrong value) - minor fixes - fixed removed sessionTime table bugs
- - added hidden items - added private mode space / profile - added new filter private mode - added conditions is not for state filter
- - removed history session table and all regarding code - migrate to new history duration - reload activity view - show spaces filter in global search
- added query item "space" to url open parameter
- - fixed searching for multiple tags - fixed Mac menu items - added more keyboard shortcuts - fixed remove observer crash - not updating table view, if items are selected - find duplicated tags and remove broken database values
- - fixed open in new window - show actions in global search context menu - switch to assigned profile when opening an item
- fixed crash
- - show device name in history cells - reload system menu after iCloud enable/disable
- fixed siri voice
- added different vendor url scheme for vanilla and emm app
- - added reading time to web trigger paramters - added syncronize action to menus - fixed app icon preview - fixed favorite/flag in favorites assign space
- updated release notes
- updated to the latest sf symbol picker
- added missing translations
- - finalised html favourite import - added SwiftSoup license - fixed insert tag bug - fixed context menu for copy and ai actions
- first working html bookmark parsing draft
- fixed passing urlid instead of uuid
- added new externalimport action
- - fixed wording - added more external import help entries - added SwiftSoup for parsing html files - fixed share sheet, surfed action actions
- - external import - release notes - switch spaces keyboard command - fixed assign problems
- Merge branch \'milestone/1.5.1\' into milestone/2.0
- enabled SearchSuggestionView again
- - fixed retain cycle issues - fixed global search issues
- fixed get collection issues
- fixed retain cycle issues
- - added external import for raindrop.io - renamed profiles to spaces - fixed bugs - added translations
- fixed showing history cloud sync interval in welcome vier
- - implemented focus filter - fixed favourites and flags for profiles - fixed a lot of profile and assign bugs - new global web trigger run setting
- load of refactoring, bug fixes - added new intent - fixed widgets for iOS 17, profiles - new tables ...
- - localisation - fixes in edit profile view
- - Localisation - Fixed Profile menu - additional foot note in iCloud sync
- - fixed upgrading tables - fixed join statement in search - fixed filter - removed select items in sidebar
- assign tag item to profile, if already available on create
- - fixed sync url notes - fixed collection filter term
- - added reset sync state - added profile search to search tokens
- fixed favorite collections
- - fixed database locked error - fixed showing update view - removed duplicated refresh
- - fixed bug in addHistory, send extension response - fixed stats for profiles
- - refactored sync - lot of fixes - profiles for activity widget and stats - ...
- - Show Sync Status as activity view - activity widget fixes - only join tables for smart collections, if history search terms are involved - fixes for iOS 17 Xcode build
- added widget for activity view
- added activity view
- - moved database upgrade process into separate functions - start upgrading scheme from app or extensions - upgrading data only in app - fixed crash - added progress view to notice view
- Merge pull request #41 from hosy/milestone/1.5.1
- Merge branch \'master\' into milestone/1.5.1
- Merge pull request #43 from hosy/feature/emm-app
- prepared EMM app
- Build an EMM app version - but all app groups and keychain access groups into xcconfig files for the regular and emm app - changed license check for emm app - fixed translations
- fixed translations
- updated Chinese localisation from PR
- - added new table for devices and removed it from application - sync devices - fixed bugs
- - edit profiles with assigned items - added filter by device search term type - iCloud sync welcome and setup view - new sync setting to differentiate between history, collections and settings - new select, deselect, assign, unassign multi select actions - modernised some code
- fixed release notes quotes
- updated release notes 1.5.1
- fixed localization - Chinese update from community - added missing translation strings
- - fixed colors in action scroll view - new select/unselect action - localization
- set button color
- fixed setting toolbar icons
- implemented multi select in lists
- replaced user defaults sync with iCloud database solution to sync app settings
- sync user defaults with Zephyr
- - added iCloud sync setting to settings - added profiles to reminders - added new app icons to Safari Extension and macOS status bar, launch screen
- - moved version 1 icon files into new subfolder - added version 2 icon files
- supporting profiles in web trigger and collections and favourites
- - added ProfileItems - editing Profiles - set profile tint color - filter items by profile - fixed crashs
- - implemented iOS 17 profile support - added profile selector in app - removed private browsing mode setting on iOS 17
- cloud sync and refactoring bug fixes
- fixed a lot of cloud sync issues - implemented Safari cloud sync upload in background - push notifications for sync updates
- add missing statements for delete/insert/update for complete CloudKit sync
- added missing cloud sync tables
- - fixed delete items - create identifible uuids
- - implemented history sync - fixed refactoring error
- - fixed refactoring errors - added sync for tags, tagcollections, urls - added CloudKit scheme
- fixed crash
- - fixed a lot of errors - updated to sqlite.swift 0.14.0 SchemeChanger - drops no longer needed columns
- updated app icon
- refactoring database columns to uuid values replace database ids with uuids
- added translation string
- - fixed crash on json load fail - show error message
- changed app and build version number
- changed app and build version
- - added current day date term - fixed current month date term - fixed add button in terms section
- first sync draft
- Enabled CloudKit entitlement
- Merge pull request #39 from hosy/milestone/1.5
- changed app accent color title
- added version 1.5 release image
- - release notes updated - fixed refresh after tag editing
- - changed release notes - added v1.5 screenshots - bug fixes
- - fixed AppStore connect upload error (missing app icons)
- - Add URL action - fixed setting an alternate app icons on iPad - move share code into new ShareTagCollectionAction - show alternate app icon in password view (only app) - changed App Tint to Accent Color string - some code cleanup and minor UI fixes
- - fixed broken APP_SHORT_VERSION - added new release notes item - fixed release notes IDs
- added french translation
- - new version and build number (as variable) - DetailViewController: added new sharing code for iOS 17
- - fixed symbol in title - fixed tag header
- added chevron button to expand or collapse the sections in the assign tag view
- - added pro feature for app tint - added descriptions to new app settings - fixed headers in assign tag view - show popover arrows - fixed symbol image in list title
- - fixed web trigger import with old surfed files (which only have two action values) - hide collection items in assign tag view, when filter is active
- - added "Add New Tag" save behaviour - assign collection design fixes - show Tag View as popover on iPad - fixes - fixed crash on "Open all URLs in Browser"
- - redesign of assign tag view - using macOS accent color
- added "Assigned" tag filter
- - App Theme (global tint and view tint) - disable list colouring setting - new QR code action - assign tag view: filter tags by last usage - removed actions from global menu and history list menus
- - text view find interaction - coloured tag lists - images in tag and collections list titles
- - fixed new tagging issues
- fixed tag button
- fixed iPad and detail history issues
- fixed new Tag/Collection behaviour
- - Added Runestone syntax highlight text editor - new assign tag and collection view - new version and build number
- updated press kit files
- Merge pull request #38 from hosy/milestone/1.4.1
- added 1.4.1 release image
- - added speak article notification button action - sorted notification actions
- - fixed saving web trigger actions with new values 3, 4 - fixed import preview
- fixed missing extension key
- fixed localization
- changed build number
- - added flag action to Safari popuup - fix macOS build error - added missing "Latest Tags" setting to macOS settings and added new pane type - updated release notes
- - added release notes - new web trigger gallery path
- added new web trigger actions: - show article - listen article
- - new Action Extension - fixed iPad crash on hide - fixed Open AI API-key length - added new web trigger parameter "URL ID" - new url parameter "auto-run-web-trigger=false" to prevent re-trigger web trigger on return to Safari - clean-up URL parameter run-web-trigger in Share and Action View
- added new web trigger functions - url decode/encode - url unshorten
- - added function remove from string - fixed custom parameter parsing
- new web trigger action functions: search and replace
- added a relaunch notification
- Share Sheet: - Run Web Trigger - Article Actions - OpenAI Actions
- Merge pull request #37 from hosy/milestone/1.4
- added 1.4 release image
- added macOS Screenshots
- new build number
- - enabled License - fixed wording
- added german app store screenshots
- added english app store screenshots
- added updated raw screenshots 1.4
- - UI Fixes - added "Edit Tag…" to tag view menu - action sorting - release notes - new demo database - wording fixes
- - fixed reading format - new tag view look (border, alpha background, color title) - added release notes
- - added remove tag intent - added missing year 2023 - filter bar: added day, month, year, weekday search tokens - fixed calculating reading time - some UI changes - added elapsed time and absolute time to media player view - added article and notes fields to import/export - new UI for exporting tags, to select which fields should be exported - fix remove media player from notification view, if finished
- - changed localization - added AI actions to article view
- - added Media Player control support - fixes for Xcode 14.3
- fixed nil check
- fixed tabulator characerts
- new build number
- fixed tabulator characters
- fixed default problem
- latest fixes
- fixed search location, added placeholder
- New in Build 71:
- new build number
- - added Tags to history list - added pride icon
- support for alternate app icons
- - added showing tags in detail history view - added "Date" label in date rules
- fixed toolbar items
- fixed localization
- - added missing cases for date checks - select date check conditions in collection view editing interface
- - fixed main thread problems - removed search scopes with a new filter bar
- new build number
- - fixed search for tag names in global search
- - fixed blocking UI in search - fixed updating collection section after adding new collection - fixed sorting tags in assign tags in collection UI - added search for tags #tagname in history and global search - fixed removing leading space in search in browser action
- removed background thread
- - moved some updating logic into StorageManager - update title every time
- fixed adding collection groups to favorite section
- - changed sidebar to correct diffable datasource snapshot concept - fixed sorting (case insensitive) of tags and collections in sidebar
- fixed reset on iOS device
- - added support for custom list actions in individual tags or collections - added Zoom Action
- - fixed bugs with group tags (assign, unassign, edit) - fixed bugs when moving, inserting, deleting items in sidebar with multiple windows
- added openURL via nsworkspace by adding a protocol and methods to the appkit bundle, now mac can open urls in installed browsers
- allow navigation in wkwebview as parameter
- - localization fixes - fixed crash on Mac
- fixed missing localization
- - sort actions in settings by url - added new action type selectAction - retrieve html content for web trigger action - show gallery, when no web trigger available - new action show url
- - added run web trigger action menu - sort actions in settings by title
- set default action types, to appear in leading and trailing actions
- - changed colors - changed keyboard shortcuts - new build number - localization
- added color support for alert actions
- New actions: - Open In - Show Actions
- fixed bug with passing correct parameters to action context
- new build number
- fixed toolbar and navigation button bugs in browser view
- added paging to in-app browser in compact mode
- - new app badge action - new long text cell - toolbar buttons with context actions in Safari view - splitview bug fixes - global search positioning fixes
- remove delivered notifications
- new actions: - color parameter - comment
- new build number
- - Support deep links to Tags and Collections with name like surfed://tag/Apple - Added Web Trigger item to global search - fixed resolving custom parameters in all web trigger actions
- - added release notes - missing localization
- added a none option for actions
- moved method into own class
- - fixed splitview controller problems - set default actions
- - added in-app reader action - fixed show detail controller bug - added colours to actions - changed list settings type - updated release notes
- - set default actions - new build number
- - added new web trigger action "Tag with…" - fixed problem loading controller
- - fixed macos build - some refinements
- 99% working solution for triple columns
- fixes
- most things are working in split view
- - Configurable Actions in Settings - New Action In-App Browser - WIP: Triple Split View
- fixed mac build
- added reminder action
- - fixed actions import from gallery - fixed error, when file import fails (copy to tmp) - iPad hover - link colour - new build number
- fixes for macOS build
- - fixed autolayout error - updated release notes
- fixed json syntax error
- - updated title colour - updated release notes - added missing localization
- - added date picker view - added release notes - update build number
- added support for importing actions
- changed build number
- fixed build number
- Merge branch \'master\' into feature/notification-action-buttons
- changed build number
- - updated localisation - output history date/time in Safari popup
- - added open URL notification action - added tag with notification action - added url components to json array - added allowing unsecure http url requests to notification extension - added support for multiple shortcuts in import gallery file - added support for import questions
- - UI fixes - fixes for Notification Actions on macOS
- - fixed UI alignement - removed unneeded code
- added "addTag" notification action
- - added new notification actions: favourite, flagged, latest tag - changed webtrigger collection gallery json url - changed webtrigger and collection UI, like Shortcuts app
- - added notification actions - added flag or favorite icon to global search interface
- Merge pull request #36 from hosy/milestone/1.3.1
- changed build number
- bugfix: - running web triggers were not possible in unlicensed mode - fixed a crash on testing url schemes
- first notification action buttons draft
- added release image 1.3
- new release image
- Merge pull request #34 from hosy/milestone/1.3_update
- removed press kit and moved to surfed-web repository
- updated metadata
- enabled license
- new build number
- - some actions has a multline texteditor view - updated help
- fixed advanced option section
- new build number
- show local notification not granted message after import
- - updated help - updated localized strings - show advanced options automatically, when a non basic parameter is set - show notification request on import
- - local notification request - updated build number - smaller size for system images in help
- updated build number
- - added formatted url parameter markdown and html - url scheme for web trigger - updated help - fixed db version 2 - smal UI padding fix in Gallery
- - added Web Trigger to the sidebar - fixed sorting in popup search - updated SymbolBrowser to version 1.4 - change image size for help - setting system images in help
- fixed group URLs in popup, when searching
- - added text field focus - fixed crash in test app scheme, when url contains whitespaces - added list title to json array - fixed adding html key/value to shortcuts json
- changes for webtrigger and javascript execution
- - bugfixes for webtriggers and javascript handling
- - removed temp code - enabled uglify and using min.js again
- temp commit, for saving the current work state (fixing copy to clipboard)
- added today history to web trigger parameter
- added sample html code for testing
- added showing custom parameters in parameters menu
- - changed parameter syntax from {} to {{}} - refactored code in WebTriggerRunner - added surfed parameters: favorties, collections, tags - added test actions - clear text field
- sort actions with new sortOrder
- updated help
- new short description
- - added JavaScript action and perform code in website - added custom parameter action - added localization - fixed bugs
- - added new symbol picker - changed help for web trigger
- - refactored web trigger to actions - added copy to clipboard, notifications - added new shortcut action to export a tag
- load http requests in app
- new build number
- - fixed keyboard toolbar (SwiftUI bug) moved to table view row - fixed broken URL encoding for Web Triggers
- - sorting by flagged and favorited state - added gallery for webtriggers - allow http web requests (webtriggers) - import webtriggers - basic surfedaction implementation - added support for multiple shortcut parameters
- fixed validation and translation
- added web trigger validation
- - simplified Web Trigger setup - added keyboard toolbar - added placeholder tokens to web trigger
- Merge pull request #28 from hosy/milestone/1.3
- added sandboxing parameter to CLI entitlement
- enabled license validation
- fixed german release notes
- fixed image link for 1.3 release notes
- updated release notes
- reload actions from intent actions
- updated build number
- - update metadata, if not available and post a notification to the app to update view
- added html source to search term type and searches html source in web trigger
- - fixed importing web trigger
- added tint color to import image item
- added image to import window
- - On This Day Search Action - added Open in Safari item in preview mode - added enable/disable switch for web trigger - added import/export function for web trigger
- changed global search icon
- changed UI layout
- - fixed filter for collection condition groups - show global search button in list view in compact trait collection - fixed crash when deleting a web trigger - new build number
- updated release notes
- - fixed description and localization
- - fixed toolbar crash - fixed using wrong condition groups for web triggers - adding time interval to json data
- localization fix
- added german release notes
- - added help for CLI
- Merge pull request #33 from hosy/feature/web-trigger
- - added missing help - fixed parameter
- - added help - fixed UI - added document menu - added localization
- - fixed bug - changed help text
- fixed layout, description text
- fixed some details
- added missing code to run web triggers as expected
- added web trigger
- fixed bug, that search results URLs was not shown
- added toolbar items
- Merge pull request #31 from hosy/feature/CLI
- Merge branch \'milestone/1.3\' into feature/CLI
- changing some details
- removed debug messages
- - removed no longer needed targets - copy helper app into app package for mac catalyst builds
- - moved settings view to own scene and window, which now locks the screen, if protected - settings is now mac like with tab bar and floating window
- - changed target name - fixed json output keys
- - fixed showing content, when app is not protected - hide debug output in release builds
- - migrated keychain to correct access group - finished command line tool - added API key in settings - fixed missing localization - added icons to reminders view
- changed letter spacing
- Merge pull request #30 from hosy/feature/global-search-urls
- Merge pull request #29 from hosy/feature/copy-markdown
- new version and build number
- added gradient
- exchanged icons in header image
- Global search: search for urls, which are not in history
- centered main icon
- added icons
- new twitter marketing header
- new copy URL as Markdown action
- fixed build error on iOS
- - added all needed parameters and handle them - adopt code for CLI usage
- first CLI draft
- added release notes and lock screen screenshots
- changed version number back to 1.2
- Merge pull request #24 from hosy/milestone/1.2.1
- - fixed problem on mac, when biometrical unlock is shown - prepared code for unlocking global search (but currently not active) - new share sheet size
- Bugfix: - when app is not password protected, in some cases the app lock was activated - fix global search popover on macOS Ventura - new version and build number
- added missing license
- Merge pull request #19 from hosy/milestone/1.2
- Merge branch \'master\' into milestone/1.2
- updated release image
- if browsing time is empty, show a dash
- added app lock screenshot
- updated screenshots and metadata
- fixed action widget on macOS
- - fixed inline widget layout - fixed showing global search on iOS, with password protection
- save private mode via app settings class
- do not show global search, if app is not unlocked
- - Added new lock and unlock action and added this to the system menu - fixed main thread problem
- save applockmanager state, when global search popover will be dismissed
- fixed return key for unlock on macCatalyst
- - fixed global search success action - fixed NSPopover on new macOS version - fixed crash on refreshing Today sidebar item, when section is collapsed - added leading swipe action "Copy URL" to reminders table view
- refresh sections on restore or delete
- fixed showing biometrical unlock dialog, if biometrical unlock should not be done
- used same icon size as in action widget
- - fixed problem with App Lock on macOS global search - updated release notes
- - moved global search window activation to AppDelegate - added Password Lock to global search window - facelifting for Widgets - added latest tags to context menu - added edit tag action to list global context menu - removed reload action from global context menu - refactored code
- new Widget layout and refactored widget code
- fixed macOS build error
- added vibrant background to lockscreen widgets
- fixed bug when exporting a collection (tag was used instead)
- - updated changelog - updated build number
- added new Action Widget
- - added chinese localization - fixed missing localizations
- - changed lockscreen widget format - changed "Add Tag" image
- new build number
- moved "Add Tag" menu to the top of the context menu
- fixed applock, when no longer licensed (should not work, when unlicensed)
- - fixed bug in Safari extension (some actions where not executed when app is protected - reload lockscreen widget from database update
- added password protection to purchase screen
- - fixed release notes image - reset license manager
- added version 1.2 release notes
- fixes for maccatalyst
- new build and version number
- fixed collection option in password protection
- - added new iOS 16 UIMenu medium size - reorganized context menus - changed strings
- Merge pull request #22 from hosy/feature/lockscreen-widget
- - implemented password protection to lockscreen widgets - move code to own views
- Merge branch \'milestone/1.2\' into feature/lockscreen-widget
- - fixed widget symbols - changed lockscreen widget layout
- added new Shortcuts action Backup Database
- New Actions: - backup database - restore database - delete all history
- Merge pull request #21 from hosy/feature/passcode
- changed settings footer text
- - fixed widget password protection - fixed localized strings and settings labels
- Popup: - submit password on enter key - set focus on password text field (currently only works on Mac)
- - fixes for Mac catalyst build, when biometrical unlock is shown, the app is in background, which causes, that the dialog was presented again and again - become first responder for password text field only on Mac
- - added Safari extension popup support - fixed passcode bugs - added localization strings
- - added password protection to widgets and shortcuts - bugfixes in share sheet - changes in settings view
- added password protection to extensions
- - changed cancel button, image, text - added app icon - fixed background / foreground delay, saving defaults
- - added App settings view - added password coordinator - fixed bugs
- added a watch extension for widgets
- added iOS 16 lock screen widgets
- added user settings for show/hide tag/collection section in share sheet
- Passcode progress
- - added unlock button - added biometrical button - added show settings menu item and removed Settings.bundle
- implemented password protection (WIP)
- replaced deprecated code with new API
- added first passcode draft
- check if private mode setting is already set before showing alert
- - added context menu to global search items - fixed some actions, when parameter is not available
- Merge pull request #18 from hosy/milestone/1.1.1
- - fixed "Add Tag…" was not visible in context menu
- - new build and version number - added 1.1.1 release notes
- Save receipt in shared location and read it, if main bundle receipt is not available (like in an extension)
- fixed german localization
- - added german descriptions to press kit - added new release images
- Merge pull request #10 from hosy/milestone/1.1
- - changed build number - moved iOS screenshots - prepared press kit screenshots - added macOS raw screenshots
- - added missing localizable strings - fixed image size in Purchase View - updated gallery images
- changed app build number for upload
- changed gallery size on macOS
- updated screenshots
- - added english macOS screenshots - changed sample databases
- added german macOS screenshots
- changed english screenshots
- updated german screenshots
- - added german raw screenshots - fixed localization strings - fixed delete action (not appeared in today)
- added german localization for metadata
- - fixed localization - fixed edit collection group
- - added german description - changed wording
- - fixed localized strings - changed gallery country description section
- - added export to files actions - support custom export file names - changed release notes
- updated in build process
- - removed console output - fixed messages description length
- - changed some wording - changed font size
- - fixed actions with non needed key incognito - fixed localization strings in popup - removed get private mode action
- removed duplicated match function
- - refresh detail session history view - added private browsing mode setting - fixed localizations - added localization for Safari extension - added open URL from reminder list - exclude tag and collection from smart collection menu cases - added new symbols - changed context menu action sorting - added collection appreavation for global search - updated release notes - added incognito mode for Safari extension - fixed Safari extension, when window, tab was closed, for Single Web applications like youtube, adding history and updating metadata - added regular expression as search condition
- - Datum- und Zeitbedingungen in Sammlungen waren fehlerhaft - Release Notes hinzugefügt
- - show "Add Collection" as folder context menu item - added gallery footer - fixed cell type for history collection - added new symbols - fixed db collection expression for frequency type (was wrong grouping)
- - added localized url for collections - fixed license view for collections - added isLight color for gallery collection colors
- fixed default icon size
- added Gallery view for collections
- changed wording for german Blacklist
- fixed opening all sidebar items in new window
- moved into localization folder
- - added missing german localization - added new search Abbreviation # for tags only
- added missing localizations
- Added german localization (some mac related fixes)
- changed app version and app short version
- Merge pull request #9 from hosy/feature/mac-build
- removed unneeded target
- set network entitlements to true
- updated popup.min.js
- - fixed popup link click on macOS - fixed light/dark mode CSS in popup - shrink history title and url in popup - set a custom image on macOS for status bar item - sort search results by frequency in popup
- removed unneeded macOS target
- fixed archive build for macOS
- fixed macOS catalyst shortcuts/widget run problem (needs sandbox enabled)
- Merge pull request #6 from hosy/milestone/1.0
- added demo database
- - new build number - added press kit
- moved screenshots
- fixed session time (no items was shown, because favorite value could be nil)
- fixed global web search on mac
- - fixed another crash by zero divider - reminder action did not show UI, if unlicensed and not the maximum number was reached
- updated short and long version number
- - fixed notice view, when list is empty - fixed purchase help text for statistics
- fixed a crash in statistics, when division divider was 0
- added presskit and raw screenshots
- added missing license
- added missing licenses
- - added terms of use and privacy policy to purchase view - updated purchase help - fixed problem on macOS in global search (multiple opening selected item) - new build number
- added metadata assets: description, icon, screenshots
- new build number
- fixed bug for list items in global search
- fixed search bar position on iPad/Mac
- - uncommented search controller (always use CMBCommandBar) - fixed bug on Return key, while searching - changed initial search controller position
- - added search in browser in global search - respect search locations and conditions in filter text - added search action to app icon - added search deep link
- - removed unneeded file - changed title This to Current
- - fixed unsearchable tokens in global search - removed date term predicates from tag and collection search, because it does not make sense
- updated version number
- - global search: fixed list items, when token is date term - removed date format search terms with IndivualDateTerm object - added "Is Not" search suggestions
- - using correct condition when adding a search to a new collection - moved empty notice view code to setting history data - notice view title is now multiline - added help for negated search shortcut terms - fixed shared framework build on mac catalyst
- moved to shared framework
- - added NOT condition to search tokens and filter with adding a ! - added search tokens and search location to iMessage extension - fixed bug, if alttitle or titlehistory is null
- moved setting search controller into function
- - fixed bug in global search for list items, when tokens are available - fixed bug on iPad, do not show search, when collapsed - set new version number
- set grouped to default collection type
- updated version number
- Fixed Bugs: - respect selected scope in list search - use correct date format for date filter on non german date format devices - use case insensitive filter for global search list items - updated help - fixed licensing error on EditCollectionAction on edit mode
- fixed a token bug, when term is not available
- fixed lowercase search
- - added list items to global search - fixed crash on selecting last item in search results
- - hide search suggestions, if location date is active and a token was selected - hide search bar, when splitviewcontroller is collapsed
- - changed some wording - added missing search tokens
- added date to search tokens
- changed search term help
- added help section for search term shortcuts
- passing searchItems in today history was missing
- - new version number - fixed a bug on global search, if tokens are available and search text is empty
- add observer, when status item was clicked (to open a new window) WIP
- added status bar item on mac catalyst
- fixed passing search location to DB
- - added (multiple) search tokens in general search - add search tokens with abbreviation - general search keyboard selection changed (first item is no longer preselected) - fixed bug on iPad: general search did not appear with keyboard command
- fixed main thread problem on Mac Catalyst
- - fixed In-App purchase title - fixed typo in help - fixed background thread priority
- changed app version number
- - added logic to check active subscription or lifetime purchase to License Manager - show alert, if already licensed
- - add collection from search (in toolbar, new action) - changed edit collectionview content size - moved loading data into background queue - show loading view - fixed reload bug for favorites in importer
- added license validator
- mac catalyst toolbar changes
- fixed a potential crash
- added another purchase help section
- removed temporary database upgrades
- added completion handler to buy product and dismiss on success or show error alert
- check for license status after successfully purchase
- - dim searchcontroller background - added Notice View to history list and reminders list - added new purchase buttons to purchase view - some license manager additions
- removed search action from primary view
- added global search keyboard command
- macOS toolbar improvements
- added global search window (like spotlight) and replaced search results controller
- - macOS catalyst fixes (toolbar, title) - set some preferred content sizes
- set preferred content size
- added another helper
- - updated app version - show app version, short version and copyright text in help view
- - added "Add Tag", "Add Collection" items to sidebar, if empty - added "Exclude from Collection" action - added toolbar to sidebar and moved "Add" action to it - removed "Main" storyboard entry from project
- - added new type text cell - allow text and small icon cells for history type - always open URL on cell tap for all item types
- added completion handler for import action and added license error to show error dialog if not licensed
- added import collection preview mode
- new build number
- - added tag action under license control - removed search field in popup view
- implemented global flag URL
- Import Collections finished (assigned tags is missing) - added import plist to share sheet
- first import collection draft
- fixed date representation
- - Implemented "Share Collection" (import is missing) - fixed title bug for collection item
- added reminder action to share view
- - changed image, title for "Share All" action - updated purchase help - moved app version number to global project setting
- Fixed bug (wrong statistic data) Some Type changes
- intent could not be found (fixed bug)
- - Share Sheet: bugfix assign tag, "Add new Tag" button - Purchase View improvements - Shortcuts: New Actions: Metadata, Open URL, New Parameters: search direction, location, Return RichURL instead of URL - Metadata: try to get description from more meta tags - Today Widget: added configuration to select statistic type - added license check to restricted actions and Widgets, Shortcuts
- - added License Manager (WIP) - added Purchase View (WIP)
- setting global keyboard commands to mac menu
- changed project version to 14
- - added tag and collection search to popup - added license header to js files - fixed typo in shortcuts
- added new shortcut parameters: filter, sort type, sort direction
- moved search bar to top (unscrollable) area
- solved problem on macOS (URL was not available and as Data)
- - changed share sheet layout - hide elements on searching, when not needed - moved favorite button into navigation bar
- removed @State (not needed)
- - added search text field to share sheet to filter tags and collections - fixed bug assign/unassign tags
- added missing types
- - perform import/export action in background - show edit menu item only for collections - added export collection URLs shortcut intent - add a URL to a collection via context menu
- - added widget collection items - changed enum numerations - new build number
- added license for SQLite.swift
- - added currentWeekday and currentHour to date search types - renamed some enum types
- uglify javascript files and only ship builds with min.js versions
- - added database versioning - output collections in widget preferences
- removed unneeded code
- - added frequency to collections - added share button to preview view
- disabled Auto Tags
- fixed accessing import file permissions problem
- Shortcut Actions for Export/Import
- changed build number for TestFlight upload
- - added "Add Tag(s)" in Share Sheet - added looping video player - added support sections - some UI refinements
- - fixed deep links - removed sample images from support.json - translated support to english
- - added help entries - update today item in sidebar - replaced notification code with new darwin code - do not show flag button, if not a tag item
- - Support and Onboarding integration - Launch Screen Icon
- updated to newest Supporter source code 1.4
- assign, unassign tags and collection in share sheet
- Share Sheet implementation (WIP, with Popover test)
- - replaced FolderMontior with DarwinNotificationCenter - fixed showing Delete action not in favorite section - fixed crash on iPad when sharing an URL
- fixed import/export bug
- - added groups for collections - fixed unassign tags after deleting groups - used SwiftUI view for adding groups (removed storyboard view) - export/import flag state - added search flag, favorited state (and added to collection terms)
- - show groups to import - export favorite state for groups
- import tag groups
- - show collections in global search results - show actions for collections in - added core data indexing for collections - export tag groups and favorites - fixed search term bug for .containsNot, .isNot
- - prepared for collection groups - refresh sidebar section for tags
- - add collection item to favorite section - moved code to own action class
- - added tagging to collections - show collections in safari extension (set/unset URL) - fixed exporter (fav section, colors, symbols) - fixed reminder for 2, 3 weeks - fixed bar button in URLPageView - fixed opening surfed file import on mac
- - added reminder repeat interval - small fixes on tags
- added real tags to collection view editing view
- - added Delete Collection Action - fixed setting collection type - moved search terms and date terms into one table group - added missing date search term functions
- - added collections - added condition groups - implemented search terms and date terms filter - added multi-taging from safari extension - minor UI fixes
- - fixed history refresh bug - added open url button in detail view (refactored, clean-up code) - added smart collection edit view
- fixed search suggestion abbreviation
- - added multi search - added search tokens - added search suggestions - added local notification for copy URL action - fixed small bugs
- fixed dragging URLs (Plain text) inside for importing
- fixed saving sort key for same item types, with different title
- fixed a bug, when a tagged URL is not visible in history
- - fixed bug when retrieving latest tag id - Exporter: added color and symbol - new action "Share Tag" - fixed sharing tag bug from favorite section - fixed bug in edit tag action - start monitoring db file changes and reload (iPad only) - changed db timeout for multiple connections access - removed old GroupTableViewController and moved needed code in new ItemType file
- - fixed refreshing bug - fixed "Latest Tags" bug (wrong grouping) - fixed some minor UI issues
- - added "Latest" tags folder, with special context menu handling - fixed reload handling - some fixes for mac catalyst
- - added latest used tags section to popup and app - fixed key commands - fixed highlight color in tag detail view - fixed reminder view on catalyst
- - limit fetching history data - get total history counter by function
- - added auto tagging (experimental) - added sort type frequency - added preview mode to show url tags in a page view controller - added flag/unflag tag urls - added append client to history entry and show in detail view - some internal improvements
- added support for editing Tags and Tag Groups with color and symbols and show this in the UI
- - added Reminders - changed Statistics to collection view and added average and yesterday statistics
- - fixed initial db setup bugs - changed spotlight indexing
- added search keyboard command
- added keyboard action and dynamic context action to primary view controller
- - added blacklist action - adding logic for apply blacklist deletion - added shortcut for adding a blacklist entry
- - added blacklist support - working total statistics - support for core spotlight
- - action improvements - added trailing and leading swipe actions - added total statistic - added delete all history for url action
- fixed search background style on mac catalyst
- search tag groups and open it
- - added search with results controller to primary view controller - changed splitview width to 320
- - close popup on adding last tag - added action classes to generate code for key commands, UIMenu, … - added search in columns and added date.like filter - added toast view (if URL was copied)
- - added new Shortcut Intents - added Actions classes (WIP)
- - fixed UISplitViewController layout (width, displayMode) - fixed sort title on Mac Catalyst - recognize expand/collapse state of groups
- fixed bug in Safari extension, if meta description is not available
- - show date in context menu - added open url tag action (remove, move)
- - added keyboard commands for date paging - removed unneeded code - fixed bug in today view
- - fixed Mac Catalyst build - hide Tag button in popup or update with tag name
- - added "Add to latest tag" to extension - added date column to tag collection tabel - added share menu to list menu - minor fixes
- new build number
- fixed session time layout
- added session time statistics and cleanup some code
- added app icon shortcut icons
- - new large table cell style as display option - first implementation of tag reordering
- - updated Safari Extension icons - added SVG Icon templates
- - added icon images to cell / detail view (downloading and storing: icon, image) - added "Supporter" third party code for Help - fixed large title
- - moved to CollectionView - added meta infos to url - implemented drag and drop for URLs - refactored a lot of code - added a new iMessage icon - icon view for tags (unfinished) - added a new share extension target (unfinished) - fixed some bugs (Widget title)
- added a meta column to store the website meta description (show in detail view and it is searchable)
- fixed pull to refresh
- - added a new Collection widget to show items of a selected collection in a widget - open app by a custom url scheme with path - set a alternate title for a URL
- implemented multiple windows with state restoration
- support multiple windows on iPad
- - removed storyboard elements - moved UIWindow creation to scene delegate
- Importer can now show Favorite items
- - fixed history time for day
- added exporting/importing for Favorites
- - save sort direction and order to user defaults - removed elements from storyboard and create it via code
- - save tag sorting - fixed sorting by id and title - fixed top domains
- - fixed sorting bug - new edit sidebar action (delete) (reordering is in progress) - changed sidebar sections - added a new itemType enum
- fixed grouping on search history
- new export history shortcut intent
- - new App Icon - added sorting - added date label to history cell (new cell class) - fixed crash
- - added date pager to statistics view - added start and end date to statistics queries - new intent to get browsing time of today - changed widget title - fixed widget reload bug
- Introduced history session: this will calculate the correct browsing time, even if Safari is in the background and locked and the user start browsing the current site again
- added page leave event and show page visit time in detail history view
- new page statistics cell
- - added day pager to history - added an own cell for page statistics - fixed crash - added some sample collections
- - export all tags at once - added top domains statistics
- - added importer/exporter for tags - changed did select for tags, favorites - fixed searching in tags
- added a copy menu on long pressure
- fixed sharing crash
- - added menu, header and swipe actions to detail history view - reload widget timeline, after every insert - reload views when app gets active
- fixed popup shortcut command
- - added start date and end date to search history intent - moved filter to optional parameter
- added new shortcut intent to get all URLs for a tag group
- added new shortcut intent to get URLs for a specific tag
- added keyboard commands for popover
- - added collection table and terms table - fixed missing app group in widget target - fixed Intent target - changed Intent titles - changed title for menu actions
- - added a new column isgroup - assign tag to group from context menu
- added tag group
- fixed html glitches
- - add a new tag name in popup.html and assign new tag to current URL - fixed layout issues
- select assigned tags in popup.html
- - added segmented control - added favorites - fixed link click problem - fixed some dark mode issues - fixed delete history entry
- show tags in extension and assign/unassign
- - added show history in popup.html - set content size and fixed some dark mode problems
- added JQuery library to project
- - added support for favorite/unfavorite URL from Safari extension - added HTML select UI for Tags/Collections - added swipe action to history table view with Open URL action
- added support for favorite url from extension
- added Tags for tagging URLs
- - new database scheme - adde top pages query
- - fixed today widget - some UI fixes - added Detail History View Controller to show all page visits for a specific URL
- - fixed missing Intent code - new parameter for get history function - added iMessage icons - new build number
- added today history search query
- added Shortcuts Intents
- - added Today Widget - changed font sizes - added today counter function
- - large title - fixed iMessage cell tex size
- removed unneeded calls
- added iMessage extension
- First working version prototype
- Initial commit
* Add surfed extension
- removed owner
- - minor browser extension CSS / UI changes - added raycast metadata, readme - new Chrome and Firefox screenshots
- release notes
- added integrations settings section
- added error handling to CLI and Raycast extension
- fixed application path
- fixed build error
- - raycast extension - changes for raycast extension on CLI - updated SQLite.swift framework to SQLiteSwift to avoid name collations
- added raycast extension draft
- - new unified image - split search string by space, save quoted strings - css improvements - larger placeholder image size - fixed localization in host extension
- - search in web trigger values - fixed open urls in background if not http(s) scheme - new css style for search input - new web trigger function action regex match all
- - fixed crash in SurfedExtensionHost if password protected - updated extension localisation
- removed build files
- - use web trigger v3 definition - added release notes - allow opening multiple urls via web trigger - new build number
- fixed archive problem
- - added new browser onboarding view - added Opera, Brave to Open In action
- new rename device action
- - added update device name action - changed host extension path
- minor fixes
- - check if runWebtrigger is enabled for all event states - added a new filter menu to filter web trigger by events
- - removed webNavigation permission - added scripting permission to Firefox manifest - fixed duplicated localisation keys (case sensitive)
- - fixed iCloud (long text) upload conflict - show date picker in devices history - added Firefox extension link - fixed settings tab crash (macOS) - fixed deleting devices (transferDevice uuid to correct column) - fixed bright background in dashboard/popover - updated extension description - only enable iCloud sync if db version is the current - added Chrome extension screenshots
- removed tmp files
- Renamed folder from Chrome to development
- created min.js files with uglify
- fixed build error
- select browser in extension settings via deep link query parameter
- added deep link to settings view (with tab actions)
- - added translation strings - added base64 decoding function - fixed append HTML code in extension - added "Assigned to Space" in edit web trigger view
- - fixed global search with multiple search terms - fixed iOS build
- added setting to show/hide Mac status bar item
- fixed database upgrade crash and moved code to app delegate
- fixed web trigger sorting issues
- updated runestone package
- - added new web trigger actions sorting mechanism - changed trigger json data type response - add new web trigger type "CSS" and "Search & Replace" in HTML content
- - added assign space menu to web trigger table view - fixed favorite bug in popup - added html actions in background script - added html append and replace web trigger actions - fixed build error
- fixed showing filter bar immediately
- fixed application table sync bug
- fixed notification actions (by adding a new notification service extension) to the ExtensionHost target
- added app icon for ExtensionHost
- - fixed showing weekdays in popover date filter - fixed showing notifications in ExtensionHost (by requesting permissions)
- - enable WAL mode in SQLite database - fixed missing Keychain framework in SurfedExtensionHost target - finalist Install Extension UI on macOS settings - fixed InstallHost action (if folder is not available) - moved JS code to platform JS file - use gpt4o model for OpenAI
- - implemented redirect url correct - bug fixes
- - Browser Extension settings - async image loading in popup - more meta data in popup - try busyhandler for database connection
- - lot of extension fixes - added log debug for safari extension - added logging settings
- implemented "Save as Collection" in Browser Extension
- - App: split search string in tokens and only search on enter - only split in tokens if at least two colons inside the search string
- - added new search tokens - open surfed dashboard with keyboard shortcut su
- fixed chrome translation
- - localization updates - minor ui fixes
- a lot of fixes
- - a lot of extension fixes and improvements - refactored tag and collection ui in extension
- - major fixes in extension - added images
- implemented search tokens in browser extension dashboard
- - added dashboard to Safari browser extension - new tab
- - fixed bugs in extension, and host and debugger
- - implemented Delete Device Action - show ShowActions in multiselect view - moved debug log function into new class
- - added Brave browser - omnibox - crash fixed in safari extension
- implemented "Application" search filter
- converted SurfedExtensionHost to a macCatalyst app to use UIKit API
- - added signing private key - added Firefox setting
- added chrome extension code
- new files for the SurfedExtensionHost binary
- - update metadata with article - update history entry with application
- adopted code to support third party browser extensions
- moved iOS Safari extension code into own class
- added safari extension emm images
- updated release notes
- - show pro features state in settings view - reload global menu after validating license - changed extension manifest to 2.0.2 - load correct app icons on emm version extension - fixed refreshing receipt
- new build number
- - fixed missing iCloud entitlement in emm version
- Merge pull request #46 from hosy/milestone/2.0.1
- - new build number - changed iMessage icons
- - new build number - removed unneeded code
- - fixed share action crash - try to fix crash
- fixed visionOS ui issues
- - fixed database migration - add setting database version via deep link
- fixed setting database version
- - fixed show record private mode setting - Safari extension: fixed rare bug, that some websites could not be added to history
- - fixed startup crash - fixed saving onboarding items - url scheme to reset iCloud settings - added release notes
- - fixed splitview hide primary column bug - fixed archive mac build - new build and version numbers
- fixed database setup process
- Merge pull request #45 from hosy/feature/visionOS
- new build number
- added visionOS screenshots
- minor visionOS fixes (mostly color and size)
- - fixed database upgrade bug (if columns already exists) - fixed database setup on visionOS - added app version to settings view
- minor fixes
- - added some new copy actions - fixed build errors for visionOS and macOS Meracto package
- removed SwiftyStoreKit
- migrated to StoreKit 2 with Mercato package
- fixed iOS and macOS builds
- fixed button lock on visionOS
- fixed code signing (Archive)
- - fixed crashed when showing popovers - fixed cancel buttons on visionOS
- added missing xcconfig support for new targets
- prepared visionOS archive
- more fixed and visionOS refinement
- added surfboard for visionOS app icon
- First draft of a visionOS build
- Merge pull request #42 from hosy/milestone/2.0
- updated release notes
- added promote draft
- updated metadata and release notes press kit
- activated app license
- - added custom symbols - fixed popup tag/history errors
- - fixed applock manager - added two new cell types - enabled Reload image for bulk actions - updated localisations - minor changes
- - updated release notes - added background to activity indicator - added activity indicator to AI actions
- added "From this domain" action
- - added new filters for morning, afternoon, evening, at night - added new reload image action
- - minor fixes - move delete tag into an action - added in-app event images - added release note
- - fixed root collections with not assigned parent groups to space - show assign and unassign space in more places - updated release image - updated release notes - new press release text
- - fixed share article audio metadata - fixed show "More" row
- working solution with metadata
- added "Share Article as Audio" feature
- - added "Load more" data loading in lists with offset - changed limit length to 100 for data loading
- - added missing Chinese localisation strings - changed Chinese app store description
- - added resolver (not working) to AppIntent - AppIntent changes
- - added Shortcuts colors - Intent fixes
- - fixed a bug in get tag urls (duplicated history join) - new build number
- - read article title - show voice region, siri and quality in voice options - fixed bugs in "is not" filter statement
- - fixed launch screen safe area - renamed Surfed to Surfed Pro for emm version
- replaced safari extension icon with new version
- fixed EMM project setup
- - added iCloud identifier for EMM version - updated app description
- - fixed setting standard toolbar - fixed join error for hidden items filter - added release image - new build number
- new build number
- - new Play Article widget - added "Duplicate" action to smart editing view for groups - fixed opening url scheme duplicated view, if already opened
- version 2 marketing release notes image
- - fixed apply reader settings - fixed close reader view
- - fixed show global search, if already opened - fixed favourite entries in browser popup
- - fixed openAI actions with new model and moved to new api chat completion - added copy and open AI actions to actions menu - only save listening location for articles - new build number
- fixed build errors on macOS
- fixed missing try!
- - fixed crash - try to fix crashes by removing try! with do statements
- updated release notes
- fixed missing table join
- - fixed player bugs - fixed AppIntents bugs - localization fixes
- - print lists - save lists as PDF - more copy actions - show url parameter action - show space name in space "All" in history cell - settings for reader view and listen article - fixed multiple select action completion handler - save listening, listened and read state - new shortcut actions listen tag or collection article, listen url article - speaker: queue, next, previous, skip - listen and listen all actions - fixed select multiple items - selectable uitextview in reader view - new filter: listened, listening, read
- - get history years and show in search suggestions - show "not like images" in state search suggestions
- - Speaker improvements - Listen all - new search types: listened, listening, read - adopted database
- - show biometrical unlock when switching to private mode profile - on app start switch to profile "all" if private mode is enabled - fixed selected items sorting (removed set) - filter private mode profiles from all lists in profile "All"
- - refactored the Speaker with queue, skip, next, previous, playback position - added private mode in assign profile action selection - fixed fullscreen context bug
- - fixed bugs - PDF and Print action only for licensed app version
- added localisations
- - updated Readability version - refactored Speaker to shared instance - fixed article settings - fixed minor bugs
- - implemented printing and PDF export - new article settings font and voice - refactored code to retrieve ItemType images and titles globally - global function to retrieve formatted history string
- add a share item to the article view
- - web trigger: show save panel instead of share sheet on macOS - fixed importing web trigger with notification actions
- - fixed deleting web trigger (updating list) - new build number
- - added new debug setting to show push notification for background task - fixed background task - setting sync to background task and process activity for extensions - added web trigger search - filter web trigger by enabled/disabled - new mac icon
- fixed sorting smart collections by date, frequency
- - improved Safari extension background sync - improved sync algorithm - added devices to history sidebar - added devices to the global search - schedule sync items to a minimum of 20 for syncing - added missing localizations - fixed crash on showing CSV share sheet on iPad - added debug options to show sync notifications
- - new CSV Export Action - show session time in history lists - new coloured app icons - pass article to web trigger if performed in app - fixed: use hidden filter for Safari extension popup items - fixed: today statistics value was wrong - fixed: sometimes the tagging view was not opened - fixed: use new activation rules for share sheet action - fixed: app clean install had db setup bug
- - new sort type "Session Time" - share sheet is now available in all apps, which sharing URLs - show more context menu actions in global search results - fixed deselect only, if no "select" action was performed - moved actions "Open In", "Run Web Trigger", "Actions Menu" into new view controller - more actions are now available in multiple selection - update pending sync items in settings view - only show private browsing space, if recording is enabled - show multiple select actions on the end of actions - updated chinese and french translation - fixed crash on syncronize list actions - fixed bugs in statistics view - fixed broken alternative url titles, after sync import
- - added new filter rule "Session Time" (get history entries which matches the chosen session time) - show "Private Mode" space in Share Sheet (if Private Mode recording is enabled) - Favourite Action (in multiple selection may set wrong value) - minor fixes - fixed removed sessionTime table bugs
- - added hidden items - added private mode space / profile - added new filter private mode - added conditions is not for state filter
- - removed history session table and all regarding code - migrate to new history duration - reload activity view - show spaces filter in global search
- added query item "space" to url open parameter
- - fixed searching for multiple tags - fixed Mac menu items - added more keyboard shortcuts - fixed remove observer crash - not updating table view, if items are selected - find duplicated tags and remove broken database values
- - fixed open in new window - show actions in global search context menu - switch to assigned profile when opening an item
- fixed crash
- - show device name in history cells - reload system menu after iCloud enable/disable
- fixed siri voice
- added different vendor url scheme for vanilla and emm app
- - added reading time to web trigger paramters - added syncronize action to menus - fixed app icon preview - fixed favorite/flag in favorites assign space
- updated release notes
- updated to the latest sf symbol picker
- added missing translations
- - finalised html favourite import - added SwiftSoup license - fixed insert tag bug - fixed context menu for copy and ai actions
- first working html bookmark parsing draft
- fixed passing urlid instead of uuid
- added new externalimport action
- - fixed wording - added more external import help entries - added SwiftSoup for parsing html files - fixed share sheet, surfed action actions
- - external import - release notes - switch spaces keyboard command - fixed assign problems
- Merge branch \'milestone/1.5.1\' into milestone/2.0
- enabled SearchSuggestionView again
- - fixed retain cycle issues - fixed global search issues
- fixed get collection issues
- fixed retain cycle issues
- - added external import for raindrop.io - renamed profiles to spaces - fixed bugs - added translations
- fixed showing history cloud sync interval in welcome vier
- - implemented focus filter - fixed favourites and flags for profiles - fixed a lot of profile and assign bugs - new global web trigger run setting
- load of refactoring, bug fixes - added new intent - fixed widgets for iOS 17, profiles - new tables ...
- - localisation - fixes in edit profile view
- - Localisation - Fixed Profile menu - additional foot note in iCloud sync
- - fixed upgrading tables - fixed join statement in search - fixed filter - removed select items in sidebar
- assign tag item to profile, if already available on create
- - fixed sync url notes - fixed collection filter term
- - added reset sync state - added profile search to search tokens
- fixed favorite collections
- - fixed database locked error - fixed showing update view - removed duplicated refresh
- - fixed bug in addHistory, send extension response - fixed stats for profiles
- - refactored sync - lot of fixes - profiles for activity widget and stats - ...
- - Show Sync Status as activity view - activity widget fixes - only join tables for smart collections, if history search terms are involved - fixes for iOS 17 Xcode build
- added widget for activity view
- added activity view
- - moved database upgrade process into separate functions - start upgrading scheme from app or extensions - upgrading data only in app - fixed crash - added progress view to notice view
- Merge pull request #41 from hosy/milestone/1.5.1
- Merge branch \'master\' into milestone/1.5.1
- Merge pull request #43 from hosy/feature/emm-app
- prepared EMM app
- Build an EMM app version - but all app groups and keychain access groups into xcconfig files for the regular and emm app - changed license check for emm app - fixed translations
- fixed translations
- updated Chinese localisation from PR
- - added new table for devices and removed it from application - sync devices - fixed bugs
- - edit profiles with assigned items - added filter by device search term type - iCloud sync welcome and setup view - new sync setting to differentiate between history, collections and settings - new select, deselect, assign, unassign multi select actions - modernised some code
- fixed release notes quotes
- updated release notes 1.5.1
- fixed localization - Chinese update from community - added missing translation strings
- - fixed colors in action scroll view - new select/unselect action - localization
- set button color
- fixed setting toolbar icons
- implemented multi select in lists
- replaced user defaults sync with iCloud database solution to sync app settings
- sync user defaults with Zephyr
- - added iCloud sync setting to settings - added profiles to reminders - added new app icons to Safari Extension and macOS status bar, launch screen
- - moved version 1 icon files into new subfolder - added version 2 icon files
- supporting profiles in web trigger and collections and favourites
- - added ProfileItems - editing Profiles - set profile tint color - filter items by profile - fixed crashs
- - implemented iOS 17 profile support - added profile selector in app - removed private browsing mode setting on iOS 17
- cloud sync and refactoring bug fixes
- fixed a lot of cloud sync issues - implemented Safari cloud sync upload in background - push notifications for sync updates
- add missing statements for delete/insert/update for complete CloudKit sync
- added missing cloud sync tables
- - fixed delete items - create identifible uuids
- - implemented history sync - fixed refactoring error
- - fixed refactoring errors - added sync for tags, tagcollections, urls - added CloudKit scheme
- fixed crash
- - fixed a lot of errors - updated to sqlite.swift 0.14.0 SchemeChanger - drops no longer needed columns
- updated app icon
- refactoring database columns to uuid values replace database ids with uuids
- added translation string
- - fixed crash on json load fail - show error message
- changed app and build version number
- changed app and build version
- - added current day date term - fixed current month date term - fixed add button in terms section
- first sync draft
- Enabled CloudKit entitlement
- Merge pull request #39 from hosy/milestone/1.5
- changed app accent color title
- added version 1.5 release image
- - release notes updated - fixed refresh after tag editing
- - changed release notes - added v1.5 screenshots - bug fixes
- - fixed AppStore connect upload error (missing app icons)
- - Add URL action - fixed setting an alternate app icons on iPad - move share code into new ShareTagCollectionAction - show alternate app icon in password view (only app) - changed App Tint to Accent Color string - some code cleanup and minor UI fixes
- - fixed broken APP_SHORT_VERSION - added new release notes item - fixed release notes IDs
- added french translation
- - new version and build number (as variable) - DetailViewController: added new sharing code for iOS 17
- - fixed symbol in title - fixed tag header
- added chevron button to expand or collapse the sections in the assign tag view
- - added pro feature for app tint - added descriptions to new app settings - fixed headers in assign tag view - show popover arrows - fixed symbol image in list title
- - fixed web trigger import with old surfed files (which only have two action values) - hide collection items in assign tag view, when filter is active
- - added "Add New Tag" save behaviour - assign collection design fixes - show Tag View as popover on iPad - fixes - fixed crash on "Open all URLs in Browser"
- - redesign of assign tag view - using macOS accent color
- added "Assigned" tag filter
- - App Theme (global tint and view tint) - disable list colouring setting - new QR code action - assign tag view: filter tags by last usage - removed actions from global menu and history list menus
- - text view find interaction - coloured tag lists - images in tag and collections list titles
- - fixed new tagging issues
- fixed tag button
- fixed iPad and detail history issues
- fixed new Tag/Collection behaviour
- - Added Runestone syntax highlight text editor - new assign tag and collection view - new version and build number
- updated press kit files
- Merge pull request #38 from hosy/milestone/1.4.1
- added 1.4.1 release image
- - added speak article notification button action - sorted notification actions
- - fixed saving web trigger actions with new values 3, 4 - fixed import preview
- fixed missing extension key
- fixed localization
- changed build number
- - added flag action to Safari popuup - fix macOS build error - added missing "Latest Tags" setting to macOS settings and added new pane type - updated release notes
- - added release notes - new web trigger gallery path
- added new web trigger actions: - show article - listen article
- - new Action Extension - fixed iPad crash on hide - fixed Open AI API-key length - added new web trigger parameter "URL ID" - new url parameter "auto-run-web-trigger=false" to prevent re-trigger web trigger on return to Safari - clean-up URL parameter run-web-trigger in Share and Action View
- added new web trigger functions - url decode/encode - url unshorten
- - added function remove from string - fixed custom parameter parsing
- new web trigger action functions: search and replace
- added a relaunch notification
- Share Sheet: - Run Web Trigger - Article Actions - OpenAI Actions
- Merge pull request #37 from hosy/milestone/1.4
- added 1.4 release image
- added macOS Screenshots
- new build number
- - enabled License - fixed wording
- added german app store screenshots
- added english app store screenshots
- added updated raw screenshots 1.4
- - UI Fixes - added "Edit Tag…" to tag view menu - action sorting - release notes - new demo database - wording fixes
- - fixed reading format - new tag view look (border, alpha background, color title) - added release notes
- - added remove tag intent - added missing year 2023 - filter bar: added day, month, year, weekday search tokens - fixed calculating reading time - some UI changes - added elapsed time and absolute time to media player view - added article and notes fields to import/export - new UI for exporting tags, to select which fields should be exported - fix remove media player from notification view, if finished
- - changed localization - added AI actions to article view
- - added Media Player control support - fixes for Xcode 14.3
- fixed nil check
- fixed tabulator characerts
- new build number
- fixed tabulator characters
- fixed default problem
- latest fixes
- fixed search location, added placeholder
- New in Build 71:
- new build number
- - added Tags to history list - added pride icon
- support for alternate app icons
- - added showing tags in detail history view - added "Date" label in date rules
- fixed toolbar items
- fixed localization
- - added missing cases for date checks - select date check conditions in collection view editing interface
- - fixed main thread problems - removed search scopes with a new filter bar
- new build number
- - fixed search for tag names in global search
- - fixed blocking UI in search - fixed updating collection section after adding new collection - fixed sorting tags in assign tags in collection UI - added search for tags #tagname in history and global search - fixed removing leading space in search in browser action
- removed background thread
- - moved some updating logic into StorageManager - update title every time
- fixed adding collection groups to favorite section
- - changed sidebar to correct diffable datasource snapshot concept - fixed sorting (case insensitive) of tags and collections in sidebar
- fixed reset on iOS device
- - added support for custom list actions in individual tags or collections - added Zoom Action
- - fixed bugs with group tags (assign, unassign, edit) - fixed bugs when moving, inserting, deleting items in sidebar with multiple windows
- added openURL via nsworkspace by adding a protocol and methods to the appkit bundle, now mac can open urls in installed browsers
- allow navigation in wkwebview as parameter
- - localization fixes - fixed crash on Mac
- fixed missing localization
- - sort actions in settings by url - added new action type selectAction - retrieve html content for web trigger action - show gallery, when no web trigger available - new action show url
- - added run web trigger action menu - sort actions in settings by title
- set default action types, to appear in leading and trailing actions
- - changed colors - changed keyboard shortcuts - new build number - localization
- added color support for alert actions
- New actions: - Open In - Show Actions
- fixed bug with passing correct parameters to action context
- new build number
- fixed toolbar and navigation button bugs in browser view
- added paging to in-app browser in compact mode
- - new app badge action - new long text cell - toolbar buttons with context actions in Safari view - splitview bug fixes - global search positioning fixes
- remove delivered notifications
- new actions: - color parameter - comment
- new build number
- - Support deep links to Tags and Collections with name like surfed://tag/Apple - Added Web Trigger item to global search - fixed resolving custom parameters in all web trigger actions
- - added release notes - missing localization
- added a none option for actions
- moved method into own class
- - fixed splitview controller problems - set default actions
- - added in-app reader action - fixed show detail controller bug - added colours to actions - changed list settings type - updated release notes
- - set default actions - new build number
- - added new web trigger action "Tag with…" - fixed problem loading controller
- - fixed macos build - some refinements
- 99% working solution for triple columns
- fixes
- most things are working in split view
- - Configurable Actions in Settings - New Action In-App Browser - WIP: Triple Split View
- fixed mac build
- added reminder action
- - fixed actions import from gallery - fixed error, when file import fails (copy to tmp) - iPad hover - link colour - new build number
- fixes for macOS build
- - fixed autolayout error - updated release notes
- fixed json syntax error
- - updated title colour - updated release notes - added missing localization
- - added date picker view - added release notes - update build number
- added support for importing actions
- changed build number
- fixed build number
- Merge branch \'master\' into feature/notification-action-buttons
- changed build number
- - updated localisation - output history date/time in Safari popup
- - added open URL notification action - added tag with notification action - added url components to json array - added allowing unsecure http url requests to notification extension - added support for multiple shortcuts in import gallery file - added support for import questions
- - UI fixes - fixes for Notification Actions on macOS
- - fixed UI alignement - removed unneeded code
- added "addTag" notification action
- - added new notification actions: favourite, flagged, latest tag - changed webtrigger collection gallery json url - changed webtrigger and collection UI, like Shortcuts app
- - added notification actions - added flag or favorite icon to global search interface
- Merge pull request #36 from hosy/milestone/1.3.1
- changed build number
- bugfix: - running web triggers were not possible in unlicensed mode - fixed a crash on testing url schemes
- first notification action buttons draft
- added release image 1.3
- new release image
- Merge pull request #34 from hosy/milestone/1.3_update
- removed press kit and moved to surfed-web repository
- updated metadata
- enabled license
- new build number
- - some actions has a multline texteditor view - updated help
- fixed advanced option section
- new build number
- show local notification not granted message after import
- - updated help - updated localized strings - show advanced options automatically, when a non basic parameter is set - show notification request on import
- - local notification request - updated build number - smaller size for system images in help
- updated build number
- - added formatted url parameter markdown and html - url scheme for web trigger - updated help - fixed db version 2 - smal UI padding fix in Gallery
- - added Web Trigger to the sidebar - fixed sorting in popup search - updated SymbolBrowser to version 1.4 - change image size for help - setting system images in help
- fixed group URLs in popup, when searching
- - added text field focus - fixed crash in test app scheme, when url contains whitespaces - added list title to json array - fixed adding html key/value to shortcuts json
- changes for webtrigger and javascript execution
- - bugfixes for webtriggers and javascript handling
- - removed temp code - enabled uglify and using min.js again
- temp commit, for saving the current work state (fixing copy to clipboard)
- added today history to web trigger parameter
- added sample html code for testing
- added showing custom parameters in parameters menu
- - changed parameter syntax from {} to {{}} - refactored code in WebTriggerRunner - added surfed parameters: favorties, collections, tags - added test actions - clear text field
- sort actions with new sortOrder
- updated help
- new short description
- - added JavaScript action and perform code in website - added custom parameter action - added localization - fixed bugs
- - added new symbol picker - changed help for web trigger
- - refactored web trigger to actions - added copy to clipboard, notifications - added new shortcut action to export a tag
- load http requests in app
- new build number
- - fixed keyboard toolbar (SwiftUI bug) moved to table view row - fixed broken URL encoding for Web Triggers
- - sorting by flagged and favorited state - added gallery for webtriggers - allow http web requests (webtriggers) - import webtriggers - basic surfedaction implementation - added support for multiple shortcut parameters
- fixed validation and translation
- added web trigger validation
- - simplified Web Trigger setup - added keyboard toolbar - added placeholder tokens to web trigger
- Merge pull request #28 from hosy/milestone/1.3
- added sandboxing parameter to CLI entitlement
- enabled license validation
- fixed german release notes
- fixed image link for 1.3 release notes
- updated release notes
- reload actions from intent actions
- updated build number
- - update metadata, if not available and post a notification to the app to update view
- added html source to search term type and searches html source in web trigger
- - fixed importing web trigger
- added tint color to import image item
- added image to import window
- - On This Day Search Action - added Open in Safari item in preview mode - added enable/disable switch for web trigger - added import/export function for web trigger
- changed global search icon
- changed UI layout
- - fixed filter for collection condition groups - show global search button in list view in compact trait collection - fixed crash when deleting a web trigger - new build number
- updated release notes
- - fixed description and localization
- - fixed toolbar crash - fixed using wrong condition groups for web triggers - adding time interval to json data
- localization fix
- added german release notes
- - added help for CLI
- Merge pull request #33 from hosy/feature/web-trigger
- - added missing help - fixed parameter
- - added help - fixed UI - added document menu - added localization
- - fixed bug - changed help text
- fixed layout, description text
- fixed some details
- added missing code to run web triggers as expected
- added web trigger
- fixed bug, that search results URLs was not shown
- added toolbar items
- Merge pull request #31 from hosy/feature/CLI
- Merge branch \'milestone/1.3\' into feature/CLI
- changing some details
- removed debug messages
- - removed no longer needed targets - copy helper app into app package for mac catalyst builds
- - moved settings view to own scene and window, which now locks the screen, if protected - settings is now mac like with tab bar and floating window
- - changed target name - fixed json output keys
- - fixed showing content, when app is not protected - hide debug output in release builds
- - migrated keychain to correct access group - finished command line tool - added API key in settings - fixed missing localization - added icons to reminders view
- changed letter spacing
- Merge pull request #30 from hosy/feature/global-search-urls
- Merge pull request #29 from hosy/feature/copy-markdown
- new version and build number
- added gradient
- exchanged icons in header image
- Global search: search for urls, which are not in history
- centered main icon
- added icons
- new twitter marketing header
- new copy URL as Markdown action
- fixed build error on iOS
- - added all needed parameters and handle them - adopt code for CLI usage
- first CLI draft
- added release notes and lock screen screenshots
- changed version number back to 1.2
- Merge pull request #24 from hosy/milestone/1.2.1
- - fixed problem on mac, when biometrical unlock is shown - prepared code for unlocking global search (but currently not active) - new share sheet size
- Bugfix: - when app is not password protected, in some cases the app lock was activated - fix global search popover on macOS Ventura - new version and build number
- added missing license
- Merge pull request #19 from hosy/milestone/1.2
- Merge branch \'master\' into milestone/1.2
- updated release image
- if browsing time is empty, show a dash
- added app lock screenshot
- updated screenshots and metadata
- fixed action widget on macOS
- - fixed inline widget layout - fixed showing global search on iOS, with password protection
- save private mode via app settings class
- do not show global search, if app is not unlocked
- - Added new lock and unlock action and added this to the system menu - fixed main thread problem
- save applockmanager state, when global search popover will be dismissed
- fixed return key for unlock on macCatalyst
- - fixed global search success action - fixed NSPopover on new macOS version - fixed crash on refreshing Today sidebar item, when section is collapsed - added leading swipe action "Copy URL" to reminders table view
- refresh sections on restore or delete
- fixed showing biometrical unlock dialog, if biometrical unlock should not be done
- used same icon size as in action widget
- - fixed problem with App Lock on macOS global search - updated release notes
- - moved global search window activation to AppDelegate - added Password Lock to global search window - facelifting for Widgets - added latest tags to context menu - added edit tag action to list global context menu - removed reload action from global context menu - refactored code
- new Widget layout and refactored widget code
- fixed macOS build error
- added vibrant background to lockscreen widgets
- fixed bug when exporting a collection (tag was used instead)
- - updated changelog - updated build number
- added new Action Widget
- - added chinese localization - fixed missing localizations
- - changed lockscreen widget format - changed "Add Tag" image
- new build number
- moved "Add Tag" menu to the top of the context menu
- fixed applock, when no longer licensed (should not work, when unlicensed)
- - fixed bug in Safari extension (some actions where not executed when app is protected - reload lockscreen widget from database update
- added password protection to purchase screen
- - fixed release notes image - reset license manager
- added version 1.2 release notes
- fixes for maccatalyst
- new build and version number
- fixed collection option in password protection
- - added new iOS 16 UIMenu medium size - reorganized context menus - changed strings
- Merge pull request #22 from hosy/feature/lockscreen-widget
- - implemented password protection to lockscreen widgets - move code to own views
- Merge branch \'milestone/1.2\' into feature/lockscreen-widget
- - fixed widget symbols - changed lockscreen widget layout
- added new Shortcuts action Backup Database
- New Actions: - backup database - restore database - delete all history
- Merge pull request #21 from hosy/feature/passcode
- changed settings footer text
- - fixed widget password protection - fixed localized strings and settings labels
- Popup: - submit password on enter key - set focus on password text field (currently only works on Mac)
- - fixes for Mac catalyst build, when biometrical unlock is shown, the app is in background, which causes, that the dialog was presented again and again - become first responder for password text field only on Mac
- - added Safari extension popup support - fixed passcode bugs - added localization strings
- - added password protection to widgets and shortcuts - bugfixes in share sheet - changes in settings view
- added password protection to extensions
- - changed cancel button, image, text - added app icon - fixed background / foreground delay, saving defaults
- - added App settings view - added password coordinator - fixed bugs
- added a watch extension for widgets
- added iOS 16 lock screen widgets
- added user settings for show/hide tag/collection section in share sheet
- Passcode progress
- - added unlock button - added biometrical button - added show settings menu item and removed Settings.bundle
- implemented password protection (WIP)
- replaced deprecated code with new API
- added first passcode draft
- check if private mode setting is already set before showing alert
- - added context menu to global search items - fixed some actions, when parameter is not available
- Merge pull request #18 from hosy/milestone/1.1.1
- - fixed "Add Tag…" was not visible in context menu
- - new build and version number - added 1.1.1 release notes
- Save receipt in shared location and read it, if main bundle receipt is not available (like in an extension)
- fixed german localization
- - added german descriptions to press kit - added new release images
- Merge pull request #10 from hosy/milestone/1.1
- - changed build number - moved iOS screenshots - prepared press kit screenshots - added macOS raw screenshots
- - added missing localizable strings - fixed image size in Purchase View - updated gallery images
- changed app build number for upload
- changed gallery size on macOS
- updated screenshots
- - added english macOS screenshots - changed sample databases
- added german macOS screenshots
- changed english screenshots
- updated german screenshots
- - added german raw screenshots - fixed localization strings - fixed delete action (not appeared in today)
- added german localization for metadata
- - fixed localization - fixed edit collection group
- - added german description - changed wording
- - fixed localized strings - changed gallery country description section
- - added export to files actions - support custom export file names - changed release notes
- updated in build process
- - removed console output - fixed messages description length
- - changed some wording - changed font size
- - fixed actions with non needed key incognito - fixed localization strings in popup - removed get private mode action
- removed duplicated match function
- - refresh detail session history view - added private browsing mode setting - fixed localizations - added localization for Safari extension - added open URL from reminder list - exclude tag and collection from smart collection menu cases - added new symbols - changed context menu action sorting - added collection appreavation for global search - updated release notes - added incognito mode for Safari extension - fixed Safari extension, when window, tab was closed, for Single Web applications like youtube, adding history and updating metadata - added regular expression as search condition
- - Datum- und Zeitbedingungen in Sammlungen waren fehlerhaft - Release Notes hinzugefügt
- - show "Add Collection" as folder context menu item - added gallery footer - fixed cell type for history collection - added new symbols - fixed db collection expression for frequency type (was wrong grouping)
- - added localized url for collections - fixed license view for collections - added isLight color for gallery collection colors
- fixed default icon size
- added Gallery view for collections
- changed wording for german Blacklist
- fixed opening all sidebar items in new window
- moved into localization folder
- - added missing german localization - added new search Abbreviation # for tags only
- added missing localizations
- Added german localization (some mac related fixes)
- changed app version and app short version
- Merge pull request #9 from hosy/feature/mac-build
- removed unneeded target
- set network entitlements to true
- updated popup.min.js
- - fixed popup link click on macOS - fixed light/dark mode CSS in popup - shrink history title and url in popup - set a custom image on macOS for status bar item - sort search results by frequency in popup
- removed unneeded macOS target
- fixed archive build for macOS
- fixed macOS catalyst shortcuts/widget run problem (needs sandbox enabled)
- Merge pull request #6 from hosy/milestone/1.0
- added demo database
- - new build number - added press kit
- moved screenshots
- fixed session time (no items was shown, because favorite value could be nil)
- fixed global web search on mac
- - fixed another crash by zero divider - reminder action did not show UI, if unlicensed and not the maximum number was reached
- updated short and long version number
- - fixed notice view, when list is empty - fixed purchase help text for statistics
- fixed a crash in statistics, when division divider was 0
- added presskit and raw screenshots
- added missing license
- added missing licenses
- - added terms of use and privacy policy to purchase view - updated purchase help - fixed problem on macOS in global search (multiple opening selected item) - new build number
- added metadata assets: description, icon, screenshots
- new build number
- fixed bug for list items in global search
- fixed search bar position on iPad/Mac
- - uncommented search controller (always use CMBCommandBar) - fixed bug on Return key, while searching - changed initial search controller position
- - added search in browser in global search - respect search locations and conditions in filter text - added search action to app icon - added search deep link
- - removed unneeded file - changed title This to Current
- - fixed unsearchable tokens in global search - removed date term predicates from tag and collection search, because it does not make sense
- updated version number
- - global search: fixed list items, when token is date term - removed date format search terms with IndivualDateTerm object - added "Is Not" search suggestions
- - using correct condition when adding a search to a new collection - moved empty notice view code to setting history data - notice view title is now multiline - added help for negated search shortcut terms - fixed shared framework build on mac catalyst
- moved to shared framework
- - added NOT condition to search tokens and filter with adding a ! - added search tokens and search location to iMessage extension - fixed bug, if alttitle or titlehistory is null
- moved setting search controller into function
- - fixed bug in global search for list items, when tokens are available - fixed bug on iPad, do not show search, when collapsed - set new version number
- set grouped to default collection type
- updated version number
- Fixed Bugs: - respect selected scope in list search - use correct date format for date filter on non german date format devices - use case insensitive filter for global search list items - updated help - fixed licensing error on EditCollectionAction on edit mode
- fixed a token bug, when term is not available
- fixed lowercase search
- - added list items to global search - fixed crash on selecting last item in search results
- - hide search suggestions, if location date is active and a token was selected - hide search bar, when splitviewcontroller is collapsed
- - changed some wording - added missing search tokens
- added date to search tokens
- changed search term help
- added help section for search term shortcuts
- passing searchItems in today history was missing
- - new version number - fixed a bug on global search, if tokens are available and search text is empty
- add observer, when status item was clicked (to open a new window) WIP
- added status bar item on mac catalyst
- fixed passing search location to DB
- - added (multiple) search tokens in general search - add search tokens with abbreviation - general search keyboard selection changed (first item is no longer preselected) - fixed bug on iPad: general search did not appear with keyboard command
- fixed main thread problem on Mac Catalyst
- - fixed In-App purchase title - fixed typo in help - fixed background thread priority
- changed app version number
- - added logic to check active subscription or lifetime purchase to License Manager - show alert, if already licensed
- - add collection from search (in toolbar, new action) - changed edit collectionview content size - moved loading data into background queue - show loading view - fixed reload bug for favorites in importer
- added license validator
- mac catalyst toolbar changes
- fixed a potential crash
- added another purchase help section
- removed temporary database upgrades
- added completion handler to buy product and dismiss on success or show error alert
- check for license status after successfully purchase
- - dim searchcontroller background - added Notice View to history list and reminders list - added new purchase buttons to purchase view - some license manager additions
- removed search action from primary view
- added global search keyboard command
- macOS toolbar improvements
- added global search window (like spotlight) and replaced search results controller
- - macOS catalyst fixes (toolbar, title) - set some preferred content sizes
- set preferred content size
- added another helper
- - updated app version - show app version, short version and copyright text in help view
- - added "Add Tag", "Add Collection" items to sidebar, if empty - added "Exclude from Collection" action - added toolbar to sidebar and moved "Add" action to it - removed "Main" storyboard entry from project
- - added new type text cell - allow text and small icon cells for history type - always open URL on cell tap for all item types
- added completion handler for import action and added license error to show error dialog if not licensed
- added import collection preview mode
- new build number
- - added tag action under license control - removed search field in popup view
- implemented global flag URL
- Import Collections finished (assigned tags is missing) - added import plist to share sheet
- first import collection draft
- fixed date representation
- - Implemented "Share Collection" (import is missing) - fixed title bug for collection item
- added reminder action to share view
- - changed image, title for "Share All" action - updated purchase help - moved app version number to global project setting
- Fixed bug (wrong statistic data) Some Type changes
- intent could not be found (fixed bug)
- - Share Sheet: bugfix assign tag, "Add new Tag" button - Purchase View improvements - Shortcuts: New Actions: Metadata, Open URL, New Parameters: search direction, location, Return RichURL instead of URL - Metadata: try to get description from more meta tags - Today Widget: added configuration to select statistic type - added license check to restricted actions and Widgets, Shortcuts
- - added License Manager (WIP) - added Purchase View (WIP)
- setting global keyboard commands to mac menu
- changed project version to 14
- - added tag and collection search to popup - added license header to js files - fixed typo in shortcuts
- added new shortcut parameters: filter, sort type, sort direction
- moved search bar to top (unscrollable) area
- solved problem on macOS (URL was not available and as Data)
- - changed share sheet layout - hide elements on searching, when not needed - moved favorite button into navigation bar
- removed @State (not needed)
- - added search text field to share sheet to filter tags and collections - fixed bug assign/unassign tags
- added missing types
- - perform import/export action in background - show edit menu item only for collections - added export collection URLs shortcut intent - add a URL to a collection via context menu
- - added widget collection items - changed enum numerations - new build number
- added license for SQLite.swift
- - added currentWeekday and currentHour to date search types - renamed some enum types
- uglify javascript files and only ship builds with min.js versions
- - added database versioning - output collections in widget preferences
- removed unneeded code
- - added frequency to collections - added share button to preview view
- disabled Auto Tags
- fixed accessing import file permissions problem
- Shortcut Actions for Export/Import
- changed build number for TestFlight upload
- - added "Add Tag(s)" in Share Sheet - added looping video player - added support sections - some UI refinements
- - fixed deep links - removed sample images from support.json - translated support to english
- - added help entries - update today item in sidebar - replaced notification code with new darwin code - do not show flag button, if not a tag item
- - Support and Onboarding integration - Launch Screen Icon
- updated to newest Supporter source code 1.4
- assign, unassign tags and collection in share sheet
- Share Sheet implementation (WIP, with Popover test)
- - replaced FolderMontior with DarwinNotificationCenter - fixed showing Delete action not in favorite section - fixed crash on iPad when sharing an URL
- fixed import/export bug
- - added groups for collections - fixed unassign tags after deleting groups - used SwiftUI view for adding groups (removed storyboard view) - export/import flag state - added search flag, favorited state (and added to collection terms)
- - show groups to import - export favorite state for groups
- import tag groups
- - show collections in global search results - show actions for collections in - added core data indexing for collections - export tag groups and favorites - fixed search term bug for .containsNot, .isNot
- - prepared for collection groups - refresh sidebar section for tags
- - add collection item to favorite section - moved code to own action class
- - added tagging to collections - show collections in safari extension (set/unset URL) - fixed exporter (fav section, colors, symbols) - fixed reminder for 2, 3 weeks - fixed bar button in URLPageView - fixed opening surfed file import on mac
- - added reminder repeat interval - small fixes on tags
- added real tags to collection view editing view
- - added Delete Collection Action - fixed setting collection type - moved search terms and date terms into one table group - added missing date search term functions
- - added collections - added condition groups - implemented search terms and date terms filter - added multi-taging from safari extension - minor UI fixes
- - fixed history refresh bug - added open url button in detail view (refactored, clean-up code) - added smart collection edit view
- fixed search suggestion abbreviation
- - added multi search - added search tokens - added search suggestions - added local notification for copy URL action - fixed small bugs
- fixed dragging URLs (Plain text) inside for importing
- fixed saving sort key for same item types, with different title
- fixed a bug, when a tagged URL is not visible in history
- - fixed bug when retrieving latest tag id - Exporter: added color and symbol - new action "Share Tag" - fixed sharing tag bug from favorite section - fixed bug in edit tag action - start monitoring db file changes and reload (iPad only) - changed db timeout for multiple connections access - removed old GroupTableViewController and moved needed code in new ItemType file
- - fixed refreshing bug - fixed "Latest Tags" bug (wrong grouping) - fixed some minor UI issues
- - added "Latest" tags folder, with special context menu handling - fixed reload handling - some fixes for mac catalyst
- - added latest used tags section to popup and app - fixed key commands - fixed highlight color in tag detail view - fixed reminder view on catalyst
- - limit fetching history data - get total history counter by function
- - added auto tagging (experimental) - added sort type frequency - added preview mode to show url tags in a page view controller - added flag/unflag tag urls - added append client to history entry and show in detail view - some internal improvements
- added support for editing Tags and Tag Groups with color and symbols and show this in the UI
- - added Reminders - changed Statistics to collection view and added average and yesterday statistics
- - fixed initial db setup bugs - changed spotlight indexing
- added search keyboard command
- added keyboard action and dynamic context action to primary view controller
- - added blacklist action - adding logic for apply blacklist deletion - added shortcut for adding a blacklist entry
- - added blacklist support - working total statistics - support for core spotlight
- - action improvements - added trailing and leading swipe actions - added total statistic - added delete all history for url action
- fixed search background style on mac catalyst
- search tag groups and open it
- - added search with results controller to primary view controller - changed splitview width to 320
- - close popup on adding last tag - added action classes to generate code for key commands, UIMenu, … - added search in columns and added date.like filter - added toast view (if URL was copied)
- - added new Shortcut Intents - added Actions classes (WIP)
- - fixed UISplitViewController layout (width, displayMode) - fixed sort title on Mac Catalyst - recognize expand/collapse state of groups
- fixed bug in Safari extension, if meta description is not available
- - show date in context menu - added open url tag action (remove, move)
- - added keyboard commands for date paging - removed unneeded code - fixed bug in today view
- - fixed Mac Catalyst build - hide Tag button in popup or update with tag name
- - added "Add to latest tag" to extension - added date column to tag collection tabel - added share menu to list menu - minor fixes
- new build number
- fixed session time layout
- added session time statistics and cleanup some code
- added app icon shortcut icons
- - new large table cell style as display option - first implementation of tag reordering
- - updated Safari Extension icons - added SVG Icon templates
- - added icon images to cell / detail view (downloading and storing: icon, image) - added "Supporter" third party code for Help - fixed large title
- - moved to CollectionView - added meta infos to url - implemented drag and drop for URLs - refactored a lot of code - added a new iMessage icon - icon view for tags (unfinished) - added a new share extension target (unfinished) - fixed some bugs (Widget title)
- added a meta column to store the website meta description (show in detail view and it is searchable)
- fixed pull to refresh
- - added a new Collection widget to show items of a selected collection in a widget - open app by a custom url scheme with path - set a alternate title for a URL
- implemented multiple windows with state restoration
- support multiple windows on iPad
- - removed storyboard elements - moved UIWindow creation to scene delegate
- Importer can now show Favorite items
- - fixed history time for day
- added exporting/importing for Favorites
- - save sort direction and order to user defaults - removed elements from storyboard and create it via code
- - save tag sorting - fixed sorting by id and title - fixed top domains
- - fixed sorting bug - new edit sidebar action (delete) (reordering is in progress) - changed sidebar sections - added a new itemType enum
- fixed grouping on search history
- new export history shortcut intent
- - new App Icon - added sorting - added date label to history cell (new cell class) - fixed crash
- - added date pager to statistics view - added start and end date to statistics queries - new intent to get browsing time of today - changed widget title - fixed widget reload bug
- Introduced history session: this will calculate the correct browsing time, even if Safari is in the background and locked and the user start browsing the current site again
- added page leave event and show page visit time in detail history view
- new page statistics cell
- - added day pager to history - added an own cell for page statistics - fixed crash - added some sample collections
- - export all tags at once - added top domains statistics
- - added importer/exporter for tags - changed did select for tags, favorites - fixed searching in tags
- added a copy menu on long pressure
- fixed sharing crash
- - added menu, header and swipe actions to detail history view - reload widget timeline, after every insert - reload views when app gets active
- fixed popup shortcut command
- - added start date and end date to search history intent - moved filter to optional parameter
- added new shortcut intent to get all URLs for a tag group
- added new shortcut intent to get URLs for a specific tag
- added keyboard commands for popover
- - added collection table and terms table - fixed missing app group in widget target - fixed Intent target - changed Intent titles - changed title for menu actions
- - added a new column isgroup - assign tag to group from context menu
- added tag group
- fixed html glitches
- - add a new tag name in popup.html and assign new tag to current URL - fixed layout issues
- select assigned tags in popup.html
- - added segmented control - added favorites - fixed link click problem - fixed some dark mode issues - fixed delete history entry
- show tags in extension and assign/unassign
- - added show history in popup.html - set content size and fixed some dark mode problems
- added JQuery library to project
- - added support for favorite/unfavorite URL from Safari extension - added HTML select UI for Tags/Collections - added swipe action to history table view with Open URL action
- added support for favorite url from extension
- added Tags for tagging URLs
- - new database scheme - adde top pages query
- - fixed today widget - some UI fixes - added Detail History View Controller to show all page visits for a specific URL
- - fixed missing Intent code - new parameter for get history function - added iMessage icons - new build number
- added today history search query
- added Shortcuts Intents
- - added Today Widget - changed font sizes - added today counter function
- - large title - fixed iMessage cell tex size
- removed unneeded calls
- added iMessage extension
- First working version prototype
- Initial commit
* removed path import
* run prettier npx prettier --write .
* Update surfed extension
- updated Surfed Raycast extension readme file
- - updated release notes - added help sentence
- fixed css color in bright mode
- implemented Search Shortcuts help in browser extension
- - added Alfred Workflow link - new build number
- added refresh extension related settings
- - updated build number - updated Raycast URL
* moved readme screenshot into new folder
* updated configuration section with a better explanation
* removed the limit results CLI parameter to support the current available Surfed version
* show empty view on start, loading and no search results
* fixed code style issues
* Update CHANGELOG.md
* Update CHANGELOG.md and optimise images
---------
Co-authored-by: Per Nielsen Tikær <per@raycast.com>
Co-authored-by: raycastbot <bot@raycast.com>
- feat: Add deploy:raycast script - feat: Wrap-up raycast update - feat: Modify code to match CLI - feat: Fix broken API tests - feat: Change stremio codebase to match code-style in subtis - feat: Standarize project to v0.3.0 - feat: Improve message status in file indexer - feat: Improve GalaxyRG support - fix: Broken CLI binary build - docs: Format URLs table - feat: Bump project dependencies - feat: Update readme with CLI instructions - fix: Broken test - feat: Wrap-up CLI new UI/UX - feat: Bump project dependencies - feat: Wrap-up new CLI with real time indexer!! - feat: Use production api only - feat: Improve type definitions in api - feat: Improve naming in const - feat: Throw error with cause to display specific message to UI - feat: Remove clipboardy. Infer fromWebSocket boolean from webscoket key. - feat: Fix broken script in cli package json - feat: Deploy new Stremio version - feat: Re-use subtitle requests by receiving apiClient from the outside - feat: Demo for socketdex official url - feat: Use own package api client - feat: Export webSocket messages schemas - feat: Create apiClient in indexer - feat: Shorten supabase link in API responses - feat: Move links to API to have short links directly in responses - feat: Add bun env type definitions - feat: Add WebSocket URLs to bash - feat: Add WebSocket (Socketdex) to URLs - feat: Remove repeated file extensions - feat: Add new environment variables in env template - feat: Update code to be re-usable between Stremio and other apps - feat: Improve ws percentages - feat: Remove background from Stremio - feat: Update Stremio background - feat: Move all apiClient to shared - feat: Skip subtitle link id test - feat: Update tests to match object avoiding going specific for certain keys - feat: Update buscar parameter from SubDivx - feat: Bump project dependencies - feat: Update Yaak collection file - feat: Improve API naming of parameters - docs: Improve initialization script - feat: Add script to initialize project - feat: Improve Stremio description - feat: Remove series in Stremio addonBuilder - feat: Improve YTS error call - fix: Avoid getting subtitles for different movies - feat: Skip tv shows temporary on not found subtitles - feat: Bump project dependencies - feat: Bump project dependencies - feat: Update tests to be automatized when DB gets cleaned-up - feat: - feat: Improve getApiClient call - feat: Add new endpoint to GET title metadata by ID - feat: Small comment improve - feat: Update biome schema - feat: Differentiate conditional into 2 parts - feat: Bump project dependencies - feat: Improve EVO and RARBG release groups - feat: Index movies without debugging mode - feat: Improve cinema regex filtering - feat: Bump project dependencies - feat: Improve supabase indexer by avoiding indexing more than one equal torrent at the same time - feat: Dispolay less data for not filtered torrents - feat: Search movies by year in file not found indexer - feat: Improve indexedBy values - feat: Improve ampersand and aka support filtering - feat: Bump project dependencies - feat: Remove logs - feat: Bump project dependencies - feat: Deploy real time indexer to Fly.io - feat: Remove dockerfile legacy - feat: Bump project dependencies - feat: Add new replacer - feat: Improve support for 2160p and 4K movies - fix: Improve filtering for subtitle titles that don\'t match current title find - feat: New cinema recording regex addition - feat: Add HEVC release groups - feat: Avoid indexing FORZADO subtitles - feat: Get title id in response. Avoid getting duplicated titles. - feat: - fix: For movies that are not related to their year release date - feat: Improve API error handling - feat: Bump project dependencies - feat: Skip tv shows - feat: Add new subtitle metadata endpoint - feat: Add indexer based on supabase INSERT calls - feat: Add pagination to not found subtitles indexer plus minor fixes - feat: Add new endpoint for download metadata based on a tv show id and season - feat: Fix access to SubDivX - feat: Update project dependencies - feat: Add YOUTUBE_API_KEY environment variable template - feat: Bump project dependencies - feat: Update SubDivX parameters to make it work again - feat: Improve release group for yts - feat: Add new query match for YTS - feat: Return id for release groups and return subtitle group name for subtitle group record - fix: Watermark for movies - fix: For special characters like "-" - feat: Avoid cache on Stremio - feat: Update fuzzy_search_title plpgsql fn - feat: Bump project dependencies - feat: Rollback max timeout to 30s - feat: Bump project dependencies - fix: Filter titles that are not related in SubDivX - feat: Make date_uploaded keys optional for YTS schema - feat: Remove old log - feat: Bump project dependencies - feat: Format release groups - Merge pull request #24 from lndgalante/mejora-indexador-pelis - mejora-indexador-pelis - feat: Safely execute call to SubDivX - feat: Index only titles with english as original language - feat: Improve torrents filtering logic - feat: Bump project dependencies - feat: Bump project dependencies - feat: Add URLs to main readme - feat: Share getStringWithoutSpecialCharacters fn across packages. Update fuzzy_search_title logic to match full title names. - feat: Filter torrents that doesn\'t match title name - feat: Store subtitle not found in DB within /file/name/:bytes/:fileName endpoint - feat: Update Biome configuration to v1.9.0 - feat: Bump project dependencies - feat: Remove Supabase call - feat: Remove logs - feat: Bump project dependencies - feat: Change torrent_size to string. Remove teaser from Titles table. - feat: Bump project dependencies - feat: Support file names without resolution by extracting it - feat: Bump project dependencies - feat: Update docs to login with Cloudfare first - feat: Filter torrents by filter - feat: Add YTS trackers for torrentStream engine - feat: Remove table logs - feat: Get title teaser from YouTube and not from TMDB - feat: Add IGN channel by Agus - feat: Bump project dependencies - feat: Improve API error handling - feat: Add 1337x provider back - feat: Bump project dependencies - feat: Add ability to search tv show by name - feat: Format code - feat: Improve metadata for alpha description - feat: Add script to deploy stremio - feat: Remove old logs - feat: Improve stremio app code - feat: Deploy Stremio to fly.io - feat: Run stremio project in bun - feat: Improve Stremio scaffolding - feat: Update apiBaseUrl - feat: Wrap up MVP for Stremio - feat: Send queried_times key in /titles/trending - feat: Add Walt Disney and Pixar channels - feat: Bump project dependencies - feat: Handle error scenarios - feat: Update collection to support params - feat: Update collection and format code - feat: Avoid windows-1251 as a encoding parameter - feat: Use only first tracker since it breaks magnet - feat: Add @types/node back - feat: Fix broken magnet for YTS - feat: Update PATCH in HTTP collection - feat: Update POST methods to PATCH - docs: Update indexer docs - feat: Update HTTP collection - feat: Switch from Hoppscotch to Yaak - feat: Add test for new download season subtitles endpoint - feat: Add endpoint to return all subtitles for a tv show season - feat: Remove unused dependency - feat: Update biome schema version - feat: Update all broken tests - feat: Update HTTP collection - feat: Add new endpoints for trending titles - feat: Add TODO to TMDB - feat: Improve watermark to be dynamic for movies - feat: Use Number.parseInt to get limit in integer - feat: Bump project dependencies - feat: Add movie release groups by Agu - feat: Improve watermark for tv shows - feat: Check for positive numbers only - feat: Improve check for positive integer numbers in parameters - feat: Improve file alternative controller logic - feat: Improve wording for watermark - feat: Detect encoding automatically - feat: Improve watermark indexes - feat: Improve watermark wording - feat: Improve subtitle watermark - fix: Code comment - feat: Store our first dump - docs: Add docs to generate SQL dump - feat: Avoid duplicate bytes on Subtitles table - feat: Update broken tests - feat: Add new release groups - feat: Bump project dependencies - Merge pull request #23 from lndgalante/agustingarciainf/sub-203-agregar-nuevos-canales-oficiales-de-yt-para-teasers - agustingarciainf/sub-203-agregar-nuevos-canales-oficiales-de-yt-para-teasers - feat: Bump project dependencies - feat: Improve TV Show messages - feat: Avoid displaying torrent tracker error - feat: Run saveReleaseGroupsToDb on tv shows as well - feat: Improve continue message. Avoid duplicated torrents. - feat: Improve subdivx error message - feat: Improve YTS naming - feat: Improve indexer for manual work of improving it - fix: Watermark bug that tabs make it hidden - feat: Update collection file - feat: Update tests suite for subtitles controller - feat: Remove logs - feat: Update API tests - fix: Format biome code - fix: Bugfix for teasers that have html escaped characters - feat: Update watermark for tv shows - feat: Check limit parameter is a number in /titles/recent/:limit - feat: Bump dependencies - feat: General code cleanup - feat: Bump project dependencies - feat: Update API collection - fix: Save release groups - docs: Add update_subtitle_info in the docs - feat: Add release groups for tv shows (by Agu) - feat: Add YTS / YIFY support ! - feat: Update broken tests - feat: Improve indexer on demand - feat: Use optional try-catch for movies - feat: Decrease maxTorrents by 5 - feat: Increase max torrents to 20 - feat: Fix broken schemas - feat: Avoid inserting rows again in release groups - Merge pull request #22 from lndgalante/feat/AddReleaseGroups - feat: Wrap up stremio with websockets - feat/AddReleaseGroups - feat: Allow comments key to be nullable - feat: Bump project dependencies - fix: Broken test. All tests passing. - feat: Add tests to subtitles and title - feat: Quick API clean-up - feat: Remove .cjs file - feat: Add test suite for subtitle controller - feat: Clean-up curated channels - Merge pull request #21 from lndgalante/feat/AddChanels - feat/AddChanels - feat: Index by movie name and optionally by year - feat: Add tests for MAX_LIMIT - feat: Update tests for titles controllers - feat: Search by season on teaser - feat: Bump project dependencies - feat: Improve /title/teaser endpoint with test - feat: Move youtube url to title API - feat: Update collection json - feat: Improve title handler - feat: Ignore ssa subtitles - feat: Add comment for curated channels - feat: Improve data structure for channel list - feat: Bump project dependencies - fix: Loose schema for id in items for YT schema - feat: Split title and titles endpoints - feat: Update /title/teaser to find teasers in YT if they do not exists in our DB - feat: Update Biome config - feat: Add access token with login - feat: Add TODO to watermark - feat: Display id for subtitle groups. Remove unnecesary logo request. - feat: Bump project dependencies - feat: Improve timing for subtis watermark - feat: Bump project dependencies - feat: Update HTTP collection - feat: Avoid hitting DB if query is lesser than 3 characters - fix: Raise exception if there\'s no subtitle found in DB for update_subtitles_info fn - feat: Sort title serach by title year - feat: Avoid filtering by title type - feat: Return a single subtitle for alternative endpoint - feat: Bump dependencies - feat: Bump project dependencies - feat: Improve support for OpenSubtitles - feat: Run to lowercase once - feat: Limit to 2 episodes for testing - feat: Add cam to cinema recording regex - feat: Add new cinema recording regex - feat: Bump project dependencies - feat: Add safe guard checks for numbers - feat: Type check - feat: Split subtitles and subtitle controllers - feat: Merge searchable_opensubtitles_name and searchable_subdivx_name into query_matches - feat: Bump dependencies - fix: Avoid erroring the whole indexer when no file are found in torrents - feat: Sort subtitles by subtitle_group_id in order to return SubDivX first - feat: Add support for OpenSubtitles - feat: Bump project dependencies. Remove no longed needed ts-reset. - feat: Update HTTP collection - feat: Bump project dependencies - feat: Final details for WS - feat: Add WebSocket for not found subtitles - feat: Format API code - feat: Bump web dependencies - feat: Sort subtitle endpoints. Fix duplicates titles. - feat: Bump dependencies - feat: Move all metrics and shortener to subtitles - feat: Add more subtitles to not found mock - feat: Store all values - feat: Update dependencies - feat: Integrate sending emails for JIT indexer - fix: Avoid running API when importing AppType - feat: Add validation to check that subtitleId is a number - feat: Optimization to find by bytes OR title file name to avoid double calls to DB - feat: Query by title file name or bytes - feat: Bump dependencies - feat: Add title_name_without_special_chars in Titles table - feat: Index movie and tv shows trailers - feat: Bump dependencies - feat: Code clean-up - feat: Update project dependencies - feat: Add subtitle watermark in file - feat: Add re-usable and tested getDecodedSubtitleFile fn - feat: Add isDebugging parameter to indexMovieByName - feat: Clean-up Stremio addon with fixes - feat: Update collection HTTP json - feat: Remove integrations router and endpoints - feat: Add missing export - feat: Re-use getDecodedSubtitleFile fn - feat: Bump project dependencies - feat: Sort by queried times - feat: Improve alternative versions endpoint by resolution and release group - feat: Make email optional. Call API from file indexer. - feat: Add /not-found enpodint to store file - fix: Stremio to work with ts-node - feat: Comment whole error in getSubtitlesForTitle - feat: Add new release groups - feat: Improve efficiency of indexer - feat: Run indexer on file - feat: Sort imports - feat: Update collection HTTP API - feat: Search titles by type i.e. movie or tv-show - feat: Update fuzzy_search_title fn - fix: Search alternative subtitles with insensitive case - feat: Update cron time - feat: Add final cron to run tv shows and movies indexer, and then not found subtitles indexer - feat: Iterate not found script - feat: Add logic to index not found subtitles - feat: Filter SVG logos - feat: Remove subtitles files after each indexation. Improve file indexer. Improve YTS support. - feat: Remove playing sounds on subtitle success - feat: Store title logo in Titles table - feat: Update dependencies - feat: Improve stremio type definitions - feat: Call insert_subtitle_not_found in indexTitleByFileName - feat: Update insert_subtitle_not_found on docs - feat: Send titleFileName through params - feat: Remove RPC call from endpoints - feat: Bump project dependencies - feat: Add search by file possible - feat: Update HTTP collection - feat: Remove unused logs - fix: Duplicated episodes subtitles - feat: Parse title file name when year doesn\'t exists - feat: Add tests for /subtitles/tv-show - fix: All broken tests - feat: Add limit early return for /recent/:limit endpoint - feat: Bump project dependencies - feat: Add endpoint for tv shows to query a specific season or episode - feat: Bump project dependencies - feat: Update Stremio plugin to work with series. Fetch subtitle metadata to use ID. - feat: Parse tracker to remove extra unused data - feat: Small code refactors - fix: Zod error message access - feat: Bump project dependencies - docs: Improve description - feat: Update titles controller and endpoint to return title type - feat: Update fuzzy_search_title docs - test: Fix broken tests that doesn\'t return title type - feat: Return title type on subtitles endpoint. Fix repeated bytes on subtitles by filename. - feat: Enable cache only on production environment - feat: Return current season and current episode for subtitles - feat: Update HTTP collection - fix: Fix all broken tests and type checks - feat: Make API back up - feat: Add Torrent table and index it - feat: Store total seasons and total episodes. Upsert title instead of insert. - feat: Add support for title and overview in spanish - feat: Add tests for a serie episode - feat: Bump project dependencies - feat: Update project dependencies - feat: Wrap up indexer refactoring - feat: Use a single source of file names - feat: Second refactor iteration for tv show support - feat: Move more code into its own title type file - feat: Bump project dependencies - feat: Begin refactoring for getSubtitlesForTitle to work with movies and tv shows - feat: Update project dependencies - docs: Improve DOCS - feat: Use proper bun install --force - feat: Hide Sentry DSN in a env variable - feat: Use version for addon from package.json version key in Stremio app - feat: Use PORT key in uppercase - feat: Use node env port - feat: Run Stremio in Node with ts-node. Convert sentry/bun to sentry/node. - feat: Integrate Sentry in Stremio addon - feat: Use spaces in Biome. Update project dependencies. - docs: Fix packages table on root readme - feat: Remove tiny-invariant from shared package - feat: Use fetch API since hono client doesn\'t work with Raycast - feat: Read file from fs to send bytes to API endpoint - feat: Remove tiny-invariant. Add zod library. - feat: Disable style lint rule for Raycast - feat: Bump project dependencies - feat: Bump project dependencies - feat: Update HTTP collection - feat: Modify metrics endpoint to receive bytes and fileName. Execute new metrics endpoint on CLI and Stremio. - feat: Display loading message for subtitle download in CLI - feat: Bump project dependencies - feat: Add CORS to API - feat: Bump project dependencies - feat: Update collection JSON - feat: Bump project dependencies. Fix broken test. - feat: Big change to trigger metrics in CLI - chore: Improve code formatting in stremio app - feat: Add TODO to avoid duplicated movies from trending subtitles - feat: Improve type definitions on Stremio addon - fix: Update Stremio logo - fix: Type issue on getApiClient utility - feat: Bump project dependencies - docs: Improve root project readme - feat: Update type definitions - feat: Update gitignore - feat: Update collection - fix: All broken tests - feat: Improve CLI to avoid showing API hono client errors on it - feat: Collocate cache to specific endpoints. Remove CLI endpoint. - feat: Use single supabase project - feat: Format code - feat: Set cache middleware - feat: Bump project dependencies - fix: Broken tests and api calls - feat: Convert necessary endpoints from POST to GET - feat: Add /cli route on web to redirect to API in order to expose CLI binary - fix: Port to redirect to web instead of API - feat: Add Remix web package. Add route to redirect to API shortener. - fix: Fix metrics endpoint always returning true - feat: Bump project dependencies - feat: Increase type coverage treshold to 100% - docs: Update HTTP collection for testing - feat: Bump project dependencies - docs: Avoid big schema image on root readme - feat: Add missing test. Update project dependencies. Fix broken types. - feat: Add shortener API tests - feat: Add subtitles API tests - feat: Use same key order for query and schema - feat: Add getMockEnv for API testing - feat: Improve Wrangler configuration - feat: Add types and test:watch script to API package json - feat: Add .toml to type definitions - feat: Bump project dependencies - feat: Add Stremio logo. Code cleanup. - feat: Standarize use of .match() insteado of .eq() - feat: Bump project dependencies - feat: Add schema image into root readme - feat: Improve progress bar message - feat: Show progress in indexer - feat: Add reviewed and uploadedBy columns - docs: Improve API playground section - feat: Publish environment JSON for HTTP clients - docs: Add deploy API tick - feat: Use simple scaffolding in CLI - docs: Improve main title - feat: Use table for packages - docs: Improve project readme with Good Practices section - feat: Bump project type definitions - feat: Add missing type check script - feat: Run biome check - feat: Fix broken type defintions - feat: Remove unused website key - feat: Remove TODOS and moved to Linear - feat: Add missing subtitleFileName key used in CLI - feat: Add security headers middleware to Hono - feat: Update github actions - feat: Format raycast code. Add deploy:api to root package json. - feat: Avoid query duplication. Avoid requesting unnecesary keys. - feat: Update collection with environment variables - feat: Change ports from old server the new Hono server - feat: Move UI package to shared package - feat: Bump project dependencies - feat: Improve docs to run project - feat: Update collection and wrangler config - feat: Rename to api and worker to subtis - feat: Migrate from Elysia to Hono framework - feat: Clean-up CLI scripts - feat: Clean-up root package json - feat: Update project dependencies. Update database types and schemas. - feat: Update biome schema version - feat: Improve stremio codebase with refactoring and tests - feat: Update collection and project dependencies - feat: Download automatically subtitle in CLI - feat: Show new subtitle short link in CLI - feat: Small code improvements - Merge pull request #20 from lndgalante/link-redirect - feat: Added link redirect endpoint for download - feat: Improve test coverage - feat: Add tests for getSubtitleAuthor - feat: Improve import order - feat: Improve code duplication - feat: Improve code test coverage - feat: Avoid code duplication in codebase - feat: Update tests and root package json - feat: Update project deps - feat: Remove swagger from collection - feat: Bump project dependencies - feat: Change mainIndexer fn name - feat: Use Number for movieId instead of String - feat: Use fuzzy search RPC call instead of ilike method - feat: Update Swagger collection - feat: Group file endpoints. Disable swagger due to bug. - feat: Bump project dependencies - feat: Update swagger collection doc - feat: Add endpoint to return subtitles for a movie given a file name - feat: Display guide only on user confirmation (CLI) - feat: Bump project dependencies - feat: Add support to index a single movie - fix: - feat: Save lang to database - feat: Add lang key support for each subtitle provider getter - feat: Update database schemas and type definitions - feat: Bump project dependencies - feat: Update API dependencies - feat: Run biome check - feat: Avoid throwing error on getMovieMetadata - feat: Add ETRG release group - feat: Filter torrents with less than 15 seeds - feat: Add HUZZAH release group - feat: Improve cinema recordings with new regex value - feat: Bump project dependencies - feat: Filter torrents with less than 30 torrents - feat: Format release groups file - feat: Add MADSKY release group - feat: Add SPARKS release group - feat: Improve YTS release group with YIFY values - feat: Add 2 new release groups - feat: Improve YTS release group. Fix broken links for subX value in SubDivX URL. - feat: Remove terminal-image from CLI. - feat: Add more CMRG file attributes - feat: Skip QRips release group since are cinema recordings - feat: Add Atmos-MRCS release group - feat: Add EVO and ATMOS-SWTYBLZ release groups - feat: Add REMUX release group - feat: Add ACEM release group - feat: Add new cinema recording string values - feat: Remove unused release group website key - feat: Add REVILS new release group - feat: Improve ETHEL support for SubDivX - feat: Add instructions to CLI - feat: Bump project dependencies - fix: Use match instead of test due to broken filtering with cinema recording regex - feat: Update API collection - fix: All broken tests - fix: Broken indexer tests - fix: Broken CLI tests - feat: Bump project dependencies - feat: Remove sort by subtitleGroupId - feat: Add support to display poster on CLI - feat: Add poster and backdrop support in DB - feat: Add stremio addon scripts to root package json - feat: Format and lint entire codebase - docs: Add missing packages in root readme - feat: Improve shared scaffolding - docs: Improve overall docs - feat: Bump project dependencies - feat: Add stremio controller in API - feat: Remove zod dependency. Wrap-up stremio addon MVP. - feat: Add stremio integration endpoint - feat: Update collection docs with new integrations endpoint - feat: General code clean-up - fix: Imports in shared package - feat: Add stremio package and MVP - feat: Update deps - feat: Use separate databases - fix: Broken tests due to DB reset - feat: Add SHITBOX release group - feat: Improve cinema recordings filter - feat: Increase timeout for seed missing error - feat: Add PiGNUS release group - feat: Run new biome lint on CI - Merge pull request #19 from lndgalante/agustingarciainf/sub-136-agregar-releasegroups-de-la-pagina-2-indexada - feat: Add HEVC-EVO release group - feat: Add RABiDS release group - feat: Add BYNDR release group - Add KNiVES, Slot and APEX ReleaseGroups - fix: All broken tests - feat: Replace ESLint config with Biome - feat: Bump project dependencies - feat: Bump project dependencies - Merge pull request #18 from lndgalante/agustingarciainf/sub-130-agregar-kbox-rg - feat: Add EniaHD release group - feat: Add AOC and AccomplishedYak release groups - feat: Add HDRip-C1NEM4 release group support - feat: Add possible solution to spanish from Spain subtitles - feat: Move cinema recordings regex to its own variable - feat: Add LiLKiM release group support - feat: Add new query value for YTS in subdvix key - feat: Lower-case file attributes - feat: Add support for a list of file attributes. Extend file attribute support for KBOX and FLUX. - Add KBOX Release group - feat: Update type-coverage dependency and treshold - feat: Update supabase dependency - feat: Update collection to read from HTTP API client - feat: Add endpoint to get movies by recent release date - feat: Add release_date to Movies table - feat: Send bytes to /subtitles/file POST from CLI and Raycast - feat: Update dev:cli:sample for testing the CLI - fix: - Merge pull request #17 from lndgalante/agustingarciainf/sub-124-agregar-rg-x264-lama - Add LAMA ReleaseGroup - feat: Bump TOTAL_MOVIES_TO_SEARCH to 10 torrents - fix: Update SubDivX response zod schema - feat: Add ETHEL release groups, Add new matcher to YTS. - feat: Add new matcher for YTS - feat: Use SUBDIVX_BASE_URL to fetch SubDivX - feat: Update HTTP JSON collection with new recents endpoint - feat: Update taze library version - fix: Fix broken tests on download endpoint - feat: Return bytes values in subtitles endpoints - feat: Add /subtitles/recents endpoint - feat: Update JSON collection to import to HTTP clients - feat: Find subtitle movie by bytes in case user changed file name - feat: Bump project dependencies. Use bracket notation to access Bun env. - feat: Remove Bun specific v1.0.11 in readme. Remove usage of Bun for indexer. - feat: Improve overall type definitions. Remove old table polyfill. - feat: Avoid matching by movie title in find method - feat: Update tests - feat: Update API tests to match new records - feat: Update SubDivX core fn to work with new API - feat: Remove old SubDivx methods - feat: Remove getSubDivXSearchUrl old call. Execute saveSubtitleGroups. - feat: Remove JSDOM indexer dependency - feat: Use string arrays to search release groups in order to find by more than one match - feat: Update subtitle groups without inserting duplciates - feat: Export database core models - feat: Add ms type definitions - feat: Update DB types and schemas - fix: Remove db schemas tests - test: Fix broken tests to match new endpoint structure - feat: Group endpoints by functionality. Improve controller names. - feat: Sort porject deps - feat: Bump project dependencies - feat: Add perfectionist ESLint plugin to have better sorts - feat: Add debugging mode so indexer can run on its own without manual pause with confirms - feat: Display log messages when no torrents are found - feat: Update project dependencies - feat: Use indexer to index by a specific year - feat: Improve query filters for Discover movies endpoint from TMDB - feat: Add dayjs dependency to indexer - test: Fix broken tests for trending and getMovieMetadata - feat: Bump project dependencies - feat: Add hdcam filter to avoid cinema recordings. Avoid undefined sending through paramms to prettyBytes. - fix: Sort torrent files by length to avoid catching i.e. a sample.mkv - fix: Current year to be not current year plus one - feat: Add ability to skip movies with confirm - feat: Trigger RPC call to insert subtitle not found - feat: Add missing steps to update database - feat: Add SubtitlesNotFound new table - feat: Bump project dependencies - feat: Destroy torrent engine on timeout - feat: Unite by a dot words separated by spaces. Add support for 576p. - feat: Avoid commiting .rar files - fix: Display seeds in indexer logs. Timeout when torrent has low amount of seeds. - feat: Add AAC release group - feat: Remove unused ESLint rule - feat: Add code:duplication script to check for duplications - feat: Use new bun type definitions - feat: Bump project dependencies - feat: Improve logs when there\'s no release group supported - test: Fix OpenSubtitles test and remove only test call - Merge pull request #15 from lndgalante/nicolasaccetta/sub-102-implementar-patrones-en-package-shared - test: correct failing cases - fix: Add try/catch to turl shorten call - fix(indexer): gracefully continue when the movie doesnt have a release group - fix(shared): remove spread operator on found release group - fix(indexer): use release group name when interpolating to create user error message - refactor: move console table polyfill to its own file - refactor(ui): create module + move get error message util + get api client - chore(indexer): remove useless import - chore(api): add todo to message getter util - feat(shared): move several utils to other modules + apply new module structure - fix: Destroy torrent stream engine - feat: Return null and continue looping for getMovieMetadata call - fix: Avoid throwing error in getMovieMetadata fn - feat: Bump project dependencies - feat: Add root package script to run indexer in Node environment - feat: Bump supabase dependency - Merge pull request #16 from lndgalante/leo/fix-1337x-with-piratebay - fix: Indexer back to life again!! - fix: use thepiratebay - feat: Bump project dependencies - test: Automatically check that release groups in DB are equal to release groups list in the Indexer - feat: Automatically save unique release groups to DB - fix: Correct folder path for indexer - feat: Create folders automatically for indexer in case they don\'t exists - Merge pull request #14 from lndgalante/agustingarciainf/sub-104-agregar-soporte-a-hevc-release-group-en-el-indexador - Add HEVC-PSA Release group support - feat: Bump project dependencies - refactor: Remove unused zod file and utilities - feat: Bump threshold to 100 - feat: Remove argenteam from subtitles group - test: Improve test coverage - feat: Add download endpoint for metrics - test: Add a ton of tests to supabase schemas - feat: Improve type coverage to 100% - feat: Bump project dependencies - feat: Add minimum treshold for type coverage - feat: Ignore coverage-ts generated folder - feat: Add type definitions coverage - fix: Add await for RPC call if not doesn\'t work - feat: Trigger RPC method on cached subtitle branch - feat: Add listener callback - feat: Remove unnecesary limit 1 in subtitle controller - fix: Broken test on db and subtitle controller - test: Improve code coverage - feat: Add limit key to trending endpoint - feat: Skip broken argenteam tests seems API is down - feat: Bump project dependencies - feat: Sort imports - feat: Update project dependencies - feat: Implement LRU cache for subtitle controller - fix: Return a single item instead of an array of results - docs: Change web path to raycast path - test: Add tests to check Elysia instance and routes definitions - fix: fuzzy search in movies controller. Adds extra test for fuzzy search. - feat: Update collection with trending endpoint - feat: Add trending endpoint. Update lastQueriedAt and queriedTimes in subtitle and subtitles endpoints. Move test to each controller. - fix: Remove pruneTables fn - feat: Use @subtis prefix on db package - feat: Bump project dependencies - feat: Use new paths for generated type defs and schemas - Merge pull request #13 from lndgalante/nicolasaccetta/sub-87-iterar-package-db - feat(db): implement new folder structure - feat: Bump dependencies. Update tests. - feat: Use simpler generate script to update DB type defintions and schemas - Merge pull request #12 from lndgalante/leo/update-pr-template - feat: Remove unused step - feat: Use Bun stable version in GH - feat: Test relative path using PWD from env - fix: Disable log - feat: Log PWD temporary - feat: Add step to set execution permissions for binary file - feat: Add temporary step to list files in binary folder - feat: Use bun official step directly - feat: Compile CLI in GH actions - fix: Resolve subtis binary - fix: Avoid resolveSync only for modules - fix: Disable temporary eslint rules - fix: Resolve paths correctly for GH actions - fix: Add run command to avoid running default build bun command - fix: Resolve imports for GH actions - feat: Set environment variables in gh action - docs: Update PR template docs - feat: Add simple GitHub Action configuration file to lint and test on PRs - docs: Remove old warning section on main readme - fix: Remove root file binary - feat: Run all tests at once with CLI included - test: Fix tests to match CLI output text - feat: Accept port in runApi fn - feat: General code clean-up - Merge pull request #11 from lndgalante/feat/rework-rework-rework - chore(eslint): add rules for removing imports automatically - fix(cli): returns correct errors for every case - feat(api): rework core file + expose explicit run file to run module - feat: Add lockfile to gitignore - test: Use a single it to avoid duplication for both development script and production/binary script - feat: Bump bun-types definition - Merge pull request #9 from lndgalante/leo/demo-2 - docs: Avoid shared repetition - fix: Remove searching text from test - fix: Use error schema from api/shared - Merge pull request #8 from lndgalante/leo/demo - docs: Improve packages with sections - fix: Remove old ESLint config file - feat: Use TS for ESlint config file - docs: Adds PR template - test: Add Binary tests - feat: Update bun lockfile - Merge pull request #7 from lndgalante/feat/rework-cli-app - fix: Remove unused bin key from package json - fix: Remove code comment - fix: Add required_error back. Use ZodIssueCode enum. - fix: Fix build script - fix: Move server log to within listen callback - fix: Avoid relative paths - feat: Update docs collection for Hoppscotch - fix: Fix broken tests. Lint fixes. Video file name schema english message in API. Bump dependencies. - feat(cli): use custom error map in cli arguments union - fix(shared): rework error name for video file name schema - fix(api): initialize elisyia wihtin test file - feat: target run file instead of app - refactor(api): expose explicit run file to run module + remove server file - feat(api): rework core file + expose explicit run file to run module - feat: Remove fileNameHash utility - feat: Add HEVC-CMRG release group - feat: Remove fileNameHash no longer necessary - feat: Display current torrent data in table format - feat: Display query link for SubDivX - feat: Copy movie name with year to clipboard in order to paste on subtitle provider website - feat: Add clipboardy dependency to indexer - fix: Filter HDTS cine recording quality from torrents array - feat: Bump dependencies - fix: Remove web package - fix: Use type on db type definitions for consistency - test: Fix 400 broken tests - feat: Update bun lockfile - fix: Remove unnecesary as any type assertions - Revert "feat: Use a single validation library across the codebase and API" - fix: Use any until we can resolve apiClient - docs: Update CLI and API docs - feat: Bump project dependencies. - test: Add tests to check for payload keys - feat: Use a single validation library across the codebase and API - test: Update tests to match database - fix: Replace backticks. Improve fn name. - feat: Bump project deps. Update bun lockfile - test: Fix file shorcut flag from --f to -f - fix: Remove extra "-" string for file shorcut flag - fix: Remove file flag on dev:cli - fix: Remove unneeded CLI log - feat: Add space jump to provide more space to CLI UI - feat: Add missing Movie type definition - fix: Codebase lint issues fixed - docs: Improve root docs readability - feat: Update project lockfile - feat: Ignore binary files - feat: Update project lockfile - feat: Disable unecessary node eslint rule - feat: Add build script to compile binary. Add coverage script. - fix: Avoid environment variables for CLI since they\'re not being read in compilation - feat: Rename elysia to server for clarity - test: Update CLI tests - feat: Add line jumps when server begin running - fix: Remove unnecesary node:process - feat: Display log when app begins running - feat: Avoid INSERT for duplicated subtitles - feat: Bump project deps - docs: Update Database readme section - test: Fix CLI tests to match intro changes - test: Add oxdown to fix getSubDivXSearchParams unit tests - fix: Sort SubDivX results by downloads to query the best subtitle - fix: Match also by resolution in SubDivx provider - fix: Remove unused type definitions - fix: Display intro message only Subtis - fix: Clean-up code comments - fix: Remove unused dependencies - feat: Centralize api client in shared. Remove redis and other unused dependencies. - Merge pull request #5 from lndgalante/nicolasaccetta/sub-68-aplicar-mismos-patrones-de-apisubtitle-a-apisubtitles - chore(api): remove unused shared function - feat(api): extract functions into shared submodule - feat(api): extract functions into shared submodule - Merge pull request #6 from lndgalante/nicolasaccetta/sub-72-crear-getter-para-getsubtitles-subtitles-y-getmovies-movies - feat(api): implement subtitles and movies getters + delete global shared definition - feat: Update project lockfile - docs: Clean-up docs - feat: Exit process in CLI in finally catch. - feat: Add build script to CLI - feat: Add colors to CLI - feat: Improve CLI schema. Add tests. - feat: Add CLI guidelines - feat: Bump project dependencies - fix: Solve and sort imports - Merge pull request #3 from lndgalante/feat/api-subtitles - Merge pull request #4 from lndgalante/feat/api-movies - chore(api): remove unused imports from movies - feat(api): use validation schemas in movies folder - feat(api): use validation schemas in subtitles folder - feat: Create new custom schema from auto-generated supabase schemas - fix: Broken dev script for api - fix: Remove unused resolution schema - fix: Lint new supabase types - test: Update broken tests - feat: Update lockfile - feat: Update DB types. Generate schemas from DB types. Bump dependencies. - feat: Project cleanup - feat: Ignore zip files in repo - Merge pull request #2 from lndgalante/feat/api-file-structure - chore(api): rename readme file to conventional uppercase - feat(api): set project type to esm - feat(api): add @subtis prefix to project name + to root project also - chore(api): un-ignore subtitles submodule - revert: do not use @subtis prefix as project name - chore(api): remove unused folder - feat(api): apply new arquitecture - feat: add video file name schema + minor adjustments to pass tests - revert(api): use previous variable name for consistency - refactor(api): return successful status code instead of redirection status code - refactor(api): use nullable instead of null schema validator - feat(api/subtitle): replace all types with validation schemas + remove try catch - docs: Add explanation about Bun versioning - fix: Fix release group detection in getMovieMetadata function to be dynamic - feat: Add new Edith release group - feat: Replace invariant with Zod - fix: Find torrents by movie name and year - feat: Bump project dependencies - docs: Add access database section to get access to Supabase - fix: ESLint issues on new files - feat: Add scripts to run packages in parallel with the API running. Bump dependencies. - docs: Improve CLI docs for development - feat: Add dev:cli:demo script - docs: Add collection to import in a HTTP client - feat: Update monorepo dependencies - fix: Taze broken dep by fixing it to a specific version. - feat: Update bun lockfile - feat: Add Helmet and Rate-limit to API - docs: Add ESLint guide to root readme - test: Fix broken API endpoint tests - feat: Disable curly bracets rule to keep consistency - fix: Style fix - feat: Sort test scripts in root package json - fix: Not detecting cinema strings - feat: Switch warn to error log - fix: Avoid parallelization of subitle providers call - feat: Download subtitle to subtitles folder only if it\'s a compressed file. Improve logs. - feat: Support for Flux. Switch logs to spanish. - feat: Filter torrents with cinema recordings - fix: Replace AMZN by FLUX release group - feat: Add AMZN release group to indexer - feat: Add log when indexer began searching for subtitles - docs: Improve main readme - feat: Update bun lockfile - feat: Fix .srt files downloaded for OpenSubtitles. Display providers that didn\'t get any match for logs. - fix: Remove unnused dotenv global dependency - feat: Replace npx by bunx for main package json scripts - feat: Update project lockfile - feat: Get author from subtitle file and save it to DB - feat: Add README to update database - fix: Update TMDB schema when backdrop_path is not defined - fix: Lint warnings and errors fixed - feat: Bump project dependencies - fix: CLI broken tests and make it work separately from all tests - feat: Bump project dependencies - feat: Add movies endpoint. Add missing tests. - feat: Bump project lockfile - fix: Fix comment ticks for consistency - feat: Add endpoint to get all subtitles from a movie id - feat: Improve type definition to getRedisInstance - feat: Add prefix /v1 to API subtitles POST endpoint - feat: Move getEnabledSubtitleProviders to feature. Add test to it. - feat: Update node types deps. Remove extra write flag. - docs: Add section to install specific Bun version - feat: Improve logs for indexer - feat: Add console table support for Bun - feat: Improve provider getSubtitle fn naming - feat: Bump project dependencies - feat: Bump project dependencies. Add single script to update and install deps. - feat: Remove legacy subtitles indexer. Clean up scripts on root package.json - feat: Bump project dependencies using taze - feat: Add script to bump all monorepo dependencies - fix: Broken tests due to new param changes - feat: Move buffer utility to shared - feat: Bump dependencies - feat: Improve indexer logs. Add fn to toggle subtitle providers. - fix: Catch errors when torrent is not parseable - feat: Add isSupported key to each RELASE_GROUP - feat: Add getSubtitle key in SUBTITLE_GROUPS to map later on - fix: Remove unnecesary nullish coalescing operator - feat: Modify core provider subtitle getter to have the same signature across providers - feat: Add boolean to check if release group is supported or not - feat: remove ignores - feat: update bun lockfile - fix: Broken type definition on test - fix: Broken import comments. Use type as default syntax. - feat: Bump redis dependency - fix: Update dev:cli script - feat: Bumps project dependencies. Add new global ESLint config. - feat: Update bun lockfile - feat: Split TMDB logic into a different file - feat: Add TMDB value to env template - feat: Remove unused dependency - feat: Add script to run new indexer - feat: Bump project dependencies - feat: Add new indexer - feat: Update project subtitle - feat: Add dependencies for new indexer - feat: Add disclaimer for indexer - feat: Use HEAD method to check if link is alive instead of downloading the whole link - feat: Improve code comments - feat: General code cleanup - feat: Update bun lockfile - feat: Use pattern-matching for getMessageFromStatusCode - feat: Update bun lockfile - feat: Rename test coverage global script - feat: Bump web dependencies. - feat: Fix indexer tests. Bump indexer dependencies. - feat: Fix shared tests. Bump dependencies. - feat: Call getSubtitle without a static zod schema - feat: Improve code comment over CLI - feat: Bump raycast dependencies. - feat: Add tests for supabase. Bump dependencies. - feat: Update bun lockfile - feat: Rename subtitle by description key in getMessageFromStatusCode util - feat: Improve CLI codebase. Add tests for all different scenarios. - feat: Cleanup CLI dependencies - feat: Add missing zod dependency over API - feat: Add API tests. General cleanup. - feat: Add initial tests for API. Bump dependencies. - docs: Add fix for sharp dependency over macOS - feat: Remove template from indexer - feat: Add Raycast link - feat: Decrease delay value - feat: Add root dev script for raycast - fix: Lint using raycast linter options - feat: General web cleanup - refactor: General code cleanup and renaming - feat: Code cleanup for type definitions - docs: Add Endpoints section in API readme - feat: Update Bun lockfile - feat: Add Upstash support in API - feat: Add comment sections for each env variable group - feat: Bump project dependencies - feat: Add Raycast extension package - feat: Move error messages to shared package - fix: Return message key for API error response - feat: Use the same error naming for CLI - feat: Improve CLI outro message - feat: Add dotenv to run indexer with Node due to issues with Bun - feat: Add drag and drop functionality to UI - feat: Save short and full subtitle link to DB. - feat: Support for 480p quality - fix: Main title on documentation readme - fix: Links on main readme - feat: Add TODO in API - feat: Improve CLI user messages - feat: Remove old logs - feat: Add union query to query movies, release group, and subtitle group - feat: Bump project dependencies - feat: Prefer type inference over getSubtitleLink - feat: Short subtitle link directly from indexer - feat: Clear cache every 1 day. Improve invariant not found conditional. - feat: Add TODO in API - feat: Bump dependencies - feat: Improve subtitle link to download with the same name as movie - feat: Move type definition file to project root - feat: Use recommended TS configuration by Bun - feat: Add TODO to CLI - feat: Fix task using constant value - feat: Improve error messages handling in UI - feat: Use a single type definition source for subtitles - feat: Improve error messages in API - fix: Return proper error status code from API - docs: Fix bun upgrade command - feat: Improve main readme - feat: Improve wording on drag and drop subtitle - feat: Split nav links in 2 sections - feat: Move fetch logic to action and loaders - feat: Updaate Bun lockfile - feat: Bump project dependencies - feat: Improve shared utils naming for consistency - feat: Use type imports across the codebase - feat: Improve code comment in API - feat: Remove old delay from CLI - feat: Improve CLI code comments - feat: Translate CLI to spanish. Improve invariant helpers. - feat: Improve invariant error handle - docs: Add readme files for all packages - docs: improve cli comment - docs: Replace core fn by core only for simplicity - feat: Promise.all delay and subtitle fetch - feat: Improve set handler type definition - feat: Everything working !! - feat: Add tests for CLI - feat: Add web, shared, and api packages - feat: Update TODOs - feat: Improve test coverage - feat: Add breadcrumb errors for each subtitle provider - feat: Refactor project into Bun and workspaces - feat: add pnpm support - feat: Add new TODO item - feat: add confirmation step to debug through providers - feat: display movie year on CLI tool - feat: add new TODO - feat: Bump project dependencies - fix: Move @type library to dev dependencies - docs: Add support table to main readme - feat: Use prettier for markdown files - feat: Decrease random delay between 4s and 6s - test: Increase test timeout for vitest - refactor: Improve warn log for missing realease group - feat: Add new TODO for another - feat: Add vitest coverage needed dependencies - fix: Remove console logs - feat: Add coverage folder to gitignore - fix: Change vitest config filename - fix: Double up testTimeout to fix YTS get movie test call - fix: Rename test file to match underlying fn call - feat: Clean lockfile. Decrease project version. Add nvmrc use script - test: Fix os tests to check if subtitleLink is a string since this always changes - feat: Add file to use recommended node version - feat: Fix fn name calls. Export fn supabase env variables - feat: Add mock service worker dependency - test: Add tests for file name extension - feat: Short fn naming - test: Add tests for release and subtitle groups - feat: Play sound when a subtitle is found - test: Add extra unit test for open subtitles - feat: Add OpenSubtitles unit tests. Rename subtitle getters fns. - refactor: Comment url shortener to a minute - fix: Change getFullImdbId parameters type definitions to number - fix: Format test files through Rome - test: Add imdb helpers unit tests - refactor: Add code comments and missing type definitions - feat: Improve OpenSubtitles environment variables parsing - feat: Improve environment variable parsing for supabase - feat: Add TODO to indexer - feat: Add missing dev dependency. Bump dependencies. - feat: Improve CLI by a lot - fix: Avoid supabase warning by disabling session persist - feat: Enable back subdivx and argenteam for indexing - feat: Ignore video mp4 files - feat: Add clack prompts. Bump dependencies. - feat: Add new TODO - feat: Create a single instance of supabase client - feat: Add new support table - feat: Return specific searchableOpenSubtitlesName for each release group - feat: Use new getImdbLink helper - feat: Improve filtering OS subtitles by release group and resolution - feat: Add searchable OS name - feat: Add helper to create imdb full link - feat: Handle downloading SRT files - fix: Remove try/catch block from OpenSubtitles - feat: Add zod schemas for OpenSubtitles - feat: Use subtitle group name instead of hardcoding it - feat: Add OpenSubtitles data - feat: Add new TODO - feat: Use stripped down version of imdbId - fix: dev script in package json - feat: Bump dependencies - feat: Rename app to indexer. Add cli file. - feat: Add initial support for OpenSubtitles - feat: remove downloaded files when are no longer needed. return file to download from supabase - refactor: single-line type definitions - feat: add fileName and fileNameExtension to Subtitles table - feat: Add TODO comment to App - feat: add new TODOs to app - feat: Add TODO. Add console warning when release group is not supported. - refactor: General refactor to the whole project - feat: added support table in Notion - feat: added support table in Notion - feat: added support table in Notion - feat: added support table in Notion - feat: bump timeout for vitest - feat: use HTTPS for argenteam API - feat: use HTTPS for argenteam API - feat: use HTTPS for argenteam API - feat: use HTTPS for argenteam API - feat: Add type checking, ts-reset. Fix type definitions. - feat: Bump dependencies. Add TODOs. - feat: Integrate Argenteam into indexer - feat: improve argenteam to integrate later on into indexer. add support to rightnow. - feat: add TODOs to argenteam - feat: add Argenteam subtitle getter function - fix: YTS movie and torrent date uploaded schemas are optional - fix: save movie name without year in it - feat: add zod schemas for YTS-MX API. bump dependencies - feat: add TODO for zod schemas - feat: add new TODO - feat: avoid getting subtitles for movies already fetched - feat: add Rome for linting and formatting - fix: lint-staged with vitest - feat: add supabase type definitions. bump dependencies - feat: Add SubtitleGroups table - feat: Add Release Groups data - feat: Update vitest dependency - fix: Update lockfile - feat: Add unit tests. Separate logic into specific files. - feat: demo husky - feat: demo husky - feat: demo husky - feat: demo husky - feat: demo husky - feat: demo husky - feat: run test on any filechange - feat: run test on any filechange - feat: run test on any filechange - feat: add lint-staged to test on precommit - docs: Add diagrams links - refactor: Replace lodash for custom array utility - feat: Rename indexer for specific release group - feat: Add npm libraries - feat: Add TODOs items - feat: Re-organize TODOs - feat: Improve type definitions for all fns - feat: Add TypeScript and missing type definitions - feat: Add complete TSConfig file - feat: Add support for replaceAll for tsconfig - feat: Add more tests for getMovieData - feat: Add initial tests for getMovieData - feat: Handle more than one page in subdivx - feat: Add code comments - feat: Improve code comments for indexer - feat: Add initial MVP for indexer - feat: Add initial MVP - Initial commit
- fix:conflict - Pull contributions - Merge pull request raycast#23 from wisdom-plus/open_app - fix:CHANGELOG - fix:eslint - update:package - Merge pull request raycast#22 from wisdom-plus/open_app - add:CHANGELOG - fix:lint - fix:action title - fix:open joplin command
* Update search-joplin-notes extension - fix:conflict - Pull contributions - Merge pull request #23 from wisdom-plus/open_app - fix:CHANGELOG - fix:eslint - update:package - Merge pull request #22 from wisdom-plus/open_app - add:CHANGELOG - fix:lint - fix:action title - fix:open joplin command * Update NoteDetail.tsx --------- Co-authored-by: Per Nielsen Tikær <per@raycast.com>
- docs: update README (raycast#23) - docs: add changelog (raycast#22) - feat: add Node.js version management and CI unit testing workflow (raycast#21) - security: bump cross-spawn to 7.0.6 (raycast#20) - fix: removes refs to default hotkey (raycast#19) - fix: refactor into separate files (raycast#18) - fix: add more comments (raycast#17) - fix: add unit tests (raycast#16) - fix: refactor into AudioManager (raycast#15) - fix: remove \'play-sound\' dependency (raycast#14) - Revert "fix: refactor into separate files (raycast#10)" (raycast#13) - Revert "fix: add more README instructions (raycast#11)" (raycast#12) - fix: add more README instructions (raycast#11) - fix: refactor into separate files (raycast#10) - feat: rename extension to \'ElevenLabs TTS\' (raycast#9) - fix: update extension icon (raycast#8) - fix: run prettier (raycast#7) - fix: pin dependencies (raycast#6) - fix: add more comments (raycast#5) - fix: add more logging and error handling (raycast#4) - fix: use websockets for faster TTS streaming (raycast#3) - fix: add toasts for UI feedback (raycast#2) - feat: use elevenlabs for TTS since it\'s better (raycast#1) - initial commit
- chore: apply changes from Raycast collaborator (raycast#28) - fix: check file exists before cleanup (raycast#27) - fix: show error toast for invalid ElevenLabs API key (raycast#26) - refactor: use auto-generated Raycast preference types (raycast#25) - docs: move images to images/ folder (raycast#24) - docs: update README (raycast#23) - docs: add changelog (raycast#22) - feat: add Node.js version management and CI unit testing workflow (raycast#21) - security: bump cross-spawn to 7.0.6 (raycast#20) - fix: removes refs to default hotkey (raycast#19) - fix: refactor into separate files (raycast#18) - fix: add more comments (raycast#17) - fix: add unit tests (raycast#16) - fix: refactor into AudioManager (raycast#15) - fix: remove \'play-sound\' dependency (raycast#14) - Revert "fix: refactor into separate files (raycast#10)" (raycast#13) - Revert "fix: add more README instructions (raycast#11)" (raycast#12) - fix: add more README instructions (raycast#11) - fix: refactor into separate files (raycast#10) - feat: rename extension to \'ElevenLabs TTS\' (raycast#9) - fix: update extension icon (raycast#8) - fix: run prettier (raycast#7) - fix: pin dependencies (raycast#6) - fix: add more comments (raycast#5) - fix: add more logging and error handling (raycast#4) - fix: use websockets for faster TTS streaming (raycast#3) - fix: add toasts for UI feedback (raycast#2) - feat: use elevenlabs for TTS since it\'s better (raycast#1) - initial commit
* Add elevenlabs-tts extension - chore: apply changes from Raycast collaborator (#28) - fix: check file exists before cleanup (#27) - fix: show error toast for invalid ElevenLabs API key (#26) - refactor: use auto-generated Raycast preference types (#25) - docs: move images to images/ folder (#24) - docs: update README (#23) - docs: add changelog (#22) - feat: add Node.js version management and CI unit testing workflow (#21) - security: bump cross-spawn to 7.0.6 (#20) - fix: removes refs to default hotkey (#19) - fix: refactor into separate files (#18) - fix: add more comments (#17) - fix: add unit tests (#16) - fix: refactor into AudioManager (#15) - fix: remove \'play-sound\' dependency (#14) - Revert "fix: refactor into separate files (#10)" (#13) - Revert "fix: add more README instructions (#11)" (#12) - fix: add more README instructions (#11) - fix: refactor into separate files (#10) - feat: rename extension to \'ElevenLabs TTS\' (#9) - fix: update extension icon (#8) - fix: run prettier (#7) - fix: pin dependencies (#6) - fix: add more comments (#5) - fix: add more logging and error handling (#4) - fix: use websockets for faster TTS streaming (#3) - fix: add toasts for UI feedback (#2) - feat: use elevenlabs for TTS since it\'s better (#1) - initial commit * Update CHANGELOG.md * Update CHANGELOG.md and optimise images --------- Co-authored-by: Per Nielsen Tikær <per@raycast.com> Co-authored-by: raycastbot <bot@raycast.com>
- Update dependencies one more time - Screenshots - Update empty delivery welcome message - Fix Typescript compile issue - Update README.md - Do npm run build during CI - Add migrate script - Merge pull request raycast#36 from halprin/link-to-tracking - Add action to open the tracking webpage in the browser - Expose function to generate tracking URL - Merge pull request raycast#22 from halprin/renovate/all-minor - Update dependency @raycast/api to v1.91.1 - Merge pull request raycast#35 from halprin/usps-no-remote-tracking - Fix lint - Allow editing the manual delivery date - Pipe the manual delivery date through the tracking algorithm so it can be used - Add the manual delivery date to the new delivery view - Strip USPS API key from preferences and logic - Add ability to determine if remote tracking works - Update dependency @types/node to v20.17.17 (raycast#34) - Update dependency @types/node to v20.17.16 (raycast#33) - Update dependency @types/node to v20.17.15 (raycast#32) - Update dependency @types/node to v20.17.14 (raycast#31) - Update dependency @types/node to v20.17.13 (raycast#30) - Update dependency typescript to v5.7.3 (raycast#29) - Update dependency @types/node to v20.17.12 (raycast#28) - Update dependency @types/react to v18.3.18 (raycast#27) - Update dependency @types/react to v18.3.17 (raycast#26) - Add support to copy the tracking number to the clipboard - Update dependency @types/node to v20.17.10 (raycast#25) - Update dependency @types/react to v18.3.16 (raycast#24) - Update dependency @types/react to v18.3.15 (raycast#23) - Update dependency @types/react to v18.3.14 (raycast#20) - Update dependency @types/react to v18.3.13 (raycast#19) - Update dependency prettier to v3.4.2 (raycast#18) - Update dependency prettier to v3.4.1 (raycast#17) - Update dependency prettier to v3.4.0 (raycast#16) - Update dependency @types/node to v20.17.9 (raycast#15) - Update dependency @types/node to v20.17.8 (raycast#14) - Update dependency typescript to v5.7.2 (raycast#13) - Update dependency @raycast/api to v1.86.1 (raycast#12) - rename provider to carrier - Add pull-contributions script - Remove eslint-plugin-react-hooks from dependencies - Make UPS orange - fix lint - Add an empty list view - Update descriptions and strings - Update changelog - Need to go back to eslint 8 cause raycast uses older dependencies - Merge pull request raycast#5 from halprin/renovate/major-eslint-monorepo - Add FexEx to README - Document UPS on README - Update readme with new links - Initial filled out README - fix lint - Get the delivery edit to work correctly with initial values - Add ability to edit deliveries - Move UPS and FedEx to production hosts - fix lint - Add FedEx tracking - Add FedEx preferences - Add initial USPS tracking - Fix adding new deliveries - Remove unneeded console log - Fill in details about the packages in the detail view - Add more metadata fields to the detail view - Start making showdetailview - Update dependency eslint to v9 - Update dependency @raycast/api to v1.86.0 (raycast#10) - Update dependency @types/node to v20.17.7 (raycast#9) - map item to delivery - Refresh deliveries - Tracking to Delivery - fix lint - show loading when updating tracking - only update packages when after 30 minutes - fix lint - Add error handling and display of errors - Dedicated view for the new action - Merge branch \'main\' of https://github.com/halprin/raycast-package-tracker - Use props correctly in a re-usable component - Update dependency @raycast/utils to v1.18.1 (raycast#8) - Fix lint - Go away from a Map of Package array - Add UPS API support - Correct imports - Set debug flag to true for the debug data - Update title of the UPS secrets - rename preferences and add UPS preference - Merge branch \'main\' of https://github.com/halprin/raycast-package-tracker - Add an ID to the different providers - Update dependency typescript to v5.6.3 (raycast#7) - Update dependency eslint to v8.57.1 (raycast#6) - Rename the debug data file - Update extension icon to something slightly better - Fix linting - New Delivery view is separate now so it works from both commands - rename plugin and commands - Add USPS preferences - correct optionalize Track - Packages are separated from Track and are cached - Use useLocalStorage util instead of my own one - Get package-lock.json in sync - Precise version numbers for dev dependencies - Update dependency @types/node to v20.17.6 (raycast#3) - Update dependency @types/react to v18.3.12 (raycast#2) - Add CI GitHub action - Fix linting issues - Ask for confirmation before deleting deliveries - Delete a delivery entry - Adding a new item pops the stack and shows up - Store newly tracked packages - Fill out form to track a new delivery - Set Add delivery to show up in main view - load the temp data only when in a development environment - Actually use the react state for the tracking list - load the tracking state via useEffect - Make TypeScript compiler happy - Sort tracking by delivery date - support multiple packages for the icon and delivery date - Add package model - Add Renovate config - Commit baseline Package Tracker extension - Initial commit
* Add music-assistant-controls extension - v2 (#8) - fix(deps): update dependency @raycast/api to v1.102.6 (#35) - chore(deps): update dependency @types/react to v19.1.12 (#34) - chore(deps): update dependency @types/node to v22.18.0 (#33) - chore(deps): update dependency eslint to v9.34.0 (#32) - chore(deps): update dependency @types/react to v19.1.11 (#31) - fix(deps): update dependency @raycast/api to v1.102.5 (#30) - chore(deps): update dependency @types/node to v22.17.2 (#29) - fix(deps): update dependency @raycast/api to v1.102.4 (#28) - chore(deps): update dependency @types/react to v19.1.10 (#27) - chore(deps): update dependency eslint to v9.33.0 (#24) - chore(deps): update dependency @types/node to v22.17.1 (#23) - fix(deps): update dependency @raycast/api to v1.102.3 (#22) - chore(deps): update dependency @types/react to v19.1.9 (#19) - chore(deps): update dependency typescript to v5.9.2 (#21) - chore(deps): update dependency @types/node to v22.17.0 (#20) - chore(deps): update dependency eslint to v9.32.0 (#18) - chore(deps): update dependency @types/node to v22.16.5 (#17) - fix(deps): update dependency @raycast/api to v1.101.1 (#16) - fix(deps): update dependency @raycast/api to v1.101.0 (#15) - chore(deps): update dependency @types/node to v22.16.4 (#14) - chore(deps): update dependency eslint to v9.31.0 (#13) - chore(deps): update dependency @types/node to v22.16.3 (#12) - chore(deps): update dependency @types/node to v22.16.2 (#11) - chore(deps): update dependency @types/node to v22.16.1 (#10) - chore(deps): update dependency @types/node to v22.16.0 (#3) - chore(deps): update dependency @types/react to v19.1.8 (#5) - chore(deps): update dependency eslint to v9.30.1 (#6) - chore(deps): update dependency prettier to v3.6.2 (#2) - Create node.js.yml - refactor: update renovate configuration to include package rules for minor and patch updates - Merge pull request #1 from YoeriVD/renovate/configure - Add renovate.json * Greptile feedback + new screenshot * Update package.json * Remove outdated expose-port.png image and update README to reference new image location. Enhance error handling in use-selected-player-id.ts by adding failure toast notifications for command launch failures. * Update CHANGELOG.md and optimise images --------- Co-authored-by: Per Nielsen Tikær <per@raycast.com> Co-authored-by: raycastbot <bot@raycast.com>
- add old n8n to gitignore - Restore static prompt placeholders - Prepare Raycast extension for store submission - Update Raycast metadata assets and placeholder prompts - Polish ToneClone node for submission - Handle training uploads inside ToneClone node - Add ToneClone node tests and align client header - chore: ignore backup directories in .gitignore - chore: remove old n8n node structure files - chore: add .gitignore for build artifacts and development files - feat: migrate ToneClone n8n node to official 2025 CLI structure - Fix ToneClone test import to avoid dist dependency - feat: prepare Raycast extension for store submission - fix: resolve Raycast knowledge card loading and persona switching issues - Merge pull request raycast#236 from toneclone/jf-android-pt-2 - feat: complete Raycast migration from profiles to knowledge cards - feat: add IsEnabled and DisabledAt fields to KnowledgeCardResponse - fix: resolve JWT authentication tests and frontend build issues - Resolve merge conflicts with main branch - feat: Complete frontend rename from Profile to KnowledgeCard - Rename Profile to KnowledgeCard throughout codebase - Merge pull request raycast#234 from toneclone/jf-billing-fixes - chore(backend): use Go 1.24-alpine in Dockerfile to match go.mod (fix prod deploy build) - chore(stripe): guard against missing invoice customer - Merge pull request raycast#232 from toneclone/jf-billing-fixes - fix: Use proper plan constants for trial cancellation - fix: Resolve TypeScript build errors after merge - Merge branch \'main\' into jf-billing-fixes - fix: Resolve backend test failures and DynamoDB field naming inconsistencies - Merge pull request raycast#231 from toneclone/codex/update-prompt-templates-for-missing-data-policy - Fix backend test failures - feat: add missing data policy placeholders - Update cancellation email text - Improve payment failed email system - Fix trial-to-Pro upgrade and Stripe time handling - Merge pull request raycast#230 from toneclone/jf-remove-fine-tuning-test - fix: resolve OpenAI provider test failures with mock client issues - feat: implement comprehensive payment failed user handling - Merge pull request raycast#229 from toneclone/codex/add-query-logging-to-toneclone - Implement comprehensive subscription expiration handling - Merge pull request raycast#220 from toneclone/codex/update-api-endpoints-for-renaming - feat(logging): unify query response logs to variants envelope and add schema/version metadata; stop shallow copying requests\n\n- Exclude attachments from QueryRequest JSON; marshal request directly\n- Add LogSchemaVersion and RequestFormat on initial log write\n- Log responses as JSON envelope with variants[] and done for single/streaming/multi-variant\n- Add ResponseFormat and UpdatedAt on update\n- Update tests to assert JSON envelope in logs - Fix cancellation banner not appearing - chore: ignore Go build caches; remove cached test artifacts from index - test: make DynamoDB mocks resilient to query log writes; allow QUERYLOG PutItem/UpdateItem when unmocked to avoid test flakiness\n\n- Add panic-safe handling in PutItem/UpdateItem to treat QUERYLOG writes as successful no-ops when no expectations are set\n- Remove broad default expectations to ensure test-specific Run hooks still fire\n- Verified all backend tests pass with ENVIRONMENT=test - Resolve merge conflicts: Update terminology from \'profile\' to \'Knowledge Card\' - Merge branch \'codex/add-query-logging-to-toneclone\' of github.com:toneclone/toneclone into codex/add-query-logging-to-toneclone - Merge pull request raycast#228 from toneclone/codex/rename-voice-evolution-to-smartstyle - Update marketing page - rename AI Tell filtering to StyleGuard - Fix TypeScript build error - remove extra closing brace - Resolve merge conflicts in writing components - billing: scheduled downgrade detection and banners - Downgrade scheduling: use subscription schedules; detect existing schedule; create then update phases; anchor phase1 start to current_period_start; phase1 iterations=1 then switch to lower price; end_behavior=release - Merge pull request raycast#225 from toneclone/jf-document-handling - fix: Critical fixes to address CI failures and Claude feedback - Merge pull request raycast#224 from toneclone/codex/add-ui-for-prompt-presets-in-frontend - Fix frontend test failures after usePromptPresets hook implementation - Downgrade UX: personalize impact; caps old→new when under; usage→cap when over; conditional warning/info icon; support Priority→Standard row; neutral data handling copy; renamed button to ‘Confirm downgrade for next cycle’; wired usage from user + entitlements; annual Pro opens upgrade dialog and closes downgrade; PostHog reason tracking - Implement shared usePromptPresets hook for performance optimization - Fix TypeScript null safety issues in WritingStarter - Fix remaining \'0\' display issue in WritingStarter - Fix duplicate key warnings and infinite loading cycle - Billing: add GSI retry in findOrCreateUserByStripeCustomer; safeguard NO_PLAN recovery in subscription.updated; ensure uppercase DynamoDB attrs; Stripe proration immediate invoicing; richer checkout logging; frontend 402 handling + upgrade/downgrade flows; add TIME_ADJUSTMENT_CHANGES.md - chore(android): rename voiceEvolution to smartStyle - Log query responses asynchronously - Log user queries and responses - fix: Address high priority code review feedback - Merge pull request raycast#226 from toneclone/codex/rename-profiles-to-knowledge-in-frontend - Merge pull request raycast#227 from toneclone/codex/update-profiles-to-knowledge-in-marketing-site - Rename Voice Evolution feature to SmartStyle - chore: rename profiles to knowledge cards in marketing copy - fix: update knowledge card label in extension - Merge pull request raycast#222 from toneclone/codex/rename-profiles-to-knowledge-in-android-app - deps: Add document processing libraries for PDF and DOCX support - feat: Implement robust document processing with proper text extraction - fix: update keyboard repository for knowledge URIs - Rename profiles to knowledge in Android app - fix: update knowledge card field mappings - Add prompt preset buttons to writing pages - Merge pull request raycast#221 from toneclone/codex/rename-profiles-to-knowledge-in-raycast-extension - Merge pull request raycast#223 from toneclone/codex/rename-profiles-to-knowledge-in-n8n-extension - feat(n8n): rename profiles to knowledge cards - Rename profiles to knowledge in Android app - Merge pull request raycast#219 from toneclone/codex/fix-handling-of-rejected-stripe-events - Rename profiles to knowledge in Raycast extension - refactor: use knowledgeCardID param - Handle stale Stripe webhook processing - Rename profile endpoints to knowledge - fix stripe event retry handling - Merge pull request raycast#218 from toneclone/jf-built-in-personas - Fix Codex review feedback: security, error handling, and test imports - Add placeholder key to test script - Fix TypeScript build errors and improve type safety - Fix getPlanEntitlements warning in frontend tests - fix: Use atomic DynamoDB ADD operation for API key usage tracking - Fix frontend test failures and linting errors - Add built-in persona support to CLI - Fix Raycast profile loading errors for built-in personas - Add built-in persona support to n8n client - fix: handle built-in personas properly in Raycast extension - feat: add built-in personas to Raycast generate text commands - Merge pull request raycast#216 from toneclone/jf-prod-infra - Fix missing SendGrid environment variables in GitHub Actions workflow - feat: replace hardcoded built-in personas with dynamic API calls - Merge pull request raycast#214 from toneclone/jf-banned-words - fix: Resolve StyleGuard word update 404 errors - security: Remove test_training_simple.go to prevent real OpenAI API calls - docs: Add StyleGuard feature description to PRD - fix: Update function signatures and remove legacy aliases - feat: Complete StyleGuard rebranding from \'banned words\' - Merge pull request raycast#213 from toneclone/jf-client-metrics - Fix critical client tracking issues - Merge pull request raycast#212 from toneclone/jf-add-marketing-metrics - Update marketing package-lock.json after PostHog installation - Add client tracking to Android app and keyboard module - Add PostHog analytics to marketing site - Update devx config - Merge remote-tracking branch \'origin/main\' into jf-client-metrics - Merge pull request raycast#211 from toneclone/jf-android-pt-2 - Update Android app to use backend built-in personas API - feat: add client tracking to n8n node using X-Client header - Improve API key service security and code quality - refactor: remove unused getClientVersion function - feat: add client tracking to CLI using X-Client header - feat: replace all toneclone.com domain references with toneclone.ai - Merge main into jf-android-pt-2 branch - Add persona_routes.go - Restore valid built-in persona tests that were accidentally removed - feat: Add frontend client tracking with query parameters - Add missing personas package to fix CI compilation - feat: Add client tracking middleware for PostHog analytics - Fix test failures in concurrent and rate limiting tests - Fix API key authentication with scalable GSI-based lookup - Merge pull request raycast#209 from toneclone/jf-raycast-pt2 - Refactor Raycast extension with security improvements and better architecture - Address security concerns from code review - Merge pull request raycast#210 from toneclone/codex/mock-openai-endpoint-in-tests - Mock OpenAI fine-tuning tests - Fix test issues and improve validation - Merge branch \'main\' into jf-raycast-pt2 - Add comprehensive Raycast extension with multiple ToneClone commands - Merge pull request raycast#208 from toneclone/jf-frontend-cleanup - Merge remote-tracking branch \'origin/main\' into jf-frontend-cleanup - Enhance Raycast extension with persona icons and simplified auth - Fix live UI update after persona deletion - Merge pull request raycast#207 from toneclone/jf-fix-onboarding - Add SendGrid environment variables to Terraform configuration - Fix email URLs and add missing Stripe customer validation - Refactor email service to use Go templates and environment variables - Resolve merge conflicts with main branch - Fix failing tests and TypeScript build errors - Merge pull request raycast#206 from toneclone/jf-client-cleanup - Add DynamoDB field naming conventions to prevent data conflicts - Fix Cloudflare Pages deployment file size issue for marketing site - Fix persona enabled/disabled flickering by standardizing DynamoDB field names - Fix TypeScript build error: remove unused Code import - Add comprehensive CLI marketing page and update frontend apps listing - Fix devx config - Merge pull request raycast#205 from toneclone/jf-fix-devx-config - Address PR feedback with improved error handling and validation - Fix devx port conflicts by replacing background processes with named pipes - Merge pull request raycast#204 from toneclone/jf-frontend-cleanup - Change model reference in test - Remove TypeScript build info from version control - Enhance banned words UI with bundle types and normalization settings - Optimize streaming banned word replacement with smart buffering - Fix flaky test issues that caused CI failures - Fix streaming banned word replacement with smart buffering - Implement no-plan architecture for post-email-confirmation users - Merge pull request raycast#203 from toneclone/jf-fix-onboarding - Merge remote-tracking branch \'origin/main\' into jf-fix-onboarding - Improve user signup flow with dedicated success page - Merge pull request raycast#202 from toneclone/jf-android-pt-2 - Fix persona profiles endpoint to return 200 with empty array instead of 404 - Prepare CLI for open source release - Implement efficient batch file upload with integrated persona association - Update ResponseScreen header to match MainScreen branding - Fix profile loading for built-in personas - Add multiple profile support to CLI generate command - Enable multi-variant feature with settings toggle - Update API domain from toneclone.com to toneclone.ai - Merge pull request raycast#200 from toneclone/jf-prod-infra - Remove build artifacts - Fix file association updates to work for all training scenarios - Fix Cron job to update persona with fine-tuned model on completion - Merge pull request raycast#198 from toneclone/jf-prod-infra - Remove unused encoding/base64 import from supabase_jwt.go - Fix combine Lambda timeout issue - Fix App Runner IAM policy for Step Function access - Merge pull request raycast#196 from toneclone/jf-prod-infra - Fix GPT-5 parameter compatibility in combine Lambda - Merge pull request raycast#194 from toneclone/jf-frontend-cleanup - Merge pull request raycast#192 from toneclone/jf-prod-infra - Fix Lambda deployment by reverting to always_run triggers - Merge pull request raycast#190 from toneclone/jf-prod-infra - Fix working directory issue in Lambda build scripts - Merge pull request raycast#188 from toneclone/jf-prod-infra - Fix shell compatibility: Use bash interpreter for pipefail support - Merge pull request raycast#186 from toneclone/jf-prod-infra - Address PR feedback: Fix timeout, build triggers, and error handling - Fix Terraform formatting - Fix Lambda builds and add build verification to CI - Merge remote-tracking branch \'origin/main\' into jf-prod-infra - Improve Lambda build process with better error handling and debugging - Merge pull request raycast#185 from toneclone/jf-prod-infra - Fix API response field name expectations in test - Fix PostHog mock Enqueue method for Personal plan API access test - Implement API key regeneration with confirmation dialog - Fix backend tests for Personal plan API access change - Merge pull request raycast#184 from toneclone/jf-prod-infra - Fix Next.js client component issues for CloudFlare Pages - Merge pull request raycast#180 from toneclone/jf-update-marketing-site - Resolve merge conflicts with main - Merge pull request raycast#182 from toneclone/jf-prod-infra - Remove setup files that never should\'ve been committed :( - Merge pull request raycast#181 from toneclone/jf-prod-infra - Update to limit to main/prod branches - Fix Terraform plan check in CI validation - Fix Terraform security scan false positives - Fix marketing site CloudFlare build issues - Fix Terraform formatting for CI validation - Fix remaining nested interactive elements with asChild pattern - Fix HTML validity: remove nested interactive elements - Fix CloudFlare Pages Node.js compatibility for marketing site - Implement Claude\'s additional security and stability suggestions - Merge pull request raycast#179 from toneclone/jf-prod-infra - Merge pull request raycast#178 from toneclone/jf-android-pt-2 - Refactor marketing site to use shared components and improve content - SECURITY FIX: Address Claude PR feedback - Address Claude\'s PR feedback: improve code quality and add comprehensive tests - Update test workflows to run on both main and prod branches - Update production workflows to trigger on prod branch - Remove CloudFlare Pages domain creation to prevent conflicts - Fix CloudFlare Pages deployment issues - Improve UI color contrast and accessibility across keyboard and main app - Remove CloudFlare Pages import step from workflow - Add comprehensive GitHub Actions IAM policy - Fix output configuration for production deployment - Add CloudFlare Pages import step to deployment workflow - Add GitHub source configuration to CloudFlare Pages projects - Merge pull request raycast#177 from toneclone/jf-android-pt-2 - Fix test compilation issues and add focused unit tests - Address high-priority PR feedback: Add comprehensive tests and real-time validation - Merge pull request raycast#176 from toneclone/jf-update-models - Update training test to expect new default model gpt-4.1-mini-2025-04-14 - Fix CI test failures by preventing real OpenAI API calls during tests - Address PR feedback: Fix race conditions and add validation - Enhance AI prompt templates and training pipeline with advanced style profiling - Reorganize settings page structure for better UX - Implement hidden dev mode feature and UI improvements - Fix AWS provider configuration for GitHub Actions - Fix step-function.json path after merge from main - Merge remote-tracking branch \'origin/main\' into jf-prod-infra - Commit the step function definition - Fix step-function.json file path in training module - Fix test failures by updating FilterExpression field name case - Add non-sensitive terraform.prod.tfvars for GitHub Actions - Remove AWS profile from S3 backend config for GitHub Actions compatibility - Configure S3 backend for shared Terraform state - Handle App Runner service not in RUNNING state before deployment - Fix GitHub Actions App Runner deployment wait command - Fix Docker build context in GitHub Actions workflow - Add debugging for AWS credentials in GitHub Actions workflow - Merge pull request raycast#174 from toneclone/jf-android-pt-2 - Update fine-tuning model to gpt-4.1-mini-2025-04-14 and fix styleProfile support - Fix AndroidTest compilation and runtime issues - Add a toneclone cli readme - Fix unit test compilation and implementation issues - Fix plans.json: revert personal plan popular flag and enable API access - Update marketing site with app links, favicon, and branding - Add comprehensive test coverage for persona functionality - Merge branch \'main\' of github.com:toneclone/toneclone - Merge pull request raycast#175 from toneclone/jf-prod-infra - Fix compilation errors from Claude feedback implementation - Address critical security issues from PR review - Fix critical security and performance issues - Add production deployment workflows and CloudFlare Pages configuration - Add Android build artifacts and IDE files to gitignore - Add built-in personas with proper sorting and color support - Update logos and optimize launcher icons with adaptive padding - Update app logo to high-res version and fix launcher icons - Make label text sizes consistent with selector/button text - Complete profile reselection fix - consolidate rebuild logic - Fix profile reselection issue with signature-based rebuild logic - Add CloudFlare deployment script to frontend package.json - Update production infrastructure for CloudFlare Pages deployment - Add terraform.prod.tfvars to .gitignore to protect production secrets - Add plans.json file to backend Docker image to fix Stripe plan validation - Enhance .devx development environment with service logging and process management - Add .worktrees to gitignore - Simplify landing page: clean white background with logo, ToneClone text, and coming soon - Add simple landing page with ToneClone logo and coming soon message - Update package-lock.json for vaul@1.1.2 compatibility with React 19 - Fix marketing site React 19 compatibility - Remove whitespace around Android app header logo - Upgrade app logos with high-resolution ToneClone branding - Implement Supabase authentication with secure configuration management - Merge pull request raycast#172 from toneclone/jf-add-billing - Merge pull request raycast#173 from toneclone/jf-add-logins - Fix CI test failures - frontend TypeScript and backend mocks - Fix CI test failures - correct supabase import inconsistency - Implement code review improvements and comprehensive test suite - Fix backend CI test failures - Fix linting issues in OAuth authentication files - Implement Claude\'s PR feedback recommendations - Clean up debug logging from OAuth authentication flow - Enhance OAuth authentication with GitHub login and improved UX - Fix GitHub Actions test failures - Extend billing integration to persona and profile management components - Add billing-related enhancements to core components - Add draft limit warning system with progress bar and upgrade links - Enhance billing system with improved user management and Supabase integration - Clean up debug logging from Google OAuth implementation - Merge remote-tracking branch \'origin/main\' into jf-add-logins - Add Google OAuth authentication support - Merge pull request raycast#171 from toneclone/jf-add-billing - Complete URL configuration and security logging fixes - Security fix: Replace fmt.Printf with log.Printf in critical route handlers - Fix URL configuration: remove hardcoded fallback URL from CORS - Address security and configuration feedback from PR review - Remove compiled binary from repository - Update .gitignore to exclude build artifacts and logs - Update marketing copy to remove \'no credit card required\' messaging - Fix TestHandleQueryWithBannedWords to work with new AI service architecture - Merge main into jf-add-billing branch - Remove binaries - Merge pull request raycast#170 from toneclone/jf-openai-sdk - Fix OpenAI integration tests to skip in CI environment - Add Stripe billing integration with frontend payment flow - Add comprehensive training functions testing suite - Fix model support: Add gpt-4o-mini-2024-07-18 to supported models - Complete AI service integration and fix all test failures - Implement backend enforcement of plan limits with atomic usage tracking - Complete Deliverable 3.2: Refactor query routes and tests for AI service - Complete Deliverable 3.1: Initialize service in main.go with DI - Implement monthly usage tracking for draft limits - Complete Deliverable 2.3: Migrate fine-tuning operations - Update project todo list: Mark D2.2 as completed - Complete Deliverable 2.2: Enhanced Streaming Support - Complete Deliverable 2.1: OpenAI Provider with Responses API - Implement Customer Billing Portal Integration (Deliverable 6) - Implement comprehensive Stripe webhook processing with idempotent event handling - Update project todo list: Mark D1.2 as completed - Implement Deliverable 1.2: Service factory and provider registry - Update project todo list: Mark D1.1 as completed - Implement Deliverable 1.1: Provider-agnostic AI service interface - Implement Stripe Checkout Session API with isolated mock testing - Add Stripe integration with webhook endpoint and v82 SDK - Add Stripe environment variables to configuration example - Add plans configuration and update marketing pricing page - Add plans management system for billing entitlements - Add billing system foundations with user trials and plan management - Fix marketing site service setup in Devx - Merge pull request raycast#169 from toneclone/jf-marketing - Update teh devx config - Add ToneClone marketing site with Next.js and shadcn/ui components - Merge pull request raycast#168 from toneclone/jf-update-sign-up-flow - Fix TypeScript compilation errors to resolve CI build failures - Fix backend test failures and enhance filter expression consistency - Merge remote-tracking branch \'origin/main\' into jf-update-sign-up-flow - Merge pull request raycast#167 from toneclone/jf-android-app-clean - feat: Add memory pressure handling for multi-variant response caching - security: Remove debug logging and improve IME security - feat: Add complete Android app with multi-variant AI response functionality - Fix final 3 frontend test failures - all tests now passing - Fix frontend test failures and improve test reliability - Enhance persona and writing components - Update frontend components and UI improvements - Fix banned words custom flag bug - Remove duplicate AI Tells Bundle and Banned Words sections - Fix banned words API authentication issues - Fix banned words API authentication issues - Add skeleton loader and improve writing canvas UX - Update navigation and routing for Apps/Integrations page - Add persona color customization and consistent avatar system - Enhanced persona management UI and writing flow improvements - Comprehensive UI improvements and new account management - Update sign-up flow: streamline onboarding and improve UX - Merge pull request raycast#153 from toneclone/jf-add-deny-list - fix: Make test order-independent after LRU cache changes - Merge branch \'main\' into jf-add-deny-list - security: Address critical security and performance issues - test: Add comprehensive test coverage and fix CI failures - feat: Add AI Tells Bundle feature with loading indicators - feat: Improve banned words UX with latency warnings and better defaults - feat: Implement conditional buffering for optimal streaming performance - Update devx config for removing Auth0 - Merge pull request raycast#165 from toneclone/jf-supabase-migration - Fix CI test failures: Add missing Supabase environment variables - Address Claude PR feedback: Security enhancements and ESLint improvements - Resolve merge conflicts with main branch - Complete Supabase JWT migration with comprehensive test coverage - feat: Add JWT authentication tests and deprecate Auth0 session tests - fix: Update persona validation test to use required name field - test: Add comprehensive JWT authentication test coverage - fix: Allow JWT authentication for API key management - fix: Make parentModel optional with default value for persona creation - fix: Enhance banned word spacing and punctuation preservation - feat: Complete banned words deny list implementation with streaming integration - fix: Support Auth0 user IDs in writing routes - fix: Add banned routes registration and fix test compilation - Add Supabase integration setup - Merge branch \'main\' into jf-add-deny-list - Merge pull request raycast#164 from toneclone/jf-writing-ui - Fix CI test failures by mocking scrollIntoView globally - Suppress harmless test environment errors to fix CI - Fix CI test failures in WritingStarter component - Clean up failing tests to achieve reliable CI pipeline - Fix frontend CI test failures - localStorage parameter fixes - Clean up lint warnings in test files - Add comprehensive test coverage for document versioning and React components - Fix TypeScript compilation errors in writing-canvas.tsx - Merge branch \'main\' into jf-writing-ui - Fix ESLint warnings and improve code quality - Address Claude PR feedback - security and reliability improvements - Fix test failures and lint errors - Merge pull request raycast#163 from toneclone/jf-raycast-plugin - Add comprehensive test suite and fix remaining ESLint warnings - test: Add comprehensive unit test suite for Raycast plugin - Add document versioning system and user preferences - fix: Address critical PR feedback issues - Complete writing UI integration with API and full functionality - fix: Address code review feedback for Raycast plugin - feat: Add complete Raycast plugin for ToneClone - Merge pull request raycast#162 from toneclone/jf-n8n-module - Refactor writing interface with starter flow and enhanced canvas - Add comprehensive testing framework for ToneClone n8n module - Add training content submission to ToneClone n8n module - Add writing canvas feature with navigation and UI improvements - feat: Add n8n ToneClone integration node - Merge pull request raycast#158 from toneclone/jf-api-part-2 - Address Claude\'s PR review feedback: improve test robustness and constants - Complete Group 6: Input Validation & Edge Cases with Critical Security Fix - Complete Group 5: Rate Limiting & Authentication Security - Token Rotation Race Conditions - Complete Group 5: Rate Limiting & Authentication Security Testing (3/4 sections) - Complete Group 4: Training Workflow Robustness Testing - Merge pull request raycast#161 from toneclone/codex/update-handlequery-to-support-multiple-profile-ids - Hide invalid profile IDs - Fix failing concurrent operations tests in Group 3 AI testing - Allow multiple profile IDs for queries - Complete Group 3: AI Service Integration & Resilience Testing - New unit tests - Complete Group 2 persona profile association tests and mark Group 2 complete - pkg/types: add JSON round-trip and method tests for core types (Persona, associations, TrainingJob, FileMetadata, APIKey, User, Session) to establish baseline coverage and validate helper methods. - Complete Group 2: Persona Management Comprehensive Testing - pkg/training: add comprehensive tests for training job creation and persona-based job initiation; cover success and error paths using existing mocks; increase coverage to ~66% for package. - Complete Group 1 API testing: File Upload & Storage Testing - Complete Phase 4.1: Advanced Security Testing - Complete Phase 3: Workflow Integration Tests - feat: comprehensive writing routes test coverage with 10x improvement - Merge pull request raycast#156 from toneclone/jf-api-part-2 - Address Claude\'s PR feedback - implement minor improvements - Fix all remaining ESLint errors (9 → 0 errors) - Fix GitHub Actions permissions and reduce ESLint errors - Fix frontend ESLint errors and PostHog integration issues - Merge pull request raycast#157 from toneclone/add-claude-github-actions-1755540604470 - "Claude Code Review workflow" - "Claude PR Assistant workflow" - Complete Phase 2.9: Writing Sessions Tests with authentication fixes - Complete Phase 2.8: Training Management Tests - Complete Phase 2.7: AI Query & Generation Tests with Security Fixes - Complete Phase 2.6: Persona Management Tests with Critical Security Fix - Complete Phase 2.5: File Management Tests - Implement Phase 2.4: Comprehensive Profile Management Tests - Complete Phase 2.3: API Key Management Integration Tests - Add comprehensive ToneClone Backend API documentation - Implement comprehensive authentication and middleware testing (Phase 2.1) - Add optional non-streaming mode to query endpoint - Add tmp directories to gitignore - Remove tmp build artifacts from git tracking and add to gitignore - Add comprehensive test infrastructure for API endpoint testing - Merge pull request raycast#154 from toneclone/jf-update-devx-config - Merge branch \'main\' of github.com:toneclone/toneclone into jf-update-devx-config - Update devx config - feat: Implement Phase 3 of Not-Allowed Filter System - Automatic Output Rewriting Pipeline - feat: Implement Phase 2 of Not-Allowed Filter System - LLM prompt integration - Merge pull request raycast#152 from toneclone/cursor/add-unit-tests-for-middleware-package-1905 - Add middleware package tests with comprehensive auth middleware coverage - Merge pull request raycast#149 from toneclone/jf-toneclone-cli - More small fixes for frontend tests - Fix dependencies - Move linting to just info for now - Add frontend tests, add them to the github action - Merge pull request raycast#150 from toneclone/cursor/fix-backend-tests-workflow-and-coverage-path-fe37 - Fix Codecov coverage file path in backend tests workflow - Add backend test Github actions - Merge pull request raycast#147 from toneclone/jf-toneclone-cli - Merge pull request raycast#148 from toneclone/cursor/fix-global-directory-change-in-tests-5942 - Refactor template path resolution using runtime.Caller for dynamic paths - Complete backend testing infrastructure with 100% test success rate - Merge pull request raycast#145 from toneclone/jf-toneclone-cli - Hide future binaries in gitignore - Remove the binary from the repo - Merge pull request raycast#146 from toneclone/cursor/fix-rate-limit-token-consumption-bug-fad0 - Fix rate limit remaining requests calculation method - Add API key management routes and frontend components - Add backend authentication fixes and feature planning documentation - Complete ToneClone CLI implementation with all 8 deliverables - Merge pull request raycast#144 from toneclone/jf-setup-tooling - Add some basic claude tooling - Merge branch \'main\' of github.com:toneclone/toneclone - Fix some devx config - Merge pull request raycast#143 from toneclone/one-more-time - Fixes for localhost cookie management - Merge pull request raycast#142 from toneclone/jf-add-new-devx - Some fixes and clean up - Merge pull request raycast#141 from toneclone/jf-add-new-devx - Update devx config - Add auth0 callback handler script - Add some more devx config - Some clean up in process of adding devx - Some fixes for handling the toneclone-api.jonefox.com domain - Add knowledge management to the popup menu instead. Closes raycast#101 - Handle logged out status when running inline edit prompts. Closes raycast#132 - Add login menu on Tone Clone buttons when the user is no longer logged in - Add simple script to help with version management of the extension - Fix smart fill integration for inline editing - Update the browser extension icon in the popup and right click menus - Minor fixes to make the build happy - Add initial support for Outlook - Add a simple privacy policy since we need one for the Chrome Web Store submission - Update the text area button to use new logo - Add support for multiple API domain aliases - Clean up and simplify a few small things in the onboarding flow - Fix stylesheet reference - Fix sidebar in Brave browser - Merge branch \'main\' of github.com:toneclone/toneclone - Update createWritingSession call to use service worker - Fix white space issues in selection verification - Update color theme, icons - Fix hiding the toolbar if the selection goes away without a click - Add basic Twitter/X support and get Gmail toolbar working - Add WIP twitter integration - Add the URL and potentially some additional context to the prompt. Closes raycast#123 - Change the icon to reset the sidebar session and add a confirmation dialog box. Closes raycast#120 and closes raycast#119 - Filter out and replace characters. Fixes raycast#114 - Fix bug with the sidebar, add some build debug logs, and don\'t include content_script.js on gmail pages since it gets bundled with gmail.js - Fix the merge and related bugs - Merge pull request raycast#130 from toneclone/jf-wip-inline-editing - Merge branch \'jf-wip-inline-editing\' of github.com:toneclone/toneclone into jf-wip-inline-editing - Small bug fix for opening the sidebar - Merge pull request raycast#129 from toneclone/jf-wip-inline-editing - Merge branch \'main\' into jf-wip-inline-editing - Fix bug with multiple compose windows. - Move gmail features to their own script. Closes raycast#127 - Add the handler to the power button to add a modal to disable Tone Clone. Also adds a list of disabled sites in the popup menu where you can remove sites from the disabled list. Closes raycast#125 - Replace old Tone Clone button menu with the new one - Add caching and request de-duping to presets service - Fix minor typos in prompt template - Pending history icon insertion and minor fixes on prompt history handling - finish prompt history implementation - Fix bug with sumamry modal on loading screen and add caching to email summaries - Initial summarize thread implementation and add emails as writing samples - Wire up the menu features - Wire up suggested preset replies - Add hot key execution to Gmail - Fix placement issues with the prompt window - Make the prompts actually work - Make smart replies actually work and add opening animation for prompt window - Use loaded presets instead of hard coded onees - Swap icon and text order on the buttons - WIP prompt menu - More work on the menu - WIP Gmail Integration - hover on button - Add some example places to get samples in training-intro page. Closes raycast#110 - Add a glowing circle around the Tone Clone icon in the textarea to make it more obvious clicking it is the next step. Closes raycast#113 - Update the selected persona when it changes in another component - Migration to services and background-services-client - WIP form fills and prompt suggestions - Fix merge conflicts - Add a bunch of small changes from product feedback session on onboarding - Update color theme - Don\'t delete the extension folder when deploying the frontend - Add initial version of hotkey trigger from textareas on the page directly. - Fix PostHog CSP errors for tracking events in the extension. Closes raycast#99 - Fix -\'s in extractor autocomplete matching - Switch to using AWS App Runner instead of API Gateway and Lambda for the API. This should be a bit faster and give us more control, but also fixes streaming responses in preview environment. - Add a reset session button to the sidebar to reset everything. Closes raycast#63 - Don\'t update the prompt placeholder every document change, just update it if there is or isn\'t document text - Add support for a summarized email thread in Gmail as an extractor/smart fill - Allow pressing enter to save the name when creating a new persona and make sure we update the sample count and goal when selecting new personas in the popup menu - Add auto training at sample levels 1, 3, 10, 20, and 50 - Change persona output to be levels instead - Add \'calm it down\' and \'make it spicier\' buttons - Add support for Slack and append a space after autocompleted extractors - Rename extractors \'smart fill\' and add multiple placeholders for prompt text including ones that use @\'s, different ones for starter vs someone who\'s used it a bit, and different ones for doc revisions vs new doc draft prompts - Add support for Google Voice text messages - Fix @ extractor handling - Add basic document history feature - Add a basic prompt history feature - Add multiple levels of goals for writing samples. - Add error message for Safari since we don\'t support it. - Be a bit smarter about adding our icons to pages to make things more performant. Closes raycast#78 - Some minor clean up to the build and put some bounds on when we insert the Tone Clone icon into pages. Closes raycast#77 - Special case training data being added from the training-intro page and just show them a helpful message instead of actually adding it. Closes raycast#98 - Don\'t show the personas in the sidebar if they only have 1. Closes raycast#96 and closes raycast#97 - Change the order of the onboarding flow to make the writing section 2nd instead of last. Closes raycast#95 - Finish new onboarding flow. Closes raycast#81, closes raycast#86, closes raycast#83 - WIP new onboarding flow - Don\'t add the sidebar to a page until we try to open it. Closes raycast#76 - Add ability to upload and paste writing samples in the popup-menu in the extension. Closes raycast#87 and closes raycast#88 - Simplify the right click context menu text and make them more distinct so they\'re easy to scan. Closes raycast#80 - Add screenshots to extension installation page. Detect if they don\'t have personas yet and direct them to persona picker in extension popup (if on toneclone or not). Closes raycast#72 and closes raycast#82 - Add a way to detect when the extension is installed on the install extension page. Both if it\'s already installed and if it is actively installed at the time. Closes raycast#75 - Add a pick-persona page (accessible if you don\'t have any personas yet). Closes raycast#73 and closes raycast#74 - Update sidebar auth styles - Add support for markdown files - Draggable sidebar - Hook up context manager interactions - Merge branch \'main\' of github.com:toneclone/toneclone - Add support for extracting diff summaries and commit messages on compare pages in GitHub, and add a preset for generating Pull Requests - Merge remote-tracking branch \'origin/main\' - Add context manager to sidebar - Only show the add from library option in the persona editor if there are new files that aren\'t already added to the persona - Fix CSRF token cookie issue with preview domains - Refactor the create initial persona code, make sure it\'s on both the welcome page and the intro to training page, and default Voice Evolution to be on for new personas by default - Bold the persona name in extension popup to make it more clear, change the copy button in sidebar to be copy and close so it\'s not a surprise to users, and try to make writing contexts more intuitive in the persona editor - For now just log CSRF failures, don\'t actually block. - Strip console.log from production builds - Add CSRF tokens to prevent attacks. Closes raycast#21 - Move writer/persona and context inline raycast#32 - Merge remote-tracking branch \'origin/main\' - Move writer/persona and context inline raycast#32 - Remove background on icons and make the textarea icon larger - minor clean up for frontend build - Add nicer save dialog and delete option for query presets. Closes raycast#56. Closes 5 - Allow sidebar prompt textfield to autoexpand. Closes raycast#80 - Fix formatting when copying existing text from content editable elements to the textarea in the sidebar. - Add URL filter list for query presets and add a few more static ones for emails. - Add right click menu option to send selected text to the document in Tone Clone - Add right click context menu to add selected text to the prompt. - Add right click menu on selected to text to add the text to a persona as a writing sample - Fix line breaks when sending text to contenteditable elements - Add training intro page, getting started menu item, and update links in welcome page. Closes raycast#62 - Add support for content editable elements and fix URL filtering for extractors. Closes raycast#64. - Minor clean up and word smithing for clarity from walkthrough with Katie - Add basic version of extractors - Add query preset API endpoints to API Gateway - Move prompts to Golang templates and split out different ones for updating a doc vs creating one from scratch. Closes raycast#57 - Simplify extension detection - Add a new metrics.toneclone.ai to proxy PostHog requests and add PostHog to browser extension. Closes raycast#47 - Add a little banner to suggest installing the extension if they don\'t have it yet. Closes raycast#44 - Add a welcome page for new users who just signed up. Closes raycast#45 - Add script to deploy extension - Add option for no context/profile - Make the sidebar icons actually work - Add ability to save prompt presets, make them dynamic, and make them actually work. Closes raycast#53 - Add voice evolution support in the extension. Closes raycast#23 - Fix small build error - Fix training bug with trainingStatus. Closes raycast#27 - Add a new persona type for untrained personas - Minor fixes for persona editor page - Add a welcome blurb to the popup. Closes raycast#12 - Add missing background script - Make persona sticky to the domain/site. Closes raycast#42 - Add Posthog to website. Closes raycast#46 - Fix the sidebar close button and other small UI tweaks - Broadcast auth changes to all existing injected sidebars. Closes raycast#20 - Add a message when opening the ToneClone extension on a ToneClone.ai site. Closes raycast#43 - Hook up add persona button in popup - Fix AI generated writing session titles and auto-select of persona on new session - More buttons in sidebar, lots more buttons - Profile -> Context for sidebar dropdown - Writer and profile side-by-side in sidebar - Add training in progress message to popup. - Add new persona from popup - Upload success/fail styles, submit icon change - Upload success/fail styles, submit icon change - Allow writing with untrained personas. Closes raycast#13 and Closes raycast#41. Also fixes a few small bugs in ai-writing.tsx (infinite polling and failing to fetch profiles if no persona is selected). - Wire up the undo button. Closes raycast#14 - Merge - Add extractors examples - Sidebar layout and buttons - Handle 0 and 1 personas use cases. Closes raycast#10 - Don\'t show double spinners when submitting samples from the extension. Just show a spinner on the one you click and show the other as disabled. Closes raycast#8 - Don\'t show the settings icon in the popup menu if the user is logged out. Closes raycast#11 - Disable add selected text button if no text is selected. Fixes raycast#16 - Fix the toggleSidebar handler - Clean up the workflow a little with the sidebar, page, and menu interactions when finishing writing - Sync content between target textarea and the sidebar - Merge branch \'main\' of github.com:toneclone/toneclone - Add icon to text areas - Buttons -> ActionIcons - Add skeleton loader - Remove sidebar debug auto-toggling - Add copy button to sidebar + loaderProps for buttons - Add background / async training. Closes raycast#25 - Fix minor bug with showing Add from Library button as disabled - Add metric events to the training lambas. Closes raycast#22 - Fix broken tests - De-dupe and reorganize structs and constants between packages - Reorganize golange code into one main folder - Add posthog to backend API calls - Adds voice evolution to the website writing interface and closes raycast#24. Also adds source tracking to writing samples to know how the sample got added (website file upload, extension add page, voice evolution on website, etc). - Update sidebar layout and styles - Make the persona sticky in the sidebar and keep it in sync with the one in the popup - Block opening the sidebar on *.toneclone.ai - Fix bug and race condition in login/logout flow - Fix the status of the sidebar in the popup menu - Merge branch \'main\' of github.com:toneclone/toneclone - Truncate long filenames in writing samples - Fix add page and add selected text uploads to actually associate them with the current persona - Fix broken links in popup menu - Make persona sticky in the popup, will need to update writing sidebar later - Add sidebar spacing - Inject styles into sidebar, split into separate components - Merge branch \'main\' of github.com:toneclone/toneclone - Initialize API client in sidebar - Update lock file - Update lock file - Add home link, updated settings - Merge remote-tracking branch \'origin/main\' - Pop up refinements, fixed logged out layout - Add new routes to terraform - Minor fix for old ai-training page - Fix merge conflicts - Update the persona editor to handle writing samples, writing contexts, and voice evolution settings. Other minor clean up and fixing support for file associations and training markers on them - Add new popup design - Clean up the writing page a bit - Add more sub clients to make API interaction easier - Clean up the profile-editor and give it a routing path - Update terraform for new session endpoints - Fix the header active class on sub pages - Fix the HTTPClient in main.go - Mega merge... - Fix persona detail page rendering - Fix all the tests - Finish extension login/logout handling - Add the existing logged in path for the extension - Initial commit of new auth / session management - Merge pull request raycast#1 from toneclone/mknepprath/v0 - Prevent sidebar refresh on submit - Add TextArea to embed - Merge conflicts - Merge branch \'refs/heads/main\' into mknepprath/v0 - Linted, routing changes, etc - Don\'t cache index.html in Cloudfront because it\'s not versioned - Fix link to the writing page with a specific persona - Add a cmd/control+enter handler for easier submission - Add response streaming - Fix build errors - Add prompt only training and support for both prompt and model training on same persona - Merge branch \'refs/heads/main\' into mknepprath/v0 - Add an undo button to undo the most recent change from AI - Remove the chat features - Ignore .bak files in git - Removed sliders, added close button to sidebar, fixed type issues - Merge branch \'main\' into mknepprath/v0 - Add method and endpoints to associate profiles with personas - Merge branch \'main\' into mknepprath/v0 - Update profiles to be a freeform textbox instead of a map of key/value pairs - Add associations between files and personas and new endpoints to manage them, also add a new training endpoint to train on all untrained files - Popup work - Add a function to create a screenshot of the browser tab - Merge branch \'main\' into mknepprath/v0 - Fix auth config for extension to eliminate race condition and alternate Auth0 config - Init commit - Add polling when creating a new writing session to make sure we get the initial message and response loaded correctly - More prompt enhancements - Move the common axios library stuff into a new api-client lib file instead - Update the prompt building based on new framework - Add option for adding full pages to the training data - Make the filename for selected text uploads a bit more meaningful - Add method to grab selected text and add it as training data to a persona - Attempt to handle refresh tokens and kick to a login page when session expires - Add text upload route and fix unit tests - Add localhost:5173 to the accepted CORS origins for now for easier local testing of the frontend - Small fixes to make build happy, add error modal when can\'t load from backend, add persona and profile descriptionand fix bug with delete files - Fixes for the extension - Get extension working with auth and clean up a bug in AI writing page - More clean up of Supertokens -> Auth0 and fix a few small bugs with file uploads - A few more additions to .gitignore - Add example env.local - Frontend changes to migrate from Supertokens to Auth0 - Add backend changes for Auth0 migration - Terraform updates to migrate to Auth0 and clean up - Fix the website build - Initial commit
* Add toneclone extension - add old n8n to gitignore - Restore static prompt placeholders - Prepare Raycast extension for store submission - Update Raycast metadata assets and placeholder prompts - Polish ToneClone node for submission - Handle training uploads inside ToneClone node - Add ToneClone node tests and align client header - chore: ignore backup directories in .gitignore - chore: remove old n8n node structure files - chore: add .gitignore for build artifacts and development files - feat: migrate ToneClone n8n node to official 2025 CLI structure - Fix ToneClone test import to avoid dist dependency - feat: prepare Raycast extension for store submission - fix: resolve Raycast knowledge card loading and persona switching issues - Merge pull request #236 from toneclone/jf-android-pt-2 - feat: complete Raycast migration from profiles to knowledge cards - feat: add IsEnabled and DisabledAt fields to KnowledgeCardResponse - fix: resolve JWT authentication tests and frontend build issues - Resolve merge conflicts with main branch - feat: Complete frontend rename from Profile to KnowledgeCard - Rename Profile to KnowledgeCard throughout codebase - Merge pull request #234 from toneclone/jf-billing-fixes - chore(backend): use Go 1.24-alpine in Dockerfile to match go.mod (fix prod deploy build) - chore(stripe): guard against missing invoice customer - Merge pull request #232 from toneclone/jf-billing-fixes - fix: Use proper plan constants for trial cancellation - fix: Resolve TypeScript build errors after merge - Merge branch \'main\' into jf-billing-fixes - fix: Resolve backend test failures and DynamoDB field naming inconsistencies - Merge pull request #231 from toneclone/codex/update-prompt-templates-for-missing-data-policy - Fix backend test failures - feat: add missing data policy placeholders - Update cancellation email text - Improve payment failed email system - Fix trial-to-Pro upgrade and Stripe time handling - Merge pull request #230 from toneclone/jf-remove-fine-tuning-test - fix: resolve OpenAI provider test failures with mock client issues - feat: implement comprehensive payment failed user handling - Merge pull request #229 from toneclone/codex/add-query-logging-to-toneclone - Implement comprehensive subscription expiration handling - Merge pull request #220 from toneclone/codex/update-api-endpoints-for-renaming - feat(logging): unify query response logs to variants envelope and add schema/version metadata; stop shallow copying requests\n\n- Exclude attachments from QueryRequest JSON; marshal request directly\n- Add LogSchemaVersion and RequestFormat on initial log write\n- Log responses as JSON envelope with variants[] and done for single/streaming/multi-variant\n- Add ResponseFormat and UpdatedAt on update\n- Update tests to assert JSON envelope in logs - Fix cancellation banner not appearing - chore: ignore Go build caches; remove cached test artifacts from index - test: make DynamoDB mocks resilient to query log writes; allow QUERYLOG PutItem/UpdateItem when unmocked to avoid test flakiness\n\n- Add panic-safe handling in PutItem/UpdateItem to treat QUERYLOG writes as successful no-ops when no expectations are set\n- Remove broad default expectations to ensure test-specific Run hooks still fire\n- Verified all backend tests pass with ENVIRONMENT=test - Resolve merge conflicts: Update terminology from \'profile\' to \'Knowledge Card\' - Merge branch \'codex/add-query-logging-to-toneclone\' of github.com:toneclone/toneclone into codex/add-query-logging-to-toneclone - Merge pull request #228 from toneclone/codex/rename-voice-evolution-to-smartstyle - Update marketing page - rename AI Tell filtering to StyleGuard - Fix TypeScript build error - remove extra closing brace - Resolve merge conflicts in writing components - billing: scheduled downgrade detection and banners - Downgrade scheduling: use subscription schedules; detect existing schedule; create then update phases; anchor phase1 start to current_period_start; phase1 iterations=1 then switch to lower price; end_behavior=release - Merge pull request #225 from toneclone/jf-document-handling - fix: Critical fixes to address CI failures and Claude feedback - Merge pull request #224 from toneclone/codex/add-ui-for-prompt-presets-in-frontend - Fix frontend test failures after usePromptPresets hook implementation - Downgrade UX: personalize impact; caps old→new when under; usage→cap when over; conditional warning/info icon; support Priority→Standard row; neutral data handling copy; renamed button to ‘Confirm downgrade for next cycle’; wired usage from user + entitlements; annual Pro opens upgrade dialog and closes downgrade; PostHog reason tracking - Implement shared usePromptPresets hook for performance optimization - Fix TypeScript null safety issues in WritingStarter - Fix remaining \'0\' display issue in WritingStarter - Fix duplicate key warnings and infinite loading cycle - Billing: add GSI retry in findOrCreateUserByStripeCustomer; safeguard NO_PLAN recovery in subscription.updated; ensure uppercase DynamoDB attrs; Stripe proration immediate invoicing; richer checkout logging; frontend 402 handling + upgrade/downgrade flows; add TIME_ADJUSTMENT_CHANGES.md - chore(android): rename voiceEvolution to smartStyle - Log query responses asynchronously - Log user queries and responses - fix: Address high priority code review feedback - Merge pull request #226 from toneclone/codex/rename-profiles-to-knowledge-in-frontend - Merge pull request #227 from toneclone/codex/update-profiles-to-knowledge-in-marketing-site - Rename Voice Evolution feature to SmartStyle - chore: rename profiles to knowledge cards in marketing copy - fix: update knowledge card label in extension - Merge pull request #222 from toneclone/codex/rename-profiles-to-knowledge-in-android-app - deps: Add document processing libraries for PDF and DOCX support - feat: Implement robust document processing with proper text extraction - fix: update keyboard repository for knowledge URIs - Rename profiles to knowledge in Android app - fix: update knowledge card field mappings - Add prompt preset buttons to writing pages - Merge pull request #221 from toneclone/codex/rename-profiles-to-knowledge-in-raycast-extension - Merge pull request #223 from toneclone/codex/rename-profiles-to-knowledge-in-n8n-extension - feat(n8n): rename profiles to knowledge cards - Rename profiles to knowledge in Android app - Merge pull request #219 from toneclone/codex/fix-handling-of-rejected-stripe-events - Rename profiles to knowledge in Raycast extension - refactor: use knowledgeCardID param - Handle stale Stripe webhook processing - Rename profile endpoints to knowledge - fix stripe event retry handling - Merge pull request #218 from toneclone/jf-built-in-personas - Fix Codex review feedback: security, error handling, and test imports - Add placeholder key to test script - Fix TypeScript build errors and improve type safety - Fix getPlanEntitlements warning in frontend tests - fix: Use atomic DynamoDB ADD operation for API key usage tracking - Fix frontend test failures and linting errors - Add built-in persona support to CLI - Fix Raycast profile loading errors for built-in personas - Add built-in persona support to n8n client - fix: handle built-in personas properly in Raycast extension - feat: add built-in personas to Raycast generate text commands - Merge pull request #216 from toneclone/jf-prod-infra - Fix missing SendGrid environment variables in GitHub Actions workflow - feat: replace hardcoded built-in personas with dynamic API calls - Merge pull request #214 from toneclone/jf-banned-words - fix: Resolve StyleGuard word update 404 errors - security: Remove test_training_simple.go to prevent real OpenAI API calls - docs: Add StyleGuard feature description to PRD - fix: Update function signatures and remove legacy aliases - feat: Complete StyleGuard rebranding from \'banned words\' - Merge pull request #213 from toneclone/jf-client-metrics - Fix critical client tracking issues - Merge pull request #212 from toneclone/jf-add-marketing-metrics - Update marketing package-lock.json after PostHog installation - Add client tracking to Android app and keyboard module - Add PostHog analytics to marketing site - Update devx config - Merge remote-tracking branch \'origin/main\' into jf-client-metrics - Merge pull request #211 from toneclone/jf-android-pt-2 - Update Android app to use backend built-in personas API - feat: add client tracking to n8n node using X-Client header - Improve API key service security and code quality - refactor: remove unused getClientVersion function - feat: add client tracking to CLI using X-Client header - feat: replace all toneclone.com domain references with toneclone.ai - Merge main into jf-android-pt-2 branch - Add persona_routes.go - Restore valid built-in persona tests that were accidentally removed - feat: Add frontend client tracking with query parameters - Add missing personas package to fix CI compilation - feat: Add client tracking middleware for PostHog analytics - Fix test failures in concurrent and rate limiting tests - Fix API key authentication with scalable GSI-based lookup - Merge pull request #209 from toneclone/jf-raycast-pt2 - Refactor Raycast extension with security improvements and better architecture - Address security concerns from code review - Merge pull request #210 from toneclone/codex/mock-openai-endpoint-in-tests - Mock OpenAI fine-tuning tests - Fix test issues and improve validation - Merge branch \'main\' into jf-raycast-pt2 - Add comprehensive Raycast extension with multiple ToneClone commands - Merge pull request #208 from toneclone/jf-frontend-cleanup - Merge remote-tracking branch \'origin/main\' into jf-frontend-cleanup - Enhance Raycast extension with persona icons and simplified auth - Fix live UI update after persona deletion - Merge pull request #207 from toneclone/jf-fix-onboarding - Add SendGrid environment variables to Terraform configuration - Fix email URLs and add missing Stripe customer validation - Refactor email service to use Go templates and environment variables - Resolve merge conflicts with main branch - Fix failing tests and TypeScript build errors - Merge pull request #206 from toneclone/jf-client-cleanup - Add DynamoDB field naming conventions to prevent data conflicts - Fix Cloudflare Pages deployment file size issue for marketing site - Fix persona enabled/disabled flickering by standardizing DynamoDB field names - Fix TypeScript build error: remove unused Code import - Add comprehensive CLI marketing page and update frontend apps listing - Fix devx config - Merge pull request #205 from toneclone/jf-fix-devx-config - Address PR feedback with improved error handling and validation - Fix devx port conflicts by replacing background processes with named pipes - Merge pull request #204 from toneclone/jf-frontend-cleanup - Change model reference in test - Remove TypeScript build info from version control - Enhance banned words UI with bundle types and normalization settings - Optimize streaming banned word replacement with smart buffering - Fix flaky test issues that caused CI failures - Fix streaming banned word replacement with smart buffering - Implement no-plan architecture for post-email-confirmation users - Merge pull request #203 from toneclone/jf-fix-onboarding - Merge remote-tracking branch \'origin/main\' into jf-fix-onboarding - Improve user signup flow with dedicated success page - Merge pull request #202 from toneclone/jf-android-pt-2 - Fix persona profiles endpoint to return 200 with empty array instead of 404 - Prepare CLI for open source release - Implement efficient batch file upload with integrated persona association - Update ResponseScreen header to match MainScreen branding - Fix profile loading for built-in personas - Add multiple profile support to CLI generate command - Enable multi-variant feature with settings toggle - Update API domain from toneclone.com to toneclone.ai - Merge pull request #200 from toneclone/jf-prod-infra - Remove build artifacts - Fix file association updates to work for all training scenarios - Fix Cron job to update persona with fine-tuned model on completion - Merge pull request #198 from toneclone/jf-prod-infra - Remove unused encoding/base64 import from supabase_jwt.go - Fix combine Lambda timeout issue - Fix App Runner IAM policy for Step Function access - Merge pull request #196 from toneclone/jf-prod-infra - Fix GPT-5 parameter compatibility in combine Lambda - Merge pull request #194 from toneclone/jf-frontend-cleanup - Merge pull request #192 from toneclone/jf-prod-infra - Fix Lambda deployment by reverting to always_run triggers - Merge pull request #190 from toneclone/jf-prod-infra - Fix working directory issue in Lambda build scripts - Merge pull request #188 from toneclone/jf-prod-infra - Fix shell compatibility: Use bash interpreter for pipefail support - Merge pull request #186 from toneclone/jf-prod-infra - Address PR feedback: Fix timeout, build triggers, and error handling - Fix Terraform formatting - Fix Lambda builds and add build verification to CI - Merge remote-tracking branch \'origin/main\' into jf-prod-infra - Improve Lambda build process with better error handling and debugging - Merge pull request #185 from toneclone/jf-prod-infra - Fix API response field name expectations in test - Fix PostHog mock Enqueue method for Personal plan API access test - Implement API key regeneration with confirmation dialog - Fix backend tests for Personal plan API access change - Merge pull request #184 from toneclone/jf-prod-infra - Fix Next.js client component issues for CloudFlare Pages - Merge pull request #180 from toneclone/jf-update-marketing-site - Resolve merge conflicts with main - Merge pull request #182 from toneclone/jf-prod-infra - Remove setup files that never should\'ve been committed :( - Merge pull request #181 from toneclone/jf-prod-infra - Update to limit to main/prod branches - Fix Terraform plan check in CI validation - Fix Terraform security scan false positives - Fix marketing site CloudFlare build issues - Fix Terraform formatting for CI validation - Fix remaining nested interactive elements with asChild pattern - Fix HTML validity: remove nested interactive elements - Fix CloudFlare Pages Node.js compatibility for marketing site - Implement Claude\'s additional security and stability suggestions - Merge pull request #179 from toneclone/jf-prod-infra - Merge pull request #178 from toneclone/jf-android-pt-2 - Refactor marketing site to use shared components and improve content - SECURITY FIX: Address Claude PR feedback - Address Claude\'s PR feedback: improve code quality and add comprehensive tests - Update test workflows to run on both main and prod branches - Update production workflows to trigger on prod branch - Remove CloudFlare Pages domain creation to prevent conflicts - Fix CloudFlare Pages deployment issues - Improve UI color contrast and accessibility across keyboard and main app - Remove CloudFlare Pages import step from workflow - Add comprehensive GitHub Actions IAM policy - Fix output configuration for production deployment - Add CloudFlare Pages import step to deployment workflow - Add GitHub source configuration to CloudFlare Pages projects - Merge pull request #177 from toneclone/jf-android-pt-2 - Fix test compilation issues and add focused unit tests - Address high-priority PR feedback: Add comprehensive tests and real-time validation - Merge pull request #176 from toneclone/jf-update-models - Update training test to expect new default model gpt-4.1-mini-2025-04-14 - Fix CI test failures by preventing real OpenAI API calls during tests - Address PR feedback: Fix race conditions and add validation - Enhance AI prompt templates and training pipeline with advanced style profiling - Reorganize settings page structure for better UX - Implement hidden dev mode feature and UI improvements - Fix AWS provider configuration for GitHub Actions - Fix step-function.json path after merge from main - Merge remote-tracking branch \'origin/main\' into jf-prod-infra - Commit the step function definition - Fix step-function.json file path in training module - Fix test failures by updating FilterExpression field name case - Add non-sensitive terraform.prod.tfvars for GitHub Actions - Remove AWS profile from S3 backend config for GitHub Actions compatibility - Configure S3 backend for shared Terraform state - Handle App Runner service not in RUNNING state before deployment - Fix GitHub Actions App Runner deployment wait command - Fix Docker build context in GitHub Actions workflow - Add debugging for AWS credentials in GitHub Actions workflow - Merge pull request #174 from toneclone/jf-android-pt-2 - Update fine-tuning model to gpt-4.1-mini-2025-04-14 and fix styleProfile support - Fix AndroidTest compilation and runtime issues - Add a toneclone cli readme - Fix unit test compilation and implementation issues - Fix plans.json: revert personal plan popular flag and enable API access - Update marketing site with app links, favicon, and branding - Add comprehensive test coverage for persona functionality - Merge branch \'main\' of github.com:toneclone/toneclone - Merge pull request #175 from toneclone/jf-prod-infra - Fix compilation errors from Claude feedback implementation - Address critical security issues from PR review - Fix critical security and performance issues - Add production deployment workflows and CloudFlare Pages configuration - Add Android build artifacts and IDE files to gitignore - Add built-in personas with proper sorting and color support - Update logos and optimize launcher icons with adaptive padding - Update app logo to high-res version and fix launcher icons - Make label text sizes consistent with selector/button text - Complete profile reselection fix - consolidate rebuild logic - Fix profile reselection issue with signature-based rebuild logic - Add CloudFlare deployment script to frontend package.json - Update production infrastructure for CloudFlare Pages deployment - Add terraform.prod.tfvars to .gitignore to protect production secrets - Add plans.json file to backend Docker image to fix Stripe plan validation - Enhance .devx development environment with service logging and process management - Add .worktrees to gitignore - Simplify landing page: clean white background with logo, ToneClone text, and coming soon - Add simple landing page with ToneClone logo and coming soon message - Update package-lock.json for vaul@1.1.2 compatibility with React 19 - Fix marketing site React 19 compatibility - Remove whitespace around Android app header logo - Upgrade app logos with high-resolution ToneClone branding - Implement Supabase authentication with secure configuration management - Merge pull request #172 from toneclone/jf-add-billing - Merge pull request #173 from toneclone/jf-add-logins - Fix CI test failures - frontend TypeScript and backend mocks - Fix CI test failures - correct supabase import inconsistency - Implement code review improvements and comprehensive test suite - Fix backend CI test failures - Fix linting issues in OAuth authentication files - Implement Claude\'s PR feedback recommendations - Clean up debug logging from OAuth authentication flow - Enhance OAuth authentication with GitHub login and improved UX - Fix GitHub Actions test failures - Extend billing integration to persona and profile management components - Add billing-related enhancements to core components - Add draft limit warning system with progress bar and upgrade links - Enhance billing system with improved user management and Supabase integration - Clean up debug logging from Google OAuth implementation - Merge remote-tracking branch \'origin/main\' into jf-add-logins - Add Google OAuth authentication support - Merge pull request #171 from toneclone/jf-add-billing - Complete URL configuration and security logging fixes - Security fix: Replace fmt.Printf with log.Printf in critical route handlers - Fix URL configuration: remove hardcoded fallback URL from CORS - Address security and configuration feedback from PR review - Remove compiled binary from repository - Update .gitignore to exclude build artifacts and logs - Update marketing copy to remove \'no credit card required\' messaging - Fix TestHandleQueryWithBannedWords to work with new AI service architecture - Merge main into jf-add-billing branch - Remove binaries - Merge pull request #170 from toneclone/jf-openai-sdk - Fix OpenAI integration tests to skip in CI environment - Add Stripe billing integration with frontend payment flow - Add comprehensive training functions testing suite - Fix model support: Add gpt-4o-mini-2024-07-18 to supported models - Complete AI service integration and fix all test failures - Implement backend enforcement of plan limits with atomic usage tracking - Complete Deliverable 3.2: Refactor query routes and tests for AI service - Complete Deliverable 3.1: Initialize service in main.go with DI - Implement monthly usage tracking for draft limits - Complete Deliverable 2.3: Migrate fine-tuning operations - Update project todo list: Mark D2.2 as completed - Complete Deliverable 2.2: Enhanced Streaming Support - Complete Deliverable 2.1: OpenAI Provider with Responses API - Implement Customer Billing Portal Integration (Deliverable 6) - Implement comprehensive Stripe webhook processing with idempotent event handling - Update project todo list: Mark D1.2 as completed - Implement Deliverable 1.2: Service factory and provider registry - Update project todo list: Mark D1.1 as completed - Implement Deliverable 1.1: Provider-agnostic AI service interface - Implement Stripe Checkout Session API with isolated mock testing - Add Stripe integration with webhook endpoint and v82 SDK - Add Stripe environment variables to configuration example - Add plans configuration and update marketing pricing page - Add plans management system for billing entitlements - Add billing system foundations with user trials and plan management - Fix marketing site service setup in Devx - Merge pull request #169 from toneclone/jf-marketing - Update teh devx config - Add ToneClone marketing site with Next.js and shadcn/ui components - Merge pull request #168 from toneclone/jf-update-sign-up-flow - Fix TypeScript compilation errors to resolve CI build failures - Fix backend test failures and enhance filter expression consistency - Merge remote-tracking branch \'origin/main\' into jf-update-sign-up-flow - Merge pull request #167 from toneclone/jf-android-app-clean - feat: Add memory pressure handling for multi-variant response caching - security: Remove debug logging and improve IME security - feat: Add complete Android app with multi-variant AI response functionality - Fix final 3 frontend test failures - all tests now passing - Fix frontend test failures and improve test reliability - Enhance persona and writing components - Update frontend components and UI improvements - Fix banned words custom flag bug - Remove duplicate AI Tells Bundle and Banned Words sections - Fix banned words API authentication issues - Fix banned words API authentication issues - Add skeleton loader and improve writing canvas UX - Update navigation and routing for Apps/Integrations page - Add persona color customization and consistent avatar system - Enhanced persona management UI and writing flow improvements - Comprehensive UI improvements and new account management - Update sign-up flow: streamline onboarding and improve UX - Merge pull request #153 from toneclone/jf-add-deny-list - fix: Make test order-independent after LRU cache changes - Merge branch \'main\' into jf-add-deny-list - security: Address critical security and performance issues - test: Add comprehensive test coverage and fix CI failures - feat: Add AI Tells Bundle feature with loading indicators - feat: Improve banned words UX with latency warnings and better defaults - feat: Implement conditional buffering for optimal streaming performance - Update devx config for removing Auth0 - Merge pull request #165 from toneclone/jf-supabase-migration - Fix CI test failures: Add missing Supabase environment variables - Address Claude PR feedback: Security enhancements and ESLint improvements - Resolve merge conflicts with main branch - Complete Supabase JWT migration with comprehensive test coverage - feat: Add JWT authentication tests and deprecate Auth0 session tests - fix: Update persona validation test to use required name field - test: Add comprehensive JWT authentication test coverage - fix: Allow JWT authentication for API key management - fix: Make parentModel optional with default value for persona creation - fix: Enhance banned word spacing and punctuation preservation - feat: Complete banned words deny list implementation with streaming integration - fix: Support Auth0 user IDs in writing routes - fix: Add banned routes registration and fix test compilation - Add Supabase integration setup - Merge branch \'main\' into jf-add-deny-list - Merge pull request #164 from toneclone/jf-writing-ui - Fix CI test failures by mocking scrollIntoView globally - Suppress harmless test environment errors to fix CI - Fix CI test failures in WritingStarter component - Clean up failing tests to achieve reliable CI pipeline - Fix frontend CI test failures - localStorage parameter fixes - Clean up lint warnings in test files - Add comprehensive test coverage for document versioning and React components - Fix TypeScript compilation errors in writing-canvas.tsx - Merge branch \'main\' into jf-writing-ui - Fix ESLint warnings and improve code quality - Address Claude PR feedback - security and reliability improvements - Fix test failures and lint errors - Merge pull request #163 from toneclone/jf-raycast-plugin - Add comprehensive test suite and fix remaining ESLint warnings - test: Add comprehensive unit test suite for Raycast plugin - Add document versioning system and user preferences - fix: Address critical PR feedback issues - Complete writing UI integration with API and full functionality - fix: Address code review feedback for Raycast plugin - feat: Add complete Raycast plugin for ToneClone - Merge pull request #162 from toneclone/jf-n8n-module - Refactor writing interface with starter flow and enhanced canvas - Add comprehensive testing framework for ToneClone n8n module - Add training content submission to ToneClone n8n module - Add writing canvas feature with navigation and UI improvements - feat: Add n8n ToneClone integration node - Merge pull request #158 from toneclone/jf-api-part-2 - Address Claude\'s PR review feedback: improve test robustness and constants - Complete Group 6: Input Validation & Edge Cases with Critical Security Fix - Complete Group 5: Rate Limiting & Authentication Security - Token Rotation Race Conditions - Complete Group 5: Rate Limiting & Authentication Security Testing (3/4 sections) - Complete Group 4: Training Workflow Robustness Testing - Merge pull request #161 from toneclone/codex/update-handlequery-to-support-multiple-profile-ids - Hide invalid profile IDs - Fix failing concurrent operations tests in Group 3 AI testing - Allow multiple profile IDs for queries - Complete Group 3: AI Service Integration & Resilience Testing - New unit tests - Complete Group 2 persona profile association tests and mark Group 2 complete - pkg/types: add JSON round-trip and method tests for core types (Persona, associations, TrainingJob, FileMetadata, APIKey, User, Session) to establish baseline coverage and validate helper methods. - Complete Group 2: Persona Management Comprehensive Testing - pkg/training: add comprehensive tests for training job creation and persona-based job initiation; cover success and error paths using existing mocks; increase coverage to ~66% for package. - Complete Group 1 API testing: File Upload & Storage Testing - Complete Phase 4.1: Advanced Security Testing - Complete Phase 3: Workflow Integration Tests - feat: comprehensive writing routes test coverage with 10x improvement - Merge pull request #156 from toneclone/jf-api-part-2 - Address Claude\'s PR feedback - implement minor improvements - Fix all remaining ESLint errors (9 → 0 errors) - Fix GitHub Actions permissions and reduce ESLint errors - Fix frontend ESLint errors and PostHog integration issues - Merge pull request #157 from toneclone/add-claude-github-actions-1755540604470 - "Claude Code Review workflow" - "Claude PR Assistant workflow" - Complete Phase 2.9: Writing Sessions Tests with authentication fixes - Complete Phase 2.8: Training Management Tests - Complete Phase 2.7: AI Query & Generation Tests with Security Fixes - Complete Phase 2.6: Persona Management Tests with Critical Security Fix - Complete Phase 2.5: File Management Tests - Implement Phase 2.4: Comprehensive Profile Management Tests - Complete Phase 2.3: API Key Management Integration Tests - Add comprehensive ToneClone Backend API documentation - Implement comprehensive authentication and middleware testing (Phase 2.1) - Add optional non-streaming mode to query endpoint - Add tmp directories to gitignore - Remove tmp build artifacts from git tracking and add to gitignore - Add comprehensive test infrastructure for API endpoint testing - Merge pull request #154 from toneclone/jf-update-devx-config - Merge branch \'main\' of github.com:toneclone/toneclone into jf-update-devx-config - Update devx config - feat: Implement Phase 3 of Not-Allowed Filter System - Automatic Output Rewriting Pipeline - feat: Implement Phase 2 of Not-Allowed Filter System - LLM prompt integration - Merge pull request #152 from toneclone/cursor/add-unit-tests-for-middleware-package-1905 - Add middleware package tests with comprehensive auth middleware coverage - Merge pull request #149 from toneclone/jf-toneclone-cli - More small fixes for frontend tests - Fix dependencies - Move linting to just info for now - Add frontend tests, add them to the github action - Merge pull request #150 from toneclone/cursor/fix-backend-tests-workflow-and-coverage-path-fe37 - Fix Codecov coverage file path in backend tests workflow - Add backend test Github actions - Merge pull request #147 from toneclone/jf-toneclone-cli - Merge pull request #148 from toneclone/cursor/fix-global-directory-change-in-tests-5942 - Refactor template path resolution using runtime.Caller for dynamic paths - Complete backend testing infrastructure with 100% test success rate - Merge pull request #145 from toneclone/jf-toneclone-cli - Hide future binaries in gitignore - Remove the binary from the repo - Merge pull request #146 from toneclone/cursor/fix-rate-limit-token-consumption-bug-fad0 - Fix rate limit remaining requests calculation method - Add API key management routes and frontend components - Add backend authentication fixes and feature planning documentation - Complete ToneClone CLI implementation with all 8 deliverables - Merge pull request #144 from toneclone/jf-setup-tooling - Add some basic claude tooling - Merge branch \'main\' of github.com:toneclone/toneclone - Fix some devx config - Merge pull request #143 from toneclone/one-more-time - Fixes for localhost cookie management - Merge pull request #142 from toneclone/jf-add-new-devx - Some fixes and clean up - Merge pull request #141 from toneclone/jf-add-new-devx - Update devx config - Add auth0 callback handler script - Add some more devx config - Some clean up in process of adding devx - Some fixes for handling the toneclone-api.jonefox.com domain - Add knowledge management to the popup menu instead. Closes #101 - Handle logged out status when running inline edit prompts. Closes #132 - Add login menu on Tone Clone buttons when the user is no longer logged in - Add simple script to help with version management of the extension - Fix smart fill integration for inline editing - Update the browser extension icon in the popup and right click menus - Minor fixes to make the build happy - Add initial support for Outlook - Add a simple privacy policy since we need one for the Chrome Web Store submission - Update the text area button to use new logo - Add support for multiple API domain aliases - Clean up and simplify a few small things in the onboarding flow - Fix stylesheet reference - Fix sidebar in Brave browser - Merge branch \'main\' of github.com:toneclone/toneclone - Update createWritingSession call to use service worker - Fix white space issues in selection verification - Update color theme, icons - Fix hiding the toolbar if the selection goes away without a click - Add basic Twitter/X support and get Gmail toolbar working - Add WIP twitter integration - Add the URL and potentially some additional context to the prompt. Closes #123 - Change the icon to reset the sidebar session and add a confirmation dialog box. Closes #120 and closes #119 - Filter out and replace characters. Fixes #114 - Fix bug with the sidebar, add some build debug logs, and don\'t include content_script.js on gmail pages since it gets bundled with gmail.js - Fix the merge and related bugs - Merge pull request #130 from toneclone/jf-wip-inline-editing - Merge branch \'jf-wip-inline-editing\' of github.com:toneclone/toneclone into jf-wip-inline-editing - Small bug fix for opening the sidebar - Merge pull request #129 from toneclone/jf-wip-inline-editing - Merge branch \'main\' into jf-wip-inline-editing - Fix bug with multiple compose windows. - Move gmail features to their own script. Closes #127 - Add the handler to the power button to add a modal to disable Tone Clone. Also adds a list of disabled sites in the popup menu where you can remove sites from the disabled list. Closes #125 - Replace old Tone Clone button menu with the new one - Add caching and request de-duping to presets service - Fix minor typos in prompt template - Pending history icon insertion and minor fixes on prompt history handling - finish prompt history implementation - Fix bug with sumamry modal on loading screen and add caching to email summaries - Initial summarize thread implementation and add emails as writing samples - Wire up the menu features - Wire up suggested preset replies - Add hot key execution to Gmail - Fix placement issues with the prompt window - Make the prompts actually work - Make smart replies actually work and add opening animation for prompt window - Use loaded presets instead of hard coded onees - Swap icon and text order on the buttons - WIP prompt menu - More work on the menu - WIP Gmail Integration - hover on button - Add some example places to get samples in training-intro page. Closes #110 - Add a glowing circle around the Tone Clone icon in the textarea to make it more obvious clicking it is the next step. Closes #113 - Update the selected persona when it changes in another component - Migration to services and background-services-client - WIP form fills and prompt suggestions - Fix merge conflicts - Add a bunch of small changes from product feedback session on onboarding - Update color theme - Don\'t delete the extension folder when deploying the frontend - Add initial version of hotkey trigger from textareas on the page directly. - Fix PostHog CSP errors for tracking events in the extension. Closes #99 - Fix -\'s in extractor autocomplete matching - Switch to using AWS App Runner instead of API Gateway and Lambda for the API. This should be a bit faster and give us more control, but also fixes streaming responses in preview environment. - Add a reset session button to the sidebar to reset everything. Closes #63 - Don\'t update the prompt placeholder every document change, just update it if there is or isn\'t document text - Add support for a summarized email thread in Gmail as an extractor/smart fill - Allow pressing enter to save the name when creating a new persona and make sure we update the sample count and goal when selecting new personas in the popup menu - Add auto training at sample levels 1, 3, 10, 20, and 50 - Change persona output to be levels instead - Add \'calm it down\' and \'make it spicier\' buttons - Add support for Slack and append a space after autocompleted extractors - Rename extractors \'smart fill\' and add multiple placeholders for prompt text including ones that use @\'s, different ones for starter vs someone who\'s used it a bit, and different ones for doc revisions vs new doc draft prompts - Add support for Google Voice text messages - Fix @ extractor handling - Add basic document history feature - Add a basic prompt history feature - Add multiple levels of goals for writing samples. - Add error message for Safari since we don\'t support it. - Be a bit smarter about adding our icons to pages to make things more performant. Closes #78 - Some minor clean up to the build and put some bounds on when we insert the Tone Clone icon into pages. Closes #77 - Special case training data being added from the training-intro page and just show them a helpful message instead of actually adding it. Closes #98 - Don\'t show the personas in the sidebar if they only have 1. Closes #96 and closes #97 - Change the order of the onboarding flow to make the writing section 2nd instead of last. Closes #95 - Finish new onboarding flow. Closes #81, closes #86, closes #83 - WIP new onboarding flow - Don\'t add the sidebar to a page until we try to open it. Closes #76 - Add ability to upload and paste writing samples in the popup-menu in the extension. Closes #87 and closes #88 - Simplify the right click context menu text and make them more distinct so they\'re easy to scan. Closes #80 - Add screenshots to extension installation page. Detect if they don\'t have personas yet and direct them to persona picker in extension popup (if on toneclone or not). Closes #72 and closes #82 - Add a way to detect when the extension is installed on the install extension page. Both if it\'s already installed and if it is actively installed at the time. Closes #75 - Add a pick-persona page (accessible if you don\'t have any personas yet). Closes #73 and closes #74 - Update sidebar auth styles - Add support for markdown files - Draggable sidebar - Hook up context manager interactions - Merge branch \'main\' of github.com:toneclone/toneclone - Add support for extracting diff summaries and commit messages on compare pages in GitHub, and add a preset for generating Pull Requests - Merge remote-tracking branch \'origin/main\' - Add context manager to sidebar - Only show the add from library option in the persona editor if there are new files that aren\'t already added to the persona - Fix CSRF token cookie issue with preview domains - Refactor the create initial persona code, make sure it\'s on both the welcome page and the intro to training page, and default Voice Evolution to be on for new personas by default - Bold the persona name in extension popup to make it more clear, change the copy button in sidebar to be copy and close so it\'s not a surprise to users, and try to make writing contexts more intuitive in the persona editor - For now just log CSRF failures, don\'t actually block. - Strip console.log from production builds - Add CSRF tokens to prevent attacks. Closes #21 - Move writer/persona and context inline #32 - Merge remote-tracking branch \'origin/main\' - Move writer/persona and context inline #32 - Remove background on icons and make the textarea icon larger - minor clean up for frontend build - Add nicer save dialog and delete option for query presets. Closes #56. Closes 5 - Allow sidebar prompt textfield to autoexpand. Closes #80 - Fix formatting when copying existing text from content editable elements to the textarea in the sidebar. - Add URL filter list for query presets and add a few more static ones for emails. - Add right click menu option to send selected text to the document in Tone Clone - Add right click context menu to add selected text to the prompt. - Add right click menu on selected to text to add the text to a persona as a writing sample - Fix line breaks when sending text to contenteditable elements - Add training intro page, getting started menu item, and update links in welcome page. Closes #62 - Add support for content editable elements and fix URL filtering for extractors. Closes #64. - Minor clean up and word smithing for clarity from walkthrough with Katie - Add basic version of extractors - Add query preset API endpoints to API Gateway - Move prompts to Golang templates and split out different ones for updating a doc vs creating one from scratch. Closes #57 - Simplify extension detection - Add a new metrics.toneclone.ai to proxy PostHog requests and add PostHog to browser extension. Closes #47 - Add a little banner to suggest installing the extension if they don\'t have it yet. Closes #44 - Add a welcome page for new users who just signed up. Closes #45 - Add script to deploy extension - Add option for no context/profile - Make the sidebar icons actually work - Add ability to save prompt presets, make them dynamic, and make them actually work. Closes #53 - Add voice evolution support in the extension. Closes #23 - Fix small build error - Fix training bug with trainingStatus. Closes #27 - Add a new persona type for untrained personas - Minor fixes for persona editor page - Add a welcome blurb to the popup. Closes #12 - Add missing background script - Make persona sticky to the domain/site. Closes #42 - Add Posthog to website. Closes #46 - Fix the sidebar close button and other small UI tweaks - Broadcast auth changes to all existing injected sidebars. Closes #20 - Add a message when opening the ToneClone extension on a ToneClone.ai site. Closes #43 - Hook up add persona button in popup - Fix AI generated writing session titles and auto-select of persona on new session - More buttons in sidebar, lots more buttons - Profile -> Context for sidebar dropdown - Writer and profile side-by-side in sidebar - Add training in progress message to popup. - Add new persona from popup - Upload success/fail styles, submit icon change - Upload success/fail styles, submit icon change - Allow writing with untrained personas. Closes #13 and Closes #41. Also fixes a few small bugs in ai-writing.tsx (infinite polling and failing to fetch profiles if no persona is selected). - Wire up the undo button. Closes #14 - Merge - Add extractors examples - Sidebar layout and buttons - Handle 0 and 1 personas use cases. Closes #10 - Don\'t show double spinners when submitting samples from the extension. Just show a spinner on the one you click and show the other as disabled. Closes #8 - Don\'t show the settings icon in the popup menu if the user is logged out. Closes #11 - Disable add selected text button if no text is selected. Fixes #16 - Fix the toggleSidebar handler - Clean up the workflow a little with the sidebar, page, and menu interactions when finishing writing - Sync content between target textarea and the sidebar - Merge branch \'main\' of github.com:toneclone/toneclone - Add icon to text areas - Buttons -> ActionIcons - Add skeleton loader - Remove sidebar debug auto-toggling - Add copy button to sidebar + loaderProps for buttons - Add background / async training. Closes #25 - Fix minor bug with showing Add from Library button as disabled - Add metric events to the training lambas. Closes #22 - Fix broken tests - De-dupe and reorganize structs and constants between packages - Reorganize golange code into one main folder - Add posthog to backend API calls - Adds voice evolution to the website writing interface and closes #24. Also adds source tracking to writing samples to know how the sample got added (website file upload, extension add page, voice evolution on website, etc). - Update sidebar layout and styles - Make the persona sticky in the sidebar and keep it in sync with the one in the popup - Block opening the sidebar on *.toneclone.ai - Fix bug and race condition in login/logout flow - Fix the status of the sidebar in the popup menu - Merge branch \'main\' of github.com:toneclone/toneclone - Truncate long filenames in writing samples - Fix add page and add selected text uploads to actually associate them with the current persona - Fix broken links in popup menu - Make persona sticky in the popup, will need to update writing sidebar later - Add sidebar spacing - Inject styles into sidebar, split into separate components - Merge branch \'main\' of github.com:toneclone/toneclone - Initialize API client in sidebar - Update lock file - Update lock file - Add home link, updated settings - Merge remote-tracking branch \'origin/main\' - Pop up refinements, fixed logged out layout - Add new routes to terraform - Minor fix for old ai-training page - Fix merge conflicts - Update the persona editor to handle writing samples, writing contexts, and voice evolution settings. Other minor clean up and fixing support for file associations and training markers on them - Add new popup design - Clean up the writing page a bit - Add more sub clients to make API interaction easier - Clean up the profile-editor and give it a routing path - Update terraform for new session endpoints - Fix the header active class on sub pages - Fix the HTTPClient in main.go - Mega merge... - Fix persona detail page rendering - Fix all the tests - Finish extension login/logout handling - Add the existing logged in path for the extension - Initial commit of new auth / session management - Merge pull request #1 from toneclone/mknepprath/v0 - Prevent sidebar refresh on submit - Add TextArea to embed - Merge conflicts - Merge branch \'refs/heads/main\' into mknepprath/v0 - Linted, routing changes, etc - Don\'t cache index.html in Cloudfront because it\'s not versioned - Fix link to the writing page with a specific persona - Add a cmd/control+enter handler for easier submission - Add response streaming - Fix build errors - Add prompt only training and support for both prompt and model training on same persona - Merge branch \'refs/heads/main\' into mknepprath/v0 - Add an undo button to undo the most recent change from AI - Remove the chat features - Ignore .bak files in git - Removed sliders, added close button to sidebar, fixed type issues - Merge branch \'main\' into mknepprath/v0 - Add method and endpoints to associate profiles with personas - Merge branch \'main\' into mknepprath/v0 - Update profiles to be a freeform textbox instead of a map of key/value pairs - Add associations between files and personas and new endpoints to manage them, also add a new training endpoint to train on all untrained files - Popup work - Add a function to create a screenshot of the browser tab - Merge branch \'main\' into mknepprath/v0 - Fix auth config for extension to eliminate race condition and alternate Auth0 config - Init commit - Add polling when creating a new writing session to make sure we get the initial message and response loaded correctly - More prompt enhancements - Move the common axios library stuff into a new api-client lib file instead - Update the prompt building based on new framework - Add option for adding full pages to the training data - Make the filename for selected text uploads a bit more meaningful - Add method to grab selected text and add it as training data to a persona - Attempt to handle refresh tokens and kick to a login page when session expires - Add text upload route and fix unit tests - Add localhost:5173 to the accepted CORS origins for now for easier local testing of the frontend - Small fixes to make build happy, add error modal when can\'t load from backend, add persona and profile descriptionand fix bug with delete files - Fixes for the extension - Get extension working with auth and clean up a bug in AI writing page - More clean up of Supertokens -> Auth0 and fix a few small bugs with file uploads - A few more additions to .gitignore - Add example env.local - Frontend changes to migrate from Supertokens to Auth0 - Add backend changes for Auth0 migration - Terraform updates to migrate to Auth0 and clean up - Fix the website build - Initial commit * Clean up Raycast TypeScript build * Align Raycast prefs typing with generated definitions * Update ToneClone extension dependencies and metadata - Upgrade @raycast/utils to version 2.2.0 - Add @raycast/eslint-plugin as a dependency - Update @raycast/eslint-config to version 2.1.1 - Bump esbuild packages to version 0.25.10 - Standardize subtitles in package.json for ToneClone commands * Update CHANGELOG.md and optimise images --------- Co-authored-by: Per Nielsen Tikær <per@raycast.com> Co-authored-by: raycastbot <bot@raycast.com>
* Add toneclone extension - add old n8n to gitignore - Restore static prompt placeholders - Prepare Raycast extension for store submission - Update Raycast metadata assets and placeholder prompts - Polish ToneClone node for submission - Handle training uploads inside ToneClone node - Add ToneClone node tests and align client header - chore: ignore backup directories in .gitignore - chore: remove old n8n node structure files - chore: add .gitignore for build artifacts and development files - feat: migrate ToneClone n8n node to official 2025 CLI structure - Fix ToneClone test import to avoid dist dependency - feat: prepare Raycast extension for store submission - fix: resolve Raycast knowledge card loading and persona switching issues - Merge pull request raycast#236 from toneclone/jf-android-pt-2 - feat: complete Raycast migration from profiles to knowledge cards - feat: add IsEnabled and DisabledAt fields to KnowledgeCardResponse - fix: resolve JWT authentication tests and frontend build issues - Resolve merge conflicts with main branch - feat: Complete frontend rename from Profile to KnowledgeCard - Rename Profile to KnowledgeCard throughout codebase - Merge pull request raycast#234 from toneclone/jf-billing-fixes - chore(backend): use Go 1.24-alpine in Dockerfile to match go.mod (fix prod deploy build) - chore(stripe): guard against missing invoice customer - Merge pull request raycast#232 from toneclone/jf-billing-fixes - fix: Use proper plan constants for trial cancellation - fix: Resolve TypeScript build errors after merge - Merge branch \'main\' into jf-billing-fixes - fix: Resolve backend test failures and DynamoDB field naming inconsistencies - Merge pull request raycast#231 from toneclone/codex/update-prompt-templates-for-missing-data-policy - Fix backend test failures - feat: add missing data policy placeholders - Update cancellation email text - Improve payment failed email system - Fix trial-to-Pro upgrade and Stripe time handling - Merge pull request raycast#230 from toneclone/jf-remove-fine-tuning-test - fix: resolve OpenAI provider test failures with mock client issues - feat: implement comprehensive payment failed user handling - Merge pull request raycast#229 from toneclone/codex/add-query-logging-to-toneclone - Implement comprehensive subscription expiration handling - Merge pull request raycast#220 from toneclone/codex/update-api-endpoints-for-renaming - feat(logging): unify query response logs to variants envelope and add schema/version metadata; stop shallow copying requests\n\n- Exclude attachments from QueryRequest JSON; marshal request directly\n- Add LogSchemaVersion and RequestFormat on initial log write\n- Log responses as JSON envelope with variants[] and done for single/streaming/multi-variant\n- Add ResponseFormat and UpdatedAt on update\n- Update tests to assert JSON envelope in logs - Fix cancellation banner not appearing - chore: ignore Go build caches; remove cached test artifacts from index - test: make DynamoDB mocks resilient to query log writes; allow QUERYLOG PutItem/UpdateItem when unmocked to avoid test flakiness\n\n- Add panic-safe handling in PutItem/UpdateItem to treat QUERYLOG writes as successful no-ops when no expectations are set\n- Remove broad default expectations to ensure test-specific Run hooks still fire\n- Verified all backend tests pass with ENVIRONMENT=test - Resolve merge conflicts: Update terminology from \'profile\' to \'Knowledge Card\' - Merge branch \'codex/add-query-logging-to-toneclone\' of github.com:toneclone/toneclone into codex/add-query-logging-to-toneclone - Merge pull request raycast#228 from toneclone/codex/rename-voice-evolution-to-smartstyle - Update marketing page - rename AI Tell filtering to StyleGuard - Fix TypeScript build error - remove extra closing brace - Resolve merge conflicts in writing components - billing: scheduled downgrade detection and banners - Downgrade scheduling: use subscription schedules; detect existing schedule; create then update phases; anchor phase1 start to current_period_start; phase1 iterations=1 then switch to lower price; end_behavior=release - Merge pull request raycast#225 from toneclone/jf-document-handling - fix: Critical fixes to address CI failures and Claude feedback - Merge pull request raycast#224 from toneclone/codex/add-ui-for-prompt-presets-in-frontend - Fix frontend test failures after usePromptPresets hook implementation - Downgrade UX: personalize impact; caps old→new when under; usage→cap when over; conditional warning/info icon; support Priority→Standard row; neutral data handling copy; renamed button to ‘Confirm downgrade for next cycle’; wired usage from user + entitlements; annual Pro opens upgrade dialog and closes downgrade; PostHog reason tracking - Implement shared usePromptPresets hook for performance optimization - Fix TypeScript null safety issues in WritingStarter - Fix remaining \'0\' display issue in WritingStarter - Fix duplicate key warnings and infinite loading cycle - Billing: add GSI retry in findOrCreateUserByStripeCustomer; safeguard NO_PLAN recovery in subscription.updated; ensure uppercase DynamoDB attrs; Stripe proration immediate invoicing; richer checkout logging; frontend 402 handling + upgrade/downgrade flows; add TIME_ADJUSTMENT_CHANGES.md - chore(android): rename voiceEvolution to smartStyle - Log query responses asynchronously - Log user queries and responses - fix: Address high priority code review feedback - Merge pull request raycast#226 from toneclone/codex/rename-profiles-to-knowledge-in-frontend - Merge pull request raycast#227 from toneclone/codex/update-profiles-to-knowledge-in-marketing-site - Rename Voice Evolution feature to SmartStyle - chore: rename profiles to knowledge cards in marketing copy - fix: update knowledge card label in extension - Merge pull request raycast#222 from toneclone/codex/rename-profiles-to-knowledge-in-android-app - deps: Add document processing libraries for PDF and DOCX support - feat: Implement robust document processing with proper text extraction - fix: update keyboard repository for knowledge URIs - Rename profiles to knowledge in Android app - fix: update knowledge card field mappings - Add prompt preset buttons to writing pages - Merge pull request raycast#221 from toneclone/codex/rename-profiles-to-knowledge-in-raycast-extension - Merge pull request raycast#223 from toneclone/codex/rename-profiles-to-knowledge-in-n8n-extension - feat(n8n): rename profiles to knowledge cards - Rename profiles to knowledge in Android app - Merge pull request raycast#219 from toneclone/codex/fix-handling-of-rejected-stripe-events - Rename profiles to knowledge in Raycast extension - refactor: use knowledgeCardID param - Handle stale Stripe webhook processing - Rename profile endpoints to knowledge - fix stripe event retry handling - Merge pull request raycast#218 from toneclone/jf-built-in-personas - Fix Codex review feedback: security, error handling, and test imports - Add placeholder key to test script - Fix TypeScript build errors and improve type safety - Fix getPlanEntitlements warning in frontend tests - fix: Use atomic DynamoDB ADD operation for API key usage tracking - Fix frontend test failures and linting errors - Add built-in persona support to CLI - Fix Raycast profile loading errors for built-in personas - Add built-in persona support to n8n client - fix: handle built-in personas properly in Raycast extension - feat: add built-in personas to Raycast generate text commands - Merge pull request raycast#216 from toneclone/jf-prod-infra - Fix missing SendGrid environment variables in GitHub Actions workflow - feat: replace hardcoded built-in personas with dynamic API calls - Merge pull request raycast#214 from toneclone/jf-banned-words - fix: Resolve StyleGuard word update 404 errors - security: Remove test_training_simple.go to prevent real OpenAI API calls - docs: Add StyleGuard feature description to PRD - fix: Update function signatures and remove legacy aliases - feat: Complete StyleGuard rebranding from \'banned words\' - Merge pull request raycast#213 from toneclone/jf-client-metrics - Fix critical client tracking issues - Merge pull request raycast#212 from toneclone/jf-add-marketing-metrics - Update marketing package-lock.json after PostHog installation - Add client tracking to Android app and keyboard module - Add PostHog analytics to marketing site - Update devx config - Merge remote-tracking branch \'origin/main\' into jf-client-metrics - Merge pull request raycast#211 from toneclone/jf-android-pt-2 - Update Android app to use backend built-in personas API - feat: add client tracking to n8n node using X-Client header - Improve API key service security and code quality - refactor: remove unused getClientVersion function - feat: add client tracking to CLI using X-Client header - feat: replace all toneclone.com domain references with toneclone.ai - Merge main into jf-android-pt-2 branch - Add persona_routes.go - Restore valid built-in persona tests that were accidentally removed - feat: Add frontend client tracking with query parameters - Add missing personas package to fix CI compilation - feat: Add client tracking middleware for PostHog analytics - Fix test failures in concurrent and rate limiting tests - Fix API key authentication with scalable GSI-based lookup - Merge pull request raycast#209 from toneclone/jf-raycast-pt2 - Refactor Raycast extension with security improvements and better architecture - Address security concerns from code review - Merge pull request raycast#210 from toneclone/codex/mock-openai-endpoint-in-tests - Mock OpenAI fine-tuning tests - Fix test issues and improve validation - Merge branch \'main\' into jf-raycast-pt2 - Add comprehensive Raycast extension with multiple ToneClone commands - Merge pull request raycast#208 from toneclone/jf-frontend-cleanup - Merge remote-tracking branch \'origin/main\' into jf-frontend-cleanup - Enhance Raycast extension with persona icons and simplified auth - Fix live UI update after persona deletion - Merge pull request raycast#207 from toneclone/jf-fix-onboarding - Add SendGrid environment variables to Terraform configuration - Fix email URLs and add missing Stripe customer validation - Refactor email service to use Go templates and environment variables - Resolve merge conflicts with main branch - Fix failing tests and TypeScript build errors - Merge pull request raycast#206 from toneclone/jf-client-cleanup - Add DynamoDB field naming conventions to prevent data conflicts - Fix Cloudflare Pages deployment file size issue for marketing site - Fix persona enabled/disabled flickering by standardizing DynamoDB field names - Fix TypeScript build error: remove unused Code import - Add comprehensive CLI marketing page and update frontend apps listing - Fix devx config - Merge pull request raycast#205 from toneclone/jf-fix-devx-config - Address PR feedback with improved error handling and validation - Fix devx port conflicts by replacing background processes with named pipes - Merge pull request raycast#204 from toneclone/jf-frontend-cleanup - Change model reference in test - Remove TypeScript build info from version control - Enhance banned words UI with bundle types and normalization settings - Optimize streaming banned word replacement with smart buffering - Fix flaky test issues that caused CI failures - Fix streaming banned word replacement with smart buffering - Implement no-plan architecture for post-email-confirmation users - Merge pull request raycast#203 from toneclone/jf-fix-onboarding - Merge remote-tracking branch \'origin/main\' into jf-fix-onboarding - Improve user signup flow with dedicated success page - Merge pull request raycast#202 from toneclone/jf-android-pt-2 - Fix persona profiles endpoint to return 200 with empty array instead of 404 - Prepare CLI for open source release - Implement efficient batch file upload with integrated persona association - Update ResponseScreen header to match MainScreen branding - Fix profile loading for built-in personas - Add multiple profile support to CLI generate command - Enable multi-variant feature with settings toggle - Update API domain from toneclone.com to toneclone.ai - Merge pull request raycast#200 from toneclone/jf-prod-infra - Remove build artifacts - Fix file association updates to work for all training scenarios - Fix Cron job to update persona with fine-tuned model on completion - Merge pull request raycast#198 from toneclone/jf-prod-infra - Remove unused encoding/base64 import from supabase_jwt.go - Fix combine Lambda timeout issue - Fix App Runner IAM policy for Step Function access - Merge pull request raycast#196 from toneclone/jf-prod-infra - Fix GPT-5 parameter compatibility in combine Lambda - Merge pull request raycast#194 from toneclone/jf-frontend-cleanup - Merge pull request raycast#192 from toneclone/jf-prod-infra - Fix Lambda deployment by reverting to always_run triggers - Merge pull request raycast#190 from toneclone/jf-prod-infra - Fix working directory issue in Lambda build scripts - Merge pull request raycast#188 from toneclone/jf-prod-infra - Fix shell compatibility: Use bash interpreter for pipefail support - Merge pull request raycast#186 from toneclone/jf-prod-infra - Address PR feedback: Fix timeout, build triggers, and error handling - Fix Terraform formatting - Fix Lambda builds and add build verification to CI - Merge remote-tracking branch \'origin/main\' into jf-prod-infra - Improve Lambda build process with better error handling and debugging - Merge pull request raycast#185 from toneclone/jf-prod-infra - Fix API response field name expectations in test - Fix PostHog mock Enqueue method for Personal plan API access test - Implement API key regeneration with confirmation dialog - Fix backend tests for Personal plan API access change - Merge pull request raycast#184 from toneclone/jf-prod-infra - Fix Next.js client component issues for CloudFlare Pages - Merge pull request raycast#180 from toneclone/jf-update-marketing-site - Resolve merge conflicts with main - Merge pull request raycast#182 from toneclone/jf-prod-infra - Remove setup files that never should\'ve been committed :( - Merge pull request raycast#181 from toneclone/jf-prod-infra - Update to limit to main/prod branches - Fix Terraform plan check in CI validation - Fix Terraform security scan false positives - Fix marketing site CloudFlare build issues - Fix Terraform formatting for CI validation - Fix remaining nested interactive elements with asChild pattern - Fix HTML validity: remove nested interactive elements - Fix CloudFlare Pages Node.js compatibility for marketing site - Implement Claude\'s additional security and stability suggestions - Merge pull request raycast#179 from toneclone/jf-prod-infra - Merge pull request raycast#178 from toneclone/jf-android-pt-2 - Refactor marketing site to use shared components and improve content - SECURITY FIX: Address Claude PR feedback - Address Claude\'s PR feedback: improve code quality and add comprehensive tests - Update test workflows to run on both main and prod branches - Update production workflows to trigger on prod branch - Remove CloudFlare Pages domain creation to prevent conflicts - Fix CloudFlare Pages deployment issues - Improve UI color contrast and accessibility across keyboard and main app - Remove CloudFlare Pages import step from workflow - Add comprehensive GitHub Actions IAM policy - Fix output configuration for production deployment - Add CloudFlare Pages import step to deployment workflow - Add GitHub source configuration to CloudFlare Pages projects - Merge pull request raycast#177 from toneclone/jf-android-pt-2 - Fix test compilation issues and add focused unit tests - Address high-priority PR feedback: Add comprehensive tests and real-time validation - Merge pull request raycast#176 from toneclone/jf-update-models - Update training test to expect new default model gpt-4.1-mini-2025-04-14 - Fix CI test failures by preventing real OpenAI API calls during tests - Address PR feedback: Fix race conditions and add validation - Enhance AI prompt templates and training pipeline with advanced style profiling - Reorganize settings page structure for better UX - Implement hidden dev mode feature and UI improvements - Fix AWS provider configuration for GitHub Actions - Fix step-function.json path after merge from main - Merge remote-tracking branch \'origin/main\' into jf-prod-infra - Commit the step function definition - Fix step-function.json file path in training module - Fix test failures by updating FilterExpression field name case - Add non-sensitive terraform.prod.tfvars for GitHub Actions - Remove AWS profile from S3 backend config for GitHub Actions compatibility - Configure S3 backend for shared Terraform state - Handle App Runner service not in RUNNING state before deployment - Fix GitHub Actions App Runner deployment wait command - Fix Docker build context in GitHub Actions workflow - Add debugging for AWS credentials in GitHub Actions workflow - Merge pull request raycast#174 from toneclone/jf-android-pt-2 - Update fine-tuning model to gpt-4.1-mini-2025-04-14 and fix styleProfile support - Fix AndroidTest compilation and runtime issues - Add a toneclone cli readme - Fix unit test compilation and implementation issues - Fix plans.json: revert personal plan popular flag and enable API access - Update marketing site with app links, favicon, and branding - Add comprehensive test coverage for persona functionality - Merge branch \'main\' of github.com:toneclone/toneclone - Merge pull request raycast#175 from toneclone/jf-prod-infra - Fix compilation errors from Claude feedback implementation - Address critical security issues from PR review - Fix critical security and performance issues - Add production deployment workflows and CloudFlare Pages configuration - Add Android build artifacts and IDE files to gitignore - Add built-in personas with proper sorting and color support - Update logos and optimize launcher icons with adaptive padding - Update app logo to high-res version and fix launcher icons - Make label text sizes consistent with selector/button text - Complete profile reselection fix - consolidate rebuild logic - Fix profile reselection issue with signature-based rebuild logic - Add CloudFlare deployment script to frontend package.json - Update production infrastructure for CloudFlare Pages deployment - Add terraform.prod.tfvars to .gitignore to protect production secrets - Add plans.json file to backend Docker image to fix Stripe plan validation - Enhance .devx development environment with service logging and process management - Add .worktrees to gitignore - Simplify landing page: clean white background with logo, ToneClone text, and coming soon - Add simple landing page with ToneClone logo and coming soon message - Update package-lock.json for vaul@1.1.2 compatibility with React 19 - Fix marketing site React 19 compatibility - Remove whitespace around Android app header logo - Upgrade app logos with high-resolution ToneClone branding - Implement Supabase authentication with secure configuration management - Merge pull request raycast#172 from toneclone/jf-add-billing - Merge pull request raycast#173 from toneclone/jf-add-logins - Fix CI test failures - frontend TypeScript and backend mocks - Fix CI test failures - correct supabase import inconsistency - Implement code review improvements and comprehensive test suite - Fix backend CI test failures - Fix linting issues in OAuth authentication files - Implement Claude\'s PR feedback recommendations - Clean up debug logging from OAuth authentication flow - Enhance OAuth authentication with GitHub login and improved UX - Fix GitHub Actions test failures - Extend billing integration to persona and profile management components - Add billing-related enhancements to core components - Add draft limit warning system with progress bar and upgrade links - Enhance billing system with improved user management and Supabase integration - Clean up debug logging from Google OAuth implementation - Merge remote-tracking branch \'origin/main\' into jf-add-logins - Add Google OAuth authentication support - Merge pull request raycast#171 from toneclone/jf-add-billing - Complete URL configuration and security logging fixes - Security fix: Replace fmt.Printf with log.Printf in critical route handlers - Fix URL configuration: remove hardcoded fallback URL from CORS - Address security and configuration feedback from PR review - Remove compiled binary from repository - Update .gitignore to exclude build artifacts and logs - Update marketing copy to remove \'no credit card required\' messaging - Fix TestHandleQueryWithBannedWords to work with new AI service architecture - Merge main into jf-add-billing branch - Remove binaries - Merge pull request raycast#170 from toneclone/jf-openai-sdk - Fix OpenAI integration tests to skip in CI environment - Add Stripe billing integration with frontend payment flow - Add comprehensive training functions testing suite - Fix model support: Add gpt-4o-mini-2024-07-18 to supported models - Complete AI service integration and fix all test failures - Implement backend enforcement of plan limits with atomic usage tracking - Complete Deliverable 3.2: Refactor query routes and tests for AI service - Complete Deliverable 3.1: Initialize service in main.go with DI - Implement monthly usage tracking for draft limits - Complete Deliverable 2.3: Migrate fine-tuning operations - Update project todo list: Mark D2.2 as completed - Complete Deliverable 2.2: Enhanced Streaming Support - Complete Deliverable 2.1: OpenAI Provider with Responses API - Implement Customer Billing Portal Integration (Deliverable 6) - Implement comprehensive Stripe webhook processing with idempotent event handling - Update project todo list: Mark D1.2 as completed - Implement Deliverable 1.2: Service factory and provider registry - Update project todo list: Mark D1.1 as completed - Implement Deliverable 1.1: Provider-agnostic AI service interface - Implement Stripe Checkout Session API with isolated mock testing - Add Stripe integration with webhook endpoint and v82 SDK - Add Stripe environment variables to configuration example - Add plans configuration and update marketing pricing page - Add plans management system for billing entitlements - Add billing system foundations with user trials and plan management - Fix marketing site service setup in Devx - Merge pull request raycast#169 from toneclone/jf-marketing - Update teh devx config - Add ToneClone marketing site with Next.js and shadcn/ui components - Merge pull request raycast#168 from toneclone/jf-update-sign-up-flow - Fix TypeScript compilation errors to resolve CI build failures - Fix backend test failures and enhance filter expression consistency - Merge remote-tracking branch \'origin/main\' into jf-update-sign-up-flow - Merge pull request raycast#167 from toneclone/jf-android-app-clean - feat: Add memory pressure handling for multi-variant response caching - security: Remove debug logging and improve IME security - feat: Add complete Android app with multi-variant AI response functionality - Fix final 3 frontend test failures - all tests now passing - Fix frontend test failures and improve test reliability - Enhance persona and writing components - Update frontend components and UI improvements - Fix banned words custom flag bug - Remove duplicate AI Tells Bundle and Banned Words sections - Fix banned words API authentication issues - Fix banned words API authentication issues - Add skeleton loader and improve writing canvas UX - Update navigation and routing for Apps/Integrations page - Add persona color customization and consistent avatar system - Enhanced persona management UI and writing flow improvements - Comprehensive UI improvements and new account management - Update sign-up flow: streamline onboarding and improve UX - Merge pull request raycast#153 from toneclone/jf-add-deny-list - fix: Make test order-independent after LRU cache changes - Merge branch \'main\' into jf-add-deny-list - security: Address critical security and performance issues - test: Add comprehensive test coverage and fix CI failures - feat: Add AI Tells Bundle feature with loading indicators - feat: Improve banned words UX with latency warnings and better defaults - feat: Implement conditional buffering for optimal streaming performance - Update devx config for removing Auth0 - Merge pull request raycast#165 from toneclone/jf-supabase-migration - Fix CI test failures: Add missing Supabase environment variables - Address Claude PR feedback: Security enhancements and ESLint improvements - Resolve merge conflicts with main branch - Complete Supabase JWT migration with comprehensive test coverage - feat: Add JWT authentication tests and deprecate Auth0 session tests - fix: Update persona validation test to use required name field - test: Add comprehensive JWT authentication test coverage - fix: Allow JWT authentication for API key management - fix: Make parentModel optional with default value for persona creation - fix: Enhance banned word spacing and punctuation preservation - feat: Complete banned words deny list implementation with streaming integration - fix: Support Auth0 user IDs in writing routes - fix: Add banned routes registration and fix test compilation - Add Supabase integration setup - Merge branch \'main\' into jf-add-deny-list - Merge pull request raycast#164 from toneclone/jf-writing-ui - Fix CI test failures by mocking scrollIntoView globally - Suppress harmless test environment errors to fix CI - Fix CI test failures in WritingStarter component - Clean up failing tests to achieve reliable CI pipeline - Fix frontend CI test failures - localStorage parameter fixes - Clean up lint warnings in test files - Add comprehensive test coverage for document versioning and React components - Fix TypeScript compilation errors in writing-canvas.tsx - Merge branch \'main\' into jf-writing-ui - Fix ESLint warnings and improve code quality - Address Claude PR feedback - security and reliability improvements - Fix test failures and lint errors - Merge pull request raycast#163 from toneclone/jf-raycast-plugin - Add comprehensive test suite and fix remaining ESLint warnings - test: Add comprehensive unit test suite for Raycast plugin - Add document versioning system and user preferences - fix: Address critical PR feedback issues - Complete writing UI integration with API and full functionality - fix: Address code review feedback for Raycast plugin - feat: Add complete Raycast plugin for ToneClone - Merge pull request raycast#162 from toneclone/jf-n8n-module - Refactor writing interface with starter flow and enhanced canvas - Add comprehensive testing framework for ToneClone n8n module - Add training content submission to ToneClone n8n module - Add writing canvas feature with navigation and UI improvements - feat: Add n8n ToneClone integration node - Merge pull request raycast#158 from toneclone/jf-api-part-2 - Address Claude\'s PR review feedback: improve test robustness and constants - Complete Group 6: Input Validation & Edge Cases with Critical Security Fix - Complete Group 5: Rate Limiting & Authentication Security - Token Rotation Race Conditions - Complete Group 5: Rate Limiting & Authentication Security Testing (3/4 sections) - Complete Group 4: Training Workflow Robustness Testing - Merge pull request raycast#161 from toneclone/codex/update-handlequery-to-support-multiple-profile-ids - Hide invalid profile IDs - Fix failing concurrent operations tests in Group 3 AI testing - Allow multiple profile IDs for queries - Complete Group 3: AI Service Integration & Resilience Testing - New unit tests - Complete Group 2 persona profile association tests and mark Group 2 complete - pkg/types: add JSON round-trip and method tests for core types (Persona, associations, TrainingJob, FileMetadata, APIKey, User, Session) to establish baseline coverage and validate helper methods. - Complete Group 2: Persona Management Comprehensive Testing - pkg/training: add comprehensive tests for training job creation and persona-based job initiation; cover success and error paths using existing mocks; increase coverage to ~66% for package. - Complete Group 1 API testing: File Upload & Storage Testing - Complete Phase 4.1: Advanced Security Testing - Complete Phase 3: Workflow Integration Tests - feat: comprehensive writing routes test coverage with 10x improvement - Merge pull request raycast#156 from toneclone/jf-api-part-2 - Address Claude\'s PR feedback - implement minor improvements - Fix all remaining ESLint errors (9 → 0 errors) - Fix GitHub Actions permissions and reduce ESLint errors - Fix frontend ESLint errors and PostHog integration issues - Merge pull request raycast#157 from toneclone/add-claude-github-actions-1755540604470 - "Claude Code Review workflow" - "Claude PR Assistant workflow" - Complete Phase 2.9: Writing Sessions Tests with authentication fixes - Complete Phase 2.8: Training Management Tests - Complete Phase 2.7: AI Query & Generation Tests with Security Fixes - Complete Phase 2.6: Persona Management Tests with Critical Security Fix - Complete Phase 2.5: File Management Tests - Implement Phase 2.4: Comprehensive Profile Management Tests - Complete Phase 2.3: API Key Management Integration Tests - Add comprehensive ToneClone Backend API documentation - Implement comprehensive authentication and middleware testing (Phase 2.1) - Add optional non-streaming mode to query endpoint - Add tmp directories to gitignore - Remove tmp build artifacts from git tracking and add to gitignore - Add comprehensive test infrastructure for API endpoint testing - Merge pull request raycast#154 from toneclone/jf-update-devx-config - Merge branch \'main\' of github.com:toneclone/toneclone into jf-update-devx-config - Update devx config - feat: Implement Phase 3 of Not-Allowed Filter System - Automatic Output Rewriting Pipeline - feat: Implement Phase 2 of Not-Allowed Filter System - LLM prompt integration - Merge pull request raycast#152 from toneclone/cursor/add-unit-tests-for-middleware-package-1905 - Add middleware package tests with comprehensive auth middleware coverage - Merge pull request raycast#149 from toneclone/jf-toneclone-cli - More small fixes for frontend tests - Fix dependencies - Move linting to just info for now - Add frontend tests, add them to the github action - Merge pull request raycast#150 from toneclone/cursor/fix-backend-tests-workflow-and-coverage-path-fe37 - Fix Codecov coverage file path in backend tests workflow - Add backend test Github actions - Merge pull request raycast#147 from toneclone/jf-toneclone-cli - Merge pull request raycast#148 from toneclone/cursor/fix-global-directory-change-in-tests-5942 - Refactor template path resolution using runtime.Caller for dynamic paths - Complete backend testing infrastructure with 100% test success rate - Merge pull request raycast#145 from toneclone/jf-toneclone-cli - Hide future binaries in gitignore - Remove the binary from the repo - Merge pull request raycast#146 from toneclone/cursor/fix-rate-limit-token-consumption-bug-fad0 - Fix rate limit remaining requests calculation method - Add API key management routes and frontend components - Add backend authentication fixes and feature planning documentation - Complete ToneClone CLI implementation with all 8 deliverables - Merge pull request raycast#144 from toneclone/jf-setup-tooling - Add some basic claude tooling - Merge branch \'main\' of github.com:toneclone/toneclone - Fix some devx config - Merge pull request raycast#143 from toneclone/one-more-time - Fixes for localhost cookie management - Merge pull request raycast#142 from toneclone/jf-add-new-devx - Some fixes and clean up - Merge pull request raycast#141 from toneclone/jf-add-new-devx - Update devx config - Add auth0 callback handler script - Add some more devx config - Some clean up in process of adding devx - Some fixes for handling the toneclone-api.jonefox.com domain - Add knowledge management to the popup menu instead. Closes raycast#101 - Handle logged out status when running inline edit prompts. Closes raycast#132 - Add login menu on Tone Clone buttons when the user is no longer logged in - Add simple script to help with version management of the extension - Fix smart fill integration for inline editing - Update the browser extension icon in the popup and right click menus - Minor fixes to make the build happy - Add initial support for Outlook - Add a simple privacy policy since we need one for the Chrome Web Store submission - Update the text area button to use new logo - Add support for multiple API domain aliases - Clean up and simplify a few small things in the onboarding flow - Fix stylesheet reference - Fix sidebar in Brave browser - Merge branch \'main\' of github.com:toneclone/toneclone - Update createWritingSession call to use service worker - Fix white space issues in selection verification - Update color theme, icons - Fix hiding the toolbar if the selection goes away without a click - Add basic Twitter/X support and get Gmail toolbar working - Add WIP twitter integration - Add the URL and potentially some additional context to the prompt. Closes raycast#123 - Change the icon to reset the sidebar session and add a confirmation dialog box. Closes raycast#120 and closes raycast#119 - Filter out and replace characters. Fixes raycast#114 - Fix bug with the sidebar, add some build debug logs, and don\'t include content_script.js on gmail pages since it gets bundled with gmail.js - Fix the merge and related bugs - Merge pull request raycast#130 from toneclone/jf-wip-inline-editing - Merge branch \'jf-wip-inline-editing\' of github.com:toneclone/toneclone into jf-wip-inline-editing - Small bug fix for opening the sidebar - Merge pull request raycast#129 from toneclone/jf-wip-inline-editing - Merge branch \'main\' into jf-wip-inline-editing - Fix bug with multiple compose windows. - Move gmail features to their own script. Closes raycast#127 - Add the handler to the power button to add a modal to disable Tone Clone. Also adds a list of disabled sites in the popup menu where you can remove sites from the disabled list. Closes raycast#125 - Replace old Tone Clone button menu with the new one - Add caching and request de-duping to presets service - Fix minor typos in prompt template - Pending history icon insertion and minor fixes on prompt history handling - finish prompt history implementation - Fix bug with sumamry modal on loading screen and add caching to email summaries - Initial summarize thread implementation and add emails as writing samples - Wire up the menu features - Wire up suggested preset replies - Add hot key execution to Gmail - Fix placement issues with the prompt window - Make the prompts actually work - Make smart replies actually work and add opening animation for prompt window - Use loaded presets instead of hard coded onees - Swap icon and text order on the buttons - WIP prompt menu - More work on the menu - WIP Gmail Integration - hover on button - Add some example places to get samples in training-intro page. Closes raycast#110 - Add a glowing circle around the Tone Clone icon in the textarea to make it more obvious clicking it is the next step. Closes raycast#113 - Update the selected persona when it changes in another component - Migration to services and background-services-client - WIP form fills and prompt suggestions - Fix merge conflicts - Add a bunch of small changes from product feedback session on onboarding - Update color theme - Don\'t delete the extension folder when deploying the frontend - Add initial version of hotkey trigger from textareas on the page directly. - Fix PostHog CSP errors for tracking events in the extension. Closes raycast#99 - Fix -\'s in extractor autocomplete matching - Switch to using AWS App Runner instead of API Gateway and Lambda for the API. This should be a bit faster and give us more control, but also fixes streaming responses in preview environment. - Add a reset session button to the sidebar to reset everything. Closes raycast#63 - Don\'t update the prompt placeholder every document change, just update it if there is or isn\'t document text - Add support for a summarized email thread in Gmail as an extractor/smart fill - Allow pressing enter to save the name when creating a new persona and make sure we update the sample count and goal when selecting new personas in the popup menu - Add auto training at sample levels 1, 3, 10, 20, and 50 - Change persona output to be levels instead - Add \'calm it down\' and \'make it spicier\' buttons - Add support for Slack and append a space after autocompleted extractors - Rename extractors \'smart fill\' and add multiple placeholders for prompt text including ones that use @\'s, different ones for starter vs someone who\'s used it a bit, and different ones for doc revisions vs new doc draft prompts - Add support for Google Voice text messages - Fix @ extractor handling - Add basic document history feature - Add a basic prompt history feature - Add multiple levels of goals for writing samples. - Add error message for Safari since we don\'t support it. - Be a bit smarter about adding our icons to pages to make things more performant. Closes raycast#78 - Some minor clean up to the build and put some bounds on when we insert the Tone Clone icon into pages. Closes raycast#77 - Special case training data being added from the training-intro page and just show them a helpful message instead of actually adding it. Closes raycast#98 - Don\'t show the personas in the sidebar if they only have 1. Closes raycast#96 and closes raycast#97 - Change the order of the onboarding flow to make the writing section 2nd instead of last. Closes raycast#95 - Finish new onboarding flow. Closes raycast#81, closes raycast#86, closes raycast#83 - WIP new onboarding flow - Don\'t add the sidebar to a page until we try to open it. Closes raycast#76 - Add ability to upload and paste writing samples in the popup-menu in the extension. Closes raycast#87 and closes raycast#88 - Simplify the right click context menu text and make them more distinct so they\'re easy to scan. Closes raycast#80 - Add screenshots to extension installation page. Detect if they don\'t have personas yet and direct them to persona picker in extension popup (if on toneclone or not). Closes raycast#72 and closes raycast#82 - Add a way to detect when the extension is installed on the install extension page. Both if it\'s already installed and if it is actively installed at the time. Closes raycast#75 - Add a pick-persona page (accessible if you don\'t have any personas yet). Closes raycast#73 and closes raycast#74 - Update sidebar auth styles - Add support for markdown files - Draggable sidebar - Hook up context manager interactions - Merge branch \'main\' of github.com:toneclone/toneclone - Add support for extracting diff summaries and commit messages on compare pages in GitHub, and add a preset for generating Pull Requests - Merge remote-tracking branch \'origin/main\' - Add context manager to sidebar - Only show the add from library option in the persona editor if there are new files that aren\'t already added to the persona - Fix CSRF token cookie issue with preview domains - Refactor the create initial persona code, make sure it\'s on both the welcome page and the intro to training page, and default Voice Evolution to be on for new personas by default - Bold the persona name in extension popup to make it more clear, change the copy button in sidebar to be copy and close so it\'s not a surprise to users, and try to make writing contexts more intuitive in the persona editor - For now just log CSRF failures, don\'t actually block. - Strip console.log from production builds - Add CSRF tokens to prevent attacks. Closes raycast#21 - Move writer/persona and context inline raycast#32 - Merge remote-tracking branch \'origin/main\' - Move writer/persona and context inline raycast#32 - Remove background on icons and make the textarea icon larger - minor clean up for frontend build - Add nicer save dialog and delete option for query presets. Closes raycast#56. Closes 5 - Allow sidebar prompt textfield to autoexpand. Closes raycast#80 - Fix formatting when copying existing text from content editable elements to the textarea in the sidebar. - Add URL filter list for query presets and add a few more static ones for emails. - Add right click menu option to send selected text to the document in Tone Clone - Add right click context menu to add selected text to the prompt. - Add right click menu on selected to text to add the text to a persona as a writing sample - Fix line breaks when sending text to contenteditable elements - Add training intro page, getting started menu item, and update links in welcome page. Closes raycast#62 - Add support for content editable elements and fix URL filtering for extractors. Closes raycast#64. - Minor clean up and word smithing for clarity from walkthrough with Katie - Add basic version of extractors - Add query preset API endpoints to API Gateway - Move prompts to Golang templates and split out different ones for updating a doc vs creating one from scratch. Closes raycast#57 - Simplify extension detection - Add a new metrics.toneclone.ai to proxy PostHog requests and add PostHog to browser extension. Closes raycast#47 - Add a little banner to suggest installing the extension if they don\'t have it yet. Closes raycast#44 - Add a welcome page for new users who just signed up. Closes raycast#45 - Add script to deploy extension - Add option for no context/profile - Make the sidebar icons actually work - Add ability to save prompt presets, make them dynamic, and make them actually work. Closes raycast#53 - Add voice evolution support in the extension. Closes raycast#23 - Fix small build error - Fix training bug with trainingStatus. Closes raycast#27 - Add a new persona type for untrained personas - Minor fixes for persona editor page - Add a welcome blurb to the popup. Closes raycast#12 - Add missing background script - Make persona sticky to the domain/site. Closes raycast#42 - Add Posthog to website. Closes raycast#46 - Fix the sidebar close button and other small UI tweaks - Broadcast auth changes to all existing injected sidebars. Closes raycast#20 - Add a message when opening the ToneClone extension on a ToneClone.ai site. Closes raycast#43 - Hook up add persona button in popup - Fix AI generated writing session titles and auto-select of persona on new session - More buttons in sidebar, lots more buttons - Profile -> Context for sidebar dropdown - Writer and profile side-by-side in sidebar - Add training in progress message to popup. - Add new persona from popup - Upload success/fail styles, submit icon change - Upload success/fail styles, submit icon change - Allow writing with untrained personas. Closes raycast#13 and Closes raycast#41. Also fixes a few small bugs in ai-writing.tsx (infinite polling and failing to fetch profiles if no persona is selected). - Wire up the undo button. Closes raycast#14 - Merge - Add extractors examples - Sidebar layout and buttons - Handle 0 and 1 personas use cases. Closes raycast#10 - Don\'t show double spinners when submitting samples from the extension. Just show a spinner on the one you click and show the other as disabled. Closes raycast#8 - Don\'t show the settings icon in the popup menu if the user is logged out. Closes raycast#11 - Disable add selected text button if no text is selected. Fixes raycast#16 - Fix the toggleSidebar handler - Clean up the workflow a little with the sidebar, page, and menu interactions when finishing writing - Sync content between target textarea and the sidebar - Merge branch \'main\' of github.com:toneclone/toneclone - Add icon to text areas - Buttons -> ActionIcons - Add skeleton loader - Remove sidebar debug auto-toggling - Add copy button to sidebar + loaderProps for buttons - Add background / async training. Closes raycast#25 - Fix minor bug with showing Add from Library button as disabled - Add metric events to the training lambas. Closes raycast#22 - Fix broken tests - De-dupe and reorganize structs and constants between packages - Reorganize golange code into one main folder - Add posthog to backend API calls - Adds voice evolution to the website writing interface and closes raycast#24. Also adds source tracking to writing samples to know how the sample got added (website file upload, extension add page, voice evolution on website, etc). - Update sidebar layout and styles - Make the persona sticky in the sidebar and keep it in sync with the one in the popup - Block opening the sidebar on *.toneclone.ai - Fix bug and race condition in login/logout flow - Fix the status of the sidebar in the popup menu - Merge branch \'main\' of github.com:toneclone/toneclone - Truncate long filenames in writing samples - Fix add page and add selected text uploads to actually associate them with the current persona - Fix broken links in popup menu - Make persona sticky in the popup, will need to update writing sidebar later - Add sidebar spacing - Inject styles into sidebar, split into separate components - Merge branch \'main\' of github.com:toneclone/toneclone - Initialize API client in sidebar - Update lock file - Update lock file - Add home link, updated settings - Merge remote-tracking branch \'origin/main\' - Pop up refinements, fixed logged out layout - Add new routes to terraform - Minor fix for old ai-training page - Fix merge conflicts - Update the persona editor to handle writing samples, writing contexts, and voice evolution settings. Other minor clean up and fixing support for file associations and training markers on them - Add new popup design - Clean up the writing page a bit - Add more sub clients to make API interaction easier - Clean up the profile-editor and give it a routing path - Update terraform for new session endpoints - Fix the header active class on sub pages - Fix the HTTPClient in main.go - Mega merge... - Fix persona detail page rendering - Fix all the tests - Finish extension login/logout handling - Add the existing logged in path for the extension - Initial commit of new auth / session management - Merge pull request raycast#1 from toneclone/mknepprath/v0 - Prevent sidebar refresh on submit - Add TextArea to embed - Merge conflicts - Merge branch \'refs/heads/main\' into mknepprath/v0 - Linted, routing changes, etc - Don\'t cache index.html in Cloudfront because it\'s not versioned - Fix link to the writing page with a specific persona - Add a cmd/control+enter handler for easier submission - Add response streaming - Fix build errors - Add prompt only training and support for both prompt and model training on same persona - Merge branch \'refs/heads/main\' into mknepprath/v0 - Add an undo button to undo the most recent change from AI - Remove the chat features - Ignore .bak files in git - Removed sliders, added close button to sidebar, fixed type issues - Merge branch \'main\' into mknepprath/v0 - Add method and endpoints to associate profiles with personas - Merge branch \'main\' into mknepprath/v0 - Update profiles to be a freeform textbox instead of a map of key/value pairs - Add associations between files and personas and new endpoints to manage them, also add a new training endpoint to train on all untrained files - Popup work - Add a function to create a screenshot of the browser tab - Merge branch \'main\' into mknepprath/v0 - Fix auth config for extension to eliminate race condition and alternate Auth0 config - Init commit - Add polling when creating a new writing session to make sure we get the initial message and response loaded correctly - More prompt enhancements - Move the common axios library stuff into a new api-client lib file instead - Update the prompt building based on new framework - Add option for adding full pages to the training data - Make the filename for selected text uploads a bit more meaningful - Add method to grab selected text and add it as training data to a persona - Attempt to handle refresh tokens and kick to a login page when session expires - Add text upload route and fix unit tests - Add localhost:5173 to the accepted CORS origins for now for easier local testing of the frontend - Small fixes to make build happy, add error modal when can\'t load from backend, add persona and profile descriptionand fix bug with delete files - Fixes for the extension - Get extension working with auth and clean up a bug in AI writing page - More clean up of Supertokens -> Auth0 and fix a few small bugs with file uploads - A few more additions to .gitignore - Add example env.local - Frontend changes to migrate from Supertokens to Auth0 - Add backend changes for Auth0 migration - Terraform updates to migrate to Auth0 and clean up - Fix the website build - Initial commit * Clean up Raycast TypeScript build * Align Raycast prefs typing with generated definitions * Update ToneClone extension dependencies and metadata - Upgrade @raycast/utils to version 2.2.0 - Add @raycast/eslint-plugin as a dependency - Update @raycast/eslint-config to version 2.1.1 - Bump esbuild packages to version 0.25.10 - Standardize subtitles in package.json for ToneClone commands * Update CHANGELOG.md and optimise images --------- Co-authored-by: Per Nielsen Tikær <per@raycast.com> Co-authored-by: raycastbot <bot@raycast.com>
- linted - Remove dicelab notebook screenshot (raycast#93) - package-lock and raycast generated - Implement Raycast extension for Dicelab - Plan Raycast extension with Rust dice DSL (raycast#91) - Initialize Raycast extension structure - Align branding with Dicelab (raycast#89) - Update AGENTS.md - Update AGENTS.md - Move CodeMirror deps to production and drop manual screenshot (raycast#88) - Fix not operator (!`) support in named roll PMF calculations (raycast#87) - feat: display node group distributions in single combined chart (raycast#86) - Add binary operators & (and), | (or) and ! (not) to the language (raycast#85) - Add comprehensive tests and documentation for dice analysis fix (raycast#84) - Implement named roll groups feature (raycast#83) - Add files via upload - Improve WebAssembly error messages with detailed information (raycast#81) - Fix variable resolution in critical damage evaluation (raycast#80) - Add comprehensive implementation plan for multi-line expression support (raycast#79) - Fix dice variable assignment bug that caused re-evaluation on each reference (raycast#78) - Complete tech debt migration: remove deprecated modules (raycast#74) (raycast#76) - Optimize GitHub Actions workflows for faster build times (raycast#73) - Restructure web folder for better organization and maintainability (raycast#71) - Add files via upload (raycast#70) - Implement comprehensive SEO optimization for Dicebook (raycast#69) - Refactor app.js into modular components for improved maintainability (raycast#68) - Add simple mode UI with toggle, examples, and PMF chart support (raycast#67) - Refactor codebase to use only \'let\' keyword for variable assignment (raycast#66) - Set up JS build pipeline with esbuild (raycast#64) - Create symlink from CLAUDE.md to AGENTS.md (raycast#65) - Update AGENTS.md - Create robots.txt - fmt - Update context.rs - Create cloudflare-pages.yml - rm pkg - Add comment support to dicebook language (raycast#63) - Add wasm-backed CodeMirror highlighting (raycast#62) - Improve conditional alias rendering (raycast#52) - Add Elven Accuracy note to guide (raycast#51) - Implement attack roll crit handling and defaults (raycast#46) - Remove remaining Polyhedra branding (raycast#43) - Fix syntax guide collapse styling (raycast#42) - Add ANALYZE PMF support and visualization (raycast#38) - Add support for conditional expressions (raycast#37) - Refactor engine and evaluator to use shared interpreter (raycast#36) - Refactor dice roll logging format (raycast#35) - Prevent power operator from rolling extra times (raycast#34) - Add structured logging controls and UI toggles (raycast#33) - Ensure code editor disables text correction (raycast#31) - Show context reset in status bar (raycast#30) - Add notebook persistence and dicebook import/export (raycast#29) - Expose proficiency bonus alias in D&D importer (raycast#28) - Add notebook-style multi-cell web console (raycast#27) - Enhance web code editor with highlighting and line numbers (raycast#26) - Support aliasing grouped expressions (raycast#25) - Support multi-line statement parsing (raycast#24) - Add include command for preset aliases (raycast#23) - Add caret group repetition support (raycast#22) - Format aliases in human-readable notation (raycast#21) - Handle DDB character value skill overrides (raycast#20) - Clarify dice keyword spacing and placeholder guidance (raycast#19) - Add import command support (raycast#18) - Improve alias layout wrapping (raycast#17) - Merge pull request raycast#14 from egeucak/codex/update-cors-proxy-for-fetch-requests - Merge branch \'master\' into codex/update-cors-proxy-for-fetch-requests - Merge pull request raycast#16 from egeucak/codex/github-mention-improve-ddb-import-resiliency-and-share-link - Propagate save directory errors - Improve web DDB input parsing - Add additional DDB fetch fallbacks - Enable ResponseType feature for WASM builds - Merge pull request raycast#15 from egeucak/codex/github-mention-improve-ddb-import-resiliency-and-share-link - Limit DDB ID fallback to path segments - Handle opaque fetch responses in WASM importer - Document wasm-pack setup in README - Replace Jina proxy fallback with AllOrigins - Merge pull request raycast#13 from egeucak/codex/update-cors-proxy-for-fetch-requests - Update WASM proxy fallback - Merge pull request raycast#12 from egeucak/codex/fix-wasm-pack-build-issue-and-update-agents.md - Fix wasm fetch helper and update instructions - Merge pull request raycast#11 from egeucak/codex/fix-webassembly-import-error-from-dndbeyond - Add CORS-friendly fallback for wasm DDB import - Merge pull request raycast#10 from egeucak/codex/investigate-missing-set-aliases-on-website - Fix alias list rendering in web console - Merge pull request raycast#9 from egeucak/codex/analyze-and-fix-webassembly-loading-issue - Fix web console wasm bundle path - Merge pull request raycast#8 from egeucak/codex/fix-wasm-pack-build-failure - Add CI instructions and format context storage access - Revert wasm-opt explanation in README - Merge pull request raycast#7 from egeucak/codex/add-github-actions-workflow-for-wasm - Add GitHub Pages deployment workflow - Merge pull request raycast#6 from egeucak/codex/create-web-site-with-wasm-integration - Add browser console for wasm evaluator - Merge pull request raycast#5 from egeucak/codex/split-evaluation-logic-for-wasm-compatibility - Add wasm bindings and split engine module - Merge pull request raycast#4 from egeucak/codex/add-comprehensive-tests-for-cli-and-context - Format lexer guard to satisfy rustfmt - Fix clippy collapsible if warnings - Format Rust code - Add tests for CLI, context, and parsing - Merge pull request raycast#3 from egeucak/codex/add-ci-workflow-for-rust-projects - Add CI workflow for Rust checks - Merge pull request raycast#2 from egeucak/codex/refactor-main.rs-into-modules - Refactor logic into dedicated modules - Merge pull request raycast#1 from egeucak/codex/setup-rust-project-structure - Initialize polyhedra CLI - Add initial README for polyhedra project
- chore: delete pnpm lockfile and reformat imports in list-sessions.tsx - feat: add empty state to session list; refactor: remove command subtitles - Merge pull request raycast#40 from iHildy/finalize-for-publish - feat: add jules-agents metadata images - Merge pull request raycast#39 from iHildy/feat/remove-todo-file-6250359568516323776 - refactor: Remove TODO.md file - feat: add code review page with diff parsing, file detail view, and PR actions - Merge pull request raycast#35 from iHildy/fix-branch-launch - feat: Update BranchDropdown to use branch displayName for values, add id prop, and include name in GitHubBranch type. - remove launch image for future retake - docs: add launch session screenshot.docs: add launch session screenshot. - chore: update initial changelog entry details for publish - docs: update README features, adding AI summaries and media viewer, and refining existing descriptions. - Merge pull request raycast#31 from iHildy/feat/expand-copy-actions-16439737926273651148 - chore: resolve merge conflicts - feat: add copy actions - Merge pull request raycast#30 from iHildy/feat/default-activity-filter-14919614857441043627 - chore: resolve merge conflicts - feat: Add default activity filter preference and rename activity filter options. - Merge pull request raycast#29 from iHildy/feature/bash-output-highlighting-2335402209823619386 - feat: improve bash output exit code formatting with N/A and success/failure emojis - Merge pull request raycast#28 from iHildy/feat/media-view-9271202486108135820 - feat: Add large media view and refactor save media action with improved feedback and Finder integration. - feat: Expand Copy Actions - feat: Add preference for default activity filter - feat: Improve display of bashOutput artifacts - feat: Add dedicated view for media artifacts - feat: add session actions, state, and consistent title formatting to menu bar and session list - Merge pull request raycast#25 from iHildy/feat/enhanced-menu-bar-actions-14777859912089807860 - Merge pull request raycast#24 from iHildy/feat/plan-view-actions-18084592357480163770 - chore: resolve merge conflicts - Merge pull request raycast#22 from iHildy/feat/ai-features-11910118265150615531 - Merge branch \'main\' into feat/ai-features-11910118265150615531 - feat: Use AI.ask for prompt refinement and enhance session summary generation by omitting artifacts, truncating content, and displaying in a detail view. - ran ray lint fix - Merge pull request raycast#21 from iHildy/add-list-sources-command-14180347300047980930 - Merge branch \'add-list-sources-command-14180347300047980930\' of https://github.com/iHildy/jules-agents into add-list-sources-command-14180347300047980930 - Merge branch \'main\' into add-list-sources-command-14180347300047980930 - Merge branch \'main\' into add-list-sources-command-14180347300047980930 # Please enter a commit message to explain why this merge is necessary, # especially if it merges an updated upstream into a topic branch. # # Lines starting with \'#\' will be ignored, and an empty message aborts # the commit. - feat: Implement refresh actions for source and session lists, and allow pre-selecting source for new sessions. - Merge pull request raycast#19 from iHildy/feat/branch-dropdown-857002017458243301 - Merge pull request raycast#18 from iHildy/feat/activity-filtering-13456472570523024561 - fix: Provide default strings for undefined activity messages and session failure reasons - Merge pull request raycast#23 from iHildy/feat/hide-session-id-details-15101675663783078513 - refactor: remove redundant metadata separators and created time label from session detail - feat: Enhance Menu Bar Actions - feat: Add approve and deny actions to plan detail view - refactor: make step index optional and reorder session actions - feat: Hide session ID from details view - feat: Add AI-powered features - feat: Add list-sources command - feat(launch-session): Replace branch text input with dropdown - feat: Add filtering to Activity Feed - feat: Add API function to fetch session activities and UI to decline or view plans. - feat: derive default starting branch from sources and show form loading state - feat: refactor `useSources` to fetch all sources using `usePromise` instead of paginated `useFetch`. - feat: implement detailed plan viewer with view/copy actions and improved plan activity markdown - docs: Add TODO list outlining planned features and refinements for the Jules Agents Extension. - feat: Add `requirePlanApproval` and `autoCreatePR` preferences and use them as default launch options. - feat: format and display human-readable session states in list view - feat: Add session filtering by status and repository, and reorder session detail metadata. - feat: enhance session display by formatting repository names and truncating session titles. - first commit
- chore(deps): bump @raycast/api from 1.103.9 to 1.104.1 in the production-dependencies group (raycast#14) - chore(deps): bump @raycast/api in the production-dependencies group - chore(deps-dev): bump @types/node from 22.13.10 to 25.0.3 (raycast#17) - chore(deps-dev): bump @types/node from 22.13.10 to 25.0.3 - chore(deps): bump @raycast/utils from 1.19.1 to 2.2.2 (raycast#16) - refactor: remove redundant subtitles from commands (raycast#22) - refactor: remove redundant subtitles from commands - docs: add Jules API key setup instructions and improve error messages (raycast#21) - style: run lint and fix styling issues - chore: resolve merge conflicts and deduplicate error messages - docs: add Jules API key setup instructions and improve error messages - docs: add Jules API key setup instructions and improve error messages - feat: update extension logo and command icons with official branding (raycast#20) - Clean up blank lines in README.md - Merge branch \'update-extension-logo\' of https://github.com/NtFelix/jules-raycast into update-extension-logo - feat: update extension logo and command icons with official branding - feat: update extension logo and command icons with official branding - chore(deps): bump @raycast/utils from 1.19.1 to 2.2.2
- Merge pull request raycast#23 from JensAstrup/develop - Lint removal (raycast#22) - Merge branch \'main\' of https://github.com/JensAstrup/raycast-django-docs - Merge pull request raycast#21 from JensAstrup/develop - Increment version (raycast#20) - 18 - Improve search (raycast#19) - Pull contributions
* Update django-docs extension - Merge pull request #23 from JensAstrup/develop - Lint removal (#22) - Merge branch \'main\' of https://github.com/JensAstrup/raycast-django-docs - Merge pull request #21 from JensAstrup/develop - Increment version (#20) - 18 - Improve search (#19) - Pull contributions * Update django-docs extension - Merge pull request #25 from JensAstrup/develop - Remove yarn files (#24) * Update CHANGELOG.md --------- Co-authored-by: raycastbot <bot@raycast.com>
- Sierra Intercom extension - chore(deps): bump tmp and @inquirer/editor in /search-repos (raycast#29) - chore(deps-dev): bump brace-expansion from 1.1.11 to 1.1.12 in /getting-started (raycast#32) - chore(deps-dev): bump js-yaml from 4.1.0 to 4.1.1 in /search-repos (raycast#31) - chore(deps-dev): bump brace-expansion from 1.1.11 to 1.1.12 in /search-repos (raycast#30) - chore(deps-dev): bump js-yaml from 4.1.0 to 4.1.1 in /agent-portal (raycast#28) - Migrate dependabot reviewers/assignees to CODEOWNERS (raycast#27) - chore(deps-dev): bump brace-expansion in /agent-portal (raycast#25) - Merge pull request raycast#23 from marshmallow-insurance/fix_nested_repo_dirs - fix handling of repos with nested paths - Merge pull request raycast#22 from marshmallow-insurance/feature/optimise-search-repos - chore: Update changelog for version 1.4.0 - refactor(OpsLevelTools): Optimise tool generation - Merge pull request raycast#21 from marshmallow-insurance/feature/add-new-ides - Add 1.3.0 changelog - feat: Add support for new editors and their icons - Merge pull request raycast#20 from marshmallow-insurance/feature/add-cursor-ide-support - fix lint - Update search-repos/src/hooks/useAvailableEditorCommands.ts - update changelog to v1.2.0 - feat: Add Cursor editor support with corresponding icon - Merge pull request raycast#19 from marshmallow-insurance/search-repos/update-readme - Update README.md - feat(repoTools): Use cached state for repoTools initialisation - style(search-repos): format useCachedState for repoTools initialization - Update CHANGELOG links for version 1.1.0 - Update CHANGELOG for version 1.1.0 - feat(repoTools):Use cached state for repoTools initialization - Merge pull request raycast#17 from marshmallow-insurance/david-gomes5-patch-1 - search-repos: fix readme formatting - Merge pull request raycast#13 from marshmallow-insurance/feature/fix-intelliji-command - chore(changelog): update CHANGELOG.md to reflect version 1.0.0 - chore(changelog): update CHANGELOG.md for version 1.0.0 and add new entries - refactor(findAndParseOpsLevelFile): remove js-yaml and replace with yaml package - fix(dependencies): update @raycast/api and @raycast/utils to latest versions - feat(eslint): add ESLint configuration for search-repos refactor: clean up code formatting in various files - Add changelog - feat(search): add description field to repository item - feat(changelog): update CHANGELOG.md for version 1.0.0 and add new entries docs(readme): enhance development setup instructions and release process refactor(update-changelog): improve commit filtering and repository URL handling - feat(changelog): add CHANGELOG.md and implement automatic update script - feat(metadata): add new PNG images for search repositories - feat(docs): update README to include Opslevel tools feature and enhance shortcuts section - feat(tools): add ToolsAction component and parse opslevel tools from repositories - feat(utils): enhance `getGitUrl` function with repository validation and improved URL handling - feat(utils): implement enum for programming languages and update extension mapping - feat(utils): enhance repository language detection with scan limits and directory prioritization - feat(utils): add repository language detection functionality - refactor(EditorAction): simplify action logic and remove unused code - style(search-repositories): standardize string quotes and formatting - docs(README): update title and add debugging section; update .gitignore for VSCode - refactor(utils): run linting fix - Merge pull request raycast#12 from marshmallow-insurance/add-secrets-inherit - Add \'secrets: inherit\' to Dependabot auto-merge workflow - Bump cross-spawn from 7.0.3 to 7.0.6 in /search-repos (raycast#10) - Bump cross-spawn from 7.0.3 to 7.0.6 in /agent-portal (raycast#9) - Delete opslevel.yml (raycast#8) - PE-1116 Use centralized dependabot auto-approve workflow (raycast#7) - Bump micromatch from 4.0.7 to 4.0.8 in /search-repos (raycast#6) - Merge pull request raycast#5 from marshmallow-insurance/feature/add-search-repos-extension - remove reference to `parakeet` - add search repos extension - Bump micromatch from 4.0.6 to 4.0.8 in /getting-started (raycast#4) - Bump micromatch from 4.0.5 to 4.0.8 in /agent-portal (raycast#3) - Add dependabot - Update opslevel.yml - Update opslevel.yml - Fix - Fix - Enable org publishing - Add Opslevel configuration (raycast#2) - Add agent portal search (raycast#1) - Updated readme for agent-portal extension - Added .gitignore - Updated readme for extensions - Agent Portal Details extension
* Add jules-agents extension - chore: delete pnpm lockfile and reformat imports in list-sessions.tsx - feat: add empty state to session list; refactor: remove command subtitles - Merge pull request #40 from iHildy/finalize-for-publish - feat: add jules-agents metadata images - Merge pull request #39 from iHildy/feat/remove-todo-file-6250359568516323776 - refactor: Remove TODO.md file - feat: add code review page with diff parsing, file detail view, and PR actions - Merge pull request #35 from iHildy/fix-branch-launch - feat: Update BranchDropdown to use branch displayName for values, add id prop, and include name in GitHubBranch type. - remove launch image for future retake - docs: add launch session screenshot.docs: add launch session screenshot. - chore: update initial changelog entry details for publish - docs: update README features, adding AI summaries and media viewer, and refining existing descriptions. - Merge pull request #31 from iHildy/feat/expand-copy-actions-16439737926273651148 - chore: resolve merge conflicts - feat: add copy actions - Merge pull request #30 from iHildy/feat/default-activity-filter-14919614857441043627 - chore: resolve merge conflicts - feat: Add default activity filter preference and rename activity filter options. - Merge pull request #29 from iHildy/feature/bash-output-highlighting-2335402209823619386 - feat: improve bash output exit code formatting with N/A and success/failure emojis - Merge pull request #28 from iHildy/feat/media-view-9271202486108135820 - feat: Add large media view and refactor save media action with improved feedback and Finder integration. - feat: Expand Copy Actions - feat: Add preference for default activity filter - feat: Improve display of bashOutput artifacts - feat: Add dedicated view for media artifacts - feat: add session actions, state, and consistent title formatting to menu bar and session list - Merge pull request #25 from iHildy/feat/enhanced-menu-bar-actions-14777859912089807860 - Merge pull request #24 from iHildy/feat/plan-view-actions-18084592357480163770 - chore: resolve merge conflicts - Merge pull request #22 from iHildy/feat/ai-features-11910118265150615531 - Merge branch \'main\' into feat/ai-features-11910118265150615531 - feat: Use AI.ask for prompt refinement and enhance session summary generation by omitting artifacts, truncating content, and displaying in a detail view. - ran ray lint fix - Merge pull request #21 from iHildy/add-list-sources-command-14180347300047980930 - Merge branch \'add-list-sources-command-14180347300047980930\' of https://github.com/iHildy/jules-agents into add-list-sources-command-14180347300047980930 - Merge branch \'main\' into add-list-sources-command-14180347300047980930 - Merge branch \'main\' into add-list-sources-command-14180347300047980930 # Please enter a commit message to explain why this merge is necessary, # especially if it merges an updated upstream into a topic branch. # # Lines starting with \'#\' will be ignored, and an empty message aborts # the commit. - feat: Implement refresh actions for source and session lists, and allow pre-selecting source for new sessions. - Merge pull request #19 from iHildy/feat/branch-dropdown-857002017458243301 - Merge pull request #18 from iHildy/feat/activity-filtering-13456472570523024561 - fix: Provide default strings for undefined activity messages and session failure reasons - Merge pull request #23 from iHildy/feat/hide-session-id-details-15101675663783078513 - refactor: remove redundant metadata separators and created time label from session detail - feat: Enhance Menu Bar Actions - feat: Add approve and deny actions to plan detail view - refactor: make step index optional and reorder session actions - feat: Hide session ID from details view - feat: Add AI-powered features - feat: Add list-sources command - feat(launch-session): Replace branch text input with dropdown - feat: Add filtering to Activity Feed - feat: Add API function to fetch session activities and UI to decline or view plans. - feat: derive default starting branch from sources and show form loading state - feat: refactor `useSources` to fetch all sources using `usePromise` instead of paginated `useFetch`. - feat: implement detailed plan viewer with view/copy actions and improved plan activity markdown - docs: Add TODO list outlining planned features and refinements for the Jules Agents Extension. - feat: Add `requirePlanApproval` and `autoCreatePR` preferences and use them as default launch options. - feat: format and display human-readable session states in list view - feat: Add session filtering by status and repository, and reorder session detail metadata. - feat: enhance session display by formatting repository names and truncating session titles. - first commit * feat: Add `Detail` fallback when session is missing and display session title in navigation. * refactor: remove Preferences interface and its imports, and update changelog release date * remove manual ExtensionPreferences interface def Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> * Update jules-agents extension - fix(lint): remove unused useMemo import (#47) - Merge pull request #46 from iHildy/refactor/merge-ntfelix-and-improve-ux - refactor(activities): Extract useLastActivity and fix revalidation - refactor: integrate quick message form and improve session list ux - Merge pull request #43 from iHildy/fix/changelog-and-preferences-interface - Merge pull request #42 from iHildy/final-for-publish-2 - Merge pull request #41 from iHildy/final-for-publish * Fix React warnings in launch-session command (#48) * fix: resolve key uniqueness and uncontrolled form errors (#49) * Update jules-agents extension - chore: update quick message icons (#53) - chore: apply task changes (#52) - fix: add missing icon to submit task action (#51) * Update * Update jules-agents extension - allow no_repo as a next time source - Merge branch \'main\' into feat/remember-last-source - feat: add no repo option for testing (#55) - respond to PR comments of #55 - feat: persist last selected source - Add "Built with Jules" badge to README.md (#54) - feat: add no repo option for testing * Update CHANGELOG.md and optimise images --------- Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> Co-authored-by: Dhruv Suthar <intelligentjimmy@gmail.com> Co-authored-by: raycastbot <bot@raycast.com>
- chore: release v2026.02.08.2 - chore: release v2026.02.08.1 - chore: release v2026.02.08 - chore: release v2026.02.07.7 - chore: release v2026.02.07.6 - chore: release v2026.02.07.5 - chore: release v2026.02.07.4 - chore: release v2026.02.07.3 - chore: release v2026.02.07.2 - chore: release v2026.02.07.1 - chore: release v2026.02.07 - chore: release v2026.02.06.3 - feat: add follow-up settings, notification preferences, and notifications pages - feat: add notifications, follow-up sequencing, and bulk operations - chore: release v2026.02.06.2 - chore: release v2026.02.06.1 - chore: release v2026.02.06 - chore: release v2026.02.04.4 - feat: add Salesforce API call observability - chore: release v2026.02.04.3 - chore: release v2026.02.04.2 - chore: release v2026.02.04.1 - chore: release v2026.02.04 - chore: release v2026.02.02.5 - chore: release v2026.02.02.4 - chore: release v2026.02.02.3 - chore: release v2026.02.02.2 - chore: release v2026.02.02.1 - chore: release v2026.02.02 - fix: sync pnpm-lock.yaml with packages/ai package.json (react, @types/react) - chore: release v2026.02.01.5 - chore: release v2026.02.01.4 - chore: release v2026.02.01.3 - chore: release v2026.02.01.2 - chore: release v2026.02.01.1 - Merge branch \'main\' of https://github.com/mjking/swansonking into main - chore: release v2026.02.01 - refactor: decompose large components + add 15 missing loading states (raycast#25) - refactor: standardize all entity list pages to server components (raycast#24) - chore: production code quality sweep (552 files cleaned) (raycast#22) - test: add comprehensive test suite (31 new test files, 951 tests) (raycast#21) - feat: comprehensive accessibility improvements (25 files) (raycast#23) - chore: add .worktrees/ to gitignore - fix: update tasks page dropdown labels and offer filters to use statuses - chore: release v2026.01.31.6 - fix: sort offers by status stepper order, remove stage column, fix property cache - chore: release v2026.01.31.5 - chore: release v2026.01.31.4 - chore: release v2026.01.31.3 - chore: release v2026.01.31.2 - chore: release v2026.01.31.1 - chore: release v2026.01.31 - chore: release v2026.01.29 - chore: release v2026.01.28 - chore: release v2026.01.26.1 - refactor: remove header and nav from AppTopNav component - chore: release v2026.01.26 - feat: implement app-based navigation architecture - chore: release v2026.01.25.4 - feat: add Postmark webhook to public paths - chore: release v2026.01.25.3 - feat: improve company detail page and contact fetching - chore: release v2026.01.25.2 - chore: release v2026.01.25.1 - chore: release v2026.01.25 - chore: release v2026.01.24.2 - chore: release v2026.01.24.1 - chore: release v2026.01.24 - chore: release v2026.01.22 - chore: release v2026.01.21.9 - chore: release v2026.01.21.8 - chore: release v2026.01.21.7 - chore: update pnpm-lock.yaml to fix prisma version mismatch - chore: release v2026.01.21.6 - chore: release v2026.01.21.5 - chore: release v2026.01.21.4 - chore: release v2026.01.21.4 - Merge pull request raycast#18 from mjking/dependabot/npm_and_yarn/fumadocs-core-16.4.2 - Merge pull request raycast#20 from mjking/dependabot/npm_and_yarn/ultracite-7.0.4 - chore(deps): bump fumadocs-core from 16.4.0 to 16.4.2 - chore(deps-dev): bump ultracite from 6.5.0 to 7.0.4 - chore: release v2026.01.21.3 - chore: release v2026.01.21.2 - chore: release v2026.01.21.1 - chore: release v2026.01.21 - Fix Error Boundary infinite loop and improve error logging to identify failing component - Add Error Boundary around ClerkProvider to catch React error raycast#130 and identify failing component - Fix TypeScript error: Add type assertion for error object in catch block - Update env var schema: Replace deprecated NEXT_PUBLIC_CLERK_AFTER_SIGN_* with NEXT_PUBLIC_CLERK_SIGN_*_FALLBACK_REDIRECT_URL - Fix TypeScript error: Use type assertion for ClerkProvider redirect URL props - Add detailed logging for Clerk redirect URL props - preparing for env var fix - Fix React error raycast#130: Override deprecated Clerk env vars with new fallbackRedirectUrl props - Add debug instrumentation for React error raycast#130 - check Clerk components and props - debug: add comprehensive instrumentation with console logs to identify undefined components causing React error raycast#130 - chore: release v2026.01.20.14 - debug: add runtime validation to identify undefined components causing React error raycast#130 - chore: release v2026.01.20.13 - chore: release v2026.01.20.12 - chore: release v2026.01.20.11 - chore: release v2026.01.20.10 - fix: pin radix-ui to exact version 1.4.3 - chore: release v2026.01.19.5 - chore: release v2026.01.19.4 - chore: release v2026.01.19.3 - chore: release v2026.01.19.2 - chore: release v2026.01.19.1 - chore: release v2026.01.19 - fix: add QueryClientProvider to root layout - fix: move dynamic import with ssr:false to client component - fix: add DELETE handler for contact deletion API - docs: update progress after CRM list pages conversion - perf: convert comps list to TanStack Query - perf: convert properties list to TanStack Query - perf: convert deals list to TanStack Query - perf: convert contacts list to TanStack Query - perf: convert companies list to TanStack Query - docs: update progress after email audiences conversion - perf: convert email audiences to TanStack Query - docs: update progress after email templates conversion - perf: convert email templates to TanStack Query with useQueries - docs: update progress after email dashboard conversion - perf: convert email dashboard to TanStack Query - fix: correct type annotation in search page map callback - perf: convert all mail pages to TanStack Query - docs: update progress after email/settings conversion - perf: convert email/settings/page.tsx to TanStack Query - docs: update progress after email report pages conversion - perf: convert email report pages to TanStack Query - docs: update progress after email/campaigns conversion - perf: convert email/campaigns/page.tsx to TanStack Query - docs: mark remaining tasks as future PRs with complexity notes - docs: add implementation progress summary - perf: convert mail selector components to TanStack Query - docs: mark bundle-10 as deferred - docs: update REACT-PERF-RECOMMENDATIONS with more task completions - perf: add debouncing to deal-selector search input - docs: update REACT-PERF-RECOMMENDATIONS with deferrals - perf: add lazy loading to mail template preview iframes - refactor: consolidate mail pricing constants to shared module - docs: update REACT-PERF-RECOMMENDATIONS.md with completed tasks - perf: implement React performance optimizations - perf(mail): add loading skeletons for mail pages - perf(email): add loading skeletons for email pages - perf(admin): add Suspense boundaries to admin pages - chore: release v2026.01.17.7 - chore: release v2026.01.17.6 - chore: release v2026.01.17.5 - chore: release v2026.01.17.4 - chore: release v2026.01.17.3 - chore: release v2026.01.17.2 - chore: release v2026.01.17.1 - chore: release v2026.01.17 - chore: release v2026.01.16.3 - chore: release v2026.01.16.2 - chore: release v2026.01.16.1 - chore: release v2026.01.16 - chore: release v2026.01.15.1 - chore: release v2026.01.15 - chore: release v2026.01.14.1 - fix: update buildCompInternalUrl test to match /comp/:id URL structure - chore: release v2026.01.14 - chore: release v2026.01.13.3 - chore: release v2026.01.13.2 - chore: release v2026.01.13.1 - chore: release v2026.01.13 - chore: release v2026.01.12.4 - chore: release v2026.01.12.3 - chore: release v2026.01.12.2 - chore: release v2026.01.12.1 - chore: release v2026.01.12 - chore: release v2026.01.11.4 - chore: release v2026.01.11.3 - chore: release v2026.01.11.2 - chore: release v2026.01.11.1 - chore: release v2026.01.11 - chore: release v2026.01.10.1 - chore: release v2026.01.10 - chore: release v2026.01.08 - chore: release v2026.01.07.8 - chore: release v2026.01.07.7 - chore: release v2026.01.07.6 - chore: release v2026.01.07.5 - chore: release v2026.01.07.4 - chore: release v2026.01.07.3 - chore: release v2026.01.07.2 - chore: release v2026.01.07.1 - chore: release v2026.01.07 - Add mail-v2 feature with templates, webhooks, and Salesforce integration - Update vercel.json and add Claude skills - chore: release v2026.01.02.2 - chore: release v2026.01.02.1 - chore: release v2026.01.02 - Update map store and CBA ingest logic - Update dependencies and improve UI components - Update AI models and improve offer workflow - Update dashboard components, contact mapping, and CBA ingestion - Improve mail audiences UI: widen modal and replace cramped tabs with select dropdown - Update mail campaigns and add postcard editor - Update email system and refactor type definitions - Refactor code style and improve error handling - Fix date picker timezone issue and improve email UI - Remove auto-generated .d.ts files and update email README - Refactor links config and navigation structure - Wire Salesforce deal URLs and tweak new-deal schemas - Add new-deal brokers endpoint and underwriting enhancements - Update tools, CBA, and navigation - Add email reports and escrow dates features - chore: update email generator - refactor: simplify email generator to card-based layout only - fix: remove border lines between name/role and milestone/date columns - fix: remove hard return from email footer - fix: combine email footer paragraphs and add line break - chore: update email generator - chore: update email generator - chore: update email generator - chore: update email generator and remove test-gemini route - chore: update salesforce operations [skip vercel] - chore: test and typecheck updates - Fix TypeScript errors: remove generic type args from conn.query and fix import path - Fix CampaignRow prop: use onRefresh instead of onDelete - Add email webhooks debug tools and update webhook handler - Update email engagement tracking PRD with unified object, batch processing, and missing fields - Fix CampaignRow prop: use onRefresh instead of onDelete - Add email reports feature and update Postmark webhook - Update email campaigns and CBA logic - Update email and Salesforce pages - Update email audience sync functionality - Update sidebar and email pages - Update contact and duplicate resolution components - Update CBA ingest logic - Update nuqs to latest version (2.8.4) - Merge pull request raycast#5 from mjking/dependabot/npm_and_yarn/liveblocks/node-3.11.0 - Merge pull request raycast#6 from mjking/dependabot/npm_and_yarn/arcjet/next-1.0.0-beta.15 - Merge pull request raycast#1 from mjking/dependabot/npm_and_yarn/lucide-react-0.555.0 - Merge pull request raycast#7 from mjking/dependabot/npm_and_yarn/react-hook-form-7.66.1 - Merge pull request raycast#10 from mjking/dependabot/npm_and_yarn/posthog-node-5.14.0 - Bump @liveblocks/node from 3.9.1 to 3.11.0 - Bump lucide-react from 0.548.0 to 0.555.0 - Bump posthog-node from 5.10.3 to 5.14.0 - Bump react-hook-form from 7.65.0 to 7.66.1 - Bump @arcjet/next from 1.0.0-beta.13 to 1.0.0-beta.15 - Fix Raycast extension to use preferences for App URL instead of hard-coded value - Remove AI-generated slop: clean up comments, debug code, and any types - Update company and contact detail pages - Remove storybook app from workspace and build configuration - Update all Next.js packages to 16.0.7 to fix type compatibility issues - Fix Vercel skip-ci script path to work from monorepo root - Security: update Next.js to 16.0.7 and fix Vercel skip-ci script path - Fix build error: make Postmark env var checks lazy to avoid build-time failures - Fix typecheck errors: add CbaRun type exports, add return type annotations to Salesforce functions - Fix typecheck errors: remove invalid ScrollArea orientation prop, add Campaign type import, fix loadRecentItems usage order - Update email theme and phone formatting - Fix TypeScript error: handle jsforce update result as array or single object - Fix task update: check result.success instead of result[0].success for single record updates - Fix task update errors: improve Salesforce error handling and logging - Update changes - Update sign-in title and include docs in Vercel - fix: resolve production 404s and update sidebar search - fix: resolve TypeScript errors and disable declarationMap - fix: resolve TypeScript errors and update AI SDK dependencies - fix: migrate to AI SDK v6 and fix TypeScript errors - chore: add .vercelignore to exclude reference, docs, and scripts folders - feat: add chatbot v6 with AI Elements and model selector - fix: resolve TypeScript error in hero component and update dependencies - chore: update vercel flags route - chore: update README and vercel flags route - chore: update .env.example files - chore: update configuration and API routes - chore: update codebase with latest changes - UI improvements: map contact filters, grouped markers, breadcrumbs, and sidebar updates - feat: update Raycast extensions, improve contact geocode tool UI, and add new components
- Execute Raycast prepublish plan - Implement Teak Raycast release plan - Fix ultracite path and namespace - Constrain convex/values imports - Review recent uncommitted changes - Add local build scripts and ignore IPA files - Fix mobile dev script by removing unnecessary filter - Fix turbo dev daemon failure - Fix SearchBar tests and layout - Implement deterministic time search - Add deterministic time search - Add deterministic time search - Update extension packaging command - docs: update AGENTS quick commands - feat: enhance SEO with canonical URLs, structured data, and update image components - feat: add canonical URLs to metadata for improved SEO - feat: add sitemap generation for static and dynamic pages - feat: add JSON-LD structured data components for SEO and implement schema in pages - feat: implement author and changelog pages with metadata and dynamic content - feat: add robots.txt for SEO and update dev scripts to use watch mode - refactor: update parameter names to improve clarity in tests and components - fix: add title elements to SVGs for accessibility - feat(admin): filter out onboarding cards by default - feat: add build:extension script and start task; enhance turbo.json with environment variables - refactor: simplify DragOverlay component and improve drag-and-drop handling - chore: update dependencies and fix Polar checkout API - fix: keep search filter pills visible when clicking and show Clear All with search text - refactor: remove async keyword from redirects and headers in next.config.mjs refactor: add default case for unknown actions in background.ts refactor: update AuthHelper and UiHelper constructors for better readability refactor: clean up biome.jsonc linter rules for consistency refactor: add default case in rgbToHsl function in colorUtils.ts - fix: biome config updates and workflow improvements - refactor: simplify SearchBar component structure and improve FaviconImage error handling in LinkPreview feat: add captions track to audio and video previews refactor: change color swatch to button in PalettePreview chore: update linter rules in biome configuration - Fix linting issues and improve code quality across web, extension, and convex packages - refactor: improve code quality and color utility functions - refactor: clean up convex package code and tests - refactor: update extension and convex tests with minor fixes - chore: apply Biome formatting and linting fixes - Move Tests - Center header navigation links in docs app - TURBOREPO (#36) - chore: update @convex-dev/workflow to 0.3.4 - Delete outdated landing page content, including features, hero section, testimonials, use cases, ideal customer profile, messaging framework, user personas, positioning, competitive analysis, objections, one-pager, pitch deck, and pricing strategy documents. - feat: update login and registration page titles and descriptions for improved clarity - feat: enhance metadata for SEO and social sharing across multiple pages - test: expand coverage across convex workflows and clients - test: fix convex test import paths - Remove obsolete test files for link categories, link category resolver, link metadata, shared constants, shared hooks, workflows, and renderables. These deletions streamline the test suite by eliminating unused or redundant tests, ensuring a more efficient testing process. - feat: add pre-permission alerts for iOS app compliance (#33) - fix: add OG image and Twitter card tags to docs (#32) - fix: update store configuration with copyright and release details - Merge branch \'main\' of github.com:praveenjuge/teak-convex-nextjs - Add end-to-end tests for tag management, favorites functionality, and trash operations - Merge pull request #31 from praveenjuge/praveenjuge/fix-privacy-purpose-strings - fix: improve privacy permission strings with clearer purpose descriptions - test: expand card processing and link metadata coverage - Improve card search performance and update deps - Optimize card search with tag indexes - refactor: optimize performance by using refs in MasonryGrid and memoize Card component - Memoize MasonryGrid handlers - Simplify notes modal title and fix link icon mapping - feat: add local card search cache - Add paginated card search and infinite scroll - style: apply global styles to body only - fix: set minimum height for html element to ensure proper layout - refactor: remove unused Apple Test component and clean up related code - feat: add tag management and image copy functionality to cards - feat: add deployment instructions and increment version to 1.0.1 - feat: implement findDuplicateCard query and integrate into auto-save functionality - feat: add technical deep dives and feature spotlights to tweet ideas - feat: add iOS metadata configuration for app submission - feat: enhance error logging and handling across authentication and media components - feat: add SVG thumbnail generation and processing for image cards - feat: add EXIF orientation handling for thumbnail generation - feat: update dependencies and improve metadata generation functions - feat: add Open Graph support and dynamic image generation - feat: Store original image/video dimensions in fileMetadata - feat: Enhance video card processing to utilize thumbnail for metadata generation and add corresponding tests - feat: Add resetCardProcessingState mutation and enhance fetchMetadataHandler with fallback to HTML fetch - feat: Add wildcard support for trusted origins in authentication configuration - Add foundational documentation and features for Teak - feat: Remove deprecated admin dashboard components and related hooks; add pagination to card and user listing queries - feat: Add Instagram link metadata handling and primary image extraction - feat: Implement link detection and extraction utilities; update card processing and form handling - feat: Add support for link preview image handling and dimensions across card components - refactor: Optimize link metadata handling and improve Card component layout - Merge branch \'main\' of github.com:praveenjuge/teak-convex-nextjs - style: Improve layout and responsiveness of LinkPreview component - Merge pull request #29 from praveenjuge/seer/refactor/descriptive-color-vars - Add comprehensive test coverage for link metadata parsing and workflows - Refactor: Improve readability of RGB variables in color utilities - feat: Add clipboard, file system, and sharing functionalities to CardItem and CardPreviewSheet components - feat: Replace long press gesture with a ContextMenu for delete actions. - chore: include test files in tsconfig for compilation - test: Improve coverage for color utilities, structured data parsing, kernel failures, auth dependencies, and default error handling. - refactor: extract link metadata workflow handlers and add new categorization tests - test: add new color utility and link metadata workflow tests, and enhance error handling and content type coverage in existing workflow tests. - feat: update test runner to Bun and refactor AI and categorization tests - Add tests for link categories and enhance color utility tests - feat: Implement feedback dismissal timer and improve pointer events handling in FeedbackBottomSheet component feat: Add end-to-end tests for admin dashboard and card CRUD operations feat: Configure Playwright to match end-to-end test files with .e2e.ts extension - feat: Adjust feedback dismissal timing and manage sheet open state in FeedbackBottomSheet component - feat: Refactor CardItem and CardPreviewSheet components for improved rendering and audio handling - feat: Update CardItem and CardPreviewSheet components for improved audio handling and UI adjustments - feat: Integrate CardPreviewSheet for enhanced card media previews and add expo-video dependency - feat: Remove deprecated aiModelMeta, microlinkData, and workflowId fields from card migrations and schema - feat: Remove workflowId handling from card processing and add migration to clean up existing data - feat: Remove deprecated microlinkData and aiModelMeta fields from metadata and card validators - feat: Add migration to remove deprecated metadata.microlinkData field and update schema for cleanup - feat: Remove deprecated aiModelMeta field and update related queries and mutations - feat: Refactor Favicon and CardItem components for improved layout and styling - feat: Simplify CardItem component by standardizing icon colors and removing unnecessary elements - feat: Remove unused functions and simplify CardsGrid component - feat: Add user card count display and loading indicator in SettingsScreen - feat: Derive user name from email during sign-up for improved user experience - feat: Refactor HomeScreen and CardsGrid for improved search functionality and loading state handling - feat: Update FeedbackBottomSheet to clear feedback status correctly and enhance CardItem text display - feat: Update logout and account deletion flows to redirect to welcome screen - feat: Rename auth `index` screen to `welcome` and implement dynamic authentication-based navigation redirection. - feat: Integrate ConvexQueryCacheProvider and update dependencies for improved state management - feat: Implement FeedbackBottomSheet for improved feedback display and handling - feat: Simplify FeedbackStatusScreen by removing StatusBar and refactoring StatusOverlay props - feat: Refactor AddScreen to simplify layout and enhance recording UI feedback - feat: Refactor AddScreen layout by replacing VStack with List for improved structure and styling - feat: Refactor SignUpScreen layout by replacing Form with VStack for improved structure and styling - feat: Add ESLint configuration and integrate react-compiler plugin; update sign-in and sign-up screens for improved UI components - feat: Update routing in Onboarding and SignIn screens to direct to home tab and clean up unused keyboard dismiss logic - feat: Implement authentication navigation with initial route handling and update sign-in/sign-up paths - feat: Refactor authentication handling in RootLayout and remove unused router in SignInScreen - feat: Update AppleLogo component to accept color prop and adjust OnboardingScreen for dynamic Apple logo color - feat: Add delete account functionality with confirmation prompt in SettingsScreen - feat: Enhance Favicon component with error handling and update CardItem layout for media actions - feat: Update AddScreen layout with section titles and adjust button spacing for improved UI - feat: Update CardItem to use pre-resolved fileUrl and remove getFileUrl query - feat: Add tests for getFileUrl function to enforce authentication and card ownership checks - feat: Add cardId to getFileUrl query for ownership checks in CardItem component - feat: Add tests for ensureCardCreationAllowed function and enhance card creation logic with subscription checks - feat: Enhance renderables processing with improved error handling and status updates for thumbnail generation - feat: Implement audio recording stop functionality with state management and error handling - feat: Refactor card processing and link enrichment workflows by removing unused parameters and enhancing mutation tests - feat: Add tests for metadata link content fallback and enhance link content handling - feat: Enhance self-hosting documentation with detailed environment setup and production guidelines - feat: Update free tier card limit to 200 and adjust related messaging across the app - feat: Enable authentication handling by updating Convex client configuration and enhancing error utility - feat: Update package dependencies and refactor RootLayout component - feat: Update database interactions to use explicit collection names and refactor authentication handling - Merge pull request #27 from praveenjuge/adjust-linkpreview-for-mobile-view - Adjust link preview layout on mobile - feat: Refactor LinkPreview component to use Link for navigation and improve layout - feat: Add .code to .gitignore to exclude code directory from version control - refactor: Simplify layout and styling of QuotePreview component - feat: Enhance file upload handling with card type validation and error messaging - feat: Add selected card handling in HomePage and update CardModal to utilize selected card data - feat: Add file URL handling to card components and update related previews - feat: Enhance card functionality by adding file URL handling and updating components to utilize new URL properties - fix: Adjust GridImagePreview to remove conditional rendering for link image display and enforce consistent height - fix: Update GridImagePreview to use a default aspect ratio and improve layout - fix: Remove rounded corners from image preview component - Merge branch \'main\' of github.com:praveenjuge/teak-convex-nextjs - feat: Add palette extraction and display functionality for image cards - Merge pull request #25 from praveenjuge/update-card-limit-from-25-to-50 - Update docs/app/(home)/page.tsx - Merge pull request #23 from praveenjuge/vercel/react-server-components-cve-vu-0biic9 - Increase free card allowance to 50 - Fix React Server Components CVE vulnerabilities - Merge pull request #22 from praveenjuge/vercel/react-server-components-cve-vu-fhrqgz - Fix React Server Components CVE vulnerabilities - feat: Add /apple-test to proxy allowed paths. - feat: add Apple Sign-In test page with debug logging and session checks. - chore: Temporarily disable Apple social sign-in buttons and add callback URL configuration. - Remove `callbackURL` parameter from Apple social sign-in. - feat: Add Apple Sign-In functionality to web and mobile authentication flows. - feat: Add Apple authentication provider and its required origin to allowed origins. - fix: Adjust spacing in Row component and update image size in CardItem for better layout - refactor: Remove unused share intent handling and clean up configuration - fix: Update app configuration and dependencies for improved stability and performance - Merge branch \'main\' of github.com:praveenjuge/teak-convex-nextjs - Merge pull request #20 from praveenjuge/vercel/vercel-web-analytics-to-nextjs-9ehjmc - fix: Change email verification message format from text to HTML for improved rendering - fix: Update email verification message format for better readability - fix: Open password reset and email verification links in a new tab - Add Vercel Web Analytics to Next.js - fix: Update Next.js dependency to version 16.0.7 - feat: Update API types to support multiple recipients and enhance email component structure refactor: Simplify layout structure in documentation and improve navigation handling style: Adjust global styles for navigation and sidebar responsiveness fix: Update package dependencies for improved stability and performance - refactor: Remove unused loading components and simplify layout structure in admin and auth pages - feat: Enhance file upload with additional metadata for images and videos - fix: Remove debug output of cards in HomePage component - fix: Update package dependencies and improve empty state rendering in HomePage component - refactor: Simplify layout structure and enhance loading state handling in admin and profile settings pages - fix: Add missing commas in query conditions and improve code formatting - feat: Add retry behavior for AI metadata workflow actions - Merge branch \'main\' of github.com:praveenjuge/teak-convex-nextjs - refactor: Improve internal workflow references and add error handling for missing AI metadata workflow - Merge pull request #17 from praveenjuge/seer/fix/file-upload-content-type-fallback - fix: Provide fallback Content-Type for file uploads - refactor: Replace img elements with Image component for better handling and add placeholders in LinkPreview and Card components - refactor: Fix Toaster component syntax and ensure consistent formatting - refactor: Streamline file upload handling in AddCardForm and improve toast notifications - refactor: Enhance file upload validation and error handling in AddCardForm and useFileUpload hooks - refactor: Update changelog titles and improve changelog generation guidelines - refactor: Update documentation links and remove obsolete environment settings file - refactor: Simplify ShareIntentScreen by removing unused functions and optimizing feedback handling - refactor: Remove unnecessary View wrapper in SearchScreen component - refactor: Update loading state in CardsGrid to use CircularProgress component - refactor: Simplify FeedbackStatusScreen and ErrorBoundary components with new UI structure - refactor: Update sign-up button variant for consistency - refactor: Remove unused dependencies and enhance keyboard handling in sign-up and layout components - refactor: Update imports to use absolute paths and improve layout consistency across components - refactor: Update TabLayout icons to use new structure and improve consistency - refactor: Update SignIn and SignUp screens to use new UI components and simplify layout - refactor: Simplify OnboardingScreen layout and replace Google sign-in with buttons - refactor: Update routing in SignIn and SignUp screens, remove Google sign-in logic and related UI elements from all auth screens - refactor: Remove unused imports and simplify layout in CardsGrid and CardItem components - refactor: Remove unused imports in SearchScreen component - refactor: Streamline file selection process in AddScreen component - refactor: Simplify CardItem component by removing redundant view and text elements - refactor: Remove unnecessary style from Host component in Settings screen - refactor: Remove unused HapticTab and TabBarBackground components - refactor: Simplify loading check in Settings screen - refactor: Update appearance options in Settings screen; remove subtitles for clarity - feat: Refactor Home and Settings screens; implement Search screen layout and functionality - feat: Add Home and Add screens with layout and functionality; remove old Settings screen - feat: Implement theme preference management and update settings screen layout - fix: Add callbackURL for Google sign-in in onboarding, sign-in, and sign-up screens - fix: Update allowed redirect URIs for authentication in development mode - fix: Add missing @react-native/virtualized-lists dependency - fix: Update @convex-dev/better-auth dependency to version 0.9.9 - fix: Update next dependency to use the latest canary version - feat: Add email verification alert after successful registration - refactor: Update cookie handling in getSessionTokenFromCookies for better clarity and error logging - refactor: Enhance session fetching logic to handle token authorization and improve error logging - refactor: Update allowed redirect URIs and enhance URL restriction checks - refactor: Remove sign-out functionality from AuthenticatedPopup component - feat: Add upgrade prompt for users reaching card limit in AuthenticatedPopup - refactor: Update session fetch logic to include Better Auth cookie handling - feat: Implement web app session management and refactor authentication handling - refactor: Update layout classes for consistent sizing in App and index.html - feat: Add video thumbnail generation and enhance video previews in Card component - refactor: Simplify DocumentPreview layout by adjusting iframe height and consolidating file name display - feat: Implement PDF thumbnail generation and enhance document previews in Card component - refactor: Remove unnecessary logging and streamline workflow handlers for improved clarity - feat: Add optimistic card handling with visual indicators in Card component - refactor: Remove unused enrichment functions and related imports from AI links - refactor: Replace internalAction with internalMutation in AI workflows and remove unused retry behavior - feat: Update package dependencies and enhance UI elements in password reset flow - feat: Add optional fields for maximumAmount, minimumAmount, presetAmount, and oneBatchOnly in components - Revert "feat: Enhance billing and authentication flows with new API methods and UI improvements" - feat: Enhance billing and authentication flows with new API methods and UI improvements - feat: Centralize type imports by replacing references to dataModel with shared types - feat: Consolidate card creation limits and remove deprecated cardLimit module - feat: Update various components to use void for async function calls and improve code clarity - feat: Enhance card management with improved indexing, validation, and memory handling - feat: Refactor AI metadata generation to use centralized model definitions and system prompts for improved maintainability - feat: Add DialogDescription to CardModal for improved accessibility and loading state indication - feat: Replace react-masonry-css with antd Masonry component and update masonry item rendering - feat: Make aiModelMeta optional in updateCardAI and update card retrieval in generateThumbnail - feat: Enhance metrics tracking for password resets, customer portal access, and various user interactions - feat: Update AI integration from OpenAI to Groq API and enhance metadata processing - feat: switch from OpenAI to Groq for AI metadata generation and audio transcription - feat: enable stealth mode for kernel browser sessions in metadata fetching and screenshot capture - feat: migrate from Cloudflare Browser Rendering to Kernel for link previews and screenshots - Revert "feat(sentry): Integrate Sentry for error tracking and performance monitoring across Convex workflows and actions" - feat(sentry): Integrate Sentry for error tracking and performance monitoring across Convex workflows and actions - feat: implement metrics tracking for user actions across authentication, card management, and file uploads - fix: update Sentry configuration with correct organization and project names, and modify DSN values - feat: integrate Sentry error capturing across various components and hooks - feat: ensure edge runtime configuration is imported in Sentry registration - fix: remove unnecessary comments and clean up Sentry initialization code - feat: implement AI-generated changelog with batch processing and new changelog files - feat: enhance Sentry feedback integration with themeLight and themeDark configurations - feat: add SentryUserManager component for user data synchronization with Sentry - feat: enhance Sentry configuration with console logging and feedback integration - fix: update sign-out behavior to refresh router and redirect to login page - feat: implement rate limiting for card creation and enhance error handling - fix: handle unauthenticated errors gracefully in getCurrentUser query - refactor: update text sizes and styles across multiple components for consistency - fix: include links in baseOptions destructuring for layout component - feat: integrate Sentry for error tracking and monitoring in client and server - refactor: update registration links and button texts across multiple components - Add GoogleIcon component with SVG representation - refactor: introduce hostnameMatchesDomain function to enhance domain matching logic and improve security - chore: improve mobile linting and fix minor issues - refactor: update ESLint config and improve error handling in background script; enhance context menu save logic - refactor: streamline configuration and improve code readability across multiple files - refactor: remove unnecessary TypeScript ignore comments and improve variable declarations - fix: update ESLint configuration and lint script for improved compatibility - Flatten web directory into src - Test Git Hooks - Swap Git Hooks - Refactor card-related functionality into a dedicated \'card\' module - fix: hide mobile TOC/navigation and adjust layout spacing - feat: Update layout components and styles for improved navigation and background rendering - feat: Implement AI metadata generation and renderables workflow - feat: add UI components and hooks for card management and file uploads - fix: remove user management exports from index file - fix: correct web app version details in README - docs: enhance documentation structure and clarity across multiple files - fix: update button variant in SearchBar component for settings link - feat: add authentication middleware and user account management - fix: update imports and type handling for MDX content and adjust TypeScript paths - fix: add webpack alias configuration for source directory - fix: remove secondary CTA from layout and add build script for docs - fix: simplify CTA components by removing secondary button and update documentation for environment settings - fix: remove outdated link categorization section and unused component reference from documentation - fix: refactor link metadata handling to start extraction in parallel and improve validation checks - fix: refactor categorization logic by removing unused domainMap and adding link category resolver with tests - fix: update documentation to remove specific version numbers from the web frontend and documentation stack - fix: update documentation to remove version numbers from tech stack and environment settings - fix: refactor admin access control to use first user ID instead of environment variable - fix: refactor ProfileSettingsPage to derive cardCount and hasPremium from user data, remove unused getCardCount query - fix: refactor SearchBar component by removing unused UserAvatar and integrating settings link - fix: implement deterministic domain categorization and enhance link classification logic - fix: enhance palette color extraction logic and remove AI dependency - fix: update classification step to use deterministic heuristics and improve card type classification logic - fix: add back navigation link to SettingsLayout and remove unused import from ProfileSettingsPage - fix: remove password confirmation field and related validation from SignUp component - fix: simplify SettingRow component and improve layout consistency - fix: update environment variable configuration and improve clarity in documentation - fix: enable email verification during user registration and update error handling in sign-in - fix: update navigation paths from subscription to settings - Fix Login Error - fix: clean up logging and comments in createAuth function - fix: remove vercel.json configuration file - fix: disable crossDomain plugin in createAuth function - fix: add trusted origins for Better Auth integration - Merge pull request #4 from praveenjuge/better-auth - Merge pull request #7 from praveenjuge/copilot/sub-pr-4 - fix: use user\'s theme preference in Polar checkout instead of hardcoded light theme - Initial plan - Merge pull request #5 from praveenjuge/copilot/sub-pr-4 - Merge pull request #6 from praveenjuge/copilot/sub-pr-4-again - fix: remove hardcoded test credentials from mobile sign-in - Remove admin logging statement from production code - Update apps/web/app/(auth)/login/page.tsx - Update apps/extension/entrypoints/popup/App.tsx - Initial plan - Initial plan - Update apps/web/app/(auth)/forgot-password/page.tsx - refactor: replace Clerk with Better Auth across mobile, web, and tests - refactor: migrate to BetterAuth for authentication and enhance error handling - refactor: replace Clerk authentication with BetterAuth and improve error handling - refactor: integrate BetterAuth for improved authentication and update dependencies - refactor: implement registration status check and limit user registrations - refactor: update Next.js version and add analyze script - refactor: update imports and enhance state management in settings page - refactor: enhance subscription management UI and remove unused components - refactor: replace UserProfileDropdown with UserAvatar component and streamline settings layout - refactor: move theme selection from profile dropdown to settings page - refactor: modularize subscription UI into components and integrate into settings pages - feat(auth): enhance getCurrentUser to return null if user is not found - fix: add missing TypeScript ignore comment and adjust Badge padding in PlanOption component - feat(profile): enhance avatar upload functionality and improve user experience - feat(auth): implement account deletion functionality and update related components - fix: update popover and primary foreground colors in globals.css for improved contrast - fix: correct popover foreground color in globals.css - refactor: update color classes in BottomPattern and TopPattern components for consistency - refactor(settings): simplify ProfileSettingsPage layout and remove unused components - refactor(auth): update button variant in SettingsSidebarNav and remove user ID display in UserProfileDropdown - feat(admin): implement Admin Dashboard with data fetching and UI components - Refactor layout and page structure; remove subscription page and update user profile dropdown - refactor(auth): simplify user profile dropdown and enhance theme selection - refactor(auth): enhance user profile dropdown and integrate avatar component - refactor(auth): standardize terminology for login references across authentication components - refactor(auth): enhance password validation and user feedback in SignUp form - refactor(auth): implement alert component for error and success messages in authentication forms - refactor(auth): update form handling and loading state in authentication components - refactor(auth): add required attribute to password fields in SignIn, SignUp, and ResetPassword forms - refactor(auth): update email placeholder text for consistency across authentication forms - refactor(auth): enhance UI consistency and improve user feedback in authentication forms - refactor(migration): remove outdated migration guides for Clerk to Better Auth transition - refactor(auth): streamline password input and footer links in SignIn component - fix(auth): update CardDescription styles in forgot and reset password pages - feat(auth): implement forgot and reset password functionality with Better Auth integration - refactor(docs): update authentication references from Clerk to Better Auth - feat(auth): integrate Better Auth for user authentication - Merge branch \'main\' of github.com:praveenjuge/teak-convex-nextjs into better-auth - chore(deps): update dependencies in package.json and backend package.json refactor(api): improve internal function references in linkMetadata and workflows fix(linkMetadata): enhance error handling and category normalization in workflows fix(screenshot): update internal function references for screenshot capture - Add Better Auth implementation documentation - refactor(docs): consolidate content from CLAUDE.md into AGENTS.md - fix(docs): adjust metadata titles - fix(screenshot): clean up code formatting and add CSS for screenshot capture - fix(web): refine card modal layout - feat(admin): add dashboard card modal components - feat(linkMetadata): move preview helpers - chore(tasks): expose quoteFormatting task - fix(cards): normalize quote handling - feat(web): remove alpha banner - feat(docs): add apps landing page - feat(docs): add icons to documentation pages - fix(extension): add cookies permission and key - chore(extension): remove store listing docs - chore: add support doc and refresh extension deps - feat(docs): add terms of service page - fix(dependencies): update package versions for stability - feat(categorization): add dribbble provider - feat(backend): consolidate task exports - fix(ai metadata): require single-word tags - feat(ai): add metadata workflow - feat(docs): refresh home and changelog messaging - docs: refresh marketing copy - docs: expand workflows and env docs - docs: update development, environment settings, and features documentation - docs: refresh README and docs details - Merge pull request #3 from praveenjuge/update-quick-start-section-in-development.mdx - fix(docs): update development quick start - feat(docs): refresh marketing pages - fix(web/badge): apply dark mode background for outline variant - docs(readme): add Vercel OSS Program badge under platform list - fix(web/globals.css): increase masonry grid gutter/column spacing and normalize font-face src indentation - fix(web/card): refine link preview layout and accessibility - fix(workflows): parallelize metadata/renderables, tune retries, and refine link metadata flow - fix(docs/changelog,docs/home,docs/package.json): replace Next Image with native img for avatar & hero, remove priority prop, and bump dependency versions - fix(docs/changelog,docs/next-config): remove explicit revalidate, use shrink-0 for avatar, and add output: "export" to next config - fix(web/card-modal): use paragraph with adjusted spacing and add border for Notes and Summary - fix(workflows/classification): treat fully-quoted snippets as quote cards and silence TS type error - fix(web/card-modal): reduce badge icon size to 3.5 for consistent spacing - fix(web/card-modal,web/link-preview): show card content for unknown types, restore preview bg, and tidy link preview - fix(web/dialog): add dark mode background to dialog overlay - chore(deps): bump lint-staged to ^16.2.6 - chore(deps): bump dependency versions in web and backend - feat(web/global-error): add GlobalError client component for app-level error fallback - refactor(workflows/manager): centralize card-processing startup and update callers - feat(aiBackfill): add AI backfill workflow, wire into crons/admin, remove old enqueue action - feat(linkEnrichment): extract link categorization/enrichment into dedicated workflow - refactor(cardCleanup): move scheduled cards cleanup into workflow - refactor(workflows): move screenshot capture into dedicated screenshot workflow/step and update callers - feat(linkMetadata): implement link metadata extraction workflow and error handling - Update Docs Design - fix: unblock auth layout and convex typing - refactor(renderables): own thumbnail generation in workflow - refactor(workflows): move card pipeline out of tasks namespace - chore: refresh marketing copy and drag overlay ui - fix(subscription): replace product query with fixed plan ids - feat(billing): embed polar checkout flow - refactor: simplify billing guards and logo link styling - fix(cards): improve preview styles and fallbacks - fix(web): adjust card modal layout spacing - fix(palette): prefer regex extraction and show content fallback - feat(cards): improve link fallback display and workflow logging - fix(subscription): clarify manage CTA label - fix(web): polish modal UI and prevent alpha banner flicker - chore(config): add security headers to next apps - feat(subscription): redesign upgrade experience - feat(workflows): add card processing pipeline - feat(web): add alpha banner - chore(vercel): set bun runtime - perf(web): integrate convex cache hooks - fix(subscription): use cached convex query hook - refactor(admin): simplify admin dashboard UI code - fix(admin): show 404 for unauthorized access - refactor(web): remove convex preloads - fix(web): justify modal header content - refactor(web): streamline more info modal layout - fix(billing): export listAllProducts from polar api - refactor(billing): rename polar integration to billing module - chore(deps): upgrade next 16 packages - feat: update link metadata and dependencies - Merge pull request #2 from praveenjuge/remove-login-from-footer-and-add-twitter-link - fix(docs): update footer social links - fix: update lint-staged and typescript versions in package.json - fix: remove workspaces section from package.json - fix: add missing workspaces section to package.json - fix: re-add linkedom dependency to package.json - fix: remove linkedom dependency from package.json - fix: update linkedom version in package.json and reorder dependencies - chore: update dependencies for @ai-sdk/openai, @types/bun, @types/node, and linkedom - Refactor link metadata handling and introduce linkMetadataDb module - feat: add reasons for missing cards in admin overview and update MissingCardSummary type - feat: add retry mechanism for card enrichment and reset AI metadata status - fix: adjust width of processing summary cell in AdminPage table - feat: enhance AdminPage with enriched card metrics and navigation link - refactor: restructure aiPipeline type definitions and improve data normalization in AdminPage - feat: implement admin dashboard with metrics and AI enrichment controls - refactor: remove AI processing status checks and related loading indicators from Card and CardModal components - fix: update tsconfig path for Convex functions and ensure correct configuration - feat: integrate share intent functionality and update project structure - feat: implement feedback status management and integrate with AddScreen and FeedbackStatusScreen - feat: add FeedbackStatusScreen and integrate feedback routing in AddScreen - fix: update .gitignore to include shared node_modules and correct AGENTS.md documentation - feat: initialize backend structure with Convex integration - Refactor shared module structure and update imports - feat: implement HomePage with preloaded cards and refactor HomeClient component - Refactor card operations and file upload hooks - fix(mobile): dedupe react resolution - fix(docs): enhance repository guidelines for clarity and structure - fix(docs): align landing content width - fix(web): streamline card modal editing - test(web): cover text card crud - test(web): stabilize auth e2e flows - test(web): add Playwright e2e suite - fix(backend): accept legacy microlink metadata - chore: sync pending changes - refactor: drop microlink fallbacks - feat: refactor subscription page with server-side rendering and component extraction - fix: resolve TypeScript error in NotesEditModal and clean up unused imports - feat: reorganize CardModal with dedicated modals and improved mobile UX - feat: optimize analyzing state to hide after AI completion - fix(ui): improve subscription page layout and card consistency - feat: enrich link categorization and UI surfaces - feat(palette): auto populate colors - Delete Files - refactor(cards): rely on ai pipeline for classification - feat: enhance link metadata with cloudflare previews - feat(backend): add card processing pipeline orchestration - feat: centralize card limit handling - feat: add SN Pro font to browser extension - feat: add SN Pro font to docs app - feat: replace system font with SN Pro font family - fix: clarify soft deletion duration in FAQ response - fix(docs): resolve deployment issues - feat: update content and descriptions across various components to enhance focus on visual bookmarking and design inspiration management - feat: replace react-plock with react-masonry-css for masonry grid layout, update styles for better responsiveness - feat: integrate CTASection and Footer into Layout, update CTASection styling and responsiveness - feat: refactor UI components to use new Button and Badge components, enhance styling and responsiveness - feat: improve text formatting and consistency in HomePage component - feat(changelog): update header styles and add follow link to X - feat: update ChangelogPage layout and enhance BackgroundPattern styles for better responsiveness and dark mode support - feat: enhance UI consistency by applying text-balance class to various components and updating pricing text - feat(layout): implement layout component for documentation pages - feat(config): update Next.js configuration to include image remote patterns - feat: Add Pricing Page with plans and FAQs - feat(add-screen): request audio recording permissions and set audio mode for iOS - feat: update audio handling in AddScreen and CardItem components, improve navigation logic in RootLayout, and upgrade package dependencies - feat(upgrade-prompt): implement upgrade prompt for card limit reached scenario - feat(subscription): create SubscriptionPage component for managing user subscriptions and billing - style(cards): update card background styling for improved visual consistency - fix: update empty state rendering logic to use cards directly instead of filteredCards - feat(thumbnails): implement thumbnail generation for image cards and update card with thumbnail ID - chore(auth): remove commented instructions for Clerk app setup in auth configuration - feat(cards): Implement card creation, deletion, and metadata handling - style: update input field styling with improved border and margin for better layout - feat: enhance CardsGrid component with improved card height estimation and distribution for masonry layout - refactor: clean up AddScreen component by removing unused utility functions and simplifying file upload success handler - feat: implement error boundary and enhance splash screen handling - fix: add headerBackTitle option for sign-in and sign-up screens - feat: add audio permissions and EAS configuration for improved functionality - fix: update metadata keywords and titles for consistency across documentation style: improve SignOutButton background color by using defined color constants - Update primary color and dependencies in mobile app - Update extension icons and remove unused SVG files - refactor: remove Shift+Click keyboard event handling for selection mode in MasonryGrid component - feat: enhance loading states by wrapping user button and layout components in Suspense for improved performance - fix: correct typo in warning message about important links disappearing - feat: refactor HomePage layout for improved structure and readability; simplify feature card rendering and footer design - feat: update metadata for improved clarity and consistency; change URLs and descriptions for better alignment with branding - chore: update Next.js configuration and dependencies - Update app icons and modify SVG graphics - feat: update color scheme in BottomPattern and TopPattern components; change fill colors to red and gray for improved contrast - feat: add Chrome Store submission and listing documentation; include required assets and metadata - feat: integrate Loader2 component for improved loading indicators in popup; update package.json to include lucide-react - feat: add Privacy Policy page and update documentation; enhance extension metadata and logo - feat: remove image saving functionality from context menu and update related logic in popup - feat: implement context menu functionality for saving pages, text, and images; enhance auto-save logic and error handling - feat: enhance loading and sign-in experience in popup; improve auto-save status rendering and remove unused card count - refactor: update extension configuration and dependencies - feat: implement auto-save functionality in popup; enhance background script logging and update permissions in wxt.config.ts - feat: enhance App component with user loading state and card count display; update main.tsx for Convex integration and remove unused style.css - feat: implement bulk action bar for card selection and deletion in MasonryGrid - fix: ensure port 3000 is free before starting development servers - refactor: simplify manifest configuration in wxt.config.ts by removing unnecessary properties - fix: update error message for missing VITE_PUBLIC_CLERK_PUBLISHABLE_KEY in main.tsx refactor: enhance wxt.config.ts to include host permissions and cookies in manifest - feat: initialize Teak extension with basic structure and configuration - refactor: update display name in package.json for consistency - refactor: improve Card and CardModal component styling for better layout - refactor: enhance Card component styling with consistent background and border - fix: add dark mode border to CardModal dialog content - refactor: update font styles in Card and QuotePreview components for consistency - feat: add quote card type with content extraction and preview components - refactor: centralize card type management with a registry and enhance icon retrieval - refactor: simplify card creation logic by delegating type detection and processing to the backend - feat: add favorite functionality to CardModal and update useCardModal for optimistic state management - refactor: update AI metadata guidelines for tag specifications to enhance clarity - refactor: replace Badge components with Button components in SearchBar and CardModal for consistency - refactor: update background color and improve layout in CardModal and SearchBar components - feat: add card type filter functionality and enhance CardModal with type handling - refactor: update CSS variables for improved background color and enhance Card component styles for better readability - feat: add palette card support with color parsing and previews - refactor: update card metadata handling to use fileMetadata for improved consistency across components - feat: update audio preview to use aiTranscript and enhance AI metadata handling with migrations support - refactor: remove unused card mutation functions and unify delete/restore logic in updateCardField for improved code maintainability - refactor: consolidate search functionality and remove unused hooks for improved code clarity - feat: add CardSkeleton and CardsGridSkeleton components for improved loading state representation - refactor: streamline search filters and update related handlers for improved clarity and functionality - refactor: remove empty metadata fields from card creation and context menu save functions for cleaner data handling - refactor: update ESLint configuration and middleware runtime settings for improved consistency - feat: implement unified file upload hook and integrate across components for improved file handling - refactor: simplify file handling and metadata extraction in card creation process - fix: clean up whitespace in useGlobalDragDrop file for improved readability - refactor: restructure layout and remove Dashboard component for improved organization and clarity - fix: update imports to use convex-helpers for improved query handling - fix: update styling for improved visibility and consistency across components - fix: simplify fetch request headers in extractLinkMetadata function - fix: update button class for consistent sizing and simplify AI summary label - fix: wrap card content in a div for improved styling and layout consistency - fix: enhance card styling during upload and submission states for better visibility - feat: add experimental PPR support and update dependencies in package.json - fix: update layout classes in CardModal for better responsiveness and clarity in preview and metadata areas - feat: refactor SearchBar component to improve filter display and selection handling - feat: add pre-commit hook for linting and TypeScript checks, and update package.json for lint-staged configuration - test: verify pre-commit hooks work - fix: improve keyboard handling in AddCardForm and adjust publisher display in LinkPreview - fix: correct formatting and punctuation in Textarea component - feat: enhance AI metadata generation for link cards and improve scheduling logic - feat: add file download functionality and enhance UI in Card and CardModal components - refactor: streamline SearchBar component and remove unused SearchTypeahead - feat: add SubscriptionPage component and update SearchBar for user profile navigation - Update copyright year in LICENSE file - feat: add documentation site commands to CLAUDE.md and package.json - fix: replace HTML entity with JSX escape sequence in getting started section - refactor: remove redundant comment about individual layout customization for clarity - feat: add documentation site with initial pages and components - fix: cast fileId to any type for compatibility in createCard function - feat: implement drag-and-drop file upload functionality with progress tracking and overlay - refactor: remove legacy link metadata fields from metadata validator for improved clarity - feat: update card metadata handling to preserve legacy fields for non-link cards and simplify link card metadata - refactor: remove legacy metadata fields and simplify metadata handling across components - feat: add legacy link metadata fields for backward compatibility in metadata validator - feat: update card components to utilize Microlink.io metadata and improve type safety - feat: add TypeScript types for product mapping in available plans - feat: enhance card components to prioritize Microlink.io metadata and improve legacy support - fix: remove dashboard command from predev script in package.json - feat: remove mobile and extension workspaces from package.json - feat: update package dependencies and remove web app reference from root tsconfig - feat: update package dependencies and improve component imports for better performance - Remove Teak Extension and associated resources - Add macOS Teak application and extension with initial setup - feat: enhance CardModal and previews with save functionality and improved state management - feat: update Card and CardModal components for improved UI and functionality - feat: enhance context menu functionality with state management and loading indicators - feat: add context menu functionality for saving URLs, images, and text, along with notification system - feat: implement auto-save functionality for active tabs and enhance popup UI - feat: integrate Convex API and update package structure for backend services - Refactor extension authentication and layout - feat: integrate Clerk authentication and routing in extension, add Home and SignIn components - feat: add Plasmo extension with Tailwind CSS styling - fix: Correct typos and improve clarity in CLAUDE.md documentation - feat: Add cardContainer style for improved layout in CardsGrid component - feat: Improve UI components with enhanced styling and layout adjustments - feat: Update onboarding, sign-in, and sign-up screens for improved user experience and layout adjustments - fix: Refactor SignOutButton component for improved styling and functionality - feat: Enhance Sign-Up and Add functionalities - chore: update dependencies and refactor shared hooks - feat: update CLAUDE.md with mobile app details and enhance architecture overview - feat: add guidelines and best practices for Convex projects in CLAUDE.md - feat: add mobile development script and remove unused .gitignore file from backend - feat: Add mobile app structure with Home and Settings screens - fix: remove dynamic prop from ClerkProvider in RootLayout component - feat: update styling for card components and improve feedback messages - feat: add apple icon and SVG icon files for improved branding - feat: integrate Clerk for authentication loading states and enhance Logo component with improved SVG attributes - fix: update free tier limit message to use HTML entity for apostrophe, add null check for card in CardModal, remove unused DotIcon import, and clean up LinkPreview component by removing failed and metadata checks - refactor: remove unused @teak/shared package and update .gitignore to include node_modules - feat: add Convex backend setup with Polar integration - Remove unused Unauthenticated component and related import from Home page - Enhance search functionality: add server-side search and filter query for cards, update metadata handling in link metadata, and refactor search filters to utilize new query. - Remove convex configuration file as it is no longer needed - Remove mention of local UI state management in CLAUDE.md for clarity on state handling - Implement link metadata extraction: add linkMetadata module, update card creation to handle metadata status, and enhance LinkPreview component with loading skeletons. - Refactor AudioPreview component: remove transcript collapse functionality and simplify layout for improved readability - Refactor CardModal and TextPreview components: remove unused imports, enhance loading state handling, and improve layout for better user experience. - Refactor CardModal and related components for improved structure and functionality - Refactor Card and CardModal components: replace card prop with cardId for improved state management, add seededRandom function for consistent height generation, and implement getCard query for fetching card details securely. - Refactor loading indicators: create a reusable Loading component and integrate it into Home and Dashboard for improved UI consistency - Add Payments page and enhance SearchBar with subscription link - Refactor SearchBar component: integrate tag handling directly, remove SearchTags component, and enhance UI with badges for keyword and filter tags - Refactor card handling: remove title from Card and CardModal components, update AI metadata generation, and streamline card validation - Add Payments page, enhance card creation logic, and integrate Polar API for subscription management - Enhance CardModal and AI functionality for improved user experience - Update package.json scripts for improved development workflow - Add CLAUDE.md for development guidance and refactor type handling in components - Update package version and enhance global styles with Clerk themes - Refactor Dashboard component and introduce new UI elements for enhanced card management - Add cmdk for command palette and enhance SearchTypeahead with icons - Enhance CardModal functionality with favoriting state management - Refactor metadata type in AddCardForm for improved type safety - Enhance card management with trash functionality and UI improvements - Add image dimension handling and integrate react-plock for masonry layout - Update global styles and layout configuration - Refactor authentication and UI components - Refactor card ID handling and type validation - Refactor card types and improve type management - Enhance card functionality and UI improvements - Enhance card management and UI components - Initialize project structure with essential files and configurations

Description
Search and open JetBrains Toolbox projects
Type of change
Screenshot
Checklist