Skip to content

fix(0201): show per-runtime plugin version in --version, drop enablement jargon [da]#354

Merged
clkao merged 2 commits into
mainfrom
spacedock-ensign/version-show-runtime-plugin-version
Jun 13, 2026
Merged

fix(0201): show per-runtime plugin version in --version, drop enablement jargon [da]#354
clkao merged 2 commits into
mainfrom
spacedock-ensign/version-show-runtime-plugin-version

Conversation

@clkao

@clkao clkao commented Jun 13, 2026

Copy link
Copy Markdown
Collaborator

Pre-cut UX fix (captain-directed).

spacedock --version reported install/enablement posture but discarded the installed plugin VERSION (which the runtime probe already returns) and used the invented noun enablement (enablement unknown). Now it shows the version, version-forward, in plain words:

claude: spacedock 0.19.9
codex: spacedock 0.20.0 (disabled)
pi: spacedock ready
HOST: spacedock not installed   (host present, no plugin)
HOST: not installed             (host binary absent)
  • Version read robustly from the resolved plugin manifest (new contract.ManifestVersion, the source doctor reads), NOT the fragile plugin-list probe — so it renders even when plugin list errors.
  • The enablement type and all its constants/phrasings are deleted; the enabled/disabled marker is best-effort, omitted (bare version) when the probe cannot read it.
  • Tests rewritten to the new format + a direct ManifestVersion table test asserting the exact version (TDD-proven to catch a hardcoded return).

gj-shaped: code + tests, zero .md (yw rewrites the per-version doc to match). Whole-repo go test ./... green (1320/16 packages).

🤖 Generated with Claude Code

clkao and others added 2 commits June 13, 2026 11:45
…t jargon

The per-runtime --version block reported install + "enablement" posture but
discarded the installed plugin version and labeled an unreadable probe with the
invented noun "enablement". Render the version pulled from each host's resolved
plugin manifest, version-forward, in plain words.

- runtimeStatus carries the resolved plugin version, a best-effort enabled
  marker, and pi readiness; the enablement type and its constants are deleted.
- The version is read from the resolved manifest (contract.ManifestVersion, the
  same source doctor reads), NOT the fragile plugin-list probe, so it renders
  even when the enabled-state probe errors. The marker stays best-effort: an
  unread marker omits rather than invents an "unknown" state.
- pi has no marketplace version, so it renders "spacedock ready" / "spacedock
  not installed" from piRuntimeLaunchReady.

Per-runtime line states:
  <host>: not installed                  (host binary absent)
  <host>: spacedock <version>            (installed; enabled is bare)
  <host>: spacedock <version> (disabled) (installed but disabled)
  <host>: spacedock not installed        (host present, no plugin)
  pi: spacedock ready                    (pi launch-ready, no version)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
ManifestVersion had no direct test — the cli --version suite injects a fake
runtimeProbe and never drives the real probeVersion→ManifestVersion path, so a
hardcoded return would survive the whole suite. Close the seam: a table test
reads a fixture manifest and asserts the EXACT declared version (0.12.1, not
merely non-empty), plus the missing-file (errNoManifest) and unparseable-JSON
(parse error) cases. Confirmed it fails against a hardcoded-return edit and is
green against the real helper.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@clkao clkao merged commit 8e883d4 into main Jun 13, 2026
6 of 9 checks passed
clkao added a commit that referenced this pull request Jun 13, 2026
…merged to main

--version shows the per-runtime plugin version (version-forward, plain words, no
'enablement'); robust manifest-sourced version + direct ManifestVersion test. Validation
PASSED + detached audit; Polish fold (the helper test) closed before merge.
@clkao clkao deleted the spacedock-ensign/version-show-runtime-plugin-version branch June 13, 2026 19:01
clkao added a commit that referenced this pull request Jun 13, 2026
…sion doc rewritten for #354, docs-only green (1318)
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
… merged to main

Last 0201 member. Slim README + site-canonical cleanup + the 5 behaviors documented on
canonical site pages + --version doc matched to da #354. Validation PASSED + adversarial
fidelity audit; --version-doc fold re-verified against the live binary. Docs-only; zero production code.
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