* feat: add drizzle orm
* feat: update drizzle configuration and schema management
- Added a check for DB_FILE_NAME in drizzle.config.ts to ensure it's set.
- Updated package.json to change the package name to @kksh/drizzle and added exports for schema and relations.
- Enhanced README.md with instructions for using the schema generation.
- Refactored schema.ts for improved readability and organization of imports.
* add tauri-plugin-sql
* feat: add database select and execute commands
- Introduced `select` and `execute` functions in the database module to facilitate querying and executing SQL commands.
- Updated the Tauri plugin to expose these commands, allowing for database interactions from the frontend.
- Added corresponding permissions for the new commands in the permissions configuration.
- Enhanced the database library with JSON value handling for query parameters.
* fix: sqlite select command
* drizzle ORM verified working
* refactor: clean up database module by removing unused SelectQueryResult type and disabling eslint for explicit any usage
* pnpm lock update
* Update enum definition for type safety
- Changed enum to use 'as const' for better type inference
- Ensured more robust handling of extension publish sources
* reimplemented most db command functions with ORM (migrate from tauri command invoke
* fixed searchExtensionData orm function
* Refactor ORM commands and searchExtensionData function for improved readability and consistency
- Reformatted import statements for better organization.
- Cleaned up whitespace and indentation in searchExtensionData function.
- Enhanced readability of SQL conditions and query building logic.
- Disabled eslint for explicit any usage in the troubleshooters page.
* Fix test assertions in database module to use array indexing for results
format rust code
* update deno lock
* move drizzle from desktop to drizzle package
* update pnpm version and lock
* refactor: migrate db tauri commands to drizzle
* refactor: remove unused extension and command CRUD operations from db module
* Add loading animation to general settings
* Update dependencies and integrate @tauri-store/svelte
- Added `bon` and `bon-macros` packages to Cargo.lock.
- Upgraded `tauri-plugin-svelte`, `tauri-store`, and related packages to their latest versions.
- Updated `@tauri-store/svelte` integration in the desktop app, including changes to app configuration and layout handling.
- Adjusted pnpm-lock.yaml to reflect updated package versions and added new dependencies.
- Introduced a new app configuration file for development.
* Enhance loading animation handling in FullScreenLoading component
- Integrated conditional rendering for loading animations based on app configuration.
- Updated default loading animation to "kunkun-dancing" in app configuration.
- Adjusted general settings to ensure proper type handling for language labels.
- Modified ui-iframe component to manage full-screen loading state more effectively.
* remove a mis-placed config file
* Refactor window handling to ensure focus after showing
- Updated various components to use promise chaining with `show()` and `setFocus()` for better window management.
- Introduced `data.win` in multiple places to streamline access to the current webview window.
- Enhanced splashscreen and app layout handling to improve user experience by ensuring the window is focused after being shown.
* Refactor window handling to improve safety and consistency
- Introduced optional chaining for `data.win` to prevent potential runtime errors when accessing window methods.
- Updated various components to ensure proper handling of window focus and visibility.
- Enhanced the layout and extension pages to utilize the current webview window more effectively, improving overall user experience.
* feat: add lockHideOnBlur to prevent app hiding during dialogs
* feat: add Fuse.js for advanced search filtering across app sections
* chore: update .prettierignore and clean up imports in AddDevExtForm
* feat: add helper API for installation guides and update UI components
- Implement helperAPI with methods to navigate to installation guides for Deno, FFmpeg, and Homebrew
- Update extension and help page components to use new helper API
- Modify command filtering in builtin commands
- Adjust page navigation in help pages to use goHome instead of goBack
- Remove unused imports and clean up components
* chore: bump @kksh/api to 0.1.2 and update dependent packages
* feat: implement app loader (has performance problem)
* feat: enhance command filtering and search functionality
- Implement command score filtering for various command types
- Add filtered stores for quick links, system commands, and extensions
- Update command components to use new filtering mechanism
- Improve search experience by dynamically filtering results
- Refactor command value handling to use direct name matching
* chore: add @inlang/paraglide-sveltekit to @kksh/ui
* feat: add i18n to desktop
* fix: add shrink-0 class to mode-toggle button for consistent styling
* feat: add i18n to settings, not working yet
* feat: i18 working
* feat: add i18n for about
* feat: migrate all goto to use i18n.resolveRoute
* feat: finish translating settings to chinese
* feat: add Chinese i18n for troubleshooters
* feat: add russian translation (by AI)
* format: run prettier
* format
* chore: update .prettierignore to exclude src/lib/paraglide/**
* feat: add deno install page
* feat: add deno install onboarding page
* feat: add ffmpeg, deno, brew install help page
* feat: improve on boarding page with deno install, setting, ffmpeg install
* refactor: update app configuration and onboarding flow
- Improved the onboarding page layout by adding a draggable region.
- Introduced a new writable store `appConfigLoaded` to track the loading status of app configuration.
- Updated the main application page to subscribe to `appConfigLoaded` for better handling of onboarding logic.
- Minor formatting changes in the ffmpeg installation help page for consistency.
* chore: add tauri-plugin-user-input submodule
* feat: add key display extension
There is delay, affecting key combination from being detected. I guess it's due to rdev grab, I have to remove grab and use listen directly.
* chore: upgrade tauri-plugin-user-input submodule
The user-input plugin improves mac's listen feature
* chore: upgrade user-input submodule
* fix: a platform-specific window command
* ci: add libxdo-dev dep for ubuntu
* chore: update tauri-plugin-user-input submodule to latest commit 5766c04
* feat: move all pages to app folder, add splashscreen
* feat: use Dance as splashscreen
* feat: add zoom in for splashscreen logo
* refactor: move svelte files into app folder
* fix: url prefix with /app
* refactor: remove platform-specific tauri conf
Merge windows back to main tauri config. The reason I separated them was
because I need decoration: true on mac and false on windows and linux.
Now I use tauri rust API to set decorations to false for win and linux.
* feat: implement clipboard history preview
* feat: clipboard history pagination
* refactor: format code
* fix: sql schema
* feat: add json metadata to unit test
* upgrade: js dependencies
* upgrade: desktop rust dependencies
* fix: clipboard history duplicate key bug when searchTerm clears
* upgrade: tauri-plugin-network submodule solve pnpm lock file
* fix: grpc package CI
* chore: update turbo.json outputs to include dist and build directories
* fix: try to fix template-ext-vue tailwind module.export
* ci: prevent error when protoc is not installed in CF pages
* fix: update writeFile function to accept ReadableStream as data type
* feat: implement a file streamer for file share
Only server with hardcoded file path
* bump valibot version
* feat: add server-info gRPC module to serve server info
* feat: add ssl cert and public key to peers state
When peer is online, KK always have know its cert and pub key for future secure communication
* feat: add grpc ts package
* Enable "/refresh-worker-extension" rest API, grpc version isn't ready yet
* update pnpm lock
* ci: fix CI by moving protobuf install order
* ci: fix
* upgrade api due to valibot incompatibility
* fix: use fs instead of bun shell to be compatible with windows
* skip grpc pkg build on windows
* feat: local network file transfer prototype working
* fix: grpc build.ts
* download next to 14
* ci: add ci env try to fix next
* fix: hideRefreshBtn and a few other btns' hide API in iframe ext page
* feat: disable NODE_TLS_REJECT_UNAUTHORIZED for extension HMR refresh
* fix: manifest json schema with objectWithRest to allow any other fields in package.json
* chore: update valibot and related dependencies to version 1.0.0-beta.9 in pnpm-lock.yaml
* ci: add protobuf compiler installation to manifest-schema-upload workflow
* refactor: move grpc code from jarvis to a separate grpc crate
for easier testing
* feat(file-transfer): POC multi file + directory file transfer
* feat(file-transfer): replace file transfer recursive download in ts with rust
* feat(file-transfer): implement on_progress event for file transfer
* feat(file-transfer): report progress every 1MB instead of 100 iterations
* feat(file-transfer): add progress bar
* feat(file-transfer): UI
* feat(file-transfer): add file transfer bucket info preview
Show total size and number of files
* feat(file-transfer): improve UX
Show bucket info during confirm; improve progress bar UI, prevent inconsistent width
* feat(grpc): skip build in Cloudflare Pages due to missing protoc
* refactor: with cargo fix, unused imports removed
* ci: debug cloudflare pages env var
* fix(grpc): update environment variable access for Cloudflare Pages build check
* fix(grpc): add error handling for protoc command in build script
* chore: update kkrpc version to 0.0.13, remove kkrpc submodule, and enhance grpc build script logging
- Updated kkrpc dependency version from 0.0.12 to 0.0.13 in package.json.
- Removed the kkrpc submodule from the project.
- Enhanced logging in the grpc build script to include additional Cloudflare Pages environment variables for better debugging.
* fix(api): typescript error, remove base.json from tsconfig
* chore: update pnpm lock
* fix(api): update TypeScript configuration to extend base.json and clean up unused options
* refactor(api): update TypeScript configuration to extend path-alias.json and enhance compiler options
* fix(api): restore KunkunManifestPermission in PermissionUnion and update valibot import in schema tests
* fix: missing trait error
* fix: js require replaced with import
* test: fix a unit test with a more robust method
---------
Co-authored-by: Huakun Shen <huaukun.shen@huakunshen.com>
* Add some experiment code for crypto crate
* feat: add crypto crate with ssl, rsa, ed25519 for https, encryption, signing
* Implement aes encryption helper in crypto crate
* ci: add dep for CI rust test (protobuf)
* fix: try to fix window CI with next
* fix: CI
* ci: add dep for ubuntu
* ci: fix
* fix: openssl lib path in CI
* fix: CI
* update applications-rs, disable some tests
* fix: CI
* feat: add file transfer grpc proto and server setup
* CI: try to fix CI
* fix: missing proto in build.rs
* ci: add cargo build before cargo test
* fix: grpc file descriptor
* ci: fix CI by removing a redundant main.rs
* fix: disable local windows test in applications-rs which fails CI
* ci: run CI rust test only on ubuntu, windows is failing. will be handled in another PR
* fix: vue template
* fix: allow unused variable
* fix: remove node:buffer type from api shell.ts to avoid frontend build error
* try to fix test in create-kunkun
* upgrade api to 0.0.44, remove node:buffer
* upgrade next template to 15
* feat: turn the default server into a https server
* feat: make SSL certificate loadable from env
* feat: add conditional SSL cert
in debug mode, use local default cert, in production generate new self-signed cert every time app starts
* chore: add vscode debug config
* feat: add server public key
* feat: setup sqlite db encryption
* fix: settings hotkey
* chore: add .gitkeep
* ci: add node-fetch to dep for api package
* feat: add ui worker command loading code (not working yet)
* feat: add unocss
* feat: add-dev-extension page
* feat: implemented list view template
* feat: implement list view detail view width, add demo extension for dev
* fix: resize listview, add metadata component
* fix: metadata tag component background color
* feat: implement boolean (checkbox), date fields for form template
* feat: support default, optional, placeholder for form fields
* feat: implemented form view Select Field
* feat: markdown view
* feat: fixed a markdown schema type error
* fix: markdown styling
* feat: implement action panel for UI worker template list view
* format: format all
* chore: bump desktop version
* fix: fix search term bind in list view
* feat: add page for add quick link (not working yet)
* upgrade @kksh/svelte5
* fix: infinite recursive footer
* dep: add @kksh/svelte5 to ui package
* dep: add supabase-js
* dep: add @iconify/svelte
* style: modify StoreExtDetail width control
* fixed: UI for extension store detail
* feat: add page to create quick link
* feat: display quick links in cmd palette
* snapshot
* show queries in command input
* feat: quick link fully implemented
* refactor: format all with prettier
* feat: add icon picker for quick link adder
* fix: make invert for icon optional, caused many types to crash
* feat(auth): add deep link and supabase auth
* fix(deep-link): fix some routing and reactive page rendering
* feat: implement supabase auth with pkce auth flow
* chore: add vendor submodules
* feat: add packages for db,ci,schema,api,jarvis cmds
* feat: add tauri-jarvis-plugin
* feat: implement extension commands list
* fix(desktop): import path errors after packages refactor
* chore: add self signed cert
* fix: prevent prerender for desktop
* fix(desktop): desktop sveltekit static build, use csr for dynamic route
* feat: add error handling page and components
* refactor: component lib
* refactor: move more types, functions and components out of desktop
* refactor(ui): more refactor
* refactor(ui): move store components to @kksh/ui
* ci: add CI for build & test
* refactor: rename @kksh/extensions to @kksh/extension
* ci: add 2 more ci
* ci: fix
* fix: CI env var
* chore: add changeset
* feat: implement extension store item detail view
* feat: implement extension store install, uninstall, upgrade
* format
* revert: upgradable logic, the new one doesn't work yet
* refactor: make @kksh/ui dependent only on @kksh/api
Reason: @kksh/ui may be published later for building website, all its dependency packages must be also published. To avoid trouble it should be standalone, depend only on packages already published
* refactor: cleanup
* fixed: some typescript error
* chore: got typedoc working on @kksh/api
* ci: disable manifest schema upload CI on push