Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/android-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ jobs:
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # was v4
with:
path: ~/.cache/sccache
key: ${{ runner.os }}-sccache-android-release-${{ hashFiles('**/Cargo.lock') }}
key: ${{ runner.os }}-sccache-android-release-${{ hashFiles('**/Cargo.lock', 'frontend/src-tauri/opensecret-sdk.rev') }}
restore-keys: |
${{ runner.os }}-sccache-android-release-
${{ runner.os }}-sccache-android-
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/android-pr-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ jobs:
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # was v4
with:
path: ~/.cache/sccache
key: ${{ runner.os }}-sccache-android-${{ hashFiles('**/Cargo.lock') }}
key: ${{ runner.os }}-sccache-android-${{ hashFiles('**/Cargo.lock', 'frontend/src-tauri/opensecret-sdk.rev') }}
restore-keys: |
${{ runner.os }}-sccache-android-
${{ runner.os }}-sccache-
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/desktop-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ jobs:
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # was v4
with:
path: ~/Library/Caches/Mozilla.sccache
key: ${{ runner.os }}-sccache-macos-release-${{ hashFiles('**/Cargo.lock') }}
key: ${{ runner.os }}-sccache-macos-release-${{ hashFiles('**/Cargo.lock', 'frontend/src-tauri/opensecret-sdk.rev') }}
restore-keys: |
${{ runner.os }}-sccache-macos-release-
${{ runner.os }}-sccache-macos-
Expand Down Expand Up @@ -110,7 +110,7 @@ jobs:
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # was v4
with:
path: ~/.cache/sccache
key: ${{ runner.os }}-sccache-linux-release-${{ hashFiles('**/Cargo.lock') }}
key: ${{ runner.os }}-sccache-linux-release-${{ hashFiles('**/Cargo.lock', 'frontend/src-tauri/opensecret-sdk.rev') }}
restore-keys: |
${{ runner.os }}-sccache-linux-release-
${{ runner.os }}-sccache-linux-
Expand Down Expand Up @@ -266,7 +266,7 @@ jobs:
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # was v4
with:
path: ~\AppData\Local\Mozilla\sccache
key: ${{ runner.os }}-sccache-windows-${{ hashFiles('**/Cargo.lock') }}
key: ${{ runner.os }}-sccache-windows-${{ hashFiles('**/Cargo.lock', 'frontend/src-tauri/opensecret-sdk.rev') }}
restore-keys: |
${{ runner.os }}-sccache-windows-
${{ runner.os }}-sccache-
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/desktop-pr-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ jobs:
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # was v4
with:
path: ~/Library/Caches/Mozilla.sccache
key: ${{ runner.os }}-sccache-macos-${{ hashFiles('**/Cargo.lock') }}
key: ${{ runner.os }}-sccache-macos-${{ hashFiles('**/Cargo.lock', 'frontend/src-tauri/opensecret-sdk.rev') }}
restore-keys: |
${{ runner.os }}-sccache-macos-
${{ runner.os }}-sccache-
Expand Down Expand Up @@ -82,7 +82,7 @@ jobs:
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # was v4
with:
path: ~/.cache/sccache
key: ${{ runner.os }}-sccache-linux-${{ hashFiles('**/Cargo.lock') }}
key: ${{ runner.os }}-sccache-linux-${{ hashFiles('**/Cargo.lock', 'frontend/src-tauri/opensecret-sdk.rev') }}
restore-keys: |
${{ runner.os }}-sccache-linux-
${{ runner.os }}-sccache-
Expand Down Expand Up @@ -165,7 +165,7 @@ jobs:
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # was v4
with:
path: ~\AppData\Local\Mozilla\sccache
key: ${{ runner.os }}-sccache-windows-${{ hashFiles('**/Cargo.lock') }}
key: ${{ runner.os }}-sccache-windows-${{ hashFiles('**/Cargo.lock', 'frontend/src-tauri/opensecret-sdk.rev') }}
restore-keys: |
${{ runner.os }}-sccache-windows-
${{ runner.os }}-sccache-
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/mobile-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ jobs:
- name: Cache Xcode DerivedData and SourcePackages
uses: irgaly/xcode-cache@4141f139f00e335c6e1031fb93e667181f86146f # was v1
with:
key: xcode-cache-ios-xcode26.5-${{ steps.select_xcode.outputs.build }}-${{ github.workflow }}-${{ hashFiles('**/Cargo.lock') }}
key: xcode-cache-ios-xcode26.5-${{ steps.select_xcode.outputs.build }}-${{ github.workflow }}-${{ hashFiles('**/Cargo.lock', 'frontend/src-tauri/opensecret-sdk.rev') }}
restore-keys: |
xcode-cache-ios-xcode26.5-${{ steps.select_xcode.outputs.build }}-${{ github.workflow }}-
xcode-cache-ios-xcode26.5-${{ steps.select_xcode.outputs.build }}-
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/mobile-pr-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ jobs:
- name: Cache Xcode DerivedData and SourcePackages
uses: irgaly/xcode-cache@4141f139f00e335c6e1031fb93e667181f86146f # was v1
with:
key: xcode-cache-ios-xcode26.5-${{ steps.select_xcode.outputs.build }}-${{ github.workflow }}-${{ hashFiles('**/Cargo.lock') }}
key: xcode-cache-ios-xcode26.5-${{ steps.select_xcode.outputs.build }}-${{ github.workflow }}-${{ hashFiles('**/Cargo.lock', 'frontend/src-tauri/opensecret-sdk.rev') }}
restore-keys: |
xcode-cache-ios-xcode26.5-${{ steps.select_xcode.outputs.build }}-${{ github.workflow }}-
xcode-cache-ios-xcode26.5-${{ steps.select_xcode.outputs.build }}-
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ jobs:
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # was v4
with:
path: ${{ startsWith(matrix.platform, 'macos') && '~/Library/Caches/Mozilla.sccache' || '~/.cache/sccache' }}
key: ${{ runner.os }}-sccache-release-${{ hashFiles('**/Cargo.lock') }}
key: ${{ runner.os }}-sccache-release-${{ hashFiles('**/Cargo.lock', 'frontend/src-tauri/opensecret-sdk.rev') }}
restore-keys: |
${{ runner.os }}-sccache-release-
${{ runner.os }}-sccache-
Expand Down Expand Up @@ -214,7 +214,7 @@ jobs:
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # was v4
with:
path: ~\AppData\Local\Mozilla\sccache
key: ${{ runner.os }}-sccache-windows-release-${{ hashFiles('**/Cargo.lock') }}
key: ${{ runner.os }}-sccache-windows-release-${{ hashFiles('**/Cargo.lock', 'frontend/src-tauri/opensecret-sdk.rev') }}
restore-keys: |
${{ runner.os }}-sccache-windows-release-

Expand Down Expand Up @@ -339,7 +339,7 @@ jobs:
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # was v4
with:
path: ~/.cache/sccache
key: ${{ runner.os }}-sccache-android-release-${{ hashFiles('**/Cargo.lock') }}
key: ${{ runner.os }}-sccache-android-release-${{ hashFiles('**/Cargo.lock', 'frontend/src-tauri/opensecret-sdk.rev') }}
restore-keys: |
${{ runner.os }}-sccache-android-release-
${{ runner.os }}-sccache-
Expand Down Expand Up @@ -436,7 +436,7 @@ jobs:
- name: Cache Xcode DerivedData and SourcePackages
uses: irgaly/xcode-cache@4141f139f00e335c6e1031fb93e667181f86146f # was v1
with:
key: xcode-cache-ios-xcode26.5-${{ steps.select_xcode.outputs.build }}-${{ github.workflow }}-${{ hashFiles('**/Cargo.lock') }}
key: xcode-cache-ios-xcode26.5-${{ steps.select_xcode.outputs.build }}-${{ github.workflow }}-${{ hashFiles('**/Cargo.lock', 'frontend/src-tauri/opensecret-sdk.rev') }}
restore-keys: |
xcode-cache-ios-xcode26.5-${{ steps.select_xcode.outputs.build }}-${{ github.workflow }}-
xcode-cache-ios-xcode26.5-${{ steps.select_xcode.outputs.build }}-
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/rust-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # was v4
with:
path: ~/.cache/sccache
key: ${{ runner.os }}-sccache-rust-tests-${{ hashFiles('**/Cargo.lock') }}
key: ${{ runner.os }}-sccache-rust-tests-${{ hashFiles('**/Cargo.lock', 'frontend/src-tauri/opensecret-sdk.rev') }}
restore-keys: |
${{ runner.os }}-sccache-rust-tests-
${{ runner.os }}-sccache-
Expand Down
13 changes: 8 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,14 +48,17 @@ rustup target add aarch64-apple-darwin x86_64-apple-darwin

1. Clone the repository and run the setup script:
```bash
./scripts/setup-opensecret-sdk.sh
./setup-hooks.sh
```

This configures Git to use the project's pre-commit hook. Managed
`opensecret-workspaces` checkouts enable the same hook automatically. The hook
checks formatting, builds the frontend, runs frontend tests, and runs Rust tests
when Tauri files are staged. If Bun or Cargo is not already available and Nix
is installed, the hook enters this repository's Nix development shell.
The first script checks out the exact unpublished OpenSecret Rust SDK revision
used by Maple as a sibling repository. Managed `opensecret-workspaces` checkouts
already provide that sibling and use its local branch while developing coordinated
changes. The second script configures Git to use the project's pre-commit hook.
The hook checks formatting, builds the frontend, runs frontend tests, and runs
Rust tests when Tauri files are staged. If Bun or Cargo is not already available
and Nix is installed, the hook enters this repository's Nix development shell.

## Development

Expand Down
42 changes: 41 additions & 1 deletion frontend/src-tauri/Cargo.lock

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

9 changes: 8 additions & 1 deletion frontend/src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -75,11 +75,15 @@ sha2 = "0.10"
# instead of a submodule so ordinary Maple checkouts do not need the full Goose
# history.
goose = { git = "https://github.com/aaif-goose/goose.git", rev = "3c1fdd692cc8aaa5f09b9175410c09a09d4dfe49", package = "goose", default-features = false }
goose-providers = { git = "https://github.com/aaif-goose/goose.git", rev = "3c1fdd692cc8aaa5f09b9175410c09a09d4dfe49", package = "goose-providers", default-features = false }
opensecret = { path = "../../../OpenSecret-SDK/rust" }
async-trait = "0.1"
rmcp = { version = "=1.4.0", default-features = false }
tauri-plugin-dialog = "2.7.1"
tokio-util = "0.7"
tokio-util = { version = "0.7", features = ["codec", "io"] }
httpdate = "1"
process-wrap = { version = "=9.1.0", default-features = false, features = ["tokio1", "creation-flags", "job-object", "process-group"] }
pulldown-cmark = { version = "0.13", default-features = false }

[target.'cfg(unix)'.dependencies]
libc = "0.2"
Expand Down Expand Up @@ -119,3 +123,6 @@ windows = { version = "0.62.2", features = ["Win32_System_Threading"] }
# process before tauri-plugin-deep-link sees OAuth/payment redirects. Remove
# this once Tauri resolves to a Tao release containing the upstream fix.
tao = { path = "patches/tao-0.35.2" }

[dev-dependencies]
ciborium = "0.2"
1 change: 1 addition & 0 deletions frontend/src-tauri/opensecret-sdk.rev
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
b5a144f87b7929d37464f6aff3bd56a432d02f8d
Loading
Loading