Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
32f22aa
Add initial yaak-proxy crate
gschier Mar 6, 2026
e26705f
Use separated client/proxy dev ports across worktrees
gschier Mar 6, 2026
6915778
Refactor desktop app into separate client and proxy apps
gschier Mar 6, 2026
fd10033
Extract shared UI and theme packages
gschier Mar 6, 2026
6f9e4ad
Shared window crate
gschier Mar 7, 2026
ff6686f
HeaderSize as shared component
gschier Mar 7, 2026
d99898f
Move some more stuff over
gschier Mar 7, 2026
3586c8f
Move Icon and LoadingIcon to shared package
gschier Mar 7, 2026
cf28229
New yaak-databases crate for shared core logic
gschier Mar 8, 2026
4c37e62
Start extracting DBContext
gschier Mar 8, 2026
6f8c4c0
Add transport-agnostic RPC layer for proxy app
gschier Mar 8, 2026
a5433fb
Remove unused yaak-proxy-models crate
gschier Mar 8, 2026
7382287
Initial DB implementation
gschier Mar 8, 2026
0a616eb
Got models and event system working
gschier Mar 8, 2026
96a22c6
Model store hooked up
gschier Mar 8, 2026
6e11894
Lint stuff
gschier Mar 8, 2026
6534421
Start extracting Tree component
gschier Mar 8, 2026
4c041e6
Consolidate RPC commands into unified execute_action dispatcher
gschier Mar 9, 2026
12ece44
Move Tree component to @yaakapp-internal/ui package
gschier Mar 9, 2026
a0442fb
lint
gschier Mar 9, 2026
e87c329
Add sidebar to proxy app
gschier Mar 9, 2026
90365f0
Create Sidebar.tsx
gschier Mar 9, 2026
f51f72a
Show proxy status in UI
gschier Mar 11, 2026
7be53ca
WIP: Add yaak-mac-window to proxy app
gschier Mar 11, 2026
6600116
Merge branch 'main' into wip/yaak-proxy-foundation
gschier Mar 11, 2026
3e7d04b
Fix theme
gschier Mar 11, 2026
0c52fd0
Shared Table component
gschier Mar 11, 2026
d4a6735
Sidebar filtering
gschier Mar 11, 2026
568a1b8
Some fixes
gschier Mar 11, 2026
4968237
Use native TLS when certificate validation is disabled for legacy ser…
gschier Mar 12, 2026
5e3ef70
Refactor proxy codebase
gschier Mar 12, 2026
0b7705d
More tweaking
gschier Mar 12, 2026
7e7faa6
Move split layout
gschier Mar 12, 2026
87e6037
Fix sidebar width
gschier Mar 12, 2026
47f0daa
Shared sidebar layout
gschier Mar 12, 2026
cc504e0
Move portal to shared ui lib
gschier Mar 12, 2026
f7ff964
Floating sidebar refactor
gschier Mar 12, 2026
d8ce5c9
Fix styles
gschier Mar 12, 2026
9e0a708
Font size and other fixes
gschier Mar 12, 2026
024b0a3
Fix sidebar counts
gschier Mar 12, 2026
f91f40e
Update Sidebar.tsx
gschier Mar 12, 2026
7fbce4e
Counts to the right
gschier Mar 13, 2026
bc8a449
Get pane ready
gschier Mar 13, 2026
d253d16
Move banner to ui package
gschier Mar 13, 2026
4d792c7
Move inlinecode to shared ui package
gschier Mar 13, 2026
77ec87e
Stacks and InlineCode
gschier Mar 13, 2026
3c40350
FormattedError
gschier Mar 13, 2026
7314aed
Merge main into proxy branch (formatting and docs)
gschier Mar 13, 2026
ee69db0
Align lint fixes with main and resolve merge conflicts
gschier Mar 13, 2026
d0f1708
Replace void with fireAndForget in proxy main.tsx
gschier Mar 13, 2026
903f57a
Align branch with main: switch to vite-plus and reformat
gschier Mar 13, 2026
7577846
Fix lint warnings: redundant type and floating promises
gschier Mar 13, 2026
d2000c8
Ignore routes file from fmt
gschier Mar 13, 2026
33e7a37
Merge main into proxy foundation
gschier May 7, 2026
a36446b
Align split apps with Vite 8
gschier May 7, 2026
5d6ae6f
Fix release
gschier May 7, 2026
f9ee53b
Fix Vite Plus lint issues
gschier May 7, 2026
e504a2e
Harden CLI test HTTP server
gschier May 7, 2026
65a3454
Regen types
gschier May 7, 2026
0ae9c65
Fix split app build entrypoints
gschier May 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
14 changes: 7 additions & 7 deletions .claude-context.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@ Make Yaak runnable as a standalone CLI without Tauri as a dependency. The core R

```
crates/ # Core crates - should NOT depend on Tauri
crates-tauri/ # Tauri-specific crates (yaak-app, yaak-tauri-utils, etc.)
crates-tauri/ # Tauri-specific crates (yaak-app-client, yaak-tauri-utils, etc.)
crates-cli/ # CLI crate (yaak-cli)
```

## Completed Work

### 1. Folder Restructure

- Moved Tauri-dependent app code to `crates-tauri/yaak-app/`
- Moved Tauri-dependent app code to `crates-tauri/yaak-app-client/`
- Created `crates-tauri/yaak-tauri-utils/` for shared Tauri utilities (window traits, api_client, error handling)
- Created `crates-cli/yaak-cli/` for the standalone CLI

Expand Down Expand Up @@ -50,14 +50,14 @@ crates-cli/ # CLI crate (yaak-cli)
3. Move extension traits (e.g., `SomethingManagerExt`) to yaak-app or yaak-tauri-utils
4. Initialize managers in yaak-app's `.setup()` block
5. Remove `tauri` from Cargo.toml dependencies
6. Update `crates-tauri/yaak-app/capabilities/default.json` to remove the plugin permission
6. Update `crates-tauri/yaak-app-client/capabilities/default.json` to remove the plugin permission
7. Replace `tauri::async_runtime::block_on` with `tokio::runtime::Handle::current().block_on()`

## Key Files

- `crates-tauri/yaak-app/src/lib.rs` - Main Tauri app, setup block initializes managers
- `crates-tauri/yaak-app/src/commands.rs` - Migrated Tauri commands
- `crates-tauri/yaak-app/src/models_ext.rs` - Database plugin and extension traits
- `crates-tauri/yaak-app-client/src/lib.rs` - Main Tauri app, setup block initializes managers
- `crates-tauri/yaak-app-client/src/commands.rs` - Migrated Tauri commands
- `crates-tauri/yaak-app-client/src/models_ext.rs` - Database plugin and extension traits
- `crates-tauri/yaak-tauri-utils/src/window.rs` - WorkspaceWindowTrait for window state
- `crates/yaak-models/src/lib.rs` - Contains `init_standalone()` for CLI usage

Expand All @@ -79,5 +79,5 @@ e718a5f1 Refactor models_ext to use init_standalone from yaak-models
## Testing

- Run `cargo check -p <crate>` to verify a crate builds without Tauri
- Run `npm run app-dev` to test the Tauri app still works
- Run `npm run client:dev` to test the Tauri app still works
- Run `cargo run -p yaak-cli -- --help` to test the CLI
4 changes: 2 additions & 2 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
crates-tauri/yaak-app/vendored/**/* linguist-generated=true
crates-tauri/yaak-app/gen/schemas/**/* linguist-generated=true
crates-tauri/yaak-app-client/vendored/**/* linguist-generated=true
crates-tauri/yaak-app-client/gen/schemas/**/* linguist-generated=true
**/bindings/* linguist-generated=true
crates/yaak-templates/pkg/* linguist-generated=true

Expand Down
11 changes: 7 additions & 4 deletions .github/workflows/release-app.yml
Original file line number Diff line number Diff line change
Expand Up @@ -125,8 +125,8 @@ jobs:
security list-keychain -d user -s $KEYCHAIN_PATH

# Sign vendored binaries with hardened runtime and their specific entitlements
codesign --force --options runtime --entitlements crates-tauri/yaak-app/macos/entitlements.yaakprotoc.plist --sign "$APPLE_SIGNING_IDENTITY" crates-tauri/yaak-app/vendored/protoc/yaakprotoc || true
codesign --force --options runtime --entitlements crates-tauri/yaak-app/macos/entitlements.yaaknode.plist --sign "$APPLE_SIGNING_IDENTITY" crates-tauri/yaak-app/vendored/node/yaaknode || true
codesign --force --options runtime --entitlements crates-tauri/yaak-app-client/macos/entitlements.yaakprotoc.plist --sign "$APPLE_SIGNING_IDENTITY" crates-tauri/yaak-app-client/vendored/protoc/yaakprotoc || true
codesign --force --options runtime --entitlements crates-tauri/yaak-app-client/macos/entitlements.yaaknode.plist --sign "$APPLE_SIGNING_IDENTITY" crates-tauri/yaak-app-client/vendored/node/yaaknode || true

- uses: tauri-apps/tauri-action@v0
env:
Expand Down Expand Up @@ -155,7 +155,8 @@ jobs:
releaseBody: "[Changelog __VERSION__](https://yaak.app/blog/__VERSION__)"
releaseDraft: true
prerelease: true
args: "${{ matrix.args }} --config ./crates-tauri/yaak-app/tauri.release.conf.json"
projectPath: ./crates-tauri/yaak-app-client
args: "${{ matrix.args }} --config ./tauri.release.conf.json"

# Build a per-machine NSIS installer for enterprise deployment (PDQ, SCCM, Intune)
- name: Build and upload machine-wide installer (Windows only)
Expand All @@ -171,7 +172,9 @@ jobs:
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
run: |
Get-ChildItem -Recurse -Path target -File -Filter "*.exe.sig" | Remove-Item -Force
npx tauri bundle ${{ matrix.args }} --bundles nsis --config ./crates-tauri/yaak-app/tauri.release.conf.json --config '{"bundle":{"createUpdaterArtifacts":true,"windows":{"nsis":{"installMode":"perMachine"}}}}'
Push-Location crates-tauri/yaak-app-client
npx tauri bundle ${{ matrix.args }} --bundles nsis --config ./tauri.release.conf.json --config '{"bundle":{"createUpdaterArtifacts":true,"windows":{"nsis":{"installMode":"perMachine"}}}}'
Pop-Location
$setup = Get-ChildItem -Recurse -Path target -Filter "*setup*.exe" | Select-Object -First 1
$setupSig = "$($setup.FullName).sig"
$dest = $setup.FullName -replace '-setup\.exe$', '-setup-machine.exe'
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/release-cli-npm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,8 @@ jobs:
with:
name: vendored-assets
path: |
crates-tauri/yaak-app/vendored/plugin-runtime/index.cjs
crates-tauri/yaak-app/vendored/plugins
crates-tauri/yaak-app-client/vendored/plugin-runtime/index.cjs
crates-tauri/yaak-app-client/vendored/plugins
if-no-files-found: error

build-binaries:
Expand Down Expand Up @@ -107,7 +107,7 @@ jobs:
uses: actions/download-artifact@v4
with:
name: vendored-assets
path: crates-tauri/yaak-app/vendored
path: crates-tauri/yaak-app-client/vendored

- name: Set CLI build version
shell: bash
Expand Down
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,8 @@ codebook.toml
target

# Per-worktree Tauri config (generated by post-checkout hook)
crates-tauri/yaak-app/tauri.worktree.conf.json
crates-tauri/yaak-app-client/tauri.worktree.conf.json
crates-tauri/yaak-app-proxy/tauri.worktree.conf.json

# Tauri auto-generated permission files
**/permissions/autogenerated
Expand Down
3 changes: 3 additions & 0 deletions .oxfmtignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
**/bindings/**
**/routeTree.gen.ts
crates/yaak-templates/pkg/**
6 changes: 5 additions & 1 deletion .oxfmtrc.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
{
"printWidth": 100,
"ignorePatterns": ["**/bindings/**", "crates/yaak-templates/pkg/**", "src-web/routeTree.gen.ts"]
"ignorePatterns": [
"**/bindings/**",
"crates/yaak-templates/pkg/**",
"apps/yaak-client/routeTree.gen.ts"
]
}
153 changes: 152 additions & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading