Skip to content

v1.3.72

Choose a tag to compare

@topcheer topcheer released this 17 Jun 15:25
· 6387 commits to main since this release

ggcode v1.3.72

Highlights

  • CLI version subcommand and global flags: ggcode version, ggcode --version, and ggcode -v now print the version and exit immediately — no config loading, no TUI. Critical for install scripts and agent automation.
  • CLI help overhaul: Removed hardcoded help text that hid acp, completion, daemon, harness, llm-probe, mcp, version subcommands. All commands now visible via cobra dynamic rendering.
  • MCP install wizard: ggcode mcp install with no args launches an interactive wizard (name, transport, command/URL, env vars, headers).
  • IM config wizard: ggcode im config add with no args launches an interactive wizard (adapter name, platform picker, platform-specific config).
  • Interactive installer: New install.sh and install.ps1 with perUser default (no sudo/admin required), scope selection, and dual-scope detection on Windows.
  • Desktop Windows ARM64: Desktop MSI now builds both amd64 (x64) and arm64, matching CLI coverage.
  • Website redesign: Bold new landing page with full-screen hero, animated gradient text, terminal preview, scroll-reveal features grid, and tabbed install bar.
  • README restructure: Simplified to 91 lines (from 656), all technical details moved to 16 standalone guide docs under docs/guide/.

Fixes and improvements

Install and Update

  • Fixed install.sh and install.ps1 using version number in archive name — GoReleaser omits version from .tar.gz/.zip names, causing 404 downloads.
  • Fixed install.sh hanging after completion when piped via curl | bash — added explicit exit 0.
  • Fixed install scripts launching TUI by calling ggcode version on old builds that lack the subcommand — removed post-install version verification.
  • Added cross-installation detection: FindOtherInstalls(), DetectDualScopeWindows() warn when multiple installations coexist.
  • Added privilege-aware update: auto-elevate via UAC on Windows when target directory is not writable.
  • Added write permission check before downloading update binary.

winget

  • winget perUser migration: perUser MSI uses different UpgradeCode from perMachine, winget manages scope migration.
  • Added explicit scope=user override to winget publish URLs via pipe-delimited format.
  • Desktop winget publish now includes arm64 URL alongside x64.

CLI

  • Fixed FlagErrorFunc silently swallowing unknown flags — unknown flags now properly error.
  • Fixed fmt.Fprintln with redundant \n in wizard prompts.
  • Fixed --version/-v using fmt.Println instead of cmd.OutOrStdout() — now respects pipe redirection.
  • Fixed splitCommand in MCP wizard using strings.Fields() — rewrote with quote-aware parser.

Windows Packaging

  • perUser MSI (CLI + Desktop) uses different UpgradeCode from perMachine to prevent cross-scope major upgrade failure.
  • Desktop perUser WXS: removed unreliable <Icon> element, added RemoveFolder for vendor dir cleanup.
  • npm Windows wrapper: copyFileSync instead of batch-in-exe for binary copy; version check in findSystemBinary.

Code Review (Round 2)

  • Fixed npm requestedVersion === "latest" unconditionally reusing any system binary — stale binary reuse bug.

Website / Deployment

  • Fixed Railway deployment: orphan site branch now places files under docs/site/ to match Railway's Root Directory setting.
  • Fixed i18n strings with HTML tags rendered as literal text — detection changed from \n to < check.
  • Added scripts/install/** to site-release workflow trigger paths.
  • Added railway.json generation in orphan branch for DOCKERFILE builder override.

Upgrade notes

No breaking changes. All install channels now default to non-privileged (perUser) installation. Users with existing perMachine MSI on Windows will be prompted to uninstall when switching to perUser via winget.

Compare

v1.3.71...v1.3.72