Skip to content

fix(client): hide client create from the user surface (installer-internal) - #192

Merged
saadqbal merged 1 commit into
developfrom
fix/hide-client-create
Jul 9, 2026
Merged

fix(client): hide client create from the user surface (installer-internal)#192
saadqbal merged 1 commit into
developfrom
fix/hide-client-create

Conversation

@LukasWodka

@LukasWodkaLukasWodka commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Summary

tracebloc client offered users create in its help — but provisioning is the installer's job (provision.sh calls tracebloc client create with zero flags, cli#137), not a human command. Exposing it is:

  • Inconsistent — its sibling list is already Hidden with the rationale "keep it callable, off the user-facing surface"; create is more installer-internal, yet was visible. The curated top-level tracebloc help also omits client entirely.
  • The front door to phantom-minting — a human running tracebloc client createstandalone mints a client the installer never deploys: an orphaned "phantom" (the root of the cluster_conflict saga; see backend#970 / #1021 / #1022).

Change

Mark createHidden, mirroring list. It stays fully callable — including client create --help, so provision.sh's _cli_supports_provisioning probe is unaffected — it's just no longer advertised. tracebloc client now shows only the user-useful status.

(No behavior change to the command itself, exit codes, or the installer path — this is purely surface visibility.)

Tests

TestClientSubcommandVisibility pins create + list Hidden, status visible, and create still runnable (hidden ≠ disabled). Full go test ./... green; gofmt -s / errcheck / ineffassign / misspell clean.


Note

Low Risk
CLI help visibility only; no changes to provisioning logic, exit codes, or installer invocation paths.

Overview
Marks tracebloc client create as hidden in Cobra, matching the already-hidden list, so tracebloc client help surfaces only status for humans.

create is unchanged functionally — the installer still runs it (including --help for capability probes); the goal is to stop advertising a command that, when run standalone, can mint a backend client the installer never deploys.

Adds TestClientSubcommandVisibility to lock in create/list hidden, status visible, and create still runnable.

Reviewed by Cursor Bugbot for commit d05ece9. Bugbot is set up for automated code reviews on this repo. Configure here.

…ternal)
`tracebloc client` offered users `create` — but provisioning is the installer's
job (provision.sh calls `client create` with zero flags, cli#137), not a human
command. Exposing it is inconsistent (its sibling `list` is already Hidden as
"installer-internal, off the user-facing surface") and it's the front door to
phantom-minting: a human running `tracebloc client create` STANDALONE mints a
client the installer never deploys — an orphaned phantom (backend#970, the root
of the cluster_conflict saga).
Mark `create` Hidden, mirroring `list`. It stays fully callable — including
`create --help`, so provision.sh's `_cli_supports_provisioning` probe is
unaffected — but is no longer advertised. `tracebloc client` now shows only the
user-useful `status`.
Test: TestClientSubcommandVisibility pins create+list Hidden, status visible,
and create still runnable (hidden != disabled). Full suite green; gofmt -s /
errcheck / ineffassign / misspell clean.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@saadqbal

Copy link
Copy Markdown
Collaborator

Good, well-justified surface fix 👍 Mirrors the already-hidden list (same "keep it callable, off the user-facing surface" rationale), and since Cobra Hidden only drops the command from help listings — not execution or --help — the installer's capability probe is unaffected. The test pinning hidden(create,list)/visible(status)/runnable(create) locks it in nicely. Sensible defense-in-depth alongside #190/#191: hiding the front door still matters since a standalone create on a fresh/unreachable cluster can mint a never-deployed phantom that #190's live-cluster guard doesn't catch.

@saadqbal
saadqbal merged commit 5965757 into developJul 9, 2026
20 checks passed
@saadqbal
saadqbal deleted the fix/hide-client-create branch July 9, 2026 11:37
Sign up for freeto 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.

2 participants

@LukasWodka@saadqbal