Skip to content
Merged
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
18 changes: 15 additions & 3 deletions .github/workflows/goose2-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,12 @@ on:
branches: [main]
paths:
- "ui/goose2/**"
- "ui/sdk/**"
pull_request:
branches: [main]
paths:
- "ui/goose2/**"
- "ui/sdk/**"
merge_group:
branches: [main]
workflow_dispatch:
Expand All @@ -35,8 +37,11 @@ jobs:
with:
node-version: 24
cache: pnpm
cache-dependency-path: ui/goose2/pnpm-lock.yaml
cache-dependency-path: ui/pnpm-lock.yaml
- run: pnpm install --frozen-lockfile
- name: Build SDK
run: pnpm build
working-directory: ui/sdk
- run: pnpm check
- run: pnpm typecheck

Expand All @@ -53,8 +58,11 @@ jobs:
with:
node-version: 24
cache: pnpm
cache-dependency-path: ui/goose2/pnpm-lock.yaml
cache-dependency-path: ui/pnpm-lock.yaml
- run: pnpm install --frozen-lockfile
- name: Build SDK
run: pnpm build
working-directory: ui/sdk
- run: pnpm test

desktop:
Expand All @@ -70,7 +78,7 @@ jobs:
with:
node-version: 24
cache: pnpm
cache-dependency-path: ui/goose2/pnpm-lock.yaml
cache-dependency-path: ui/pnpm-lock.yaml

- name: Install system dependencies
run: |
Expand All @@ -96,6 +104,10 @@ jobs:

- run: pnpm install --frozen-lockfile

- name: Build SDK
run: pnpm build
working-directory: ui/sdk

- name: Build frontend
run: pnpm build

Expand Down
5 changes: 2 additions & 3 deletions ui/goose2/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -134,9 +134,8 @@ ThemeProvider manages three axes:
## Backend Architecture

All AI communication goes through **ACP (Agent Client Protocol)**:
- The Rust backend spawns ACP agent binaries as child processes and communicates via **stdin/stdout JSON-RPC**.
- Responses stream back to the frontend through **Tauri events** (`acp:text`, `acp:tool_call`, `acp:tool_result`, `acp:done`, etc.).
- The frontend listens to these events via `@tauri-apps/api/event` (see `useAcpStream` hook).
- The Tauri app starts a long-lived `goose serve` process and exposes its WebSocket URL.
- The frontend connects directly to `goose serve` over WebSocket and handles ACP notifications in TypeScript.

For non AI communication, such as configuration:
- Use **Tauri commands** (`invoke()` from `@tauri-apps/api/core`) for request/response operations (sessions, personas, skills, projects, etc.).
Expand Down
3 changes: 2 additions & 1 deletion ui/goose2/justfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,10 @@ default:

# ── Dev Environment ──────────────────────────────────────────

# Install dependencies
# Install dependencies and build workspace packages
setup:
pnpm install
cd ../sdk && pnpm build
cd src-tauri && cargo build

# ── Build & Check ────────────────────────────────────────────
Expand Down
4 changes: 2 additions & 2 deletions ui/goose2/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
"test-driver": "tsx tests/app-e2e/lib/test-driver-cli.ts"
},
"dependencies": {
"@aaif/goose-acp": "^0.16.0",
"@aaif/goose-sdk": "workspace:*",
"@agentclientprotocol/sdk": "^0.19.0",
"@radix-ui/react-accordion": "^1.2.12",
"@radix-ui/react-alert-dialog": "^1.1.15",
Expand Down Expand Up @@ -65,7 +65,7 @@
"@tailwindcss/typography": "^0.5.19",
"@tanstack/react-query": "^5.90.21",
"@tauri-apps/api": "^2",
"@tauri-apps/plugin-dialog": "^2.6.0",
"@tauri-apps/plugin-dialog": "~2.6.0",
"@tauri-apps/plugin-opener": "^2.5.3",
"@xyflow/react": "^12.10.2",
"ai": "^6.0.142",
Expand Down
Loading
Loading