- start.sh: auto-register project in ~/.config/context-studio/projects/ before
launching Electron — without this acquireProjectLock() silently skips writing
the lock file, waitForServers() never finds the registry port, all agent ports
stay null (localhost:null errors)
- start.sh: mount all known Claude Code credential locations into container
(~/.claude/.credentials.json, ~/.claude.json, $CLAUDE_CONFIG_DIR variants)
not just ~/.anthropic which was empty on this system
- bin/claude: create /tmp/cs-ready-<agentId> on host after 3s delay so CS Core's
CLI ready marker poll resolves instead of timing out after 10s
- workflow.sh: add hasTrustDialogAccepted:true to all agent settings.json so
claude goes straight to priming without the folder trust dialog
- prereqs.sh: add ensure_api_key() — checks all credential locations, prompts
with masked input if none found, offers to save to shell profile
- wizard.sh: trap SIGINT for graceful abort — gum confirm popup, reverts created
project dir and cloned core dir, leaves installed packages untouched
- core.sh: set _WIZARD_CORE_CLONED=true before clone for cleanup tracking
- electron-config.js: increase serverStartupTimeout 30s→90s (config file in
core/config/, not source — safe to edit)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Bootstrap gum automatically on first run (Arch/Debian/RHEL/Fedora/SUSE)
- utils.sh: replace all bash color helpers with gum equivalents
- gum input for text prompts (with value pre-fill for defaults)
- gum choose for selection menus
- gum confirm for yes/no
- gum spin for long-running operations
- gum style/log for output (catppuccin mocha palette)
- gum style for banners and summary box
- core.sh: spinner on git clone/pull
- workflow.sh: spinner on git clone
- prereqs.sh: spinner on package installs
- wizard.sh: double-border welcome banner, rounded summary box,
success banner with next-steps panel
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Replace all `[[ condition ]] && die` with `if/fi` — the && pattern
exits silently when the condition is false under set -e
- Removed -e from set flags (kept -uo pipefail), all error paths are
now explicit
- Declare `input` as local in ask/ask_yn/ask_choice to prevent leakage
- Use `read -r input || true` to handle EOF safely
- Fix ask_choice arithmetic to avoid (()) triggering exit on false
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- New lib/prereqs.sh: detects distro (Arch, Debian/Ubuntu, RHEL/Fedora,
openSUSE) and installs git + podman/docker if missing
- Podman preferred over docker; user chooses if neither present
- Docker install also enables systemd service and adds user to docker group
- README updated: prereqs table now shows auto-install support
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>