|
4 | 4 | {"id":"claude_code_bridge-4.2","title":"cq: add --session and make lock per (cwd,session)","description":"Allow running multiple `cq` instances for the same repo by namespacing the per-directory lock.\n\n## Scope\n- Add `--session \u003cname\u003e` to `cq` (default `default`)\n- Change the `ProviderLock(\"cq\", cwd=...)` key to include session name (e.g. `f\"{cwd}::{session}\"`).\n- Export `CQ_SESSION=\u003cname\u003e` in managed env so child panes inherit it.\n\n## Acceptance\n- `cq --session A ...` and `cq --session B ...` can run concurrently in the same directory.\n","status":"closed","priority":1,"issue_type":"task","owner":"stefanc@allenai.org","created_at":"2026-02-03T18:50:38.852098-08:00","created_by":"stefanc-ai2","updated_at":"2026-02-03T19:27:11.073595-08:00","closed_at":"2026-02-03T19:27:11.073595-08:00","close_reason":"Added (default: or 'default'), exported CQ_SESSION into managed pane env, and namespaced launcher locking per (cwd,session) while also acquiring the legacy per-directory lock for the default session to avoid mixed-version double-launch. Added tests + README notes.","labels":["sessions","cli"],"dependencies":[{"issue_id":"claude_code_bridge-4.2","depends_on_id":"claude_code_bridge-4","type":"parent-child","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"claude_code_bridge-4.2","depends_on_id":"claude_code_bridge-4.1","type":"blocks","created_at":"0001-01-01T00:00:00Z"}],"comments":[{"id":1,"issue_id":"claude_code_bridge-4.2","author":"stefanc-ai2","text":"Summary: added cq --session (default from CQ_SESSION env var, else default); launcher lock is now per (cwd,session) and default session also acquires the legacy per-directory lock to prevent mixed-version double-launch; CQ_SESSION is exported into managed env for child panes; added tests + README docs. Note: close-reason string lost the 'cq --session' snippet due to shell backtick substitution.","created_at":"2026-02-03T19:27:47.680199-08:00"}]} |
5 | 5 | {"id":"claude_code_bridge-4.3","title":"Session-scoped session files under .cq_config/sessions/\u003cname\u003e/","description":"Persist provider session files per session name.\n\n## Scope\n- New layout: `.cq_config/sessions/\u003cname\u003e/.codex-session` and `.cq_config/sessions/\u003cname\u003e/.claude-session`\n- Backcompat:\n - If no session specified, keep using existing `.cq_config/.codex-session` / `.cq_config/.claude-session` (default session)\n - Optionally migrate legacy root files into sessions/default/ (best-effort)\n\n## Acceptance\n- Starting a second session does not overwrite the first session's session files.\n","status":"closed","priority":1,"issue_type":"task","owner":"stefanc@allenai.org","created_at":"2026-02-03T18:50:39.013882-08:00","created_by":"stefanc-ai2","updated_at":"2026-02-03T19:44:26.180797-08:00","closed_at":"2026-02-03T19:44:26.180797-08:00","close_reason":"Implemented session-scoped provider session files for named sessions under .cq_config/sessions/\u003cname\u003e/ while keeping default session in .cq_config/. Updated AILauncher to create session dirs before writes, updated README, and added tests ensuring sessions don’t clobber each other.","labels":["sessions","state"],"dependencies":[{"issue_id":"claude_code_bridge-4.3","depends_on_id":"claude_code_bridge-4","type":"parent-child","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"claude_code_bridge-4.3","depends_on_id":"claude_code_bridge-4.1","type":"blocks","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"claude_code_bridge-4.3","depends_on_id":"claude_code_bridge-4.2","type":"blocks","created_at":"0001-01-01T00:00:00Z"}]} |
6 | 6 | {"id":"claude_code_bridge-4.4","title":"Namespace pane_title_marker per session","description":"Prevent pane marker collisions across sessions.\n\n## Scope\n- Include session name (and ideally a short run id) in `pane_title_marker` for each provider.\n- Ensure the *full marker* is stored in the session file and used for rediscovery.\n\n## Acceptance\n- Two sessions in the same project do not share markers like `CQ-Codex` / `CQ-Claude`.\n- Rediscovery finds the correct pane when a pane_id changes.\n","status":"closed","priority":1,"issue_type":"task","owner":"stefanc@allenai.org","created_at":"2026-02-03T18:50:39.180659-08:00","created_by":"stefanc-ai2","updated_at":"2026-02-03T21:05:43.438546-08:00","closed_at":"2026-02-03T21:05:43.438546-08:00","close_reason":"Namespaced pane_title_marker per session + run id (CQ-\u003csession\u003e-\u003cProvider\u003e-\u003crun\u003e) and updated all codex/claude tmux+wezterm title sites to use it so rediscovery can’t collide across sessions. Added tests for marker format/uniqueness and documented namespaced pane titles in README.","labels":["sessions","tmux","wezterm"],"dependencies":[{"issue_id":"claude_code_bridge-4.4","depends_on_id":"claude_code_bridge-4","type":"parent-child","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"claude_code_bridge-4.4","depends_on_id":"claude_code_bridge-4.3","type":"blocks","created_at":"0001-01-01T00:00:00Z"}]} |
7 | | -{"id":"claude_code_bridge-4.5","title":"ask: add --session and route using session-scoped session files","description":"Make `ask` able to target a specific session.\n\n## Scope\n- Add `--session \u003cname\u003e` to `bin/ask` (default from `CQ_SESSION`, else `default`).\n- Load the provider session for the selected session.\n\n## Acceptance\n- `ask --session A codex ...` routes to A.\n- Running `ask codex ...` inside session A routes to A (via `CQ_SESSION`).\n","status":"open","priority":1,"issue_type":"task","owner":"stefanc@allenai.org","created_at":"2026-02-03T18:50:39.371587-08:00","created_by":"stefanc-ai2","updated_at":"2026-02-03T18:50:39.371587-08:00","labels":["sessions","cli","routing"],"dependencies":[{"issue_id":"claude_code_bridge-4.5","depends_on_id":"claude_code_bridge-4","type":"parent-child","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"claude_code_bridge-4.5","depends_on_id":"claude_code_bridge-4.1","type":"blocks","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"claude_code_bridge-4.5","depends_on_id":"claude_code_bridge-4.6","type":"blocks","created_at":"0001-01-01T00:00:00Z"}]} |
| 7 | +{"id":"claude_code_bridge-4.5","title":"ask: add --session and route using session-scoped session files","description":"Make `ask` able to target a specific session.\n\n## Scope\n- Add `--session \u003cname\u003e` to `bin/ask` (default from `CQ_SESSION`, else `default`).\n- Load the provider session for the selected session.\n\n## Acceptance\n- `ask --session A codex ...` routes to A.\n- Running `ask codex ...` inside session A routes to A (via `CQ_SESSION`).\n","status":"closed","priority":1,"issue_type":"task","owner":"stefanc@allenai.org","created_at":"2026-02-03T18:50:39.371587-08:00","created_by":"stefanc-ai2","updated_at":"2026-02-03T21:52:53.90757-08:00","closed_at":"2026-02-03T21:52:53.90757-08:00","close_reason":"Added ask --session \u003cname\u003e to target a specific CQ session; validates names via session_scope, passes session/env through to provider session loaders, and improves error hints to include the selected session and the correct cq --session command. Updated README and added tests for explicit --session, CQ_SESSION env defaulting, and invalid session rejection.","labels":["sessions","cli","routing"],"dependencies":[{"issue_id":"claude_code_bridge-4.5","depends_on_id":"claude_code_bridge-4","type":"parent-child","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"claude_code_bridge-4.5","depends_on_id":"claude_code_bridge-4.1","type":"blocks","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"claude_code_bridge-4.5","depends_on_id":"claude_code_bridge-4.6","type":"blocks","created_at":"0001-01-01T00:00:00Z"}]} |
8 | 8 | {"id":"claude_code_bridge-4.6","title":"Make codex/claude session loaders + registry session-aware","description":"Update session resolution so multiple sessions can coexist.\n\n## Scope\n- Update `lib/codex_session.py` + `lib/claude_session.py` to accept a `session` parameter (or read `CQ_SESSION`).\n- Update `lib/claude_session_resolver.py` so it prefers session-scoped files/registry records and avoids cross-session collisions.\n- Consider adding `cq_session_name` to registry records for additional disambiguation.\n\n## Acceptance\n- With two active sessions, `ask --session A claude ...` never resolves B's pane.\n","status":"closed","priority":1,"issue_type":"task","owner":"stefanc@allenai.org","created_at":"2026-02-03T18:50:39.542717-08:00","created_by":"stefanc-ai2","updated_at":"2026-02-03T21:31:27.028941-08:00","closed_at":"2026-02-03T21:31:27.028941-08:00","close_reason":"Session-aware loaders/resolution: added cq_session_name to registry records, filtered registry lookups by session, and threaded session/env through codex/claude loaders + claude_session_resolver to avoid cross-session pane collisions. Added tests for registry+resolver session filtering (named + default).","labels":["sessions","registry"],"dependencies":[{"issue_id":"claude_code_bridge-4.6","depends_on_id":"claude_code_bridge-4","type":"parent-child","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"claude_code_bridge-4.6","depends_on_id":"claude_code_bridge-4.1","type":"blocks","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"claude_code_bridge-4.6","depends_on_id":"claude_code_bridge-4.3","type":"blocks","created_at":"0001-01-01T00:00:00Z"}]} |
9 | 9 | {"id":"claude_code_bridge-4.7","title":"cq-mounted: add --session and list all sessions","description":"Teach `cq-mounted` about multiple sessions.\n\n## Scope\n- Support `cq-mounted --session \u003cname\u003e` (or `CQ_SESSION`) to answer \"is this session mounted?\"\n- Add `cq-mounted --all-sessions` to enumerate `.cq_config/sessions/*` plus the default session.\n\n## Acceptance\n- Skills using `cq-mounted` from inside a session see the right providers.\n","status":"open","priority":2,"issue_type":"task","owner":"stefanc@allenai.org","created_at":"2026-02-03T18:50:39.728948-08:00","created_by":"stefanc-ai2","updated_at":"2026-02-03T18:50:39.728948-08:00","labels":["sessions","cli"],"dependencies":[{"issue_id":"claude_code_bridge-4.7","depends_on_id":"claude_code_bridge-4","type":"parent-child","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"claude_code_bridge-4.7","depends_on_id":"claude_code_bridge-4.1","type":"blocks","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"claude_code_bridge-4.7","depends_on_id":"claude_code_bridge-4.3","type":"blocks","created_at":"0001-01-01T00:00:00Z"}]} |
10 | 10 | {"id":"claude_code_bridge-4.8","title":"Tests + README docs for multi-session","description":"Add coverage and documentation for multi-session workflow.\n\n## Scope\n- Unit tests for session path selection and routing precedence.\n- Update README with examples:\n - Start two sessions\n - Target via `ask --session`\n - In-pane default behavior via `CQ_SESSION`\n\n## Acceptance\n- Tests cover session selection rules and no collisions.\n- README documents multi-session usage succinctly.\n","status":"open","priority":2,"issue_type":"task","owner":"stefanc@allenai.org","created_at":"2026-02-03T18:50:39.914963-08:00","created_by":"stefanc-ai2","updated_at":"2026-02-03T18:50:39.914963-08:00","labels":["sessions","tests","docs"],"dependencies":[{"issue_id":"claude_code_bridge-4.8","depends_on_id":"claude_code_bridge-4","type":"parent-child","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"claude_code_bridge-4.8","depends_on_id":"claude_code_bridge-4.5","type":"blocks","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"claude_code_bridge-4.8","depends_on_id":"claude_code_bridge-4.7","type":"blocks","created_at":"0001-01-01T00:00:00Z"}]} |
|
0 commit comments