22 Commits
Author SHA1 Message Date
ryaneggzandClaude Opus 4.7 d14bc330eb task: cloudflared/SSH/host-overlay doc cleanup (keep postgres)
Apply PR #284's doc updates selectively — cloudflared, SSH overlays,
host-bind overlays, SANDBOX_PASSWORD, and openssh-server references
removed everywhere. Postgres mentions preserved; postgres compose
overlay restored.

Doc edits:
- AGENTS.md / CLAUDE.md (symlink): drop /cloudflared-tunnel skill row,
  rewrite "Exposing apps" to mention generic tunnels/proxies.
- README.md, docs/installation.md: drop SANDBOX_PASSWORD, cloudflared,
  openssh-server, host-overlay references.
- docs/quickstart.md: keep postgres link, drop cloudflare link, mention
  postgres overlay is opt-in.
- docs/integrations/github.md: drop SSH-overlay section.
- docs/integrations/cloudflare.md: deleted.
- docs/agents/{deepagents,opencode}.md: drop host-overlay sections.
- context/rules/git.md: drop "Advanced opt-ins" SSH section.
- Makefile: drop _check-jq / _check-config gates; jq invocation is now
  defensive (only runs when jq + config.json both present).
- apps/docs/src/pages/index.tsx: keep postgres in "composable substrate"
  copy, drop cloudflare tunnels / Caddy gateway mentions.
- .claude/skills/{agent-browser,harness-audit,strategic-proposal}/SKILL.md
  and .claude/agents/command-builder.md: drop cloudflared references
  (strategic-proposal infra row keeps PostgreSQL 16).
- CHANGELOG.md [Unreleased] § Removed: new entry for #283 listing the
  10 deleted overlays + companion infrastructure; note postgres was
  kept.

Infra:
- Restored .devcontainer/docker-compose.postgres.yml.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 02:36:15 +00:00
OpenHarness BotandClaude Opus 4.7 a4642042de feat: oh config slack — in-sandbox Slack integration setup wizard
Standalone CLI at apps/oh/ (Node TS, esbuild ~13kb, no runtime deps).
Walks user through token entry (xapp-/xoxb- prefix validation), allowlist
mode (users/channels/both with U…/C… ID validation), atomic .env merge
(temp+rename for crash safety), and agent-pi tmux restart with
'connected and listening' poll. Pluggable as oh config <integration>
namespace for future github/postgres/cloudflare wizards.

Bundled prerequisites and adjacent polish:
- Migrate .pi/extensions/slack/{index,tools}.ts from deprecated
  @mariozechner/pi-coding-agent to @earendil-works/pi-coding-agent
  (per upstream npm deprecation notice)
- Sidebar label Agents → Harnesses; per-harness pages get unified
  Authentication section (codex login / opencode auth login / etc)
- New T3 Code harness page (browser UI on port 3773)
- Docs theme: prose links now green + underlined for affordance
- Slack docs § 5 leads with `oh config slack`; manual procedure
  demoted to <details> Manual fallback
- Drop orphaned .pi/onboard-steps/ (logic moved to apps/oh/)
- Makefile help adds Configuration wizards section pointing at
  oh config slack (3-agent council picked CLI over Make-target
  due to docker exec -it TTY fragility)

Closes #281

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 22:26:26 -06:00
OpenHarness BotandClaude Opus 4.7 7bb3c4b3f0 feat: repurpose .openharness as install root
Deletes the in-repo .openharness/ subdir, moves composeOverrides config
to repo-root config.json (gitignored, seeded from config.example.json),
and reworks scripts/install.sh to clone into ~/.openharness/ with an
in-place migration for existing ~/openharness/ checkouts.

Closes #251

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 15:52:08 -06:00
OpenHarness Bot f378cc17c8 Take all changes 2026-05-03 16:24:05 -06:00
OpenHarness BotandClaude Opus 4.7 f36bcf2628 feat: simplify quickstart — Makefile + smarter installer + single docs path
Two commands from zero to working sandbox: `curl ... | bash` then
`make shell`. Collapses the previous installer/manual fork, hides the
50-char compose lines behind `make sandbox/shell/destroy`, auto-detects
host gh token, and surfaces .devcontainer/.env as the customization
surface. Moves install.sh to scripts/ alongside cron-runtime.ts and
ralph.sh.

Closes #230

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-03 11:21:51 -06:00
ryaneggzandClaude Opus 4.6 02f427223d feat: add CLI subcommands, remove Makefile (#17)
- Add direct CLI subcommands (openharness list, quickstart, build,
  shell, stop, clean, etc.) that execute tools and exit — no TUI needed
- Restructure --help to show CLI commands as primary interface, with
  Agent Mode as secondary
- Remove Makefile — CLI fully replaces it

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 19:50:17 -06:00
ryaneggzandClaude Opus 4.6 cb65f231a1 feat: mirror branch paths in worktree folders and add /provision skill
Worktree paths now follow branch formatting (e.g., agent/zoho-crm branch
creates .worktrees/agent/zoho-crm). Also adds /provision skill for
end-to-end sandbox provisioning, updates orchestrator permissions, fixes
shell target to run as sandbox user with login shell, and corrects
BASE_BRANCH default to main.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 19:14:26 -06:00
ryaneggzandClaude Opus 4.6 449e37b1dc feat: add root CLAUDE.md/AGENTS.md and rename worktrees to .worktrees
Add root-level orchestrator instructions that define the harness's sole
purpose: managing sandboxed agents via .worktrees/. Includes setup,
validate, and teardown lifecycle documentation.

- AGENTS.md: root orchestrator instructions (git-only permissions, lifecycle)
- CLAUDE.md: symlink to AGENTS.md (matches workspace/ convention)
- Rename worktrees/ to .worktrees/ (dot-prefixed hidden directory)
- Update Makefile, .gitignore, and remaining issue templates
- Remove agent, audit, skill, and task issue templates (intentional)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 16:29:04 -06:00
ryaneggzandClaude Opus 4.6 211e388012 feat: restructure project layout and add GitHub issue templates
Move Docker files into docker/ directory, add issue templates for
agents/audits/bugs/features/skills/tasks, enhance heartbeat system
with config file and per-heartbeat directory, update Makefile and
README, and add worktrees scaffolding.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 12:43:27 -06:00
ryaneggzandClaude Opus 4.6 5beba0f537 chore: update heartbeat interval to 900s for dev testing
Also moves .pi/ config into workspace/ and cleans up HEARTBEAT.md.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 10:22:47 -06:00
ryaneggz 432b6b731d feat: add quickstart — three commands from clone to coding with AI
- Add 'make quickstart' target: builds image, starts container, provisions
  all tools non-interactively, prints next steps
- Move quickstart to top of README, before 'Why Open Harness?'
- Consolidate old Install/Docker Quick Start into 'More Ways to Run'
- Add quickstart to Makefile Targets table
2026-03-26 22:20:55 -06:00
ryaneggzandClaude Opus 4.6 04fd7c82ae Add heartbeat, soul, and memory system (OpenClaw-style)
Adds periodic heartbeat runner, agent persona (SOUL.md), and long-term
memory (MEMORY.md + daily logs) to give sandbox agents persistent
identity and recurring task execution.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 22:08:00 -06:00
ryaneggzandClaude Opus 4.6 8bea5b0b94 Make Docker opt-in, require NAME, add error handling
- DOCKER=false by default; pass DOCKER=true to mount socket + host networking
- Split compose into base and docker-compose.docker.yml override
- NAME is now required (no default) — errors clearly if missing
- shell/stop/clean print helpful messages when container not found

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 20:00:41 -06:00
ryaneggzandClaude Opus 4.6 d95e3d5dd9 Rebrand tagging and CI to open-harness
- CI workflow triggers on oh-v* tags, pushes to ghcr.io/ruska-ai/open-harness
- Makefile NAME defaults to open-harness
- README fully updated with open-harness branding, multi-agent docs, named sandboxes

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 19:16:40 -06:00
ryaneggzandClaude Opus 4.6 462d359e5d Add multi-agent support, Docker, tmux, named sandboxes, and AgentMail
- Install tmux, nano, Docker CLI + Compose by default
- Add opt-in prompts for Codex, Pi Agent, and AgentMail CLI
- AgentMail API key stored in .bashrc (silent input, not in history)
- Create AGENTS.md as canonical instructions, symlink CLAUDE.md to it
- Add .claude/ and .codex/ config dirs in workspace
- Dockerfile: add codex/pi aliases, docker group for sandbox user
- docker-compose: mount Docker socket, add host.docker.internal
- Makefile: NAME variable for multiple named sandboxes (make NAME=foo run)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 19:13:09 -06:00
ryaneggzandClaude Opus 4.6 2739753cf5 Update tag schema to claude-v* format
- CI triggers on claude-v* tags (e.g. claude-v1.0.0)
- Images tagged as ghcr.io/ruska-ai/sandbox:claude-v1.0.0 + claude-latest
- Simplify Makefile IMAGE to ghcr.io/ruska-ai/sandbox:claude-$(TAG)
- Document release process in README

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 22:30:17 -06:00
ryaneggzandClaude Opus 4.6 c82a66d85e Mount sandbox/ as shared volume at /home/sandbox, add rebuild target
- Bind mount ./sandbox to /home/sandbox for persistence across restarts
- Copy sandbox files to /home/sandbox owned by sandbox user in Dockerfile
- Add make rebuild (no-cache build + restart)
- Rename SANDBOX_NAME default to claude

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 21:35:49 -06:00
ryaneggzandClaude Opus 4.6 42dd28e41d Add run, shell, stop, and clean targets to Makefile
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 21:11:33 -06:00
ryaneggzandClaude Opus 4.6 77b202f32b Move Dockerfile to root, sandbox/ contains only copied-in files
- Move Dockerfile, .dockerignore, .gitignore to repo root
- sandbox/ now only contains setup.sh (files copied into container)
- Add COPY sandbox/ /sandbox/ to Dockerfile
- Update build contexts to root in docker-compose, Makefile, CI workflow
- Remove sandbox/README.md (consolidated into root README)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 21:08:21 -06:00
ryaneggzandClaude Opus 4.6 e73e6dc48b Replace OpenClaw with Claude Code, rename ubuntu/ to sandbox/
- Replace OpenClaw CLI (npm) with Claude Code CLI (curl installer)
- Rename ubuntu/ directory to sandbox/ for generic isolation env
- Remove MCP server files (index.js, package.json, entrypoint.sh, .example.env)
- Update all docs, links, and branch refs to Claude Code
- Simplify docker-compose (remove port mapping and env_file)
- Update CI workflow tag pattern to sandbox-*

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 21:05:06 -06:00
ryaneggz c29ea36231 init 2026-03-25 20:40:30 -06:00
ryaneggz 0e8bc83eb3 Update makefile 2026-01-31 21:49:40 -07:00