Skip to content

CLI and OpenClaw support#169

Merged
andyrewlee merged 25 commits intomainfrom
cli
Feb 17, 2026
Merged

CLI and OpenClaw support#169
andyrewlee merged 25 commits intomainfrom
cli

Conversation

@andyrewlee
Copy link
Owner

@andyrewlee andyrewlee commented Feb 11, 2026

Summary

Describe the change and intended behavior.

Quality Checklist

  • Ran make devcheck locally.
  • Ran make lint-strict-new locally for changed code.
  • If UI/rendering changed, ran make harness-presets.
  • If tmux/e2e changed, ran go test ./internal/tmux ./internal/e2e.

Open with Devin

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

andyrewlee and others added 19 commits February 16, 2026 14:11
Add `agent watch` for streaming agent output as NDJSON, and bundle
the amux Claude Code skill with helper scripts.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add `amux session list` for visibility into tmux sessions and
`amux session prune` for cleaning up stale sessions. Prune targets
orphaned workspace sessions and detached terminal tabs, with dry-run
by default (--yes required), --older-than age filter, and safety
guards for non-amux sessions and unknown creation times.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
workspace create now adds the project to the registry after saving
metadata, so the TUI can discover CLI-created workspaces. Also adds
a not_found test for workspace remove and a registry assertion test
for workspace create.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add session/project to cliCommands dispatch map for TTY routing
- Add WorkspaceStore.Update() for atomic load+modify+save with flock held;
  use it in removeTabFromStore to prevent lost-update races
- Implement real LockFileEx/UnlockFileEx file locking on Windows
- Add exponential backoff (20ms→1s cap) to send job queue polling
- Fix nil slice JSON marshaling in agent list/stop responses
- Fix shadowed job variable in agent send execute error path

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Owner Author

@andyrewlee andyrewlee left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 2 new potential issues.

View 30 additional findings in Devin Review.

Open in Devin Review

andyrewlee and others added 2 commits February 16, 2026 14:21
- Add 'terminal' to cliCommands routing map
- Use preserved jobID in not-found error path (cmd_agent_send_execute)
- Replace fmt.Errorf with errors.New for static strings (perfsprint)

Amp-Thread-ID: https://ampcode.com/threads/T-019c6887-c43a-75fe-bc86-c89c9ecb012d
Co-authored-by: Amp <amp@ampcode.com>
Copy link
Owner Author

@andyrewlee andyrewlee left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 new potential issue.

View 34 additional findings in Devin Review.

Open in Devin Review

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Owner Author

@andyrewlee andyrewlee left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 new potential issue.

View 33 additional findings in Devin Review.

Open in Devin Review

andyrewlee and others added 2 commits February 16, 2026 16:01
…top idempotency, update README

Add comment explaining why sendJobStore.get() uses an exclusive lock
(reconcileStale may write). Fix agent stop --all to not store idempotency
key when blocking on missing --yes flag. Remove deprecated default_assistant
from README config example.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The confirmation_required error represents a client-side precondition
failure (missing --yes flag), not an actual operation outcome. Storing
it in the idempotency store would block subsequent retries with --yes.

Replace returnJSONErrorMaybeIdempotent with plain ReturnError calls in
both cmd_agent_stop.go and cmd_workspace_remove.go so the idempotency
key remains unconsumed and available for the actual retry.

Amp-Thread-ID: https://ampcode.com/threads/T-019c6902-b634-7630-b1c3-247b7b2f2df9
Co-authored-by: Amp <amp@ampcode.com>
@andyrewlee andyrewlee changed the title feat(cli): add headless CLI commands and agent workflows CLI and OpenClaw support Feb 17, 2026
@andyrewlee andyrewlee merged commit ad43b28 into main Feb 17, 2026
4 checks passed
@andyrewlee andyrewlee deleted the cli branch February 17, 2026 04:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant