Show sandbox state on startup#350
Merged
Merged
Conversation
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
added a commit
that referenced
this pull request
Jun 13, 2026
clkao
added a commit
that referenced
this pull request
Jun 13, 2026
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Startup,
status --boot, and--versionnow report the sandbox posture and per-runtime install/enablement, so operators see their isolation state at a glance.What changed
Sandbox:line (enabled / available, not enabled / unavailable) to the launcher banner.SANDBOX:section tostatus --bootand asandboxfield to--boot --json.Sandbox:line and per-runtime (claude/codex/pi) block to--version.enabledfield; renderenablement unknownon a probe error.Evidence
internal/cli+internal/status750/750 (770 with safehouse); full repo 1275/1275.--versionfirst line, verifying the contract token is preserved.Review guidance
--versionline 1 staysspacedock <ver> (contract <N>)— the exact token the FO/ensign skills parse.gj