@hasna/loops 0.4.8 → 0.4.9
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/CHANGELOG.md +24 -0
- package/README.md +4 -4
- package/dist/api/index.js +1 -1
- package/dist/cli/index.js +83 -345
- package/dist/daemon/index.js +25 -313
- package/dist/index.js +12 -300
- package/dist/lib/agent-adapter.d.ts +1 -1
- package/dist/lib/mode.js +1 -1
- package/dist/lib/route/pr-review.d.ts +11 -1
- package/dist/lib/storage/index.js +10 -11
- package/dist/lib/storage/sqlite.js +10 -11
- package/dist/lib/store.js +10 -11
- package/dist/mcp/index.js +12 -300
- package/dist/runner/index.js +12 -300
- package/dist/sdk/index.js +12 -300
- package/docs/USAGE.md +4 -4
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,30 @@ documented in this file. Version entries are generated from the
|
|
|
5
5
|
conventional-commit git history; one commit maps to one released patch version
|
|
6
6
|
unless noted.
|
|
7
7
|
|
|
8
|
+
## 0.4.9 (2026-07-04)
|
|
9
|
+
|
|
10
|
+
Unblock the PR-merge pipeline: task-lifecycle/route workers now dispatch real
|
|
11
|
+
work, and the PR-review admission gate can resolve authors it was not handed.
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
|
|
15
|
+
- **Agent adapter / executor:** launch Codewith agent steps with non-interactive
|
|
16
|
+
`codewith exec --json` instead of the durable `codewith agent start`
|
|
17
|
+
background-agent controller. `agent start` reloaded the multi-megabyte rollout
|
|
18
|
+
history on every turn, hitting `context_length_exceeded` and completing
|
|
19
|
+
silently with no work — stalling task-lifecycle and route workers. exec runs a
|
|
20
|
+
fresh session per invocation, honors `--auth-profile`, streams JSONL, and keeps
|
|
21
|
+
network egress for gh/git (the `workspace-write` sandbox opts back into
|
|
22
|
+
`sandbox_workspace_write.network_access`). Codewith is now a normal one-shot
|
|
23
|
+
exec provider (remote-capable like codex); the unreachable durable
|
|
24
|
+
start/read/logs/poll controller was removed.
|
|
25
|
+
- **Route PR review:** when a PR approval/merge route is required and no author is
|
|
26
|
+
present in task metadata or text, derive the PR author from a concrete
|
|
27
|
+
`owner/repo#number` reference via `gh pr view ... --json author` before
|
|
28
|
+
selecting a non-author reviewer. Self-review protection is preserved (a derived
|
|
29
|
+
author that matches the sole reviewer is still blocked), and the gate fails
|
|
30
|
+
closed when the reference is unresolvable.
|
|
31
|
+
|
|
8
32
|
## 0.4.8 (2026-07-04)
|
|
9
33
|
|
|
10
34
|
Lifecycle prompt hardening for routed task workflows.
|
package/README.md
CHANGED
|
@@ -12,7 +12,7 @@ It supports deterministic command loops, JSON-defined workflows, and guarded CLI
|
|
|
12
12
|
|
|
13
13
|
- `claude`
|
|
14
14
|
- `agent` (Cursor Agent CLI)
|
|
15
|
-
- `codewith
|
|
15
|
+
- `codewith exec`
|
|
16
16
|
- `aicopilot run`
|
|
17
17
|
- `opencode run`
|
|
18
18
|
- `codex exec`
|
|
@@ -882,13 +882,13 @@ On Linux this writes a user systemd service. On macOS it writes a LaunchAgent pl
|
|
|
882
882
|
The adapters intentionally use provider command surfaces instead of pretending every agent has one SDK:
|
|
883
883
|
|
|
884
884
|
- Claude uses `claude -p --output-format json` and safe-mode/local setting sources by default.
|
|
885
|
-
- Codewith
|
|
885
|
+
- Codewith runs non-interactive `codewith --ask-for-approval never exec --json` sessions by default. exec starts a fresh session per invocation, avoiding the multi-megabyte rollout history that `codewith agent start` reloaded every turn (which drove `context_length_exceeded` silent no-ops), and it keeps network egress for gh/git — the `workspace-write` sandbox opts back into `sandbox_workspace_write.network_access`. Codewith exec is remote-capable like codex. OpenLoops rejects Codewith `extraArgs` that try to force `exec`, `--ephemeral`, `--json`, or other exec launch flags that the adapter already manages.
|
|
886
886
|
- AI Copilot and OpenCode use `run --format json --pure`. OpenCode requires an explicit provider/model id because ambient OpenCode config is machine-specific.
|
|
887
887
|
- Cursor is CLI-first for now via the standalone `agent -p` binary. OpenLoops no longer falls back to `cursor agent`; install the standalone Cursor Agent CLI so preflight and scheduled runs use the same executable.
|
|
888
888
|
- Codex uses `codex --ask-for-approval never exec --json --ephemeral --skip-git-repo-check`, with `--add-dir` for explicit extra writable directories where supported.
|
|
889
|
-
- Agent prompts are sent through child stdin instead of argv where the provider supports stdin
|
|
889
|
+
- Agent prompts are sent through child stdin instead of argv where the provider supports stdin, including Codewith `exec` (which reads instructions from stdin when no positional prompt is given), so the prompt never lands on argv.
|
|
890
890
|
- When `--account` or a step `account` is set, OpenLoops resolves `accounts env <profile> --tool <tool>` before spawning the target, strips inherited tool home/API-key variables, and applies the selected profile only to that process. Missing account profiles fail before the provider binary receives the prompt.
|
|
891
|
-
- `--auth-profile` and step `authProfile` are provider-native auth selectors. They currently apply to Codewith and are passed to Codewith as `--auth-profile <name>`
|
|
891
|
+
- `--auth-profile` and step `authProfile` are provider-native auth selectors. They currently apply to Codewith and are passed to Codewith as `--auth-profile <name>` on the `exec` invocation; they do not call OpenAccounts.
|
|
892
892
|
- `--sandbox` maps to provider-native sandbox flags. Codewith/Codex accept `read-only`, `workspace-write`, or `danger-full-access`; Cursor accepts `enabled` or `disabled`.
|
|
893
893
|
- `--permission-mode` maps `plan`, `auto`, and `bypass` where the provider supports it. Claude uses native permission modes, Cursor maps bypass to `--force`, and OpenCode/AICopilot map bypass to `--dangerously-skip-permissions`.
|
|
894
894
|
- `--variant` is provider-specific reasoning/model effort. Claude maps it to `--effort`, Codewith/Codex map it to `model_reasoning_effort`, and OpenCode/AICopilot pass `--variant`.
|
package/dist/api/index.js
CHANGED