@fibteq/altair-runner 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -48,6 +48,21 @@ from npm and restarts the background runner on it (`service install` again also
48
48
  `service uninstall` removes it. On Linux it starts when you log in; to start at boot without logging in, run
49
49
  `loginctl enable-linger`.
50
50
 
51
+ ### Threads working at the same time
52
+
53
+ When a shared folder is a git repository, each thread works in its own
54
+ [git worktree](https://git-scm.com/docs/git-worktree) on its own branch, `altair/thr-…`, made from the repository's
55
+ current commit on the thread's first task. Two threads can then work in the same project at once without changing
56
+ each other's files or switching each other's branch, and your own checkout is left alone. Each task's result says
57
+ which branch and folder the work is in; merge or open a PR from that branch as usual.
58
+
59
+ Worktrees live in `~/.altair-runner/worktrees`. They start without your uncommitted changes and without ignored files
60
+ such as `node_modules` or `.env`, so a task may need to install dependencies first. A worktree that has not been used
61
+ for a day, has no uncommitted changes and whose branch is merged into your checkout's branch is removed
62
+ automatically, with its branch. `altair-runner worktrees` lists them, `worktrees prune` cleans up now,
63
+ `worktrees remove <path or branch>` removes one, and `worktrees off` makes threads work in the folder itself again.
64
+ Read-only tasks (`--access read`) always run in the folder itself.
65
+
51
66
  ### What the CLI may do
52
67
 
53
68
  `altair-runner start --access <level>` or `altair-runner service install --access <level>` (saved for next time):
@@ -63,6 +78,15 @@ With `edit`, the CLI can change files in the folder but cannot run commands that
63
78
 
64
79
  Tasks in the same Altair thread continue the same Claude Code session (`--resume`), so follow-ups keep context.
65
80
 
81
+ ### Claude Code as the thread's agent (experimental)
82
+
83
+ When a project's **Thread agent** setting is "Claude Code on the computer", Claude Code does not just run tasks for
84
+ Altair's agent: it is the thread's agent. Each turn of the thread is one `claude -p` run, resumed from the thread's
85
+ previous session, with Altair's tools (reply, plan, decisions, artifacts, memory) added over MCP (`--mcp-config`,
86
+ allowed with `--allowedTools mcp__altair`). The MCP endpoint is `<server>/api/agent-mcp/<thread>` and its token is
87
+ valid only for that turn; the config file holding it is readable only by you and deleted when the run ends. The whole
88
+ turn uses your own Claude Code login. Needs Claude Code as the project's CLI and altair-runner 0.4.0 or later.
89
+
66
90
  ### For apps that run it (the desktop app)
67
91
 
68
92
  - `ALTAIR_SERVER` and `ALTAIR_RUNNER_TOKEN` override the saved pairing, and an env token is never written to disk.
@@ -92,13 +116,16 @@ node packages/altair-runner/dist/cli.js --help
92
116
 
93
117
  ## Releasing
94
118
 
95
- Needs an npm account that is a member of the `fibteq` npm organization.
96
-
97
119
  1. Bump `version` in `package.json` here and in `packages/altair-runner-alias/package.json`, and `RUNNER_VERSION`
98
120
  in `src/runner.ts` (a test checks they match). Bump `RUNNER_PROTOCOL_VERSION` in `@altair/protocol` only when the
99
121
  wire format changes; the server refuses runners on another protocol version and tells them to update.
100
- 2. Publish the runner first, then the short name, with `pnpm` (it replaces `workspace:` versions and uses the
101
- built files from `publishConfig`):
122
+ 2. Merge it. The [Release altair-runner](../../.github/workflows/release-runner.yml) workflow then tests, builds and
123
+ publishes both packages whose version is not on npm yet (it can also be run by hand from the Actions tab).
124
+ It uses npm trusted publishing: once, on npmjs.com, open each package's **Settings > Trusted publishing**, choose
125
+ GitHub Actions and enter `Fibteq-Inc`, `altair` and `release-runner.yml`.
126
+
127
+ By hand instead (needs an npm account in the `fibteq` npm organization), runner first, then the short name, with
128
+ `pnpm` (it replaces `workspace:` versions and uses the built files from `publishConfig`):
102
129
 
103
130
  ```sh
104
131
  npm login