143 Commits
Author SHA1 Message Date
li cc966bdca9 fix: Windows Gemini multi-line arg truncation via stdin pipe (#129)
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
2026-04-05 20:36:00 +08:00
li c4270afba3 chore: bump version to 2.1.12 2026-04-03 19:13:08 +08:00
li ea4cf5d2bc fix: MCP provider preserved during update + optional Impeccable commands (#124, #125)
- 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
2026-03-31 19:30:02 +08:00
li ad56c63400 fix: add YAML frontmatter to Skill Registry generated commands (#122)
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.
2026-03-31 16:07:00 +08:00
li a2c161729c feat: configurable model routing for frontend/backend (#121)
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.
2026-03-31 14:20:01 +08:00
li 93ffe1f574 chore: bump version to 2.0.0 2026-03-31 11:23:14 +08:00
li 0d997f4b70 feat: Skill Registry + domain knowledge + impeccable tools + 3 output styles (v1.8.4)
- Skill Registry: SKILL.md frontmatter-driven auto command generation (skill-registry.ts)
- Import 61 domain knowledge files (security/architecture/devops/ai/dev/frontend-design/infra/mobile/data-eng)
- Import 20 impeccable UI/UX tools (polish/audit/harden/clarify/critique/animate/colorize etc.)
- Import override-refusal tool (/hi session rewriter) + scrapling skill
- Add 3 output styles: abyss-concise, abyss-command, abyss-ritual (total 8)
- Add ccg-skill-routing.md rules for auto-triggering domain knowledge on keyword match
- Fix imported skill paths to use ~/.claude/skills/ccg/ namespace
2026-03-31 11:20:41 +08:00
li 9d94b6f3ab fix: Windows ccline statusLine path use ~ instead of %USERPROFILE% 2026-03-27 18:00:38 +08:00
li 75753febe5 fix: force pwd/cd to resolve WORKDIR in all 20 command templates
Prevents Claude from inferring incorrect working directory from $HOME
or environment variables in sandbox/cloud environments.
2026-03-27 16:52:49 +08:00
li 6988f6421a fix: Gemini session_id parsing + restore resume <SESSION_ID>
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).
2026-03-26 14:41:09 +08:00
li d1fa209158 chore: bump version to 1.7.99
- Gemini resume latest for all templates (7 files)
- spec-impl cross-phase session reuse (prototype → review)
- Binary 5.9.0 (Session-ID early output + -p display fix)
2026-03-26 14:21:28 +08:00
li 8244463eb8 fix: Gemini templates use resume latest instead of SESSION_ID
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
2026-03-26 13:57:20 +08:00
li 32a5043bdb fix: early Session-ID output + Gemini -p display correction
- 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
2026-03-26 13:23:52 +08:00
li 88ac6a9a2f fix: CDN download + curl proxy + binary version check + install count fix 2026-03-25 23:36:40 +08:00
li 420cc2f0d0 fix: R2 priority download + binary version check in update flow 2026-03-25 22:28:38 +08:00
li aa689e89d0 fix: binary version check on update — force re-download when outdated 2026-03-25 22:01:40 +08:00
li 550a932c23 chore: bump version to 1.7.93 2026-03-25 15:35:41 +08:00
li fc964a3229 chore: bump version to 1.7.92 2026-03-25 14:34:00 +08:00
li 7822a5f4b0 chore: bump version to 1.7.91 2026-03-25 13:56:45 +08:00
li 3abb80c3cd chore: bump version to 1.7.90 2026-03-23 16:29:07 +08:00
li d03d324828 fix: unified permissions.allow for all platforms, fix pattern matching
- 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
2026-03-20 14:36:24 +08:00
li ec026ad8c9 fix: strict McpServerConfig type + mandatory typecheck in release flow
- Fix TS2345 in installer-mcp.ts by narrowing serverConfig to McpServerConfig
- Add pnpm typecheck + pnpm test as required pre-release checks in CLAUDE.md
2026-03-19 19:11:03 +08:00
li aa53e9689b fix: Gemini retry on failure, Codex must-wait, team-exec use real Agent Teams
- Add Gemini failure retry (2x, 5s interval) to all 20 command templates
- Add Codex must-wait rule to prevent skipping long-running Codex tasks
- Fix team-exec to use TeamCreate + TaskCreate + Agent(team_name=...) instead of plain Agent subagents
2026-03-19 18:52:33 +08:00
li 92e1e4251e fix: correct run_skill.js path in SKILL.md for ccg namespace
The skill runner path was still pointing to ~/.claude/skills/run_skill.js
instead of ~/.claude/skills/ccg/run_skill.js after the v1.7.75 namespace
migration, causing quality gate invocations to fail.
2026-03-18 12:10:17 +08:00
li 371bc50f91 feat: dual-source binary download — GitHub + Cloudflare R2 mirror
GitHub Release (8s timeout) → Cloudflare R2 mirror (60s timeout) automatic
fallback. China users no longer suffer from GitHub download failures.
2026-03-17 11:25:24 +08:00
li a722a8a7e9 fix: skip binary re-download during update when unchanged
- installBinaryFile() checks existing binary before downloading
- uninstallWorkflows() accepts preserveBinary option for updates
- update.ts verifies binary post-update with same red-box warning as init
- Extract shared verifyBinary() and showBinaryDownloadWarning() utils
2026-03-17 10:56:31 +08:00
li c80f58b086 feat: VitePress documentation site with GitHub Pages deployment
- VitePress config with zh-CN (default) + English i18n
- 12 content pages: landing page + 5 guide pages per locale
- GitHub Actions workflow for auto-deploy on docs/** changes
- Logo SVG + local search enabled
- Homepage URL updated to https://fengshao1227.github.io/ccg-workflow/
2026-03-12 14:00:46 +08:00
li d58968055c chore: bump version to 1.7.83 2026-03-12 13:39:32 +08:00
li 6a02c169ab feat: fast-context MCP integration + Gemini MCP sync v1.7.82
- Add Windsurf Fast Context as 4th code retrieval MCP option (recommended)
- Three-endpoint prompt injection: Claude rules + Codex AGENTS.md + Gemini GEMINI.md
- Add syncMcpToGemini() mirroring MCP servers to ~/.gemini/settings.json
- Support API Key optional + FC_INCLUDE_SNIPPETS mode selection
- Full install/uninstall/menu lifecycle support
2026-03-12 12:23:05 +08:00
li aac119866d fix: /ccg:commit context auto-archive from git diff, drop manual log dependency v1.7.81
- Context Phase 5 now analyzes git diff to generate ContextEntry
  automatically — no longer requires manual session.log entries
- session.log content merged when present but not required
- .context/ missing: suggest init, don't block commit
- /ccg:context log demoted to optional (for manual notes only)
2026-03-11 23:53:47 +08:00
li 04460ad07e feat: /ccg:context command + quality gate rules v1.7.80
- /ccg:context: 27th slash command — .context/ init, decision log,
  compress, history for LLM context engineering
- /ccg:commit Context Compress Phase: auto-compress session.log →
  history/commits.jsonl on commit, add Context-Id trailer
- 13 role prompts .context Awareness: Codex 6 + Gemini 7 prompts
  inject .context/prefs/ reading instructions
- Quality Gate Rules: ~/.claude/rules/ccg-skills.md auto-trigger
  rules for verify-security/quality/change/module + gen-docs
- E2E test timeout 5s → 15s for growing command count
2026-03-11 23:37:37 +08:00
li 052cbb63c7 fix: binary download retry + prominent failure warning v1.7.79
- downloadBinaryFromRelease: 3 retries + 60s AbortController timeout
- Binary failure downgraded to warning (commands + skills still install)
- init.ts: red box warning + manual download URL + placement path on failure
- update.ts: backup binary before uninstall, restore on failure
- update.ts: subprocess timeout 120s → 300s (slow networks / China GFW)
- installer.test.ts: contextweaver E2E timeout 5s → 30s
2026-03-11 20:58:04 +08:00
li 7c5609aea6 fix: Windows hook exit 255 — use permissions.allow instead v1.7.78
- Windows: auto-approve codeagent-wrapper via permissions.allow
  (Hook depends on jq/grep/true which don't exist on Windows)
- macOS/Linux: keep existing Hook approach (works fine)
- Auto-migrate: remove old Hook on Windows upgrade
- Skip jq check on Windows (not needed with permissions.allow)
2026-03-11 17:07:27 +08:00
li 6a9edf4b0b fix: resolve pre-existing typecheck + Go test failures
- menu.ts: ReturnType → InstanceType for Separator class (fixes tsc error)
- Remove @types/inquirer (inquirer v12 ships built-in types)
- executor_concurrent_test.go: add --dangerously-bypass-approvals-and-sandbox to expected args
- main_test.go: update version assertion 5.6.0 → 5.7.2
- ci.yml: restore typecheck + Go test steps (all passing now)
2026-03-11 12:22:08 +08:00
li e88a085898 chore: bump version to 1.7.77
- Binary migration to GitHub Release (npm 16.3MB → 161KB)
- Actions CI for cross-compilation
- Fix migration test timeout (network download)
2026-03-10 22:32:08 +08:00
li 968cbedb8a ci: migrate binaries to GitHub Release + Actions CI
- Add .github/workflows/build-binaries.yml (Go cross-compile → preset release)
- installer.ts: download from GitHub Release, fallback to local bin/
- package.json: exclude binaries from npm (16.3MB → 161KB)
- .gitignore: stop tracking bin/codeagent-wrapper-*
- git rm --cached 6 pre-compiled binaries
2026-03-10 22:26:14 +08:00
li 5769a1dbe6 docs: restructure README + add CONTRIBUTING.md + issue templates v1.7.76
- README: group 26 commands into 7 categories, add "Why CCG?" section,
  move architecture diagram up, consolidate prerequisites, deduplicate
  jq instructions, add "When to change" column for env vars, fold
  settings.json and Hook config into <details>
- Add CONTRIBUTING.md with dev setup, PR workflow, commit conventions
- Add .github/ISSUE_TEMPLATE/ (bug report, feature request, good first issue)
- EN and ZH README mirrored (335 lines each, 13 sections)
2026-03-10 21:10:50 +08:00
li aada7260fc fix: skills namespace isolation — install to skills/ccg/ v1.7.75
- Install skills to ~/.claude/skills/ccg/ instead of ~/.claude/skills/
- Uninstall only removes skills/ccg/, preserving user's own skills
- Auto-migrate old v1.7.73-74 layout (tools/orchestration at root)
- Add 3 tests: namespace, uninstall isolation, migration (134 total)
2026-03-10 12:27:30 +08:00
li 96c4debe14 fix: Gemini CLI .env isolation + cross-compile v1.7.74
- Set cmd.Dir=$HOME for Gemini backend to prevent project .env from
  overriding global API keys (gemini-cli#2493)
- Pass project directory via --include-directories flag instead
- Fix pre-existing Codex test env var name (CODEX_REQUIRE_APPROVAL)
- Cross-compile 6 platform binaries with -s -w strip flags
2026-03-09 17:02:43 +08:00
li c7e758a503 chore: bump version to 1.7.73
feat: /ccg:codex-exec command - Codex full execution with multi-model review
feat: Skills system - 6 native skills (quality gates + multi-agent orchestration)
feat: context7 MCP auto-install (free library docs, no API key)
feat: syncMcpToCodex() - mirror CCG MCP servers to ~/.codex/config.toml
fix: --skip-mcp now correctly guards context7 + Codex sync
fix: skills install/uninstall path consistency
fix: skills template variable replacement after fs.copy()
fix: MCP sync passes through all fields (not just command/args/env)
fix: installedSkills count excludes root SKILL.md
fix: failure feedback for context7 and Codex sync
2026-03-09 15:06:58 +08:00
li b6ce03effb chore: bump version to 1.7.72 2026-03-09 12:24:07 +08:00
li 336cb34af4 chore: bump version to 1.7.71 2026-03-09 01:44:57 +08:00
li 1fe8795fdb chore: v1.7.70 - menu UI overhaul + MCP defaults + repo cleanup
- Menu: ASCII Art "CCG" logo, double-line border, numbered shortcuts, CJK-aware alignment
- MCP: ace-tool as default (search_context works, enhance_prompt unavailable), proxy: acemcp.heroman.wtf
- Cleanup: remove 11 temp/cache files (1.md, verify-*.sh, .magi/, etc.)
- .gitignore: add .magi/, verify-*.sh, *_FIX.md, *_REFERENCE.md
2026-03-09 01:18:05 +08:00
li 00f0a74940 feat: i18n + codeagent-wrapper hook auto-authorization (v1.7.69)
- Add language selection on first install (zh-CN / English)
- Full i18n for init.ts, menu.ts, update.ts, cli-setup.ts
- Expand i18n/index.ts to 800+ lines with complete zh-CN/en translations
- Auto-install codeagent-wrapper PreToolUse hook in settings.json
- Detect jq availability and show install instructions if missing
- Rewrite README.md in English, move Chinese to README.zh-CN.md
- Add FAQ section with hook configuration guide
- Bump version to 1.7.69
2026-03-09 00:56:42 +08:00
li ae5b9dfeaf fix: update 命令全局安装死循环 + 测试覆盖率 38→130
修复:
- npm 全局安装用户本地工作流版本过旧时,update 错误推荐
  `npm install -g`(包已最新),导致死循环。修正 performUpdate
  的 isNewVersion 参数仅依赖 hasUpdate。

测试 (+92):
- version.test.ts: compareVersions 全场景 + 回归用例
- config.test.ts: createDefaultConfig/Routing 纯函数
- platform.test.ts: 平台检测、getMcpCommand、路径分隔符
- installer.test.ts: 注册表一致性、路由/liteMode 注入、
  模板变量完整性、contextweaver E2E、卸载 E2E、
  二进制安装、prompts 安装
2026-03-09 00:17:47 +08:00
li 6d1f742b2f chore: bump version to 1.7.67 2026-03-07 14:00:59 +08:00
li 7b3ba20282 fix: spec-research 补全多模型并行调用模板
spec-research.md Step 4 缺少 run_in_background: true 指令和完整的
Bash 并行调用示例,导致 Codex/Gemini 串行执行而非并行。
补全为与 spec-plan/spec-impl 一致的并行调用格式。
2026-03-06 21:37:59 +08:00
li ce30ba01db chore: bump version to 1.7.65
包含 PR #68 的 MCP skip 模式修复 + 测试框架
2026-03-01 23:48:40 +08:00
风少1227 565d55af3f Merge pull request #68 from ymdvsymd/claude/fix-mcp-skip-injection-01HvwiUv489c9WeoyhBB9yTq
fix: handle MCP 'skip' provider to prevent invalid tool name injection
2026-03-01 23:43:24 +08:00
li bfb156c7c1 chore: v1.7.64 - 保持 CCG 封装纯粹性
移除 spec-* 模板中的 /opsx:xxx 引用,用户只需使用 /ccg:spec-* 命令即可
2026-03-01 20:38:52 +08:00