| content |
{"Commits":[{"Sha1":"d66fbcbb4 {"Commits":[{"Sha1":"d66fbcbb48ca0e0fc2b252b67accac472b8d800f","Message":"feat(kernel): integrate governed LLM execution and operations UI\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-19T23:36:38-07:00"},{"Sha1":"6f6027d4e97cd6dfc976f129ce62cf9e51786c1b","Message":"feat(governance): C19 报告内容指纹 worktreeHash + 扫描器排除单源 scan-ignore\n\n- provenance schema v2:dirty 工作区内容指纹(跟踪 diff + 未跟踪内容哈希,clean 恒 null),\n 取材边界与 worktreeDirty 完全同源;静态子报告六字段同 run 对账,伪造 env / dirty-指纹\n 不相干 / 聚合期间内容变化 均即红;验收报告陈旧性 staleAcceptanceReports 显式记录不阻断\n (提交动作必然产生新 SHA,硬闸在 CI 干净 checkout 下恒红,判责理由见 CLAUDE.md 事实作用域)\n- 六门禁扫描器 IGNORE 表收口单源 scripts/lib/scan-ignore.mjs:.next* 前缀统一按产物豁免\n (NEXT_DIST_DIR=.next-fastify 曾被判 17 条 naming + 3 条 F7 假红);.gitignore 补 .next-*\n- 负向测试已实跑:伪造指纹 env exit1;v1 旧 schema 验收报告 schemaVersion+相干性双红\n (换 schema 必须重新出证);植入禁用词红→复原绿;植入空目录红→复原绿\n- 后续:runtime/ui 验收需在稳定树上重跑一次升级到 v2 provenance;在那之前\n check:governance 对旧 v1 验收报告红盘属预期换证语义\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-19T22:20:41-07:00"},{"Sha1":"e3696a9352f893fbdbb954f1ec03fb14185d6b53","Message":"fix(e2e): Work Graph 用例断言收窄 first()(goal 默认同名双命中)+ 验收报告刷新\n\n并行会话重写 spec 时回退了 strict-mode 修复;同时刷新 clean 基线后的\nruntime(292)/ui(11) 报告。views 半成品留给并行会话,本提交不含。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-19T08:58:53-07:00"},{"Sha1":"d7b2d631cf58dd9dcfcf8f2466d43680ea3ea4f3","Message":"feat(workgraph): Project 实体化 + Work Graph 依赖门闸 + 读时进度(§12/§14/§103)\n\n- contracts: project.ts(createProjectSchema/ProjectDto/ProjectProgress,无百分比字段)、\n createTaskSchema.dependsOnTaskIds(max16 默认[])、project.created 事件类型\n- DB: TaskDependency(unique[tenantId,taskId,dependsOnTaskId])+ Project 表,\n 双后端同 SQL 迁移 20260825010000_workgraph_slice\n- 双后端: projects 服务(读时 groupBy 进度:total/succeeded/running/blockedByDeps)+\n Task 创建事务内依赖声明(构造性无环,坏依赖 404)+ ready 门闸\n (409 DEPENDENCIES_NOT_MET + unmet 清单,迁移事务内判定)\n- web: ProjectsPanel + 建任务表单 project/依赖选择 + useRealtime project 分支;\n 含并行会话 workbench/views 面板重构收敛(TaskCreateForm 已吸收依赖字段)\n- 验收: check 绿;check:runtime 292 tests(地板 277→292);check:ui 11 用例(地板 10→11)\n ——2026-08-19 本地实跑,PG:55447 + Redis:6397/2、/3\n- 治理: registry 登记 TaskDependency/projects 入口;CLAUDE.md 真源地图/基线表/新鲜度同步;\n 经验库 workgraph 记录(构造性无环、行为断言防 UI 重构碎测)\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-19T08:55:25-07:00"},{"Sha1":"2763d474f9fc47991ce52ca1f718685d04a1f2d9","Message":"feat(auth): G8 持久化角色表——resolveEffectiveRole「DB 覆盖 claim」+ admin 端点 + bootstrap\n\n用户拍板三决策落地:① 生效角色 = DB 覆盖已验签 claim(可降可升、本地可吊销\nIdP 签发的角色;DB 非法值按无记录 fail-safe,claim 兜底);② 两后端对等\nadmin-only /api/roles(GET/PUT upsert/DELETE 204,admin 判定同样走生效角色)+\nAUTH_BOOTSTRAP_ADMIN=\"tenantId:subject\" 虚拟授予解鸡生蛋;③ cancel 特权闸与\napprove 同步改查生效角色(非特权事件不查 DB)。\n\n- contracts:roleAssignmentSchema / resolveEffectiveRole / isBootstrapAdmin 单源;\n subject 取 JWT sub claim(TenantAuthResult/双后端 TenantAuthContext 透传——\n 实测抓获「contracts 产出 subject 而消费端丢弃」断链,403 全链复现后修复)\n- 表:role_assignments([tenantId,subject] 唯一)+ 两侧逐字节一致迁移;\n owner-matrix 先登记后建表;registry 登记 auth 域(validation/tenant 门禁自动覆盖)\n- 验收:contracts 27/27;两后端全 auth 套件各 20/20(真实 DB,核心负向:\n claim=admin 而 DB 记 member → 403);migrations/schema/validation/write-guard/\n dual-backend/naming/fork-readiness 七门禁绿(全量 check 待伙伴会话 Projects\n 切片收敛后随快照重跑)\n- schema.prisma / registry / owner-matrix / work 路由含伙伴会话 Projects 半成品,\n 本提交不含,随其扫荡入库\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-19T08:44:55-07:00"}],"HeadCommit":{"Sha1":"d66fbcbb48ca0e0fc2b252b67accac472b8d800f","Message":"feat(kernel): integrate governed LLM execution and operations UI\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-19T23:36:38-07:00"},"CompareURL":"luoanwu/digital-employee-os/compare/84afc39d2571c2e7d74673572e81fb737d36e271...d66fbcbb48ca0e0fc2b252b67accac472b8d800f","Len":10}... |