feat(plugin): make the self-hosted server requirement explicit - #199
Merged
Conversation
- plugin.json / marketplace.json: descriptions now lead with the self-hosted server requirement; add self-hosted keyword/tag; bump plugin to 0.3.1 - plugin README: "Requires a self-hosted cix server" section up top with the installer one-liner and connect-to-existing instructions - SessionStart hook: when NO cix server is configured on the machine (no CIX_API_URL, no url in ~/.cix/config.yaml), emit a one-line setup hint via additionalContext; configured-but-unindexed projects stay silent as before. Shared emit helper extracted. - site: PLUGIN_VERSION 0.3.1 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
run_hook now points HOME at a per-test scratch dir so hook behavior never depends on the developer's real ~/.cix/config.yaml (the previous suite passed locally but failed in CI's clean HOME). make_server_config opts a test into the "server configured" state. Split the two silent tests into configured/unconfigured variants and assert the new setup hint fires only when no server is configured anywhere. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…l surfaces Review follow-ups on the server-requirement change: - Setup hint is now genuinely rate-limited: cix-setup-hint marker in $CACHE_DIR, at most once per 7 days per machine; marker prefix added to the 30-day GC find so it cannot accumulate. - cix_emit_context(event, msg) moved into lib-cix-probe.sh and used by all three emitters (session-start, grep-nudge, post-compact); the jq/sed pair now exists once. post-compact.sh did not source the lib before — source added. - cix_server_configured: CIX_API_KEY alone now counts as configured (key + implicit localhost default is a working setup). - cix-cowork: requirement sentence + self-hosted keyword in its own plugin.json (0.1.0 → 0.1.1), README states the server dependency up top, not only in Requirements. - Site: the plugin card (landing) and the docs plugin section now state the client/server split with a link to Quick start / Install. - Onboarding texts teach the modern config form (server.main.url/key — first server added becomes the default, cli config.go migrateToServers) instead of the legacy api.* aliases. - semver: new user-visible hook behavior ships as 0.4.0, not a patch. - Tests: rate-limit second-run silence, config.yaml-without-url fires the hint, CIX_API_KEY suppression, indexed-never-hints assertion, GC reaps an old cix-setup-hint marker. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
Why
The cix plugin is a client: without a deployed self-hosted cix server it has nothing to talk to. Neither the plugin description, the marketplace entry, the README, nor the first-run experience said so — a guaranteed stream of confused installs once the plugin lands in public catalogs (claude-plugins-community submission is queued next).
What
self-hostedkeyword; version 0.3.0 → 0.3.1.cixandcix-coworkentries;self-hostedkeyword/tag.CIX_API_URL, nourl:in~/.cix/config.yaml), the hook now emits a one-line setup hint viaadditionalContext. A configured-but-unreachable server or a merely-unindexed project stays silent exactly as before (cix_server_configuredheuristic errs toward silence). Shared JSON-emit helper extracted; indexed-path message unchanged.PLUGIN_VERSION0.3.1 (goes live with the develop→main promotion, same moment the new plugin manifest reaches main).Testing
bash -n+ shellcheck (info-level only, matching pre-existing style) on both scriptsurl:→ silent, cache marker writtenclaude plugin validate✔; both JSON manifests parse🤖 Generated with Claude Code