You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Add jxa unittests, which are checked via Github Actions CI
* Enable CI checks for all golang unit tests for consistency
Co-authored by: Claude Code v2.0.24 + Claude Sonnet 4.5 with the prompts:
```
Debug why the scripts under @scripts/ crash with errors such as `Failed to list tasks:
failed to execute list_tasks.jxa: exit status 1 -
/opt/homebrew/share/mcp-omnifocus/list_tasks.jxa:13:14: script error: Expected end of
line, etc. but found “(”. (-2741)`
```
```
Add a github actions check to verify the syntax of all jxa scripts during CI
```
**Important:** Always use the `-l JavaScript` flag when testing JXA scripts with `osascript` to ensure proper syntax parsing.
83
+
77
84
## MCP Tools
78
85
79
86
All tools are registered in `cmd/mcp-omnifocus/main.go` in the `registerTools()` function.
@@ -194,6 +201,16 @@ To test the MCP server locally:
194
201
3. Check that JXA scripts have execute permissions (`chmod +x scripts/*.jxa`)
195
202
4. Ensure OmniFocus is running and has projects/tasks to query
196
203
204
+
## Continuous Integration
205
+
206
+
The project uses GitHub Actions for CI/CD. The build workflow (`.github/workflows/build.yml`) runs on every push and pull request to `main`:
207
+
208
+
1.**Build** - Compiles the Go binary
209
+
2.**Validate JXA Syntax** - Uses `osacompile` to check all JXA scripts for syntax errors without executing them
210
+
3.**Run Tests** - Executes all Go tests
211
+
212
+
The JXA syntax validation ensures that script syntax errors are caught early, before they cause runtime failures. This is particularly important because the `-l JavaScript` flag must be used when calling `osascript` for proper syntax parsing.
213
+
197
214
## Release Process
198
215
199
216
Releases are automated using GitHub Actions and GoReleaser v2.
0 commit comments