Commit Graph
1229 Commits
Author SHA1 Message Date
kaitranntt 759d43c8f7 Merge remote-tracking branch 'origin/dev' into feat/login-auth 2026-01-13 14:31:01 -05:00
github-actions[bot] 097b018532 chore(release): 7.18.3-dev.1 [skip ci] 2026-01-13 19:22:20 +00:00
Kai (Tam Nhu) TranandGitHub 8fb822f873 Merge pull request #320 from kaitranntt/feat/doctor-help-command
feat(doctor): add --help flag with comprehensive command documentation
2026-01-13 14:21:23 -05:00
github-actions[bot] aaa8f88662 chore(sync): merge main into dev after release [skip ci]
# Conflicts:
#	package.json
2026-01-13 19:02:01 +00:00
semantic-release-bot 75609221b1 chore(release): 7.18.3 [skip ci]
## [7.18.3](https://github.com/kaitranntt/ccs/compare/v7.18.2...v7.18.3) (2026-01-13)

### Bug Fixes

* **ci:** simplify AI review workflow by disabling progress tracking ([4ef2d48](https://github.com/kaitranntt/ccs/commit/4ef2d4848cf12d197ba1f8cd5dac66b55c82c8be))
* **ci:** simplify AI review workflow by disabling progress tracking ([#323](https://github.com/kaitranntt/ccs/issues/323)) ([39b37ca](https://github.com/kaitranntt/ccs/commit/39b37caa892f8b723f003c8ed0c6d8f2fe96d799))
2026-01-13 19:01:33 +00:00
github-actions[bot] dfe0e2d5ba chore(release): 7.18.2-dev.1 [skip ci] 2026-01-13 19:01:15 +00:00
Kai (Tam Nhu) TranandGitHub 39b37caa89 fix(ci): simplify AI review workflow by disabling progress tracking (#323)
fix(ci): simplify AI review workflow by disabling progress tracking
2026-01-13 14:00:31 -05:00
kaitranntt 4ef2d4848c fix(ci): simplify AI review workflow by disabling progress tracking
Root cause of cancellations was track_progress posting comments that
triggered new workflow runs. Instead of complex concurrency isolation,
simply disable progress tracking.

Changes:
- track_progress: false (no intermediate comments)
- Simple concurrency: ai-review-<PR_NUMBER>
- Removed extra bot filters (no longer needed)

Result: Clean PRs with just the final review comment.
2026-01-13 14:00:14 -05:00
github-actions[bot] 9e0ba102a5 chore(sync): merge main into dev after release [skip ci]
# Conflicts:
#	package.json
2026-01-13 18:51:11 +00:00
semantic-release-bot 7355360e8c chore(release): 7.18.2 [skip ci]
## [7.18.2](https://github.com/kaitranntt/ccs/compare/v7.18.1...v7.18.2) (2026-01-13)

### Bug Fixes

* **ci:** isolate concurrency groups by comment author ([3163509](https://github.com/kaitranntt/ccs/commit/316350905233d776968f53732974a77997513f24))
* **ci:** isolate concurrency groups by comment author ([#322](https://github.com/kaitranntt/ccs/issues/322)) ([1d33012](https://github.com/kaitranntt/ccs/commit/1d33012b4e5ad02bac63f9b559f64c3efdf26044))
2026-01-13 18:50:44 +00:00
github-actions[bot] c122754dd1 chore(release): 7.18.1-dev.1 [skip ci] 2026-01-13 18:50:17 +00:00
Kai (Tam Nhu) TranandGitHub 1d33012b4e fix(ci): isolate concurrency groups by comment author (#322)
fix(ci): isolate concurrency groups by comment author
2026-01-13 13:49:42 -05:00
kaitranntt 3163509052 fix(ci): isolate concurrency groups by comment author
Previous fix was incomplete - both human /review comments and bot
progress comments were issue_comment events sharing the same
concurrency group.

Now includes comment author in concurrency group:
- Human: ai-review-issue_comment-kaitranntt-320
- Bot: ai-review-issue_comment-ccs-agy-reviewer[bot]-320
- PR/dispatch: ai-review-<event>-system-320

This completely isolates bot activity from human-triggered reviews.
2026-01-13 13:49:20 -05:00
semantic-release-bot a6346dc393 chore(release): 7.18.1 [skip ci]
## [7.18.1](https://github.com/kaitranntt/ccs/compare/v7.18.0...v7.18.1) (2026-01-13)

### Bug Fixes

* **ci:** add explicit instruction to post review as PR comment ([85f6bc0](https://github.com/kaitranntt/ccs/commit/85f6bc07d44f54673163ad4fed6045a37ccabad0))
* **ci:** exclude bot comments from triggering AI review ([ce70617](https://github.com/kaitranntt/ccs/commit/ce70617ee94645399ba05af581240a696ca9cfed))
* **ci:** prevent self-cancelling AI review workflow ([120aca4](https://github.com/kaitranntt/ccs/commit/120aca466d646ee1c770b2712a0d2742d5dd62d6))
* **ci:** prevent self-cancelling AI review workflow ([#321](https://github.com/kaitranntt/ccs/issues/321)) ([fa1899f](https://github.com/kaitranntt/ccs/commit/fa1899f4611d570b2a8bf5e1a5342d5392466263))
* **delegation:** improve profile discovery and CI workflow ([#310](https://github.com/kaitranntt/ccs/issues/310)) ([affdaea](https://github.com/kaitranntt/ccs/commit/affdaead80c3635f49ef562cac81bde8db0cab23))
* **delegation:** only check profiles defined in config.yaml ([0075248](https://github.com/kaitranntt/ccs/commit/0075248273e2d4912c4e277deebd6e668c5b3466))
* **doctor:** use dynamic profile discovery for delegation check ([f88ad8e](https://github.com/kaitranntt/ccs/commit/f88ad8e78198302f68ee0b420075d704ab01d8ff))
* **ui:** improve sidebar navigation for collapsible menu items ([12b68f9](https://github.com/kaitranntt/ccs/commit/12b68f9f136c3529ac976eaec9e8903b43185e89))
* **ui:** improve sidebar navigation for collapsible menu items ([#313](https://github.com/kaitranntt/ccs/issues/313)) ([e2e2ecd](https://github.com/kaitranntt/ccs/commit/e2e2ecda3c1948fb90f9b47b1e31782ef30cc31f))
2026-01-13 18:45:15 +00:00
Kai (Tam Nhu) TranandGitHub fa1899f461 fix(ci): prevent self-cancelling AI review workflow (#321)
fix(ci): prevent self-cancelling AI review workflow
2026-01-13 13:44:08 -05:00
github-actions[bot] 28f3206a20 chore(release): 7.18.0-dev.6 [skip ci] 2026-01-13 18:42:48 +00:00
kaitranntt 120aca466d fix(ci): prevent self-cancelling AI review workflow
Root cause: Bot progress comments triggered issue_comment events,
which created new workflow runs with the same concurrency group,
causing cancel-in-progress to kill the original review.

Fixes:
1. Add event_name to concurrency group (prevents cross-event cancellation)
2. Explicit filter for ccs-agy-reviewer[bot] comments (belt-and-suspenders)

Closes race condition causing 25+ cancelled AI review runs.
2026-01-13 13:41:30 -05:00
kaitranntt 805ff64a7e Merge remote-tracking branch 'origin/main' into dev 2026-01-13 13:40:08 -05:00
kaitranntt 464b410e8b feat(dashboard): add optional login authentication (#319)
Add session-based username/password auth for CCS dashboard:
- Backend: Express session middleware with bcrypt password verification
- Frontend: React AuthContext, login page, protected routes
- Config: dashboard_auth section in config.yaml + env var overrides
- Security: Rate limiting (5 attempts/15min), persistent session secret
- 16 unit tests for auth middleware

Auth disabled by default for backward compatibility.
2026-01-13 13:27:38 -05:00
kaitranntt 22c7d4a20d feat(doctor): add --help flag with comprehensive command documentation
- Add showHelp() with usage, options, checks, examples, exit codes
- Update handleDoctorCommand to accept args array instead of boolean
- Update ccs.ts to pass restArgs to doctor command
- Add doctor to CLAUDE.md Help Location Reference table
2026-01-13 11:43:27 -05:00
Kai (Tam Nhu) TranGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
e2e2ecda3c fix(ui): improve sidebar navigation for collapsible menu items (#313)
* fix(doctor): use dynamic profile discovery for delegation check

Replace hardcoded ['glm', 'kimi'] list with DelegationValidator.getReadyProfiles()
to detect all configured *.settings.json profiles including mm, or1, g7, etc.

* fix(ci): exclude bot comments from triggering AI review

Bot progress comments were triggering new workflow runs,
which cancelled in-progress reviews due to concurrency group.
Added check for github.event.comment.user.type != 'Bot'.

* chore(release): 7.18.0-dev.1 [skip ci]

* fix(delegation): only check profiles defined in config.yaml

Previously getReadyProfiles() scanned all *.settings.json files,
including orphan files (ghcp, kiro) not in config.yaml.

Now reads from config.yaml:
- profiles section (excluding 'default')
- cliproxy.providers section

Fixes doctor showing 11 profiles instead of configured 9.

* chore(release): 7.18.0-dev.3 [skip ci]

* fix(ui): improve sidebar navigation for collapsible menu items

- CLIProxy Plus click now navigates to Overview AND opens submenu
- Parent menu item highlights when any child route is active
- Provides consistent visual hierarchy across all collapsible menus

* chore(release): 7.18.0-dev.4 [skip ci]

* fix(ci): add explicit instruction to post review as PR comment

The AI reviewer was completing the review but not posting it because
the prompt didn't explicitly instruct it to use gh pr comment.

* chore(release): 7.18.0-dev.5 [skip ci]

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-11 15:24:35 -05:00
github-actions[bot] dcc5c5d4ed chore(release): 7.18.0-dev.5 [skip ci] 2026-01-11 20:21:51 +00:00
kaitranntt 85f6bc07d4 fix(ci): add explicit instruction to post review as PR comment
The AI reviewer was completing the review but not posting it because
the prompt didn't explicitly instruct it to use gh pr comment.
2026-01-11 15:20:46 -05:00
github-actions[bot] 8d634fece6 chore(release): 7.18.0-dev.4 [skip ci] 2026-01-11 19:50:56 +00:00
kaitranntt 12b68f9f13 fix(ui): improve sidebar navigation for collapsible menu items
- CLIProxy Plus click now navigates to Overview AND opens submenu
- Parent menu item highlights when any child route is active
- Provides consistent visual hierarchy across all collapsible menus
2026-01-11 14:49:41 -05:00
github-actions[bot] 14f005a742 chore(release): 7.18.0-dev.3 [skip ci] 2026-01-09 06:20:17 +00:00
kaitranntt b7508910b6 chore: merge main into dev (resolve version conflict) 2026-01-09 01:19:09 -05:00
Kai (Tam Nhu) TranGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
affdaead80 fix(delegation): improve profile discovery and CI workflow (#310)
* fix(doctor): use dynamic profile discovery for delegation check

Replace hardcoded ['glm', 'kimi'] list with DelegationValidator.getReadyProfiles()
to detect all configured *.settings.json profiles including mm, or1, g7, etc.

* fix(ci): exclude bot comments from triggering AI review

Bot progress comments were triggering new workflow runs,
which cancelled in-progress reviews due to concurrency group.
Added check for github.event.comment.user.type != 'Bot'.

* chore(release): 7.18.0-dev.1 [skip ci]

* fix(delegation): only check profiles defined in config.yaml

Previously getReadyProfiles() scanned all *.settings.json files,
including orphan files (ghcp, kiro) not in config.yaml.

Now reads from config.yaml:
- profiles section (excluding 'default')
- cliproxy.providers section

Fixes doctor showing 11 profiles instead of configured 9.

* chore(release): 7.18.0-dev.2 [skip ci]

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-09 00:18:30 -06:00
Kai (Tam Nhu) TranandGitHub 1016cc47e2 Merge pull request #309 from kaitranntt/kai/fix/delegation-validator-config-only
fix(delegation): only check profiles defined in config.yaml
2026-01-09 00:17:04 -06:00
kaitranntt 0075248273 fix(delegation): only check profiles defined in config.yaml
Previously getReadyProfiles() scanned all *.settings.json files,
including orphan files (ghcp, kiro) not in config.yaml.

Now reads from config.yaml:
- profiles section (excluding 'default')
- cliproxy.providers section

Fixes doctor showing 11 profiles instead of configured 9.
2026-01-09 01:13:51 -05:00
github-actions[bot] 150b08fa6e chore(release): 7.18.0-dev.1 [skip ci] 2026-01-09 06:08:16 +00:00
Kai (Tam Nhu) TranandGitHub b080280ecc Merge pull request #308 from kaitranntt/kai/fix/delegation-dynamic-profiles
fix(doctor): use dynamic profile discovery for delegation check
2026-01-09 00:07:14 -06:00
kaitranntt ce70617ee9 fix(ci): exclude bot comments from triggering AI review
Bot progress comments were triggering new workflow runs,
which cancelled in-progress reviews due to concurrency group.
Added check for github.event.comment.user.type != 'Bot'.
2026-01-09 01:05:37 -05:00
kaitranntt f88ad8e781 fix(doctor): use dynamic profile discovery for delegation check
Replace hardcoded ['glm', 'kimi'] list with DelegationValidator.getReadyProfiles()
to detect all configured *.settings.json profiles including mm, or1, g7, etc.
2026-01-09 00:18:35 -05:00
semantic-release-bot f290aae4cb chore(release): 7.18.0 [skip ci]
## [7.18.0](https://github.com/kaitranntt/ccs/compare/v7.17.0...v7.18.0) (2026-01-08)

### Features

* **codex:** inject OpenAI reasoning.effort per tier ([204eea0](https://github.com/kaitranntt/ccs/commit/204eea00ce006fd667ce8c9e71dad397423dae2d))

### Bug Fixes

* **ci:** only auto-review on PR opened, not synchronize ([6f65697](https://github.com/kaitranntt/ccs/commit/6f65697d74772751eb515d76c356f117aaa017d9))
* **cliproxy:** remove stable version cap, only v81-88 are faulty ([0abd021](https://github.com/kaitranntt/ccs/commit/0abd021d256513b88145f88c7a6a2d3a03e0746e))
* **codex-proxy:** security hardening and edge case fixes ([87cfcc5](https://github.com/kaitranntt/ccs/commit/87cfcc5b3cbecfdccaa56c1a02b24fb8b84eb654))

### Styles

* **ci:** enhance ai-review prompt with rich emoji formatting ([6dcc8b2](https://github.com/kaitranntt/ccs/commit/6dcc8b28601cba9067b248c9a6befb3f9c3e1d34))
2026-01-08 16:26:44 +00:00
Kai (Tam Nhu) TranandGitHub 348e9cf637 Merge pull request #305 from kaitranntt/dev
feat(codex): inject OpenAI reasoning.effort per tier
2026-01-08 10:25:40 -06:00
github-actions[bot] af65c832b9 chore(sync): merge main into dev after release [skip ci]
# Conflicts:
#	package.json
2026-01-08 16:20:17 +00:00
github-actions[bot] 79cfa30be7 chore(release): 7.17.0-dev.1 [skip ci] 2026-01-08 16:19:56 +00:00
semantic-release-bot c7a728ff85 chore(release): 7.17.0 [skip ci]
## [7.17.0](https://github.com/kaitranntt/ccs/compare/v7.16.0...v7.17.0) (2026-01-08)

### Features

* **ci:** migrate ai-review to claude-code-action with fork PR support ([#304](https://github.com/kaitranntt/ccs/issues/304)) ([5651935](https://github.com/kaitranntt/ccs/commit/5651935797f71e9cfcf658c701f48d6efa0d9fea)), closes [#298](https://github.com/kaitranntt/ccs/issues/298) [#302](https://github.com/kaitranntt/ccs/issues/302) [#289](https://github.com/kaitranntt/ccs/issues/289)

### Bug Fixes

* **ci:** only auto-review on PR opened, not synchronize ([211e642](https://github.com/kaitranntt/ccs/commit/211e6424f015242ee393b4227dfc649c81115369))
2026-01-08 16:19:49 +00:00
kaitranntt 0e5de5356d Merge branch 'main' into dev 2026-01-08 11:18:59 -05:00
kaitranntt 211e6424f0 fix(ci): only auto-review on PR opened, not synchronize
Removes synchronize trigger to prevent cancel-on-push issue.
Reviews now trigger:
- Auto: when PR is first opened
- Manual: via /review comment
- Manual: via workflow_dispatch

This prevents pushes from cancelling in-progress reviews.
Must be on main for pull_request_target to use updated workflow.
2026-01-08 11:18:41 -05:00
github-actions[bot] 432623fddc chore(release): 7.16.0-dev.9 [skip ci] 2026-01-08 16:11:49 +00:00
kaitranntt 6f65697d74 fix(ci): only auto-review on PR opened, not synchronize
Removes synchronize trigger to prevent cancel-on-push issue.
Reviews now trigger:
- Auto: when PR is first opened
- Manual: via /review comment
- Manual: via workflow_dispatch

This prevents pushes to dev from cancelling in-progress reviews.
2026-01-08 11:10:55 -05:00
github-actions[bot] 37a65e3a32 chore(release): 7.16.0-dev.8 [skip ci] 2026-01-08 16:08:03 +00:00
kaitranntt 6dcc8b2860 style(ci): enhance ai-review prompt with rich emoji formatting
- Add emojis to review focus areas and output sections
- Use priority color indicators (🔴/🟡/🟢)
- Add  for exceptional strengths
- Request tables for checklists
- Improve visual scannability
2026-01-08 11:06:55 -05:00
github-actions[bot] 55049120ae chore(release): 7.16.0-dev.7 [skip ci] 2026-01-08 15:50:52 +00:00
kaitranntt 0abd021d25 fix(cliproxy): remove stable version cap, only v81-88 are faulty
- Set CLIPROXY_MAX_STABLE_VERSION to 9.9.999-0 (effectively no cap)
- v89+ are all stable, no longer show experimental warning
- Only v81-88 remain marked as faulty with known bugs
- Simplified lifecycle.ts to remove redundant experimental warning
2026-01-08 10:49:37 -05:00
github-actions[bot] 40aa3367fb chore(release): 7.16.0-dev.6 [skip ci] 2026-01-08 15:43:34 +00:00
Kai (Tam Nhu) TranandGitHub 71a0f9e91a Merge pull request #301 from oscarlehuu/feat/codex-reasoning-effort
Codex: inject OpenAI reasoning.effort per tier
2026-01-08 09:42:35 -06:00
Kai (Tam Nhu) TranGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
5651935797 feat(ci): migrate ai-review to claude-code-action with fork PR support (#304)
* fix(ci): add persistent logging and remove turn/diff limits for AI review (#298)

- Remove --max-turns limit (unlimited exploration)
- Remove head -8000 diff limit (full diff)
- Add persistent logging to /opt/actions-runner/logs/ai-review/
- Save prompt, stdout, stderr, timing, metadata as separate files
- Add structured metadata.json with run details
- Separate stdout/stderr capture for better debugging
- Include debug info in failure comments (exit code, duration, log path)
- Retry without tool restrictions if first attempt fails

* fix(cliproxy): correct faulty version range to v81-85 and set v89 as stable (#302)

PR #289 incorrectly marked all v81+ as faulty. v89 confirmed stable.
- CLIPROXY_MAX_STABLE_VERSION: 6.6.80-0 → 6.6.89-0
- CLIPROXY_FAULTY_RANGE max: 6.6.999-0 → 6.6.85-0

* ci(github): migrate ai-review to claude-code-action with CLIProxy

- Replace manual claude CLI setup with anthropics/claude-code-action@v1
- Add REVIEW_MODEL env var for centralized model configuration
- Configure ANTHROPIC_BASE_URL for CLIProxy routing
- Enable track_progress for live PR comment updates
- Add model attribution footer instruction
- Restrict tools to gh pr commands, Read, Glob, Grep only
- Simplify workflow from 424 to 55 lines (-369 lines)

* chore(release): 7.16.0-dev.1 [skip ci]

* fix(ci): skip ai-review when secrets unavailable

Add secrets check to job condition to gracefully skip on fork PRs
where CCS_REVIEWER_APP_ID secret is not accessible

* chore(release): 7.16.0-dev.2 [skip ci]

* feat(ci): enable ai-review for fork PRs via pull_request_target

Use pull_request_target event to allow secrets access for fork PRs.
Safe for code review since we only read diff, not execute fork code.

* chore(release): 7.16.0-dev.3 [skip ci]

* fix(ci): disable track_progress for workflow_dispatch

* chore(release): 7.16.0-dev.4 [skip ci]

* fix(ci): clear Claude install locks before each run

* perf(ci): use pre-installed Claude executable on runner

* chore(release): 7.16.0-dev.5 [skip ci]

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-08 09:33:21 -06:00