diff --git a/crates/codegen/kigi-shell/src/agent/config.rs b/crates/codegen/kigi-shell/src/agent/config.rs index bfa860b..5d6a499 100644 --- a/crates/codegen/kigi-shell/src/agent/config.rs +++ b/crates/codegen/kigi-shell/src/agent/config.rs @@ -1881,12 +1881,15 @@ impl Config { .default(true) .resolve() } - /// Graph mode (`/graph`) master switch. Default ON — the gray release - /// (plan.md G0, `KIGI_GRAPH=1` only) is over; every install gets the - /// same commands (its absence on non-dev machines read as a platform - /// bug). `KIGI_GRAPH=0` remains the off-switch. Graph mode additionally - /// requires the goal harness (nodes execute as goals), enforced at - /// availability time, not here. + /// Graph mode (`/graph`) master switch. Default ON in the binary: the + /// README ships graph engineering enabled for every install, but the + /// old `default(false)` delegated enablement to installer env plumbing + /// (`install.sh` shell-rc export vs `install.ps1` registry write) — and + /// Windows terminals don't pick up freshly-written registry env, so + /// `/graph` went "missing on Windows". The product default lives HERE, + /// not in installers. `KIGI_GRAPH=0` is the off-switch. Graph mode + /// additionally requires the goal harness (nodes execute as goals), + /// enforced at availability time, not here. pub(crate) fn resolve_graph(&self) -> Resolved { BoolFlag::env("KIGI_GRAPH").default(true).resolve() } diff --git a/install.ps1 b/install.ps1 index 3964fc6..b9227b4 100644 --- a/install.ps1 +++ b/install.ps1 @@ -149,15 +149,13 @@ try { Write-Host "Run 'kigi' to get started." } - # Graph engineering ships enabled by default. Respect an explicit - # user choice: only set the variable when it is not already defined - # (so a persisted opt-out of "0" survives reinstalls). - $Graph = [Environment]::GetEnvironmentVariable("KIGI_GRAPH", "User") - if ($null -eq $Graph -or $Graph -eq "") { - [Environment]::SetEnvironmentVariable("KIGI_GRAPH", "1", "User") - Write-Host "Enabled graph engineering (KIGI_GRAPH=1)." - Write-Host "Disable: [Environment]::SetEnvironmentVariable('KIGI_GRAPH','0','User')" - } + # Graph engineering is enabled by default IN THE BINARY (resolve_graph + # defaults true) — no environment plumbing needed. The installer used + # to persist KIGI_GRAPH=1 into the User registry env, but running + # terminals (and new tabs of an open Windows Terminal) never pick up + # freshly-written registry variables, which made /graph "missing on + # Windows" while the shell-rc path worked on macOS/Linux. Opt out any + # time with: [Environment]::SetEnvironmentVariable('KIGI_GRAPH','0','User') } finally { Remove-Item -Path $TmpDir -Recurse -Force -ErrorAction SilentlyContinue } diff --git a/install.sh b/install.sh index 8800436..3b80a90 100644 --- a/install.sh +++ b/install.sh @@ -209,7 +209,6 @@ case "${SHELL:-}" in */zsh) RC_FILE="${ZDOTDIR:-$HOME}/.zshrc" PATH_LINE="export PATH=\"$BIN_DIR:\$PATH\"" - GRAPH_LINE="export KIGI_GRAPH=1" ;; */bash) # macOS login shells read ~/.bash_profile; Linux reads ~/.bashrc. @@ -219,7 +218,6 @@ case "${SHELL:-}" in RC_FILE="$HOME/.bashrc" fi PATH_LINE="export PATH=\"$BIN_DIR:\$PATH\"" - GRAPH_LINE="export KIGI_GRAPH=1" ;; */fish) # fish_add_path in config.fish is fish's own idempotent way @@ -228,12 +226,10 @@ case "${SHELL:-}" in mkdir -p "$FISH_CONF_DIR" RC_FILE="$FISH_CONF_DIR/config.fish" PATH_LINE="fish_add_path $BIN_DIR" - GRAPH_LINE="set -gx KIGI_GRAPH 1" ;; *) RC_FILE="$HOME/.profile" PATH_LINE="export PATH=\"$BIN_DIR:\$PATH\"" - GRAPH_LINE="export KIGI_GRAPH=1" ;; esac @@ -247,8 +243,8 @@ case ":$PATH:" in ;; esac -# Graph engineering ships enabled by default. The KIGI_GRAPH guard makes -# this idempotent AND respects an explicit user opt-out (an existing -# `export KIGI_GRAPH=0` line is left untouched). Disable any time with: +# Graph engineering is enabled by default IN THE BINARY (resolve_graph +# defaults true) — the installer no longer writes KIGI_GRAPH=1 into shell +# rc files (per-shell env plumbing was fragile and diverged per platform). +# Disable any time with: # echo 'export KIGI_GRAPH=0' >> -persist_line "$RC_FILE" "$GRAPH_LINE" "KIGI_GRAPH" "graph engineering (KIGI_GRAPH=1)"