Skip to content

Show sandbox state on startup#350

Merged
clkao merged 1 commit into
mainfrom
spacedock-ensign/startup-sandbox-status
Jun 13, 2026
Merged

Show sandbox state on startup#350
clkao merged 1 commit into
mainfrom
spacedock-ensign/startup-sandbox-status

Conversation

@clkao

@clkao clkao commented Jun 13, 2026

Copy link
Copy Markdown
Collaborator

Startup, status --boot, and --version now report the sandbox posture and per-runtime install/enablement, so operators see their isolation state at a glance.

What changed

  • Add a three-way Sandbox: line (enabled / available, not enabled / unavailable) to the launcher banner.
  • Add a SANDBOX: section to status --boot and a sandbox field to --boot --json.
  • Append a Sandbox: line and per-runtime (claude/codex/pi) block to --version.
  • Read the claude plugin enabled field; render enablement unknown on a probe error.

Evidence

  • internal/cli + internal/status 750/750 (770 with safehouse); full repo 1275/1275.
  • Guard test reds on a broken --version first line, verifying the contract token is preserved.

Review guidance

--version line 1 stays spacedock <ver> (contract <N>) — the exact token the FO/ensign skills parse.


gj

Three startup surfaces gain sandbox/runtime visibility (AC-1..AC-5):

- launcher banner: a `Sandbox:` line after the workflow line, rendering
  the three-way state (enabled / available-not-enabled / unavailable) from
  the launcher's own wrap decision and safehouse-binary availability.
- status --boot: a SANDBOX: section (and a `sandbox` field in --boot --json),
  sourced once in gatherBoot from a .safehouse profile at the repo root and a
  PATH scan for the safehouse binary.
- --version: the load-bearing first line stays `spacedock <ver> (contract <N>)`
  (the FO/ensign skill token); a Sandbox line and a per-runtime block are
  appended below it. claude/codex enablement reads the plugin-list `enabled`
  field; pi reuses checkPiRuntime; a probe that errors renders
  `installed, enablement unknown`, never silent `not installed`.

The three-way state strings live once in safehouse.State so all surfaces
read identically. claude pluginListEntry gains the `enabled` field. Detection
is behind injected probe seams so no live host CLI runs in the test path; the
PATH-dependent boot SANDBOX line is stripped from the byte-compared goldens
like STATE_BACKEND, with its state-from-inputs behavior pinned separately.

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 e85fe52 into main Jun 13, 2026
6 of 9 checks passed
@clkao clkao deleted the spacedock-ensign/startup-sandbox-status branch June 13, 2026 15:06
clkao added a commit that referenced this pull request Jun 13, 2026
…ation

Follow-up to gj (#350): spacedock --version shows the per-runtime plugin version
(robust — read from the resolved manifest, the source doctor reads) and drops the
'enablement' type + jargon for plain words. Fast-tracked past ideation (design locked
by the captain directive + the agreed output format). gj-shaped (code+tests); yw
rewrites the ## --version doc to match.
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>
clkao added a commit that referenced this pull request Jun 13, 2026
clkao added a commit that referenced this pull request Jun 13, 2026
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