codex-plugin-cc多任务管理揭秘:job id、--all与按会话隔离机制

codex-plugin-cc多任务管理揭秘:job id、--all与按会话隔离机制 codex-plugin-cc多任务管理揭秘job id、--all与按会话隔离机制【免费下载链接】codex-plugin-ccUse Codex from Claude Code to review code or delegate tasks.项目地址: https://gitcode.com/GitHub_Trending/co/codex-plugin-cc你是否在 Claude Code 里同时让 codex-plugin-cc 跑了多个后台任务却分不清哪个是哪个这篇文章带你揭秘这个插件多任务管理的三大核心机制job id 任务身份、--all 全量查看和按会话隔离帮你在多任务并行时精准控制每一次 Codex 审查与委托任务。codex-plugin-cc 是什么先认识这位多任务管家codex-plugin-cc 是一个为 Claude Code 用户打造的插件让你在已有的 Claude Code 工作流里直接调用 Codex审查代码/codex:review、对抗式审查/codex:adversarial-review、委托调查或修复任务/codex:rescue。由于这些任务常常耗时较长插件提供了--background后台模式任务在后台继续跑你通过/codex:status看进度、/codex:result取结果、/codex:cancel取消任务。当后台任务越来越多谁是谁、谁的归谁就成了关键问题——这正是下面三个机制要解决的。机制一job id——每个任务的唯一身份证job id 是怎么生成的每启动一次后台任务/codex:rescue --background等插件都会生成一个全局唯一的job id格式为前缀-时间戳-随机串task-m3k9x2ab-r7f2qd review-m3ka12cd-q8h3ze前缀标明任务类型task表示委托任务review表示代码审查时间戳用 base36 编码保证大致递增随机串避免同一毫秒内碰撞生成逻辑在 generateJobId 中前缀由 createCompanionJob 根据任务类别传入。job id 不只是编号它串起了整个任务档案每个 job id 背后对应两份落盘文件文件内容job-id.json任务元数据状态、阶段、Codex 会话 ID、耗时、摘要job-id.log完整执行日志进度行、最终输出任务状态会沿queued → running → completed / failed / cancelled流转后台任务由一个独立的 worker 进程托管其 PID 也记录在任务档案里见 enqueueBackgroundTask所以/codex:cancel才能精准终止指定任务。支持前缀匹配输一半 id 也能定位调用/codex:status task-abc时不必输完整 id——matchJobReference 的匹配规则是精确匹配优先否则做前缀匹配唯一命中就自动补全前缀命中多个任务会报错提示你提供更长的 id完全找不到则提示先运行/codex:status查看已知任务这让日常操作变得很轻/codex:status看一眼列表 → 复制前几个字符 →/codex:result task-abc即可取回结果。机制二--all——/codex:status 的全量查看开关默认只展示最近 8 条保持界面清爽/codex:status的完整参数为[job-id] [--wait] [--timeout-ms ms] [--all]见 status.md。不加--all时Recent jobs 区域默认只列最近 8 个已结束任务由 DEFAULT_MAX_STATUS_JOBS 控制。一次/codex:status输出的结构如下区域展示内容Active jobs所有queued/running任务表格含阶段、耗时、可执行动作Latest finished最近一个已结束的任务Recent jobs其余历史任务默认上限 8 条--all时不截断什么时候该用 --all在 buildStatusSnapshot 中--all直接决定 recent 列表是否被截断平时盯进度/codex:status足够输出紧凑回溯历史、找旧任务的 job id/codex:status --all一次看全只关心某个任务/codex:status job-id查看完整详情 小提示--wait需要搭配 job id 使用插件会轮询该任务直到结束默认超时 240 秒见 handleStatus适合发出去就等它跑完的场景。机制三按会话隔离——你的任务只属于当前 Claude 会话这是多任务管理里最容易被忽略、也最贴心的一环同一个仓库里不同 Claude Code 会话的后台任务互不干扰。会话 ID 从哪来SessionStart 钩子插件注册了会话生命周期钩子见 hooks.json。会话开始时handleSessionStart 把当前 Claude 会话的session_id写入环境变量CODEX_COMPANION_SESSION_ID定义于 tracked-jobs.mjs。之后每创建一个任务createJobRecord 都会自动把该 sessionId 盖在任务档案上——这就是按会话归属的起点。三个命令都遵守隔离规则只要当前环境里能取到 sessionIdfilterJobsForCurrentSession 就会先把任务列表过滤为本会话创建的任务命令不带 job id 时隔离行为/codex:status只展示本会话的任务/codex:result只从本会话的已结束任务中取最新结果resolveResultJob/codex:cancel只匹配本会话的活跃任务若有多个则要求你显式传 job idresolveCancelableJob而一旦你显式传了 job id隔离规则让位——精确 id 可以跨会话定位任务方便交接场景。会话结束时自动清场会话关闭时cleanupSessionJobs 会找出属于本会话的任务仍在运行的任务直接终止进程树从状态文件中移除本会话的全部任务记录所以你不会在/codex:status里看到上一轮会话遗留的僵尸任务多轮使用也始终干净。状态都存哪儿仓库无关的本地状态目录所有任务状态落在插件数据目录环境变量CLAUDE_PLUGIN_DATA下目录名由仓库名 工作区路径哈希组成见 resolveStateDir保证同一台机器上不同仓库互不串档拿不到插件目录时回退到系统临时目录的codex-companion。两个容量细节值得知道状态文件最多保留50 个任务MAX_JOBS超出的最旧任务连同其.json与.log一起被清理saveState工作区根目录优先取 git 仓库根resolveWorkspaceRoot因此子目录里发起的任务也归属同一仓库档案实战三个命令管好一组后台任务把三个机制串起来日常多任务流程就是这样# 1. 并发发起两个后台任务同一会话内 /codex:rescue --background investigate why the build fails /codex:review --background # 2. 查看本会话任务job id 在列表第一列 /codex:status # 历史多时加 --all 全量查看 /codex:status --all # 3. 用 job id 前缀精准操作 /codex:status task-m3k9x2 # 查看单个任务详情 /codex:cancel task-m3k9x2 # 取消指定任务 /codex:result task-m3k9x2 # 任务结束后取回结果✅ 记住这条心法无 id 时看本会话有 id 时看精确命中想要全貌就--all。总结一张表看懂三大机制机制解决什么问题关键入口job id多任务并行时如何唯一标识、精准操作每个任务generateJobId、matchJobReference--all历史任务被截断时如何一次性看全buildStatusSnapshot、status.md按会话隔离多个 Claude 会话共用仓库时任务如何互不干扰、随会话自动清理session-lifecycle-hook.mjs、hooks.json理解了 job id、--all与会话隔离你在 Claude Code 里并行调度多个 Codex 任务时就能做到发起不混乱、查询不翻找、结束不残留——这正是 codex-plugin-cc 多任务管理的设计精髓。【免费下载链接】codex-plugin-ccUse Codex from Claude Code to review code or delegate tasks.项目地址: https://gitcode.com/GitHub_Trending/co/codex-plugin-cc创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考