Commit graph

98 commits

Author SHA1 Message Date
ByteAtATime
1a2fa36a79
feat(snippets): initialize snippet db
This commit creates the initial backend infrastructure for the snippets feature. It sets up the core data model, a dedicated `SnippetManager` for database interactions using `rusqlite`, and integrates it into the Tauri application state.
2025-06-24 18:46:47 -07:00
ByteAtATime
21cd217a26
feat(snippets): implement keyboard event handling
This commit sets up the codebase for the Snippets feature. Specifically, it implements an InputManager trait, which listens for, well, inputs. In the future, we will be using this to keep track of the user's keypresses, triggering the text expansion when the trigger word is entered.
2025-06-24 18:44:22 -07:00
ByteAtATime
bd5c660b71
refactor(clipboard-history): split clipboard_history.rs into separate module
This commit refactors the monolithic `src-tauri/src/clipboard_history.rs` file into a dedicated Rust module with a clear separation of concerns. The original 350+ line file has been broken down into smaller, single-responsibility files for types, encryption, business logic (manager), and the background monitor.
2025-06-24 10:02:36 -07:00
ByteAtATime
06f823873c
feat(command-palette): implement frecency ranking for command palette
This commit adds a "frecency" (frequency + recency) based ranking algorithm to the command palette. By tracking the usage of commands, applications, and quicklinks, we can provide more useful results when paired with the search score. It prioritizes recently used items, which are likely more relevant for the user. A new `FrecencyManager` was added to the Rust backend to handle usage tracking in a dedicated SQLite database. The `CommandPalette.svelte` component now fetches this data and computes a dynamic score for each item to determine its rank in the list.
2025-06-24 09:25:16 -07:00
ByteAtATime
9c1ee6efe4
feat: implement system utilities API
This commit introduces new system message schemas and corresponding commands for managing applications, including fetching applications, getting the default application, retrieving the frontmost application, showing an application in Finder, and trashing files.
2025-06-23 18:12:52 -07:00
ByteAtATime
81739beff7
style(backend): formatting 2025-06-22 22:19:38 -07:00
ByteAtATime
4a815822b6
chore: fix lint warnings for deprecation and unused code 2025-06-22 22:19:16 -07:00
ByteAtATime
73c1e43f76
perf: improve performance of clipboard history
This commit completely revamps the clipboard history feature to resolve major performance bottlenecks. The backend now uses a more intelligent data model, storing previews and content size in the database to allow for lazy-loading of large clipboard items. The frontend is updated to use paginated, infinite-scrolling lists, and it fetches full item content on-demand, which makes the initial load instantaneous and keeps the UI responsive even with a very large history.
2025-06-22 22:14:13 -07:00
ByteAtATime
79b88ad5f6
refactor: remove query parameter from hud url 2025-06-22 19:17:28 -07:00
ByteAtATime
223f7960aa
fix(backend): show window before ignoring cursor events
Previously, when built, ignoring cursor events before the window was shown resulted in a panic!() from tao. Now, by moving show() to before the call, the panic is resolved.
2025-06-22 19:17:14 -07:00
ByteAtATime
b8d87a745f
feat(client): allow client to listen to hud title change 2025-06-22 19:14:13 -07:00
ByteAtATime
e2b7d78da5
feat: increase size of main window 2025-06-22 15:44:40 -07:00
ByteAtATime
ffd8f3c4bf
fix(client): use http extension for fetching on backend
Originally, using the built-in `fetch()` resulted in CORS errors because it was fetching from the "frontend", which doesn't work after building. This commit migrates to Tauri's HTTP plugin, which is made for exactly this scenario.
2025-06-22 10:45:06 -07:00
ByteAtATime
28d1605bba
feat: add hud API
This commit adds the HUD API, allowing extensions to display temporary, non-interactive messages on the screen. The implementation adds a `show_hud` Tauri command that manages a dedicated, borderless Svelte window. This window is dynamically resized to fit its content and is automatically hidden after two seconds.
2025-06-22 09:04:10 -07:00
ByteAtATime
1ae8a571cb
feat: implement quicklinks 2025-06-21 20:01:19 -07:00
ByteAtATime
c8aced53c4
feat: add basic UI for viewing clipboard history 2025-06-20 11:34:41 -07:00
ByteAtATime
47265d772d
fix: actually enable features in keystore crate
Previously, I had only added the crate, which means I was using the mock keystore. This actually enables the cross-platform keystores for Linux, Mac, and Windows.
2025-06-20 11:00:31 -07:00
ByteAtATime
58d64005da
feat: implement clipboard history management
This commit initializes the backend of the clipboard management. It stores the clipboard data in an encrypted format in an SQLite database.
2025-06-20 10:01:47 -07:00
ByteAtATime
3226fe5189
fix: update assetProtocol scope configuration in tauri.conf.json 2025-06-19 21:14:25 -07:00
ByteAtATime
00eb6d6e18
style: formatting 2025-06-19 20:49:39 -07:00
ByteAtATime
5b0dfd7b36
feat: implement basic oauth api 2025-06-19 19:26:07 -07:00
ByteAtATime
887838bec6
feat: add deep link support
This commit introduces the deep link functionality, allowing the application to handle deep links from extensions.
2025-06-19 14:11:52 -07:00
ByteAtATime
3c3566136a
feat: implement Clipboard API 2025-06-19 11:23:05 -07:00
ByteAtATime
a598ccf50b
refactor: split lib.rs file 2025-06-19 11:09:04 -07:00
ByteAtATime
f7939e5c9b
feat: implement browser extension apis
This commit implements the full api for the Raycast browser extension. It introduces a WebSocket server in the Tauri backend to handle JSON-RPC communication with the companion browser extension. The sidecar now exposes the BrowserExtension module with getTabs and getContent methods, which proxy requests through the frontend to the new backend commands.
2025-06-18 21:50:46 -07:00
ByteAtATime
d0c7f05e8d
feat: add dev tauri config
This config "resets" most of the window settings in tauri.conf.json. This is intended to improve the development experience, so that it is unnecessary to manually open a floating window.
2025-06-18 19:53:15 -07:00
ByteAtATime
424afd0ee8
style: formatting 2025-06-18 17:48:31 -07:00
ByteAtATime
6910f767ae
feat: confine application to single instance
This commit accomplishes two things. First of all, Raycast should only  ever have one window open (it wouldn't make sense to have multiple). Second, it also allows WMs (specifically Hyprland) to show the window, as it does not support global shortcuts. Instead, by just calling the application again (generally from a `bind =` statement), users can show the window.
2025-06-18 17:46:30 -07:00
ByteAtATime
fed96e0cf2
feat: add alt+space global shortcut to show window 2025-06-18 17:40:21 -07:00
ByteAtATime
b9259147ba
feat: implement extension installation functionality
This commit adds the ability to install extensions from the UI. It introduces a new `install_extension` command that downloads and extracts the extension files into the local plugins directory. The UI is updated to reflect the installation process, including a loading state for the install button.
2025-06-18 12:51:46 -07:00
ByteAtATime
92b13f650d
feat: remove hardcoded paths in sidecar
Added a new config module to manage directory paths for data, cache, support, plugins, preferences, and assets.
2025-06-17 21:13:59 -07:00
ByteAtATime
0c94e973a0
feat: implement getSelectedFinderItems functionality
Added schemas and message handling for the new get-selected-finder-items command. Implemented the logic to retrieve selected items from the Finder on macOS, Windows, and Linux, enhancing the application's ability to interact with the file system.
2025-06-17 14:28:51 -07:00
ByteAtATime
3116a0c271
refactor; split lib.rs into multiple files 2025-06-17 12:07:09 -07:00
ByteAtATime
c69f10102e
fix: add shell:allow-open permission for open function 2025-06-17 12:02:08 -07:00
ByteAtATime
a5a39a5b7d
feat: implement getSelectedText function
Previously, this function was a shell that always rejected. This commit implements the schemas for a new get-selected-text command and updates the SidecarMessageWithPluginsSchema to include the new message type.
2025-06-17 12:01:50 -07:00
ByteAtATime
c91a800e80
feat: improve app caching and discovery process
Add caching for installed applications, allowing for faster retrieval and reduced scanning overhead. Implemented error handling for cache operations and improved the directory scanning logic to support parallel processing. Added background refresh functionality to keep the cache updated.
2025-06-17 11:38:44 -07:00
ByteAtATime
f02e4cafc7
feat: parallize initial app discovery 2025-06-17 11:10:56 -07:00
ByteAtATime
cd0147fb16
feat: list installed apps to PluginList
Added functionality to the PluginList component to display installed applications alongside plugins. Implemented search filtering for installed apps and integrated app launching capabilities. Updated the page to fetch installed apps from the backend, improving user interaction and experience.
2025-06-16 20:42:43 -07:00
ByteAtATime
6e98d829bc chore: ignore tauri sidecar binaries 2025-06-15 12:53:10 -07:00
ByteAtATime
36af25e622 feat: update icon handling in ListItem and Metadata components
Refactors icon handling in ListItem, MetadataLabel, and MetadataTagListItem components to utilize the new ImageLikeSchema for improved image and icon rendering. Introduces derived properties for dynamic icon information and mask styles, enhancing visual representation based on the icon type.
2025-06-13 16:12:33 -07:00
ByteAtATime
02a29c7735 feat: add color and cache, extract api into separate folder 2025-06-12 14:32:08 -07:00
ByteAtATime
6d54d0a636 feat: update window configuration to make it more like raycast 2025-06-12 08:42:28 -07:00
ByteAtATime
6b4dea7a38 feat: implement Action.OpenInBrowser 2025-06-11 17:46:48 -07:00
ByteAtATime
fc7c835c66 style: formatting 2025-06-11 14:58:11 -07:00
ByteAtATime
91c1b4e811 feat: basic sidecar functionality for rendering 2025-06-11 09:35:29 -07:00
ByteAtATime
dac77c76b7 feat: integrate clipboard manager plugin and update dependencies 2025-06-10 14:20:15 -07:00
ByteAtATime
dbd7cea2b3 refactor: remove greeting functionality and update UI to run plugin directly 2025-06-10 11:33:53 -07:00
ByteAtATime
fa4c71502f Initial commit 2025-06-10 11:24:18 -07:00