Skip to content

Non-sandboxed launch uses Claude auto-mode (and Codex equivalent)#349

Merged
clkao merged 1 commit into
mainfrom
spacedock-ensign/non-sandboxed-launch-auto-mode
Jun 13, 2026
Merged

Non-sandboxed launch uses Claude auto-mode (and Codex equivalent)#349
clkao merged 1 commit into
mainfrom
spacedock-ensign/non-sandboxed-launch-auto-mode

Conversation

@clkao

@clkao clkao commented Jun 13, 2026

Copy link
Copy Markdown
Collaborator

Unsandboxed spacedock claude/codex launches now start in auto permission-mode, cutting approval friction the first officer doesn't need.

What changed

  • Inject --permission-mode auto on the unsandboxed spacedock claude launch arm.
  • Inject --ask-for-approval on-request on the unsandboxed spacedock codex arm.
  • Suppress injection when the operator supplied the flag or is resuming.
  • Leave sandboxed arms unchanged; add --ask-for-approval to codex valueTakingHostFlags.

Evidence

  • internal/cli 292/292 (whole package); full repo go test ./... 1263/1263.
  • 4 new tests drive real runClaude/runCodex over the fake-host seam per (wrap, operator-flag, resume).

Review guidance

Change rewrites every unwrapped-launch exact-argv oracle; whole-package green is the proof none was left stale.


zrc

The unsandboxed (!wrap) arm of `spacedock claude`/`spacedock codex`
started in the host's conservative default permission posture, paying a
per-action prompting tax with no matching safety gain once the operator
has accepted running without isolation.

runClaude now injects `--permission-mode auto` and runCodex injects
`--ask-for-approval on-request` (the captain-chosen codex analog, since
codex has no single auto-mode flag) on the !wrap arm only. A new
passthroughHasFlag helper suppresses injection when the operator already
supplied the flag (`--flag value` / `--flag=value`, plus codex `-a`), and
the injection rides the same non-resume gate as the bootstrap prompt so a
resumed session is not forced into auto-mode. The sandboxed arms
(--dangerously-skip-permissions / --dangerously-bypass-approvals-and-sandbox)
are unchanged. `--ask-for-approval`/`-a` join codex's valueTakingHostFlags
so an operator value is not misread as a stray positional.

All co-edit exact-argv oracles across the package are folded into the same
change; `go test ./internal/cli/` is green over the whole package.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
clkao added a commit that referenced this pull request Jun 13, 2026
@clkao clkao merged commit fca9d08 into main Jun 13, 2026
6 of 9 checks passed
clkao added a commit that referenced this pull request Jun 13, 2026
@clkao clkao deleted the spacedock-ensign/non-sandboxed-launch-auto-mode branch June 13, 2026 15:06
clkao added a commit that referenced this pull request Jun 13, 2026
…w] (#355)

* docs: slim README to front door + drop banned prose-grep test [yw]

Wave 1 structural cleanup for the site-is-canonical doc architecture:

- Remove internal/release/install_doc_test.go — a banned prose-grep that
  os.ReadFile'd docs/site/get-started/install.md and asserted author
  substrings. readInstallJourney was file-local; executableShellCommands
  stays (defined in workflow_exec_guard_test.go, 9 other call sites).
- Slim README.md to the front-door skeleton: keep title + Why hook,
  What's different, Install, License, Contributing. Drop Quick start,
  How it works, Usage (now on the canonical site).
- Install now links the published site https://spacedock.md/docs/
  (site_url in mkdocs.yml), keeping the in-repo install.md as secondary.

go test ./... green; install-journey grep-clean over live docs/code.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* docs: land the five 0.20.1 behaviors on canonical site pages [yw]

Wave 2 behavior-doc pass — yw is the sole doc-owner; the five members
shipped zero .md. Each behavior documented on its reverified anchor:

- gj (#350): new `## --version` section in command-reference.md showing
  the version+contract line, the Sandbox: posture, and the per-runtime
  install/enablement block (wording exercised from `spacedock --version`).
- te (#351): command-reference `## Setup` names the contract-compatible-
  but-behind opt-in upgrade hint (doctor + front-door print it; never blocks).
- zrc (#349): command-reference `## Launch` names the unsandboxed posture —
  claude `--permission-mode auto`, codex `--ask-for-approval on-request`,
  vs the sandboxed skip/bypass. Scoped to claude/codex; pi injects none.
- gp (#352): releasing.md made decouple-accurate — marketplace manifest
  moved to the standalone spacedock-dev/marketplace repo, no plugin-branch
  manifest, marketplace.json dropped from the release steps; build-from-
  source.md adds a spacedock-edge edge-channel user pointer.
- 8p (#347): install.md Homebrew tab notes brew also installs agentsview;
  safehouse is installed separately.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* docs: rewrite --version section to match version-forward output (#354) [yw]

#354 (da) replaced the enablement-jargon per-runtime block with a
version-forward one. Rewrite the `## --version` section to match:

- `<host>: spacedock <version>` when a plugin is installed
- ` (disabled)` appended only when the host reports it disabled
- `pi: spacedock ready` (pi launches from skills, no versioned plugin)
- `<host>: spacedock not installed` when host present but no plugin
- `<host>: not installed` when the host binary is absent

Drops the obsolete "installed, spacedock enabled" / "enablement unknown"
phrasing. Wording read from runtimeLine in internal/cli/host_runtime.go;
example output built and exercised via `go build && ./spacedock --version`.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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