Commit Graph
217 Commits
Author SHA1 Message Date
li 9072ebb8f1 docs: add CI-only binary upload rule to release checklist 2026-03-25 22:16:26 +08:00
li 4ad80e2a3e docs: add binary version sync reminder to release checklist 2026-03-25 22:04:42 +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 1f1637ac2f fix: clarify skill names have no ccg: prefix in rules template 2026-03-25 15:33:36 +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 fb03bb325a fix: pass task text directly via -p for Gemini CLI instead of stdin marker
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.
2026-03-25 13:47:32 +08:00
li 3abb80c3cd chore: bump version to 1.7.90 2026-03-23 16:29:07 +08:00
li a9cadd4483 fix: add missing --progress flag to debug, spec-review, codex-exec templates 2026-03-23 16:27:07 +08:00
aleng e816091620 feat: add --progress flag for codeagent-wrapper stderr progress output
* 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.
2026-03-23 16:25:45 +08:00
li e9ba77a2c5 docs: update contributors list (add SXP-Simon, Sakuranda, Mriris) 2026-03-20 14:51:53 +08:00
li 9315ce26a8 fix: set collaborators=all to avoid 404 on collaborators API 2026-03-20 14:48:42 +08:00
li e390b41815 fix: remove claude/- exclusion from contributors markers causing 404 2026-03-20 14:47:48 +08:00
li 250cf03edb fix: add pull-requests permission to contributors action 2026-03-20 14:46:33 +08:00
li 4f76c5a602 fix: upgrade contributors-readme-action to v2.3.11 2026-03-20 14:44:40 +08:00
li 2fbe4bc589 fix: remove unsupported exclude param from contributors action 2026-03-20 14:43:32 +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
风少1227 c0506c2146 Merge pull request #103 from SXP-Simon/fix/version
Fix: stabilize CLI version detection to avoid showing 0.0.0
2026-03-19 19:03:02 +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
Helian Nuits 1613ef0a93 Merge pull request #1 from SXP-Simon/codex/locate-version-display-issue
fix: stabilize CLI version detection to avoid showing 0.0.0
2026-03-19 17:07:08 +08:00
Helian Nuits e08a7c35da refactor: align version lookup behavior with review feedback 2026-03-19 17:04:52 +08:00
Helian Nuits e07edbc721 fix: resolve current version detection fallback to 0.0.0 2026-03-19 16:58:38 +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 e4eace2e42 fix: eliminate silent install failures and atomic update with rollback
Root cause: Windows/Linux users reported missing commands and skills after
install/update. Three critical issues found:

1. Update flow deleted all files BEFORE installing new ones. If the
   subprocess failed (network timeout, npm cache, permissions), the user
   was left with nothing — no commands, no skills, no rollback.

2. Multiple install functions silently returned empty results when template
   directories were missing (wrong PACKAGE_ROOT resolution), while still
   reporting success. Users saw "install complete" but had 0 files.

3. findPackageRoot only searched 5 levels up, insufficient for deeply
   nested npm cache paths on Windows.

Changes:
- Rewrite update flow: backup → install → verify → cleanup/rollback
  If install fails, old version is automatically restored from backup
- findPackageRoot: depth 5→10, validate templates/ dir exists, detect
  filesystem root, log actionable error on failure
- installWorkflows: pre-flight templateDir validation, post-flight
  0-commands check → force success=false
- installSkillFiles: report errors instead of silent return, post-copy
  SKILL.md validation, individual try-catch for migration moves,
  always overwrite (not conditional on --force)
- installPromptFiles: report errors instead of silent return
- copyMdTemplates: log warning when source dir missing
- collectSkillNames: distinguish ENOENT from permission/path errors
- init.ts: prominent red-box error display with fix instructions
- showBinaryDownloadWarning: correct Windows path separators
2026-03-17 19:23:03 +08:00
li 8ea7e59685 fix(ci): use shell loop for R2 upload instead of wrangler-action
wrangler-action@v3 installs wrangler v3 which doesn't support --remote.
Switch to direct npm install + shell loop for reliable multi-file upload.
2026-03-17 11:35:23 +08:00
li 40f1432228 fix(ci): add packageManager: npm for wrangler-action
CI environment only has Go + Node, no pnpm. Explicit npm avoids
wrangler-action failing on missing pnpm.
2026-03-17 11:32:34 +08:00
li 27b9ae7680 ci: auto-sync binaries to Cloudflare R2 after build
Adds wrangler-action step to upload all 6 binaries to R2 mirror
after GitHub Release upload. Requires CLOUDFLARE_API_TOKEN and
CLOUDFLARE_ACCOUNT_ID secrets.
2026-03-17 11:27:29 +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 f5f6d2e6b5 fix: sync MCP mirrors to Codex/Gemini after config-mcp install/uninstall
config-mcp handlers only wrote to ~/.claude.json but never called
syncMcpToCodex()/syncMcpToGemini(), so MCP servers added via the
config menu (e.g. fast-context) were missing from Codex and Gemini.
2026-03-12 17:19:42 +08:00
li 1cbcabd6fb docs: clarify code authorship — Claude writes code by default, codex-exec as alternative
Make it clear that Codex/Gemini are analyzers, not code writers.
Default: Claude writes code (transparent, no black box).
codex-exec: Codex writes code + multi-model review.
2026-03-12 14:09:54 +08:00
li 2864b16968 style: rewrite docs content — less AI, more developer voice
Remove formulaic structure, marketing buzzwords, and template-speak.
Rewrite all 12 pages in a conversational developer-to-developer tone.
2026-03-12 14:06:57 +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 2e4c306157 refactor: unify skill traversal + extract removeDirCollectMdNames helper
- Merge countInstalledSkills + inline collectSkillNames into single
  module-level collectSkillNames() — used by both install (.length) and
  uninstall (name list)
- Extract removeDirCollectMdNames() — DRYs commands/agents uninstall
  (both were identical: readdir → filter .md → collect names → remove)
- Uninstall: 6 blocks reduced from ~100 lines to ~60 lines
2026-03-12 13:29:45 +08:00
li 71c25fe8d2 refactor: extract copyMdTemplates helper + getBinaryName lookup + thin uninstall wrappers
- installer.ts: extract copyMdTemplates() — DRYs agents/prompts/rules install
  (3 functions share read→process→write pattern, now delegate to shared helper)
- installer.ts: extract getBinaryName() — replaces 14-line if/else platform chain
  with 3-line lookup table (adding new platform = 1 entry)
- installer-mcp.ts: uninstallContextWeaver/uninstallFastContext now delegate to
  generic uninstallMcpServer (identical logic, was duplicated)
- dist: 208 kB → 206 kB
2026-03-12 13:28:23 +08:00
li 32064dea9e refactor: cmd() builder + MCP_PROVIDERS registry for extensibility
- installer-data: replace 28 object literals (345 lines) with cmd() builder (85 lines)
  - Remove dead ALL_COMMANDS array
  - Adding a new command = 1 function call
  - Edge case init-project → 'init' handled via cmdOverride param
- installer-template: replace if/else MCP chain with data-driven registry
  - Adding a new MCP provider = 1 line in MCP_PROVIDERS
  - 'skip' fallback stays as special case (unique multi-step logic)
2026-03-12 13:25:16 +08:00
li 92b9c40897 refactor: deduplicate installer-mcp + decompose installWorkflows
installer-mcp.ts (678→462):
- Extract configureMcpInClaude() shared pipeline, eliminates 3x duplication
- Extract mirrorCcgServers() + formatSyncMessage() for sync dedup
- installAceTool/installAceToolRs/installFastContext now thin wrappers

installer.ts — decompose installWorkflows (290-line monolith → 6 sub-functions):
- installCommandFiles, installAgentFiles, installPromptFiles
- installSkillFiles, installRuleFiles, installBinaryFile
- Shared InstallContext interface passes state between steps

Total: 1926→1724 lines (-202), dist 215→212 kB (-3 kB)
2026-03-12 13:16:14 +08:00
li 1d31302a45 refactor: split installer.ts into 5 focused modules (1878→max 678 lines)
Extract from monolithic installer.ts:
- installer-data.ts: command registry + workflow configs (381 lines)
- installer-template.ts: template variable injection + path utils (158 lines)
- installer-mcp.ts: MCP install/uninstall/sync functions (678 lines)
- installer-prompt.ts: fast-context prompt injection (125 lines)

All re-exports preserved in installer.ts — zero consumer changes.
Fixes: stale comments, order collisions, dead code removal.
2026-03-12 13:10:53 +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 c66d494b9b docs: add contact section and GitHub Sponsor funding
- Add Contact section to both READMEs (email, Issues, Discussions)
- Add .github/FUNDING.yml for GitHub Sponsor button
2026-03-11 12:49:11 +08:00
li be0772398e docs: add contributors wall with auto-update, exclude claude bot
- Add contributors table to both READMEs (5 human contributors)
- Add .github/workflows/contributors.yml: auto-update on push to main
- Exclude `claude` account from contributors list
- Uses akhilmhdh/contributors-readme-action for automatic maintenance
2026-03-11 12:38:11 +08:00
li 61fe0b70dd docs: add contributors wall, fix hook example, update test badge
- Add contributors section (contrib.rocks) to both README and README.zh-CN
- Fix manual hook example: `exit 1` → `true` (matches code fix)
- Update test badge: 131 → 134 passed
2026-03-11 12:36:45 +08:00
li 35b13119cd fix: hook exit 1 warning on non-codeagent-wrapper Bash calls
- Change `|| exit 1` to `|| true` — non-matching commands now silently pass
- Add `2>/dev/null` to jq — suppress stderr when jq is missing
- Auto-migrate: upgrade replaces old `exit 1` hooks with fixed version

Fixes: PreToolUse hook "failed with non-blocking status code 1" warning
that fired on every Bash command not containing "codeagent-wrapper"
2026-03-11 12:32:59 +08:00