Windows cmd.exe truncates multi-line -p args at first newline when
routed through npm .cmd wrappers. Switch to stdin pipe on Windows
so Gemini receives the full task content.
- executor.go: detect isWindows(), use stdin pipe instead of -p
- backend.go: omit -p flag when targetArg is empty (stdin pipe mode)
- main.go: align display logic with new stdin pipe path
- backend_test.go: add tests for empty targetArg behavior
- Binary version: 5.9.0 → 5.10.0
- Activate 302.AI option in init Step 1/4 and menu API config
- Auto-fill baseUrl (https://api.302.ai/cc), user only inputs API Key
- Show referral link (https://share.302.ai/oUDqQ6) in CLI
- Add sponsor banner + product intro to README.md and README.zh-CN.md
- Add 302.AI banner images (zh/en) to assets/sponsors/
- Add transparent logo (cropped + original), multi-size favicons with
dark rounded background, social media cards (OG + Twitter), npm badge
- Display logo in both README.md and README.zh-CN.md
- fix: update no longer resets mcpProvider to 'skip' — reads from existing config (#124)
- feat: init Step 4/4 adds confirm for Impeccable frontend tools, default OFF (#125)
- feat: add X (Twitter) @CCG_Workflow badge + demo tweet link to README
- chore: bump version to 2.1.11
Skill Registry's generateCommandContent() produced command files without
YAML frontmatter, causing Claude Code's command parser to fail on the
entire commands directory — breaking all /ccg:* and project-level commands.
Allow users to choose which model (Gemini/Codex) handles frontend and
backend tasks during init (Step 2/4) and via menu option 6. Gemini model
name is also configurable (e.g. gemini-2.5-flash). All 21 command
templates updated from hardcoded model names to template variables.
When codeagent-wrapper sets cmd.Dir=$HOME for Gemini backend, Gemini CLI
hangs after emitting init event on long prompts (e.g. with ROLE_FILE
injection). Only the init JSON event is output, then no further events
are produced — causing the wrapper to block indefinitely.
Root cause: Gemini CLI performs directory scanning from CWD. When CWD is
$HOME (which typically contains thousands of files), combined with a
long prompt, Gemini stalls between init and the first user message event.
Fix: Use workDir as CWD for Gemini (same as Claude backend). The
original $HOME workaround was to prevent project .env files from
overriding global API keys (gemini-cli#2493), but this is already
handled by cmd.SetEnv() which injects API keys from
loadMinimalEnvSettings() with higher priority than .env files.
Tested: exact same command that previously hung for 90s+ now completes
in 65-85s with correct output.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Root cause: Gemini CLI prepends MCP warning text to init event line,
causing JSON parse failure and losing session_id.
Fix: extract JSON from first '{' when initial parse fails.
All templates restored to `resume <SESSION_ID>` for both Codex and
Gemini, supporting parallel multi-session workflows.
New: spec-impl cross-phase session reuse (prototype → review).
Gemini CLI stream-json does not output session_id in events,
so the wrapper cannot capture it. All templates now use
`resume latest` for Gemini (Codex still uses `resume <SESSION_ID>`).
Affected templates: frontend, workflow, execute, feat, plan, codex-exec
- Output Session-ID to stderr immediately when backend reports
session_started, so Claude can capture it even if task times out
- Fix Command: display line to show actual task text instead of
misleading -p - for Gemini backend (geminiDirect logic)
- Bump codeagent-wrapper 5.8.0 → 5.9.0
- Bump EXPECTED_BINARY_VERSION to 5.9.0
Gemini CLI does not support "-" as stdin marker for the -p flag.
When useStdin=true, the wrapper was passing "-p -" which caused Gemini
to misparse arguments (--include-directories consuming "-" as its value).
Now Gemini backend receives the actual task text via -p directly,
skipping the stdin pipe entirely.
* fix: surface wrapper progress in task output
Propagate the --progress flag through the wrapper runtime path so background Codex tasks emit compact progress lines to stderr. Also enable progress output in long-running CCG command templates and add focused parser/arg coverage for the new behavior.
* fix: address review feedback for task progress output
Remove the unintended progress enablement in runCodexProcess, make progress snippets rune-safe for CJK output, add direct utility coverage, and align the remaining background command templates to use --progress consistently.
- Fix permission pattern: Bash(codeagent-wrapper*) → Bash(*codeagent-wrapper*)
- Fix spec-init <<< here-string triggering Claude Code security check
- Unify all platforms to use permissions.allow (remove Hook + jq dependency)
- Auto-migrate: clean up old Hook and old permission entries on upgrade
- Fix TS2345 in installer-mcp.ts by narrowing serverConfig to McpServerConfig
- Add pnpm typecheck + pnpm test as required pre-release checks in CLAUDE.md