Conversation
mattisssa
left a comment
There was a problem hiding this comment.
Hey! Thanks for the contribution, but I didn't have a chance to run your extension.
Got the error from the screenshot 👇
Steps to reproduce:
- I just put my token in the preferences screen and that's it.
Please, let me know if I'm doing something wrong. Here is my test token if it will help
351823e7-f03a-45b7-9109-5f24f8efbbbf.
I've also left a few comments about naming, everything else looks good 👍
| { | ||
| "name": "search_raindrop", | ||
| "title": "Search Raindrop", | ||
| "description": "Searches Raindrop", |
There was a problem hiding this comment.
Considering that at the moment you only support one command, we encourage you to have a more specific extension description. For now, it can be even the same as for the command.
| @@ -0,0 +1,45 @@ | |||
| { | |||
| "name": "search_raindrop", | |||
| "title": "Search Raindrop", | |||
There was a problem hiding this comment.
I'd propose you choose something different here because this name will be shown in the store and it's more clear to users in the store at least what service is this. I would change to something like Raindrop.io Bookmarks or something like that.
|
Ok, I figured out that I needed to provide test token instead of a regular one. Would be nice to proceed with the case and fix that crash 😉. And in my working case, I don't have any bookmarks in the service, so I'm getting infinite loader in your command. |
|
I see someone else made it to the store before me. I will close the PR as such, as two Raindrop attempts is unnecessary :) |
Yeah.. The market rules 🤷 Thanks for understanding! You can always collaborate with another guy to create a multiple commands extension for the service 😉 |
|
Indeed :), and I might just try my hand at thenounproject when the time permits it ;-) |
- 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>
- initial features - Merge pull request raycast#103 from axyut/port-to-oslo - fix: expire session conditional - feat: completely removed lucia-auth dependency - minor changes - fix: 🐛 no day selection on !isSameMonth - feat: ✨ internal package for query - feat: ✨ types package - fix: minor - refactor - deps: change nepali date package - backend: auth, google calendar integration - Basic UI components - minor fixes - Added raycast initial - feat: ✨ Migrated to v51 for expo - initial commit - added gitignore - ignore turbo - Added gitignores - cleanup - feat: ✨ Added announcement - typo - fix: 💄 view all events button not spanning full width - chore: bump date package version - fix: set fixed height of day cells - Merge pull request raycast#64 from nabinkdl/main - Update About.tsx - Merge pull request raycast#60 from pandeysubash404/event-display - Merge pull request raycast#61 from yuvrajdahal/main - Merge pull request raycast#63 from PoskOfficial/fix/issue62 - fix: 🐛 app crashing on switching months - Synchorization issue with previous code - English date converter crashing fixed - English date converter crashing fixed - fix: 🚑 Update user logic on signin bug fix - Updated to display today\'s date - fix: 🐛 Update db information on sign in - Merge pull request raycast#59 from pandeysubash404/event-display - chore: 🐛 Fixed Positioning of Relative Date on Homepage - chore: ♻️ Made the event string logic declarative - conveys the logic in a more declarative manner - adjustments to the relativeTimeFromElapsed function - fixed event issue and hide user data from console - Fixed the issue related event display - Merge pull request raycast#57 from pandeysubash404/fix-date-issue - chore: ➖ Removed Jest Dev Dependency - Removed package-lock.json and added pnpm-lock.yaml as requested - Remove pnpm dependency as requested by repository owner - Fix date issue in input field - Changed readme - Create LICENSE - Updated type definitions - Merge pull request raycast#52 from nabin-kandel/main - Merge branch \'PoskOfficial:main\' into main - chore: ✨ updated screenshots - ScreenShot Updated - Merge pull request raycast#50 from PoskOfficial/develop - fix: 🐛 page reloading in mobile view - Merge pull request raycast#49 from nabin-kandel/main - Added Open graph Description - Update Readme.md - Added og image - Merge pull request raycast#48 from nabin-kandel/main - Added banner image - Merge pull request raycast#47 from PoskOfficial/fix_create_event_date - style: 💄 changed footer border color - fix: 🐛 event end and start date off by 1 - Added missing lock files - Added missing lock files - Merge pull request raycast#46 from PoskOfficial/develop - chore: ✏️ updated translation values - chore: ⚰️ removed unused translations - feat: ✨ added footer - moved imports - Deleted large file - Added update logic - chore: 🚧 Added new SW - Merge pull request raycast#45 from PoskOfficial/datepicker_fix - style: 💄 fixed spinner\'s wrong positioning - fix: 🐛 month date picker value offset by -1 - fix: 🐛 corrected photo url - fix: 🐛 Fixed User Query issue - fix: 🐛 - feat: 🐛 Added offline support to react query - Added calendar picker to event creation modal - fix: 🐛 Fixed width issues in homepage - Removed unused param - Made time field required - fix: 🐛 Removed unnecessary console logs - fix: 🐛 Fixed some UI Bugs - Added missing adhik to english translation of chandrama - fix: ⚰️ Removed redundant code - fix: 🐛 Fixed Spinner Size - perf: ⚡ Refactored for performance and readability - Merge pull request raycast#43 from PoskOfficial/dark_mode - style: 💄 added dark mode to the event dialogue - feat: ✨ Added Analytics to install btn - feat: ✨ added access role to events - feat: ✨ Added endpoint to get calendar list - Merge pull request raycast#42 from PoskOfficial/dark_mode - fix: 💚 fixed build removing unused imports - Merge branch \'main\' into dark_mode - feat: ✨ added styles for dark mode - feat: ✨ Added support for multiple calendars on backend - feat: ✨ Added Analytics - Merge pull request raycast#41 from PoskOfficial/nischal - Merge branch \'nischal\' of https://github.com/PoskOfficial/Nepali-calendar-web into nischal - fix: 🐛 fixed minor bug during language translation in dropdown - fix language issue - Merge remote-tracking branch \'origin/main\' into - changes in translation files - js to ts file - Removed unused files - Merge remote-tracking branch \'origin/main\' into nischal - feat: ✨ Stored Dark Mode setting in local storage - spinner in upcoming events page - hide language change buttons - feat: 🚧 added date difference string to single upcoming event, and setup language translation for date converter page - Fixed ts issues in i18next - Fixed Hamburger color - Added Dark Mode Strategy to tailwind - Refactored - Bug fixes - Added contact details in about page - feat: ✨ Added credits in About Page - bug fixes - docs: 📝 Changed translation of Home - fix: 🐛 Fixed Crash on clear - Merge pull request raycast#40 from PoskOfficial/user_settings_disclosure - refactor: ♻️ used higher quality icon for sign in with google - refactor: ♻️ used sign in with google icon instead of text - feat: ✨ added a disclosure to switch languages - Added missing lock file - Merge branch \'main\' of https://github.com/PoskOfficial/Nepali-calendar-web - Added about page - fix: ✨ Increased cookie life - Merge pull request raycast#39 from PoskOfficial/nischal - refactor: 🚚 moved useLanguage to helper and renamed useUser - fix: 💚 removed unused imports, changed useLangauge name - Merge remote-tracking branch \'origin/main\' into nischal - feat: 🚧 added uselangauge hook, - calendar date , reminder text and upcoming - Merge pull request raycast#38 from poudelsanchit/main - Merge branch \'main\' into pr/poudelsanchit/38 - Fix some linting errors - fix: 🐛 Fixed no update on logout - feat: ✨ Added Install Toaster Popup - feat: ✨ Add PWA Install Button - Added app shortcuts - feat: ✨ Added Screenshots on install screen - feat: 🐛 Added support for offline first in react query - feat: ✨ DateConverter - feat: ✨ Cached api response - fix: 🐛 Fixed No event fetched on month change - Bug fixes - Merge pull request raycast#37 from PoskOfficial/add_react_query - fix: 🩹 checked for loading state for rendering events list - fix: ⚰️ removed unused imports - Merge branch \'main\' into add_react_query - fix: 🐛 off by 1 error in chandrama - feat: ✨ added react query - Added new logo - feat: 🚧 progressed with the feature - docs: 📝 Added Fork and setup instructions - feat: 🚧 language translation - Merge pull request raycast#36 from PoskOfficial/feat_nepali_date_picker - Merge branch \'main\' into feat_nepali_date_picker - fix: 🐛 next month to the selection being selected - Merge branch \'feat_nepali_date_picker\' of github.com:PoskOfficial/Nepali-calendar-web into feat_nepali_date_picker - fix: 🐛 end and start time, timezone error - added node modules to gitignore - Merge pull request raycast#35 from PoskOfficial/nischal - Merge branch \'main\' into nischal - added gitignore - chore: Added single command to install both frontend and backend - feat: ✨ added nepali date picker - feat: ✨ added a popup modal for each reminder - popup modal for single event - Merge pull request raycast#34 from PoskOfficial/google_cal_compatible - refactor: ♻️ made start and end date logic declarative - fix: 🐛 multi day all day events not showing up - Merge remote-tracking branch \'origin/main\' into nischal - feat: 🚧 events popup - feat: ✨ event date time compatible with google calendar - feat: ✨ Added Delete Event Route - feat: ✨ Added event background sync - Merge pull request raycast#14 from PoskOfficial/nischal - fixes in calendar.tsx - feat: ✨ Added event color dot - Added Event Creation and List - feat: ✨ Fetched Event List from backend - Added build step to docs - docs: 📝 Added Readme - added lib to gitignore - feat: 🌱 Added missing files - Added deta space configuration - Merge branch \'main\' of https://github.com/Parajulibkrm/calendar-backend - moved to backend folder - moved files to frontend/ - feat: ✨ Added Google Authentication - feat: ✨ Added Privacy Policy - Merge pull request raycast#13 from nirajacharyaa/main - Merge branch \'main\' into main - fix: 🐛 Escaped APi Route from Client side cache - feat: ✨ Changed hashrouter to browserrouter - Fixed auth links cache issue - fix: 🐛 upcoming events and minor styles - Added Sign In - Styling bug fixes - Added a navbar - Merge pull request raycast#12 from nirajacharyaa/view-added-events - fix: 💚 build fix - feat: ✨ user events modal and view events - added .env to giitignore - initial commit - refactor: 🔥 Removed image for floating action button - Merge pull request raycast#11 from PoskOfficial/popupmodal - Reminder popup modal for indivdual day - Merge branch \'main\' of https://github.com/PoskOfficial/Nepali-calendar-web - added reminder popup - feat: 🐛 fixed off by one error - feat: ✨ Added upcoming events page. credit: @headshigh - feat: ✨ Added Multiple Event List for each day - Merge pull request raycast#10 from PoskOfficial/pwa-setup - chore: 🐛 Fixed PWA issue - chore: ✨ Added PWA configuration - Merge pull request raycast#8 from nirajacharyaa/load_calendar_data - fix: 🐛 Bug Fixes - fix: minor changes - Update issue templates - Update issue templates - Revert "Merge branch \'main\' into load_calendar_data" - Merge branch \'main\' into load_calendar_data - fix: events dots - minor fixes - Bug fixes - fix: 🐛 Fixed off by one error - memoized - set selected day to today - Merge pull request raycast#7 from PoskOfficial/nischal - ts error fix - lockfileversion - improvements - chore: loaded calendar data - upcoming events page incomplete - Merge branch \'main\' of https://github.com/PoskOfficial/Nepali-calendar-web - chore: 🍱 Added Calendar Files - Update issue templates - fixed type warnings - chore: 🎉 Initial Commit
- 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
- fix(lint): remove unused useMemo import (raycast#47) - Merge pull request raycast#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 raycast#43 from iHildy/fix/changelog-and-preferences-interface - Merge pull request raycast#42 from iHildy/final-for-publish-2 - Merge pull request raycast#41 from iHildy/final-for-publish
* 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>

Description
Adds an extension to query Raindrop using the Raindrop search API.
Type of change
Screenshot
https://cln.sh/R5AaQy
Checklist