Commit Graph

299 Commits

Author SHA1 Message Date
q792602257 7e9df04bf8 Web优化 1 2026-06-12 14:01:55 +08:00
q792602257 17ca339c66 ESLint fix 2026-06-12 13:41:23 +08:00
q792602257 522e88a6a2 前端优化 2026-06-12 13:36:39 +08:00
q792602257 f92ad5fab4 打包 2026-06-12 13:09:19 +08:00
q792602257 4ea4adfd8e ACP / MCP 2026-06-12 11:44:19 +08:00
q792602257 2a9661a6ef 功能补齐、查看git提交历史 2026-06-12 09:21:37 +08:00
q792602257 fba3a14367 可快速切换面板 2026-06-11 14:26:27 +08:00
q792602257 0561e126cd ACP / MCP 完善 2026-06-11 12:43:18 +08:00
q792602257 1415d3b43b 完善 MCP 工具 2026-06-11 08:21:17 +08:00
q792602257 c0f15050d0 支持让 AI 根据固定格式来提问,优化用户体验 2026-06-10 21:31:27 +08:00
q792602257 cdb22d4ddb Merge remote-tracking branch 'origin/master' 2026-06-10 18:32:13 +08:00
q792602257 6eca9c053b 主流程 2026-06-10 18:27:08 +08:00
q792602257 8d16fabaed fix: address code review — error-path tests, edge cases, UX improvements 2026-06-10 18:20:54 +08:00
q792602257 493775cd1e 删除会话 2026-06-10 18:11:46 +08:00
q792602257 112b99035c feat(web): base_branch selector with remote branch list in worktree creation 2026-06-10 18:09:41 +08:00
q792602257 12ba5d5365 feat(workspace): add GET /branches endpoint 2026-06-10 18:07:13 +08:00
q792602257 665d029d2b feat(workspace): add ListBranches method to WorkspaceService
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-10 18:05:18 +08:00
q792602257 a4a6e6a01a feat(workspace): fetch+checkout when switching default_branch 2026-06-10 18:00:18 +08:00
q792602257 3a1909f8f4 test(git): add parseRemoteBranches unit test 2026-06-10 17:57:48 +08:00
q792602257 a49d45a846 feat(git): add FetchRemoteBranch, Checkout, ListRemoteBranches to Runner 2026-06-10 17:56:47 +08:00
q792602257 b20435c027 主流程 2026-06-10 17:53:09 +08:00
q792602257 c6f239f424 git workspace逻辑 2026-06-10 16:06:55 +08:00
q792602257 023ab2f30e git 逻辑 2026-06-10 15:30:52 +08:00
q792602257 41f2a84979 SSE 调整 2026-06-10 15:02:58 +08:00
q792602257 5f015a5c75 SSE 调整 2026-06-10 14:48:28 +08:00
q792602257 eb33f534f5 前端页面调整 2026-06-10 14:18:40 +08:00
q792602257 9516adc810 前端页面调整 2026-06-10 14:04:14 +08:00
q792602257 a34566e6fa 修复启动问题 2026-06-10 13:47:25 +08:00
q792602257 051d609f3b 修复启动问题 2026-06-10 10:20:11 +08:00
q792602257 9853b6fc1b 修复启动问题 2026-06-10 10:01:12 +08:00
q792602257 aaac7e9d98 改动 2026-06-10 07:55:16 +08:00
q792602257 821eca9f0c compose 2026-06-09 23:44:43 +08:00
q792602257 01b3375395 原型阶段 2026-06-09 23:44:31 +08:00
q792602257 ea1d0fb3bd Merge remote-tracking branch 'origin/master' 2026-06-09 22:43:43 +08:00
q792602257 f4a7c770af 启动项目逻辑 2026-06-09 22:43:29 +08:00
q792602257 eeccf4c1b6 Dockerfile 更新 2026-06-09 22:01:20 +08:00
q792602257 d5a28b11a3 国内镜像 2026-06-09 21:53:24 +08:00
q792602257 fbf31183ae Jenkinsfile 2026-06-09 21:44:37 +08:00
q792602257 0484e79978 修改 2026-06-09 21:22:28 +08:00
q792602257 8b41ff9360 fix(acp): add IssueSystemTokenWithTx to fakeSupMCPTokens
Fixes interface compliance after I2 added IssueSystemTokenWithTx to
the TokenService interface.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-09 21:17:51 +08:00
q792602257 e4cb55dae2 test(mcp): K5 — prompts + resources integration scenarios
- PromptsList_FromTemplates: system template visible via prompts/list + prompts/get
- ResourceRead_NotFound: non-existent pm://projects/{uuid} returns error
- ResourceList_ScopeFilter: in-scope project resource readable; resources listed

All 14 spec §8.2 integration scenarios now complete.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-08 13:31:18 +08:00
q792602257 f708e102d8 test(mcp): K4 — rate limit + ACP lifecycle + startup reaper
- RateLimit_PerToken: 110 burst calls -> at least 1 rate-limit error
- ACPSession_TokenLifecycle: create session -> token appears; terminate -> revoked
- StartupReaper: crashed session + live token -> ReapStaleSystemTokens revokes

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-08 13:26:12 +08:00
q792602257 e0e9ae7bda test(mcp): K2 — transport + auth integration scenarios
- StreamableHTTP_FullFlow: initialize → tools/list → tools/call
- LegacySSE_FullFlow: same flow over /mcp/sse
- BearerVsQueryToken: header + ?token= both authenticate
- MCPSDKVersionNegotiation: unknown version -> graceful response

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-08 13:24:36 +08:00
q792602257 20b449bb37 test(mcp): K3 — scope + visibility + audit integration scenarios
- ScopeViolation_Tool: token without create_issue can't call it
- ScopeViolation_Project: token can't access projects outside scope.project_ids
- VisibilityRespect: service-layer visibility blocks private projects
- WriteToolAudit: audit_logs contains via_mcp:true + mcp_token_id

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-08 13:20:11 +08:00
q792602257 f2ed098f32 test(mcp): integration scaffold — 14 scenarios per spec §8.2
- Matrix dispatcher with 14 sub-test stubs
- Suite struct with setup/cleanup lifecycle
- All sub-tests start as t.Skip stubs; filled in K2-K5

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-08 13:11:04 +08:00
q792602257 0644fc9b3b feat(app): startup reaper for MCP system tokens (spec §6.4)
- Runs after ACP startup reaper marks stuck sessions as crashed
- mcpRepo.ReapStaleSystemTokens revokes tokens bound to crashed/exited sessions
- Single audit entry per batch: mcp.token.expire_on_restart with count + token_ids
- Errors logged but don't block boot

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-08 13:08:21 +08:00
q792602257 6917acb778 feat(jobs): wire mcp_tokens_purge runner into jobs.Module
- Config.MCPTokensPurge + scheduleEntry branch
- app.go constructs runner with mcpTokensPurgeAdapter
- Registered as 'mcp_tokens_purge' in RunnerFns map

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-08 13:05:12 +08:00
q792602257 18f6c8bd2e feat(acp): SessionService.Create issues system MCP token in tx
- InTx wraps InsertSession + IssueSystemTokenWithTx (spec §6.1 atomic guarantee)
- Tx failure -> releaseOnFailure (worktree rollback)
- Spawn called with extraEnv = ACW_MCP_TOKEN + ACW_MCP_URL
- Spawn failure -> RevokeBySession (idempotent) + releaseOnFailure
- app.go SessionService construction updated with mcpTokens + config
- Unit tests: token issuance happy path + rollback on token failure

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-08 13:01:16 +08:00
q792602257 146dca7738 feat(jobs): mcp_tokens_purge runner (spec §6.5)
- Periodic delete of mcp_tokens where (expired OR revoked) before retention
- 24h interval default, 7d retention default
- Mirrors acp_events_purge pattern: idempotent, error-tolerant

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-08 12:56:10 +08:00
q792602257 702daced7d feat(acp): Supervisor.onExit revokes system MCP token (spec §6.3)
- mcpTokens dep added to Supervisor; nil-safe (test fixtures may skip)
- RevokeBySession called after audit Record in onExit
- app.go wires mcpTokenSvc (was nil placeholder)
- Integration test: fakeSupMCPTokens verifies onExit calls RevokeBySession

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-08 12:52:25 +08:00