Repository navigation
π Fix feature store, reword command help, and run CI on PRs - #25
Merged
Merged
Conversation
The feature store stopped writing `artifacts/manifest.json` in March 2026 (ws-feature-store `ef56274`). It now serves one `manifest.json` at its root that lists APT packages and artifacts as `packages`, one entry per architecture. `feature store` still asked for the old path and got a 404 from every store image since `v2026.03`. Fetch `<store>/manifest.json`, decode `packages`, and list each artifact once with its version, as before.
The descriptions feed the command reference on ws.kloudkit.com. - Drop the em dashes and "over the workspace IPC socket", and name the editor instead of "VS Code / code-server". - Use `ws-cli` in every example: `ws` is a function of interactive zsh only, so it fails in bash and in scripts. - Spell "VS Code" in the `feature` example and `--skip-extensions`. - Move the `feature new` command line into its example, and drop the indent in `template show`, since the docs render descriptions as a blockquote. - Say that features in ~/.ws/features.d load by default and that `--root` replaces the search, as `featureDirs` does. Regenerate `commands.yaml`.
CI ran on `push` only, so a pull request from a fork got no checks. Run it on `pull_request`, and limit `push` to `main` so a branch in this repository is not checked twice. No job in this workflow publishes; `sync-commands.yaml` already runs only on `main`.
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.
Description
Three fixes found by the ws-docs audit of 2026-11-06, one commit each.
feature storeasks for a manifest the store no longer servesBug.
ws-cli feature storerequests<store>/artifacts/manifest.json. ws-feature-store stopped writing that file inef56274(2026-03-09). Every store image sincev2026.03serves a singlemanifest.jsonat its root. It lists APT packages and artifacts together aspackages, one entry per architecture. Againstghcr.io/kloudkit/ws-feature-store:v2026.11, the ws-cli baked into workspace v0.6.0 (2217c04) fails withFailed to fetch store manifest: feature store returned status 404.On that image/artifacts/manifest.jsonreturns 404 and/manifest.jsonreturns 200. Onlyv2026.02still has the old file, and it predates theartifacts/<name>/<arch>paths that the v0.6.0 features download, so there is no fallback for it.Change. Fetch
<store>/manifest.json, decodepackages, and list each artifact once with its version, as before. APT packages are still not listed. New test:internals/features/store_test.go.Verified. With the old path, the new tests fail with
feature store returned status 404; with the fix they pass. A build of this branch, run against thev2026.11image, lists 15 artifacts (bun through terraform) andBuilt: 2026-11-01T05:18:23Z.Command help that feeds the docs reads as internal notes
Bug. These are the descriptions and examples that
commands.yamlcarries to the command reference on ws.kloudkit.com:code-serveronce.clipandeditordescriptions said "over the workspace IPC socket".ws, which is a function of interactive zsh only. In the v0.6.0 image,type wsfinds nothing in bash or inzsh -c, so theshowexample$(ws show ip node --raw)fails in a script.featureexample and--skip-extensionssaid "VSCode".feature newandtemplate showhad indented lines. The docs generator renders descriptions as a blockquote, so thefeature newcommand line showed as prose.featuredescription said--rootpoints at your own features under~/.ws/features.d. In factfeatureDirsreads~/.ws/features.dby default, and--rootreplaces the whole search.Change. Reworded in the Go sources and regenerated
commands.yaml:ws-cli, and "VS Code" is spelled out.feature newcommand line moved into its example.template showis one sentence.No flag, argument or behavior changed.
Verified.
commands.yamlno longer holds an em or en dash,code-server, "IPC" or "socket", "VSCode", or a barewsin an example. Rendering it with ws-docs'scripts/generate-commands.mjs(origin/main) shows thefeature newexample as ashblock andtemplate showas one sentence.go test ./...passes, includingTestCommandsManifestMatchesCommittedFile. So dogo vet ./...and the pre-commit hooks.CI never runs for a pull request from a fork
Bug.
ci.yamlran onpushonly.Change. Limit
pushtomainand addpull_request, so a branch in this repository is checked once, through its pull request. No job in this workflow publishes anything, andsync-commands.yaml, which does publish, already runs only on pushes tomain. ws-cli has no tags, so no tag-triggered run is lost.Verified. actionlint 1.7.12 and the pre-commit hooks pass. Pushing this branch started no run; opening this pull request starts one
pull_requestrun.Not changed
editordescription and itsws-cli editor terminalexample namedownload,revealandterminal. These commands exist onmain(since: next) but not in the2217c04that v0.6.0 bakes, so the text is right formain. The docs show it before a release because ws-meta syncscommands.yamlfrom ws-climain, not from the commit a release bakes.ws feature install <name>,ws template show <name>), theeditor notifystdin error and the SSH error keep their wording. They print in a terminal and do not reach the docs.How to test this PR
From a workspace terminal, which provides
/etc/workspace/env.reference.yaml: