diff --git a/docs/plans/workflow-system.md b/docs/plans/workflow-system.md index 802d993..63e22f6 100644 --- a/docs/plans/workflow-system.md +++ b/docs/plans/workflow-system.md @@ -13,9 +13,10 @@ and add no abstraction without a demonstrated repeated need. - Branch: `chore/workflow-system` - Baseline: `nix flake check --no-build --quiet` passed on 2026-09-05; only the existing dirty-tree and unknown `modules` output warnings were emitted. -- Next: activate the Nix-owned Garden tools on Zenith and run the credentialed - `just k8s test` workbench gate over the VPN. Then prove named database - connections and one Marimo-to-HTML report before expanding the workbench. +- Next: activate the follow-up Garden shell fix, then remove the mutable Garden + binaries that still shadow the verified Nix-owned tools. Defer database and + Marimo artifacts until a concrete cross-system investigation supplies useful + content; proceed with an independent pilot in the meantime. ## Progress @@ -23,7 +24,7 @@ and add no abstraction without a demonstrated repeated need. | --- | --- | --- | | Bootstrap and repository ownership | Waiting for user | Repository and dashboard reconciliation complete; credential cleanup remains | | Declarative workstation foundation | Complete | All-host builds pass with one Nixpkgs pin, `just`, and an explicit Podman Compose provider | -| Repository contracts and workbench | Active | Three contracts and the local workbench are checkpointed; credentialed empirical gates remain | +| Repository contracts and workbench | Active | Three contracts are checkpointed and the read-only test Kubernetes gate passed; API, database, and report evidence remain | | Desktop, agents, notes, PIM, transcription | Pending | Independent pilots follow foundation changes | | Conditional retirement and completion | Pending | Requires per-pilot evidence | @@ -33,11 +34,12 @@ and add no abstraction without a demonstrated repeated need. | --- | --- | --- | --- | | NixOS configuration | `chore/workflow-system` | `41bc61b` | Discovery, paths, Git identity, and Codex defaults | | NixOS configuration | `chore/workflow-system` | `69552b7` | Simplify flake inputs and declare workstation lifecycle tools | +| NixOS configuration | `chore/workflow-system` | `0c121a6` | Declare Garden tooling and the local workbench | | `yookr-dashboard-new` | `feat/gogv2` | `934605d` | Remove obsolete dashboard converter | | `rules-service` | `chore/workflow-contract` | `555d9cd` | Establish the first common repository contract | | `yookr-api` | `chore/workflow-contract` | `a76b2b7` | Establish the HTTP and OpenAPI contract | | `traceability-data-model` | `chore/workflow-contract` | `33cb7ff` | Establish the database and schema contract | -| `yookr-workbench` | `main` | `6aae6d5` | Create the local-only cross-system workbench | +| `yookr-workbench` | `main` | `733e7b7` | Create the workbench and isolate its Garden session | ## Human actions @@ -55,11 +57,10 @@ and add no abstraction without a demonstrated repeated need. `just openapi-refresh test`; the current test deployment returns 404. - Populate the ignored API HTTP credentials and perform the planned login plus harmless administrator read; no credential-bearing request has been made. -- Activate the Nix-owned Garden tools, verify `gardenctl` and `gardenlogin`, - then remove their duplicate binaries from `~/.garden` and `~/.local/bin`. -- With the VPN active, run `just k8s test` in `yookr-workbench` and confirm the - test shoot opens read-only; this credentialed interactive gate has not been - run automatically. +- Activate the follow-up Garden shell fix. The Nix-owned `gardenctl`, + `gardenlogin`, and `kubectl-gardenlogin` are verified under + `~/.nix-profile/bin`; afterward remove the duplicate mutable binaries + `~/.garden/gardenctl` and `~/.local/bin/{gardenctl,gardenlogin,kubectl-gardenlogin}`. - Destructive cleanup, credentials, activation, and empirical pilot decisions will be surfaced here before use. @@ -117,10 +118,19 @@ and add no abstraction without a demonstrated repeated need. pinned `podman-compose` configuration validation pass. - Gardenctl 2.14.0 and Gardenlogin 0.10.0 are pinned from their official release assets; the hashes match the existing binaries byte-for-byte. All three host - builds pass, the OIDC kubectl plugin is declarative, and Zsh now consumes the - native `gardenctl rc zsh` output. + builds pass, the OIDC kubectl plugin is declarative, and Zsh consumes the + native `gardenctl rc zsh` output with its completion packaged declaratively. - The local-only `yookr-workbench` has no remote and initially owns only `just k8s test`. Each invocation creates an isolated Garden session, rejects every environment except test, and opens K9s read-only. Its flake check and command catalog pass, and the live rejection path exits before Garden access. +- The user activated and rebooted into the Garden tooling, then confirmed that + `just k8s test` opens the test shoot in read-only K9s. The initial shell error + came from Garden writing completion into an absent Flatpak `$fpath` entry; the + initial target warning came from the fresh session inheriting its parent's + `KUBECONFIG`. Completion is now store-owned and the child recipe clears that + variable before targeting. +- Named database connections and a Marimo-to-HTML report remain workbench + evaluation evidence, not scaffolding requirements. Add them only for a real + cross-system investigation that gives the queries and report durable value. - Run independent pilots in parallel, but gate every retirement separately. diff --git a/modules/capabilities/dev-tools.nix b/modules/capabilities/dev-tools.nix index 3653011..0b7db60 100644 --- a/modules/capabilities/dev-tools.nix +++ b/modules/capabilities/dev-tools.nix @@ -13,6 +13,8 @@ dontUnpack = true; installPhase = '' install -Dm755 "$src" "$out/bin/gardenctl" + install -d "$out/share/zsh/site-functions" + "$out/bin/gardenctl" completion zsh > "$out/share/zsh/site-functions/_gardenctl" ''; }; gardenlogin = pkgs.stdenvNoCC.mkDerivation { diff --git a/modules/capabilities/shell.nix b/modules/capabilities/shell.nix index 050fc63..b09189b 100644 --- a/modules/capabilities/shell.nix +++ b/modules/capabilities/shell.nix @@ -62,7 +62,7 @@ ''; initContent = '' - source <(gardenctl rc zsh) + source <(gardenctl rc zsh --no-completion) bindkey -v