Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
1d1258d
fix: detect and replace dead worker threads + add cleanup tool
daniellee2015 Feb 18, 2026
857c3d7
feat: integrate ccb-multi for true multi-instance concurrent execution
daniellee2015 Feb 18, 2026
1be1530
fix: enable upward traversal for .ccb directory search
daniellee2015 Feb 18, 2026
08a2165
revert: remove upward traversal logic from _find_ccb_config_root
daniellee2015 Feb 18, 2026
64f0d51
fix: resolve Gemini CLI 0.29.0 session path change causing CCB deadlock
daniellee2015 Feb 18, 2026
d95072a
chore: add .DS_Store to .gitignore
daniellee2015 Feb 18, 2026
66ced92
fix: use globally unique instance dir names to prevent Gemini CLI bas…
daniellee2015 Feb 18, 2026
9069b29
docs: rewrite README as independent CCB Multi project
daniellee2015 Feb 18, 2026
a641b16
docs: link npm package for standalone multi-instance install
daniellee2015 Feb 18, 2026
c808032
feat: enhance ccb-cleanup with PID management and verbose mode
daniellee2015 Feb 19, 2026
0086e2f
docs: add process management section for ccb-cleanup enhancements
daniellee2015 Feb 19, 2026
27ddcd9
feat: add tmux pane ID display to ccb-cleanup
daniellee2015 Feb 19, 2026
9a77d61
fix(opencode): add SQLite database support and improve session discovery
daniellee2015 Feb 19, 2026
aad38e3
fix: resolve async communication stuck in processing state
daniellee2015 Feb 19, 2026
feae603
fix: critical daemon stability and unified askd communication
daniellee2015 Feb 20, 2026
8248c9f
chore: add .serena/ to .gitignore
daniellee2015 Feb 20, 2026
ec33073
chore: remove multi/ directory to prepare for submodule
daniellee2015 Feb 20, 2026
c4d6a81
chore: add ccb-multi as git submodule
daniellee2015 Feb 20, 2026
303c8ea
chore: add ccb-status as git submodule
daniellee2015 Feb 20, 2026
50c0a78
fix: ccb-cleanup exit code for kill-pid command
daniellee2015 Feb 20, 2026
5891fef
chore: update ccb-status submodule and reorganize test files
daniellee2015 Feb 23, 2026
d5778ef
feat: add ccb-worktree and ccb-shared-context as submodules, rename m…
daniellee2015 Feb 23, 2026
996676e
chore(ccb-status): update submodule with status detection fixes
daniellee2015 Feb 25, 2026
928e225
chore: update submodules with bin path fixes
daniellee2015 Feb 25, 2026
98e2da8
feat(install): auto-build TypeScript subpackages during installation
daniellee2015 Feb 25, 2026
ace3580
chore(ccb-shared-context): update submodule with TypeScript annotatio…
daniellee2015 Feb 25, 2026
c539e79
chore(ccb-status): update submodule with recover-orphaned feature
daniellee2015 Feb 25, 2026
118751a
Merge upstream/main (v5.2.6) into local branch
daniellee2015 Feb 27, 2026
317531e
fix: enhance daemon lifecycle management and multi-instance safety
daniellee2015 Feb 28, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
__pycache__/
*.pyc
.DS_Store
.serena/
.venv/
.pytest_cache/
docs/
Expand Down
12 changes: 12 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[submodule "ccb-multi"]
path = ccb-multi
url = https://github.com/daniellee2015/ccb-multi.git
[submodule "ccb-status"]
path = ccb-status
url = https://github.com/daniellee2015/ccb-status.git
[submodule "ccb-worktree"]
path = ccb-worktree
url = https://github.com/daniellee2015/ccb-worktree.git
[submodule "ccb-shared-context"]
path = ccb-shared-context
url = https://github.com/daniellee2015/ccb-shared-context.git
138 changes: 26 additions & 112 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,126 +1,40 @@
# Changelog

## Unreleased

## v5.2.5 (2026-02-15)

### 🔧 Bug Fixes

- **Async Guardrail**: Added global mandatory turn-stop rule to `claude-md-ccb.md` to prevent Claude from polling after async `ask` submission
- **Marker Consistency**: `bin/ask` now emits `[CCB_ASYNC_SUBMITTED provider=xxx]` matching all other provider scripts
- **SKILL.md DRY**: Ask skill rules reference global guardrail with local fallback, eliminating duplicate maintenance
- **Command References**: Fixed `/ping` → `/cping` and `ping` → `ccb-ping` in docs

## v5.2.4 (2026-02-11)

### 🔧 Bug Fixes

- **Explicit CCB_CALLER**: `bin/ask` no longer defaults to `"claude"` when `CCB_CALLER` is unset; exits with an error instead
- **SKILL.md template**: Ask skill execution template now explicitly passes `CCB_CALLER=claude`

## v5.2.3 (2026-02-09)

### 🚀 Project-Local History + Legacy Compatibility

- **Local History**: Context exports now save to `./.ccb/history/` per project
- **CWD Scope**: Auto transfer runs only for the current working directory
- **Legacy Migration**: Auto-detect `.ccb_config` and upgrade to `.ccb` when possible
- **Claude /continue**: Attach the latest history file with a single skill

## v5.2.2 (2026-02-04)

### 🚀 Session Switch Capture

- **Old Session Fields**: `.claude-session` now records `old_claude_session_id` / `old_claude_session_path` with `old_updated_at`
- **Auto Context Export**: Previous Claude session is extracted to `./.ccb/history/claude-<timestamp>-<old_id>.md`
- **Transfer Cleanup**: Improved noise filtering while preserving tool-only actions

## v5.1.2 (2026-01-29)

### 🔧 Bug Fixes & Improvements
All notable changes to CCB Multi are documented here.
This project uses its own version line, independent from upstream CCB.

- **Claude Completion Hook**: Unified askd now triggers completion hook for Claude
- **askd Lifecycle**: askd is bound to CCB lifecycle to avoid stale daemons
- **Mounted Detection**: `ccb-mounted` now uses ping-based detection across all platforms
- **State File Lookup**: `askd_client` falls back to `CCB_RUN_DIR` for daemon state files

## v5.1.1 (2025-01-28)

### 🔧 Bug Fixes & Improvements

- **Unified Daemon**: All providers now use unified askd daemon architecture
- **Install/Uninstall**: Fixed installation and uninstallation bugs
- **Process Management**: Fixed kill/termination issues

### 🔧 ask Foreground Defaults

- `bin/ask`: Foreground mode available via `--foreground`; `--background` forces legacy async
- Managed Codex sessions default to foreground to avoid background cleanup
- Environment overrides: `CCB_ASK_FOREGROUND=1` / `CCB_ASK_BACKGROUND=1`
- Foreground runs sync and suppresses completion hook unless `CCB_COMPLETION_HOOK_ENABLED` is set
- `CCB_CALLER` now defaults to `codex` in Codex sessions when unset

## v5.1.0 (2025-01-26)

### 🚀 Major Changes: Unified Command System

**New unified commands replace provider-specific commands:**

| Old Commands | New Unified Command |
|--------------|---------------------|
| `cask`, `gask`, `oask`, `dask`, `lask` | `ask <provider> <message>` |
| `cping`, `gping`, `oping`, `dping`, `lping` | `ccb-ping <provider>` (skill: `/cping`) |
| `cpend`, `gpend`, `opend`, `dpend`, `lpend` | `pend <provider> [N]` |

**Supported providers:** `gemini`, `codex`, `opencode`, `droid`, `claude`

### 🪟 Windows WezTerm + PowerShell Support

- Full support for Windows native environment with WezTerm terminal
- `install.ps1` now generates wrappers for `ask`, `ccb-ping`, `pend`, `ccb-completion-hook`
- Background execution uses PowerShell scripts with `DETACHED_PROCESS` flag
- WezTerm CLI integration with stdin for large payloads (avoids command line length limits)
- UTF-8 BOM handling for PowerShell-generated session files

### 🔧 Technical Improvements
## Unreleased

- `completion_hook.py`: Uses `sys.executable` for cross-platform script execution
- `ccb-completion-hook`:
- Added `find_wezterm_cli()` with PATH lookup and common install locations
- Support `CCB_WEZTERM_BIN` environment variable
- Uses stdin for WezTerm send-text to handle large payloads
- `bin/ask`:
- Unix: Uses `nohup` for true background execution
- Windows: Uses PowerShell script + message file to avoid escaping issues
- Added `SKILL.md.powershell` for `cping` and `pend` skills
## v1.0.0 (2026-02-18)

### 📦 Skills System
Initial release as independent fork. Based on upstream CCB v5.2.6.

New unified skills:
- `/ask <provider> <message>` - Async request to AI provider
- `/cping <provider>` - Test provider connectivity
- `/pend <provider> [N]` - View latest provider reply
### 🚀 Multi-Instance Support

### ⚠️ Breaking Changes
- **ccb-multi**: Launch multiple CCB instances in the same project with independent contexts
- **ccb-multi-status**: Real-time status monitoring for all instances
- **ccb-multi-history**: View instance execution history
- **ccb-multi-clean**: Clean up stale instance directories
- **Collision-Free Naming**: Instance dirs use `inst-<hash>-N` format (8-char SHA-256 of project root)

- Old provider-specific commands (`cask`, `gask`, etc.) are deprecated
- Old skills (`/cask`, `/gask`, etc.) are removed
- Use new unified commands instead
### 🔧 LLM Communication Fixes (upstream-unmerged)

### 🔄 Migration Guide
- **Gemini CLI 0.29.0 Deadlock**: Dual-format session scanning (basename + SHA-256 hash) with auto-adoption
- **Hash Persistence**: `_all_known_hashes` set survives hash format transitions
- **Daemon work_dir Decoupling**: `--work-dir` parameter and `CCB_WORK_DIR` env for `bin/askd`
- **State Validation**: `bin/ask` validates daemon's `work_dir` with fallback to `cwd`
- **Cross-Hash Guard**: Instance mode blocks cross-hash session override to prevent contamination

```bash
# Old way
cask "What is 1+1?"
gping
cpend
### 🔧 Inherited from Upstream CCB v5.2.5

# New way
ask codex "What is 1+1?"
ccb-ping gemini
pend codex
```
- Async Guardrail hardening (global turn-stop rule)
- Marker consistency for `[CCB_ASYNC_SUBMITTED]`
- Project-local history (`.ccb/history/`)
- Session switch capture and context transfer
- Unified command system (`ask`, `ccb-ping`, `pend`)
- Windows WezTerm + PowerShell support
- Email-to-AI gateway (mail system)

---

For older versions, see [CHANGELOG_4.0.md](CHANGELOG_4.0.md)
For upstream CCB changelog prior to this fork, see [CHANGELOG_4.0.md](CHANGELOG_4.0.md) or the [upstream repo](https://github.com/bfly123/claude_code_bridge).
Loading
Loading