fix Garden shell integration

This commit is contained in:
kiri committed 2026-09-05 19:54:27 +02:00
1 parent 0c121a6cdf
commit 2fb6061424
3 files changed
+25 -13

No files matched your search

+22 -12
View File
@@ -13,9 +13,10 @@ and add no abstraction without a demonstrated repeated need.
- Branch: `chore/workflow-system` - Branch: `chore/workflow-system`
- Baseline: `nix flake check --no-build --quiet` passed on 2026-09-05; only - Baseline: `nix flake check --no-build --quiet` passed on 2026-09-05; only
the existing dirty-tree and unknown `modules` output warnings were emitted. the existing dirty-tree and unknown `modules` output warnings were emitted.
- Next: activate the Nix-owned Garden tools on Zenith and run the credentialed - Next: activate the follow-up Garden shell fix, then remove the mutable Garden
`just k8s test` workbench gate over the VPN. Then prove named database binaries that still shadow the verified Nix-owned tools. Defer database and
connections and one Marimo-to-HTML report before expanding the workbench. Marimo artifacts until a concrete cross-system investigation supplies useful
content; proceed with an independent pilot in the meantime.
## Progress ## 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 | | 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 | | 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 | | Desktop, agents, notes, PIM, transcription | Pending | Independent pilots follow foundation changes |
| Conditional retirement and completion | Pending | Requires per-pilot evidence | | 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` | `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` | `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 | | `yookr-dashboard-new` | `feat/gogv2` | `934605d` | Remove obsolete dashboard converter |
| `rules-service` | `chore/workflow-contract` | `555d9cd` | Establish the first common repository contract | | `rules-service` | `chore/workflow-contract` | `555d9cd` | Establish the first common repository contract |
| `yookr-api` | `chore/workflow-contract` | `a76b2b7` | Establish the HTTP and OpenAPI 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 | | `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 ## 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. `just openapi-refresh test`; the current test deployment returns 404.
- Populate the ignored API HTTP credentials and perform the planned login plus - Populate the ignored API HTTP credentials and perform the planned login plus
harmless administrator read; no credential-bearing request has been made. harmless administrator read; no credential-bearing request has been made.
- Activate the Nix-owned Garden tools, verify `gardenctl` and `gardenlogin`, - Activate the follow-up Garden shell fix. The Nix-owned `gardenctl`,
then remove their duplicate binaries from `~/.garden` and `~/.local/bin`. `gardenlogin`, and `kubectl-gardenlogin` are verified under
- With the VPN active, run `just k8s test` in `yookr-workbench` and confirm the `~/.nix-profile/bin`; afterward remove the duplicate mutable binaries
test shoot opens read-only; this credentialed interactive gate has not been `~/.garden/gardenctl` and `~/.local/bin/{gardenctl,gardenlogin,kubectl-gardenlogin}`.
run automatically.
- Destructive cleanup, credentials, activation, and empirical pilot decisions - Destructive cleanup, credentials, activation, and empirical pilot decisions
will be surfaced here before use. 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. pinned `podman-compose` configuration validation pass.
- Gardenctl 2.14.0 and Gardenlogin 0.10.0 are pinned from their official release - 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 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 builds pass, the OIDC kubectl plugin is declarative, and Zsh consumes the
native `gardenctl rc zsh` output. native `gardenctl rc zsh` output with its completion packaged declaratively.
- The local-only `yookr-workbench` has no remote and initially owns only - The local-only `yookr-workbench` has no remote and initially owns only
`just k8s test`. Each invocation creates an isolated Garden session, rejects `just k8s test`. Each invocation creates an isolated Garden session, rejects
every environment except test, and opens K9s read-only. Its flake check and 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. 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. - Run independent pilots in parallel, but gate every retirement separately.
+2
View File
@@ -13,6 +13,8 @@
dontUnpack = true; dontUnpack = true;
installPhase = '' installPhase = ''
install -Dm755 "$src" "$out/bin/gardenctl" 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 { gardenlogin = pkgs.stdenvNoCC.mkDerivation {
+1 -1
View File
@@ -62,7 +62,7 @@
''; '';
initContent = '' initContent = ''
source <(gardenctl rc zsh) source <(gardenctl rc zsh --no-completion)
bindkey -v bindkey -v