| Version | Supported |
|---|---|
| 0.1.x | ✅ |
loop-copilot 项目重视安全问题。如果你发现了安全漏洞,请通过以下方式报告:
- 私密报告:通过 GitHub Security Advisory 提交
- Email:发送至项目维护者邮箱,标题包含
[SECURITY]前缀
请不要在公开 Issue 或 PR 中报告安全漏洞。
你将在 48 小时内收到初步回复,并在 7 天内获得评估结果和修复计划。
loop-copilot 基于以下安全设计原则构建:
termination.status初始值为"running"- 只有显式调用
markComplete()且通过全部校验后,才会写入"complete" - 异常/崩溃/超时均保持 Default-FAIL 状态
所有工具调用经过 6 层闸门检查:
| 闸门 | 内容 | L1 (safe) | L2 (auto) | L3 (unsafe) |
|---|---|---|---|---|
| G1 | 内容安全(令牌泄露) | deny | deny | deny |
| G2 | 方案确认 | ask | allow+log | allow |
| G3 | 依赖安装 | deny 非方案 | deny 非默认源 | allow |
| G4 | 危险操作 | 灾难 deny; >3 deny | 灾难 deny; >10 deny | 灾难 deny |
| G5 | 文件变更预览 | deny->preview | allow | allow |
| G6 | 完成声明 | 六层校验 | 六层校验 | 四层最小 |
令牌绝不写入以下任何位置:
state.jsonartifacts/下的任何文件<<<LOOP_STATE>>>SAP blockruns.log审计日志(自动脱敏ghp_***REDACTED***)
Agent 不得直接写入以下文件:
gate_state.json(仅 SessionHooks/Watchdog 可写).state_lock/.gate_lock(并发控制锁文件)
独立的子进程执行 6 项周期检查:
- CHECK-1: Hook 心跳存活(>60s 无触发 -> WARN)
- CHECK-2: gate_state.json mtime(>120s 未更新 -> WARN)
- CHECK-3: Copilot 进程存活(PID 不存在 -> ERROR + termination=failed)
- CHECK-4: deny 风暴(consecutive_deny > 20 -> ERROR)
- CHECK-5: 会话超时(>30min -> ERROR + termination=timeout)
- CHECK-6: 文件变更速率(60s 内 >50 -> CRITICAL)
所有状态文件写入使用 .lock -> .tmp -> .bak -> rename 四步原子写入协议,防止并发冲突和崩溃损坏。
项目依赖:
@github/copilot-sdkv1.0.0 -- Copilot SDK 核心typescriptv5.5.0 -- 开发依赖@types/bunv1.3.14 -- 开发依赖
建议定期运行 bun update 更新依赖到最新安全版本。
loop-copilot 使用 6 方法 + BYOK 认证链,按优先级自动探测:
- gitHubToken(显式传入)
- capi_hmac(环境变量 CAPI_HMAC_KEY)
- copilot_api_token(环境变量 GITHUB_COPILOT_API_TOKEN)
- github_token(环境变量 GITHUB_TOKEN / GH_TOKEN)
- oauth(系统凭据管理器 / copilot CLI login)
- gh_auth(gh auth token 命令输出)
- BYOK: bringYourOwnKey(自备 API key + endpoint override)
令牌在日志中自动脱敏(ghp_***REDACTED***, sk-***REDACTED*** 等),不持久化到任何状态文件。