Skip to content

Commit 63b307a

Browse files
authored
2026.03.16 (#107)
1 parent 58bd818 commit 63b307a

File tree

93 files changed

+5605
-2045
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

93 files changed

+5605
-2045
lines changed
Lines changed: 23 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Build Desktop App
1+
name: Build Desktop JAR
22

33
on:
44
# Runs on PRs targeting the default branch
@@ -10,6 +10,8 @@ on:
1010
# Runs after merging to the default branch
1111
push:
1212
branches: [ "main" ]
13+
tags:
14+
- 'v*'
1315

1416
# Allows manual triggering from Actions tab
1517
workflow_dispatch:
@@ -19,7 +21,7 @@ concurrency:
1921
cancel-in-progress: true
2022

2123
jobs:
22-
build-macos-app:
24+
build-jar:
2325
runs-on: macos-latest
2426
timeout-minutes: 45
2527

@@ -42,43 +44,28 @@ jobs:
4244
- name: Grant execute permission for gradlew
4345
run: chmod +x gradlew
4446

45-
- name: Build Desktop App
46-
run: ./gradlew :trailblaze-desktop:createDistributable
47+
- name: Build Shrunk Uber JAR
48+
run: ./gradlew :trailblaze-desktop:shrinkUberJar -Ptrailblaze.proguard=true
4749

48-
- name: Ad-hoc Sign App
49-
run: |
50-
APP_PATH="trailblaze-desktop/build/compose/binaries/main/app/Trailblaze.app"
51-
echo "Signing app bundle with ad-hoc signature..."
52-
codesign --force --deep --sign - "$APP_PATH"
53-
54-
# Verify signing
55-
codesign --verify --verbose "$APP_PATH"
56-
echo "App successfully signed"
57-
58-
- name: Package .app file
59-
id: package-app
60-
run: |
61-
APP_PATH="trailblaze-desktop/build/compose/binaries/main/app/Trailblaze.app"
62-
echo "Found .app at: $APP_PATH"
63-
64-
# Get directory size for logging
65-
du -sh "$APP_PATH"
66-
67-
# Create zip archive preserving the .app bundle structure
68-
cd trailblaze-desktop/build/compose/binaries/main/app
69-
ZIP_NAME="Trailblaze-macos.zip"
70-
zip -r -y "$ZIP_NAME" Trailblaze.app
71-
72-
# Move zip to root for easier artifact path
73-
mv "$ZIP_NAME" "$GITHUB_WORKSPACE/"
74-
echo "zip_path=$GITHUB_WORKSPACE/$ZIP_NAME" >> $GITHUB_OUTPUT
75-
echo "Created zip: $ZIP_NAME"
76-
ls -lh "$GITHUB_WORKSPACE/$ZIP_NAME"
50+
- name: Upload Shrunk JAR Artifact
51+
uses: actions/upload-artifact@v4
52+
with:
53+
name: trailblaze-desktop-jar
54+
path: trailblaze-desktop/build/compose/jars-shrunk/trailblaze.jar
55+
if-no-files-found: error
56+
retention-days: 30
7757

78-
- name: Upload App Artifact
58+
- name: Upload Full Uber JAR Artifact
7959
uses: actions/upload-artifact@v4
8060
with:
81-
name: trailblaze-desktop-macos-app
82-
path: ${{ steps.package-app.outputs.zip_path }}
61+
name: trailblaze-desktop-uber-jar
62+
path: trailblaze-desktop/build/compose/jars/*.jar
8363
if-no-files-found: error
8464
retention-days: 30
65+
66+
- name: Create GitHub Release
67+
if: startsWith(github.ref, 'refs/tags/v')
68+
uses: softprops/action-gh-release@153bb8e04406b158c6c84fc1615b65b24149a1fe # v2
69+
with:
70+
files: trailblaze-desktop/build/compose/jars-shrunk/trailblaze.jar
71+
generate_release_notes: true

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,3 +58,5 @@ node_modules/
5858
__pycache__/
5959
*.pyc
6060
/sdks/python/.venv/
61+
62+
package-lock.json

.mcp.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"mcpServers": {
3+
"trailblaze": {
4+
"command": "./trailblaze",
5+
"args": ["mcp"],
6+
"env": {
7+
}
8+
}
9+
}
10+
}

docs/CLI.md

Lines changed: 105 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ trailblaze [OPTIONS] [COMMAND]
2828
| `config` | View and modify Trailblaze configuration |
2929
| `status` | Check if the Trailblaze daemon is running |
3030
| `stop` | Stop the Trailblaze daemon |
31+
| `help` | When no COMMAND is given, the usage help for the main command is displayed. |
3132

3233
---
3334

@@ -92,6 +93,7 @@ trailblaze mcp [OPTIONS]
9293
| Option | Description | Default |
9394
|--------|-------------|---------|
9495
| `--http` | Use Streamable HTTP transport instead of STDIO. Starts a standalone HTTP MCP server. | - |
96+
| `--direct`, `--no-daemon` | Run as an in-process MCP server over STDIO instead of the default proxy mode. Bypasses the Trailblaze daemon and runs everything in a single process. Use this for environments where the HTTP daemon cannot run. | - |
9597
| `--tool-profile` | Tool profile: FULL or MINIMAL (only device/blaze/verify/ask/trail). Defaults to MINIMAL for STDIO, FULL for HTTP. | - |
9698
| `-h`, `--help` | Show this help message and exit. | - |
9799
| `-V`, `--version` | Print version information and exit. | - |
@@ -119,37 +121,49 @@ trailblaze list-devices [OPTIONS]
119121

120122
### `trailblaze config`
121123

122-
View and modify Trailblaze configuration using positional arguments.
124+
View and modify Trailblaze configuration
123125

124126
**Synopsis:**
125127

126128
```
127-
trailblaze config # Show all settings + auth status
128-
trailblaze config <key> # Show a specific key's value
129-
trailblaze config <key> <value> # Set a config value
130-
trailblaze config models # List available LLM models by provider
131-
trailblaze config agents # List available agent implementations
132-
trailblaze config drivers # List available driver types
129+
trailblaze config [OPTIONS] [<<key>>] [<<value>>]
130+
trailblaze config models
131+
trailblaze config agents
132+
trailblaze config drivers
133133
```
134134

135+
**Arguments:**
136+
137+
| Argument | Description | Required |
138+
|----------|-------------|----------|
139+
| `<<key>>` | Config key to get or set | No |
140+
| `<<value>>` | Value to set | No |
141+
142+
**Options:**
143+
144+
| Option | Description | Default |
145+
|--------|-------------|---------|
146+
| `-h`, `--help` | Show this help message and exit. | - |
147+
| `-V`, `--version` | Print version information and exit. | - |
148+
135149
**Config Keys:**
136150

137151
| Key | Description | Valid Values |
138152
|-----|-------------|-------------|
139-
| `llm` | LLM provider and model (shorthand) | `provider/model` (e.g., `openai/gpt-4-1`) |
140-
| `llm-provider` | LLM provider | `openai`, `anthropic`, `google`, `ollama`, `openrouter`, etc. |
141-
| `llm-model` | LLM model ID | e.g., `gpt-4-1`, `claude-sonnet-4-20250514` |
142-
| `agent` | Agent implementation | `TRAILBLAZE_RUNNER`, `TWO_TIER_AGENT`, `MULTI_AGENT_V3` |
143-
| `android-driver` | Android driver type | `HOST`, `ONDEVICE`, `ACCESSIBILITY` |
144-
| `ios-driver` | iOS driver type | `HOST` |
145-
| `set-of-mark` | Enable/disable Set of Mark mode | `true`, `false` |
146-
| `ai-fallback` | Enable/disable AI fallback | `true`, `false` |
153+
| `llm` | LLM provider and model (shorthand: provider/model) | provider/model (e.g., openai/gpt-4-1, anthropic/claude-sonnet-4-20250514) |
154+
| `llm-provider` | LLM provider | openai, anthropic, google, ollama, openrouter, etc. |
155+
| `llm-model` | LLM model ID | e.g., gpt-4-1, claude-sonnet-4-20250514, gemini-3-flash |
156+
| `agent` | Agent implementation | TRAILBLAZE_RUNNER, TWO_TIER_AGENT, MULTI_AGENT_V3 |
157+
| `android-driver` | Android driver type | HOST, ONDEVICE, ACCESSIBILITY |
158+
| `ios-driver` | iOS driver type | HOST |
159+
| `set-of-mark` | Enable/disable Set of Mark mode | true, false |
160+
| `ai-fallback` | Enable/disable AI fallback when recorded steps fail | true, false |
147161

148162
**Examples:**
149163

150164
```bash
151-
trailblaze config # Show all settings + auth status
152-
trailblaze config llm # Show "openai/gpt-4-1"
165+
trailblaze config # Show all settings
166+
trailblaze config llm # Show current LLM provider/model
153167
trailblaze config llm anthropic/claude-sonnet-4-6 # Set both provider + model
154168
trailblaze config llm-provider openai # Set provider only
155169
trailblaze config llm-model gpt-4-1 # Set model only
@@ -160,6 +174,56 @@ trailblaze config agents # List agent implementation
160174
trailblaze config drivers # List driver types
161175
```
162176

177+
---
178+
179+
### `trailblaze config models`
180+
181+
List available LLM models by provider
182+
183+
**Synopsis:**
184+
185+
```
186+
trailblaze config models [OPTIONS]
187+
```
188+
189+
**Options:**
190+
191+
| Option | Description | Default |
192+
|--------|-------------|---------|
193+
| `-h`, `--help` | Show this help message and exit. | - |
194+
| `-V`, `--version` | Print version information and exit. | - |
195+
196+
---
197+
198+
### `trailblaze config agents`
199+
200+
List available agent implementations
201+
202+
**Synopsis:**
203+
204+
```
205+
trailblaze config agents [OPTIONS]
206+
```
207+
208+
**Options:**
209+
210+
| Option | Description | Default |
211+
|--------|-------------|---------|
212+
| `-h`, `--help` | Show this help message and exit. | - |
213+
| `-V`, `--version` | Print version information and exit. | - |
214+
215+
---
216+
217+
### `trailblaze config drivers`
218+
219+
List available driver types
220+
221+
**Synopsis:**
222+
223+
```
224+
trailblaze config drivers [OPTIONS]
225+
```
226+
163227
**Options:**
164228

165229
| Option | Description | Default |
@@ -206,6 +270,30 @@ trailblaze stop [OPTIONS]
206270
| `-h`, `--help` | Show this help message and exit. | - |
207271
| `-V`, `--version` | Print version information and exit. | - |
208272

273+
---
274+
275+
### `trailblaze help`
276+
277+
When no COMMAND is given, the usage help for the main command is displayed. If a COMMAND is specified, the help for that command is shown.
278+
279+
**Synopsis:**
280+
281+
```
282+
trailblaze help [OPTIONS] [<COMMAND>]
283+
```
284+
285+
**Arguments:**
286+
287+
| Argument | Description | Required |
288+
|----------|-------------|----------|
289+
| `<COMMAND>` | The COMMAND to display the usage help message for. | No |
290+
291+
**Options:**
292+
293+
| Option | Description | Default |
294+
|--------|-------------|---------|
295+
| `-h`, `--help` | Show usage help for the help command and exit. | - |
296+
209297
<hr/>
210298

211299
**NOTE**: THIS IS GENERATED DOCUMENTATION

0 commit comments

Comments
 (0)