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
Copy file name to clipboardExpand all lines: AGENTS.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ Read these first:
9
9
Current architecture:
10
10
11
11
-`sah` is a Go CLI that authenticates against `https://sah.borca.ai`, stores the contributor API key locally, and polls `/s@h/*` endpoints.
12
-
- The CLI never hands the contributor API key to Codex CLI, Gemini CLI, or Claude Code. It fetches assignments itself, runs the local agent CLI in an empty working directory, captures stdout, and submits the parsed JSON payload itself.
12
+
- The CLI never hands the contributor API key to Codex CLI, Gemini CLI, Claude Code, or Qwen Code. It fetches assignments itself, runs the local agent CLI in an empty working directory, captures stdout, and submits the parsed JSON payload itself.
13
13
- Foreground mode uses `sah run`. Daemon mode uses a per-user macOS `launchd` agent installed by `sah daemon install`.
Copy file name to clipboardExpand all lines: README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -29,7 +29,7 @@ For always-on background work:
29
29
sah daemon install
30
30
```
31
31
32
-
`sah daemon install` installs and starts the per-user `launchd` agent immediately. It captures the current shell `PATH`, `HOME`, and the absolute paths of installed agent binaries, then runs from `~/Library/Application Support/sah` instead of your home directory. Re-run it after moving `codex`, `gemini`, or `claude`.
32
+
`sah daemon install` installs and starts the per-user `launchd` agent immediately. It captures the current shell `PATH`, `HOME`, and the absolute paths of installed agent binaries, then runs from `~/Library/Application Support/sah` instead of your home directory. Re-run it after moving `codex`, `gemini`, `claude`, or `qwen`.
Copy file name to clipboardExpand all lines: docs/architecture.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,7 +19,7 @@ The browser never receives the raw contributor API key. The local CLI proves pos
19
19
-`sah` calls `GET /s@h/tasks` with `X-API-Key`.
20
20
- The assignment response can include a protocol version plus `_links.submit` and `_links.release`, and the same submit/release relations can also be exposed through the HTTP `Link` header.
21
21
- It builds a task-only prompt from the returned assignment payload and instructions.
22
-
- It runs one of the supported local agent CLIs: `codex`, `gemini`, or `claude`.
22
+
- It runs one of the supported local agent CLIs: `codex`, `gemini`, `claude`, or `qwen`.
23
23
- The agent receives no API key and runs in an empty temporary working directory.
24
24
- The CLI parses the agent stdout as JSON and follows the assignment-scoped submit link when present, falling back to the legacy contribution endpoint when it is not.
25
25
- If the local agent aborts or fails before submission, `sah` releases the assignment immediately so the API key does not stay pinned at the open-assignment limit until expiry.
Copy file name to clipboardExpand all lines: docs/build.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,7 +23,7 @@ go build -o bin/sah ./cmd/sah
23
23
For release builds, inject the version via `ldflags`.
24
24
25
25
```sh
26
-
go build -trimpath -ldflags="-s -w -X main.version=v0.3.0" -o bin/sah ./cmd/sah
26
+
go build -trimpath -ldflags="-s -w -X main.version=v0.4.0" -o bin/sah ./cmd/sah
27
27
```
28
28
29
29
## Run
@@ -39,7 +39,7 @@ sah daemon install
39
39
40
40
`sah daemon install` both installs and starts the `launchd` agent. Use `sah daemon start` only after a manual `stop` or after logging back into macOS.
41
41
42
-
If the daemon cannot find `codex`, `gemini`, or `claude`, re-run `sah daemon install` from a shell where that agent is already on `PATH`. The install command captures the current shell environment for `launchd`, stores absolute agent binary paths, and runs the daemon from `~/Library/Application Support/sah` instead of `HOME`.
42
+
If the daemon cannot find `codex`, `gemini`, `claude`, or `qwen`, re-run `sah daemon install` from a shell where that agent is already on `PATH`. The install command captures the current shell environment for `launchd`, stores absolute agent binary paths, and runs the daemon from `~/Library/Application Support/sah` instead of `HOME`.
43
43
44
44
## Test
45
45
@@ -75,8 +75,8 @@ The hook runs:
75
75
Pushing a `v*` tag triggers GitHub Actions (`.github/workflows/release.yml`), which runs GoReleaser. It builds macOS binaries, creates archives with checksums, publishes a GitHub Release, and updates the Homebrew tap.
0 commit comments