|
25112
|
5
|
5
|
5
|
76
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"d0abf16e0 {"Commits":[{"Sha1":"d0abf16e0287850cbb497074a866f1b35074dbb1","Message":"fix(test): auth.roles 升权审计断言按 subject 收窄——合并组合暴露的语义冲突\n\nCI run 32581362188 判责:本地线 C42 审计断言(查询租户全量 role.assigned 并断言恰好 2 条)\n与远端线 PR #3 新增的结果裁决闸用例(同租户内先授过一次 approver)在两条时间线上各自全绿,\n合并后首次同文件运行即互相污染——第 3 条审计事件令断言 3≠2 红。git 无冲突 ≠ 语义无冲突。\n\n修复由并行会话完成、本提交收编(两侧同款):审计断言先 filter(subject === \"u-upgrade\")\n再 toMatchObject——断言收窄到被测 subject,与其他用例的角色授予解耦。\n双端 auth.roles 已在一次性专属库(PG 55447 + Redis 6397/9)各 6/6 复现通过。\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-22T08:28:23-07:00"}],"HeadCommit":{"Sha1":"d0abf16e0287850cbb497074a866f1b35074dbb1","Message":"fix(test): auth.roles 升权审计断言按 subject 收窄——合并组合暴露的语义冲突\n\nCI run 32581362188 判责:本地线 C42 审计断言(查询租户全量 role.assigned 并断言恰好 2 条)\n与远端线 PR #3 新增的结果裁决闸用例(同租户内先授过一次 approver)在两条时间线上各自全绿,\n合并后首次同文件运行即互相污染——第 3 条审计事件令断言 3≠2 红。git 无冲突 ≠ 语义无冲突。\n\n修复由并行会话完成、本提交收编(两侧同款):审计断言先 filter(subject === \"u-upgrade\")\n再 toMatchObject——断言收窄到被测 subject,与其他用例的角色授予解耦。\n双端 auth.roles 已在一次性专属库(PG 55447 + Redis 6397/9)各 6/6 复现通过。\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-22T08:28:23-07:00"},"CompareURL":"luoanwu/digital-employee-os/compare/28ea42cca5364bd425358f803436ae5c8f9bc687...d0abf16e0287850cbb497074a866f1b35074dbb1","Len":1}...
|
1787412510
|
Edit
Delete
|
|
25113
|
5
|
5
|
5
|
68
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"8ae2817a7 {"Commits":[{"Sha1":"8ae2817a709efa63671cab21e05f3c82956487f0","Message":"Rebuild HIGHPRAISE website and preserve audit evidence\n","AuthorEmail":"codex-sites@openai.com","AuthorName":"Codex Sites","CommitterEmail":"codex-sites@openai.com","CommitterName":"Codex Sites","Timestamp":"2026-08-23T06:40:27-07:00"},{"Sha1":"fa356390809a86cf5a491586891f1587d1b68ac5","Message":"Merge remote-tracking branch 'gitea/main'\n\n# Conflicts:\n#\tpublic/llms-full.txt\n#\tpublic/llms.txt\n#\tpublic/robots.txt\n#\tpublic/sitemap.xml\n#\tsrc/App.jsx\n#\tsrc/seo-config.js\n#\ttests/sites-worker.test.mjs\n","AuthorEmail":"codex-sites@openai.com","AuthorName":"Codex Sites","CommitterEmail":"codex-sites@openai.com","CommitterName":"Codex Sites","Timestamp":"2026-08-23T06:12:25-07:00"},{"Sha1":"6b8a730a408dcdefcf04ca5cae80c6cee9f39896","Message":"Govern search retirement reasons\n","AuthorEmail":"codex-sites@openai.com","AuthorName":"Codex Sites","CommitterEmail":"codex-sites@openai.com","CommitterName":"Codex Sites","Timestamp":"2026-07-31T04:56:55-07:00"},{"Sha1":"74c4525085bb3933e00b7152de0cf0810380820d","Message":"Audit conflicting search retirements\n","AuthorEmail":"codex-sites@openai.com","AuthorName":"Codex Sites","CommitterEmail":"codex-sites@openai.com","CommitterName":"Codex Sites","Timestamp":"2026-07-30T22:30:20-07:00"},{"Sha1":"2bab783f3f30df432d633c559f5cbe98014bfb06","Message":"Expose search scope conflicts\n","AuthorEmail":"codex-sites@openai.com","AuthorName":"Codex Sites","CommitterEmail":"codex-sites@openai.com","CommitterName":"Codex Sites","Timestamp":"2026-07-30T22:21:50-07:00"}],"HeadCommit":{"Sha1":"8ae2817a709efa63671cab21e05f3c82956487f0","Message":"Rebuild HIGHPRAISE website and preserve audit evidence\n","AuthorEmail":"codex-sites@openai.com","AuthorName":"Codex Sites","CommitterEmail":"codex-sites@openai.com","CommitterName":"Codex Sites","Timestamp":"2026-08-23T06:40:27-07:00"},"CompareURL":"luoanwu/juhai-official-website/compare/0798f76a854353ae29c9b99cf4eaf91092a25f11...8ae2817a709efa63671cab21e05f3c82956487f0","Len":38}...
|
1787492562
|
Edit
Delete
|
|
25115
|
5
|
5
|
16
|
6
|
0
|
0
|
refs/heads/detached
|
0
|
|
1787498873
|
Edit
Delete
|
|
25117
|
5
|
5
|
16
|
6
|
0
|
0
|
refs/heads/detached
|
0
|
{"Commits":[{"Sha1":"1a23fbc06 {"Commits":[{"Sha1":"1a23fbc06f3d0862aafce4dc8e1815e24443b9ff","Message":"docs(agent): 固化 AI 助手产品与兼容迁移契约\n\n实现内容:\n- 定义 AI 助手目标用户、问题范围、权限与知识边界、澄清拒答、人工复核及会话留存策略\n- 盘点 customer_service 在数据库、API、前端、Prompt、Capability、评测和文档中的兼容语义\n- 将旧 M6 调整为 AI 助手体验层,并把影子运行与单租户试点顺延为 M7\n- 同步统一文档入口与治理经验,保留历史标识和非 AI 助手客服域不变\n\n验证:\n- React 文档真源审计通过:30 个当前入口,0 缺失,0 可执行旧引用,0 七层失败\n- docs 单一真源审计通过:254 个模块,0 failure;159 个 warning 为既有基线\n- git diff --cached --check 通过\n- pnpm 版本切换因 registry 签名校验失败,审计使用当前本地依赖树的 Node/tsx 入口等价执行\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-23T06:38:11-07:00"},{"Sha1":"6e5cb3333749ca73dbdcfab72e1a2918242a7bc4","Message":"fix(agent): 修复任务权限快照加载\n\n实现内容:\n- 按 PostgreSQL UUID 列规范形态识别任务创建人,保留非法占位 ID 失败关闭\n- 规范化权限快照并在查询异常时以空权限降级,日志仅记录错误类型\n- 增加种子管理员、非法 ID 和异常降级的真实轮询回归\n\n验证:\n- 消费者聚焦测试 15/15 通过\n- Agent Sandbox 与 Runtime 安全边界测试 25/25 通过\n- 后端 TypeScript 检查通过\n- 消费者真实性及 AI Assist 四项审计通过\n- pnpm 版本切换因 registry 签名校验失败,测试与检查使用当前本地依赖树等价执行\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-23T06:13:16-07:00"},{"Sha1":"9aa2ee36835da89bebac52db81a80115054206ed","Message":"fix(ai-agent): 修正任务审核状态与类型推荐\n\n- 区分等待执行、生成中和待审核状态,仅为可复核任务提供审核入口\n- 为客服 Agent 推荐服务响应类型,移除其他 Agent 的默认线索评分\n- 补充任务生命周期和创建表单回归测试\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-23T05:56:54-07:00"},{"Sha1":"0fcb5702413eba780205c6d62a0b061dadd674d5","Message":"feat(agent): 完善客服 Trace 与人工反馈闭环\n\n实现内容:\n- 贯通 executionId、traceId、taskId 和 sessionId,记录六阶段可观测 Trace\n- 增加租户隔离的 Trace 聚合接口与最小披露响应\n- 完善人工复核队列的草稿修改、证据、工具、风险和执行信息展示\n- 将人工复核反馈纳入客服评测报告并同步 M5 治理口径\n\n影响范围:\n- 人工通过只确认客服草稿,不发送客户消息或执行业务写入\n- M5 完成不代表已完成生产影子流量或单租户放量\n\n验证:\n- 后端聚焦测试 7 个文件共 56 项通过\n- 前端聚焦测试 1 个文件共 5 项通过\n- 真实 PostgreSQL 复核队列 API 5 项通过\n- 前后端 TypeScript 与相关治理审计通过\n- git diff --cached --check 通过\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-23T05:12:47-07:00"},{"Sha1":"b32ca9274842ce672f92d9f9cf6cc979dfb6706c","Message":"feat(service): 完善客服结果校验与人工复核\n\n实现内容:\n- 增加客服草稿事实、引用和证据一致性校验\n- 固化人工复核仅认可草稿且不执行业务写入的边界\n- 补充纯合成结果评测、真实数据库接口测试和治理记录\n\n验证:\n- pnpm -C backend run type-check\n- 聚焦单测 5 个文件共 50 项通过\n- 真实 PostgreSQL 复核队列接口 5 项通过\n- 相关治理审计通过\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-23T04:06:59-07:00"}],"HeadCommit":{"Sha1":"1a23fbc06f3d0862aafce4dc8e1815e24443b9ff","Message":"docs(agent): 固化 AI 助手产品与兼容迁移契约\n\n实现内容:\n- 定义 AI 助手目标用户、问题范围、权限与知识边界、澄清拒答、人工复核及会话留存策略\n- 盘点 customer_service 在数据库、API、前端、Prompt、Capability、评测和文档中的兼容语义\n- 将旧 M6 调整为 AI 助手体验层,并把影子运行与单租户试点顺延为 M7\n- 同步统一文档入口与治理经验,保留历史标识和非 AI 助手客服域不变\n\n验证:\n- React 文档真源审计通过:30 个当前入口,0 缺失,0 可执行旧引用,0 七层失败\n- docs 单一真源审计通过:254 个模块,0 failure;159 个 warning 为既有基线\n- git diff --cached --check 通过\n- pnpm 版本切换因 registry 签名校验失败,审计使用当前本地依赖树的 Node/tsx 入口等价执行\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-23T06:38:11-07:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/f23014a01acfc11abb251f3a76ea6c904a44ecac...1a23fbc06f3d0862aafce4dc8e1815e24443b9ff","Len":9}...
|
1787498873
|
Edit
Delete
|
|
25119
|
5
|
5
|
16
|
6
|
0
|
0
|
refs/heads/feat/agent-framework
|
0
|
|
1787500853
|
Edit
Delete
|
|
25121
|
5
|
5
|
16
|
6
|
0
|
0
|
refs/heads/feat/agent-framework
|
0
|
{"Commits":[{"Sha1":"248914b04 {"Commits":[{"Sha1":"248914b04a0be437317c50a8a641be8f06e94b7a","Message":"fix(agent): 保留 AI 助手非事实回应\n\n实现内容:\n- Result Verifier 按句区分一般能力介绍与具体事实声明\n- 问候与一般能力咨询无需工具证据,具体产品、质保、工单和 SLA 事实仍保持 fail-closed\n- 系统提示词统一使用 AI 助手定位并递增提示词版本\n\n验证:\n- AI 助手与 Agent Runtime 单测 49 条通过\n- 最终聚焦回归测试 26 条通过\n- 后端 TypeScript 与改动文件 ESLint 通过\n- AI Assist 覆盖、技能绑定、决策质量与上下文脱敏审计通过\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-23T08:37:43-07:00"},{"Sha1":"444a93a0d245349d3f8e229b2c896ef52df6a1d8","Message":"fix(agent): 合并并行工具调用结果消息\n\n实现内容:将同一轮连续 tool_result 合并为 Anthropic 协议要求的单条 user 消息,保留每个工具的追加式事件,并让上下文压缩范围覆盖合并事件。补充两个并行工具调用的消息结构回归断言。\n\n验证:AI 助手与 Agent Runtime 聚焦单测 61/61 通过;后端 TypeScript 和聚焦 ESLint 通过;AI Assist Coverage、Skill Binding、Decision Quality、Context Provider Redact 审计通过。\n\n未执行:新的 DeepSeek 两轮真实产品知识回归因本次具体数据发送范围未获重新授权而未运行。\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-23T08:18:05-07:00"},{"Sha1":"c7269cf1876db06be814f2ba20423e5d88ce359d","Message":"feat(agent): 新增全局 AI 助手聊天入口\n\n实现内容:\n- 新增 AI 助手会话 API 与全局聊天抽屉,支持历史、新对话、连续追问、停止、重试、引用和澄清状态\n- 在桌面与移动壳接入响应式悬浮入口,隐藏 Task、Trace 等内部执行设施\n- 修正移动悬浮按钮尺寸与底导避让,并提升抽屉层级避免桌面 Header 遮挡\n\n验证:\n- 前端聚焦测试 3 files / 12 tests 通过\n- 前端 TypeScript 与定向 ESLint 通过\n- 真实后端桌面 Playwright smoke 1/1 通过\n- 桌面 1440x900 与移动 390x844 截图回放通过,无横向溢出或控件重叠\n- 前端运行时、点击交互、字段契约、类型债与 AI 四项审计通过\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-23T07:42:50-07:00"},{"Sha1":"af6d6f9c09bee4d9b10de011be2ac53df304f3dc","Message":"feat(agent): 新增 AI 助手对话后端入口\n\n实现内容:\n- 新增当前登录用户的会话创建、列表、详情、消息和停止接口\n- 每轮刷新权限快照并复用现有 Harness、只读 Tool Gateway、Verifier 与 Session Trace\n- 强制 tenant + created_by 属主隔离,过滤内部事件与工具标识\n- 固定 deepseek-v4-flash 与 Anthropic-compatible Base URL\n\n验证:\n- 聚焦单测 8 files / 55 tests 通过\n- 真实 PostgreSQL/Redis API 1 file / 6 tests 通过,未调用外部模型\n- 后端 TypeScript 与定向 ESLint 通过\n- route-contract、route-registration、api-test-coverage、tenant、docs 和 AI Assist 四项审计通过\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-23T07:05:23-07:00"}],"HeadCommit":{"Sha1":"248914b04a0be437317c50a8a641be8f06e94b7a","Message":"fix(agent): 保留 AI 助手非事实回应\n\n实现内容:\n- Result Verifier 按句区分一般能力介绍与具体事实声明\n- 问候与一般能力咨询无需工具证据,具体产品、质保、工单和 SLA 事实仍保持 fail-closed\n- 系统提示词统一使用 AI 助手定位并递增提示词版本\n\n验证:\n- AI 助手与 Agent Runtime 单测 49 条通过\n- 最终聚焦回归测试 26 条通过\n- 后端 TypeScript 与改动文件 ESLint 通过\n- AI Assist 覆盖、技能绑定、决策质量与上下文脱敏审计通过\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-23T08:37:43-07:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/1a23fbc06f3d0862aafce4dc8e1815e24443b9ff...248914b04a0be437317c50a8a641be8f06e94b7a","Len":4}...
|
1787500853
|
Edit
Delete
|
|
25123
|
5
|
17
|
16
|
6
|
0
|
0
|
refs/heads/detached
|
0
|
|
1787501230
|
Edit
Delete
|
|
25165
|
5
|
5
|
5
|
72
|
0
|
0
|
refs/heads/fix/vm-prisma-runtime-path
|
0
|
|
1787540013
|
Edit
Delete
|
|
25166
|
5
|
5
|
5
|
72
|
0
|
0
|
refs/heads/fix/vm-prisma-runtime-path
|
0
|
{"Commits":[{"Sha1":"2de754507 {"Commits":[{"Sha1":"2de7545076ac90e4aa88e89cdf310f72ca9692ce","Message":"fix(vm): Prisma 生成物拷到运行时真正解析的位置——旧断言查的是拷贝目标而非读取路径\n\n`pnpm vm:up` 首次真跑起整栈,api-nestjs 容器启动即崩溃重启循环:\n`@prisma/client did not initialize yet. Please run \"prisma generate\"`。\n而构建期那条\"Prisma Client 必须在部署树里\"的断言是**绿的**。\n\n根因:`pnpm deploy` 把 @prisma/client 放进\n`node_modules/.pnpm/@prisma+client@\u003chash\u003e/node_modules/`,而 @prisma/client 是相对\n**自身**去找同级 `.prisma` 的——部署树顶层那份它根本不看。上一版把生成物拷到了顶层\n扁平路径,于是:\n- 运行时解析到 .pnpm 内嵌的那份,那是 @prisma/client **自带的桩**\n (`default.js` 第 43 行专门抛 \"did not initialize yet\"),没有 query engine;\n- 而断言 `test -d /runtime/\u003capp\u003e/node_modules/.prisma/client` 查的正是我刚拷过去的\n 顶层目录,\"往哪拷就查哪\",必然通过。\n\n这是「断言检查的位置 ≠ 运行时读取的位置」,与 C23(typecheck 读 src、运行时读 dist)\n同型:不是断言写得弱,而是它锚在一条运行时不走的路径上。\n\n两处一起修:\n1. 拷贝目标改为 .pnpm 内嵌位置(顶层那份保留,覆盖 hoist 布局),glob 取不到即 fail。\n2. 断言改为**按运行时同一方式推导路径**(从 require.resolve('@prisma/client/package.json')\n 反推同级 .prisma),并断言 **query engine 二进制存在**——只 `test -d` 等于没查,\n 因为那个桩目录永远存在。\n\n负向测试(实跑):去掉 .pnpm 拷贝那行后构建 EXIT=1,报\n`ERROR: no generated query engine at /runtime/api-nestjs/node_modules/.pnpm/@prisma+client@.../.prisma/client`\n——新断言会在构建期拦下这个 bug,而不是等容器启动才炸。\n\n证据(作用域=本地工作区):\n- pnpm vm:up 全流程通过:6 个服务全 healthy、migrate Exited(0)\n- 迁移真实应用到部署库(含 20260805120000_product_image_thumbnail /\n 20260807120000_quotation_void_and_restore)\n- 冒烟:Gateway + web + NestJS health passed;\n Write-chain smoke passed(create + read-back under a throwaway tenant)\n- 独立复核(不依赖脚本自述):curl 网关 /api/health -\u003e ok(db=up,redis=up)、首页 200、\n 容器内 `new PrismaClient()` 实例化成功\n- pnpm check 22 项全绿 exit=0\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-17T17:36:43-07:00"}],"HeadCommit":{"Sha1":"2de7545076ac90e4aa88e89cdf310f72ca9692ce","Message":"fix(vm): Prisma 生成物拷到运行时真正解析的位置——旧断言查的是拷贝目标而非读取路径\n\n`pnpm vm:up` 首次真跑起整栈,api-nestjs 容器启动即崩溃重启循环:\n`@prisma/client did not initialize yet. Please run \"prisma generate\"`。\n而构建期那条\"Prisma Client 必须在部署树里\"的断言是**绿的**。\n\n根因:`pnpm deploy` 把 @prisma/client 放进\n`node_modules/.pnpm/@prisma+client@\u003chash\u003e/node_modules/`,而 @prisma/client 是相对\n**自身**去找同级 `.prisma` 的——部署树顶层那份它根本不看。上一版把生成物拷到了顶层\n扁平路径,于是:\n- 运行时解析到 .pnpm 内嵌的那份,那是 @prisma/client **自带的桩**\n (`default.js` 第 43 行专门抛 \"did not initialize yet\"),没有 query engine;\n- 而断言 `test -d /runtime/\u003capp\u003e/node_modules/.prisma/client` 查的正是我刚拷过去的\n 顶层目录,\"往哪拷就查哪\",必然通过。\n\n这是「断言检查的位置 ≠ 运行时读取的位置」,与 C23(typecheck 读 src、运行时读 dist)\n同型:不是断言写得弱,而是它锚在一条运行时不走的路径上。\n\n两处一起修:\n1. 拷贝目标改为 .pnpm 内嵌位置(顶层那份保留,覆盖 hoist 布局),glob 取不到即 fail。\n2. 断言改为**按运行时同一方式推导路径**(从 require.resolve('@prisma/client/package.json')\n 反推同级 .prisma),并断言 **query engine 二进制存在**——只 `test -d` 等于没查,\n 因为那个桩目录永远存在。\n\n负向测试(实跑):去掉 .pnpm 拷贝那行后构建 EXIT=1,报\n`ERROR: no generated query engine at /runtime/api-nestjs/node_modules/.pnpm/@prisma+client@.../.prisma/client`\n——新断言会在构建期拦下这个 bug,而不是等容器启动才炸。\n\n证据(作用域=本地工作区):\n- pnpm vm:up 全流程通过:6 个服务全 healthy、migrate Exited(0)\n- 迁移真实应用到部署库(含 20260805120000_product_image_thumbnail /\n 20260807120000_quotation_void_and_restore)\n- 冒烟:Gateway + web + NestJS health passed;\n Write-chain smoke passed(create + read-back under a throwaway tenant)\n- 独立复核(不依赖脚本自述):curl 网关 /api/health -\u003e ok(db=up,redis=up)、首页 200、\n 容器内 `new PrismaClient()` 实例化成功\n- pnpm check 22 项全绿 exit=0\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-17T17:36:43-07:00"},"CompareURL":"luoanwu/juhai-quotation-system/compare/125c54d328d3da221b5d91c0a2dd0475712c6e96...2de7545076ac90e4aa88e89cdf310f72ca9692ce","Len":1}...
|
1787540013
|
Edit
Delete
|
|
25373
|
5
|
5
|
5
|
72
|
0
|
0
|
refs/heads/codex/catalog-customer-quotation-workfl refs/heads/codex/catalog-customer-quotation-workflows...
|
0
|
|
1787559677
|
Edit
Delete
|
|
25374
|
5
|
5
|
5
|
72
|
0
|
0
|
refs/heads/codex/catalog-customer-quotation-workfl refs/heads/codex/catalog-customer-quotation-workflows...
|
0
|
{"Commits":[{"Sha1":"8f11b6bc4 {"Commits":[{"Sha1":"8f11b6bc4df9f709414e306e9c9225bd45bccb65","Message":"feat: complete catalog customer and quotation workflows\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-24T01:18:51-07:00"}],"HeadCommit":{"Sha1":"8f11b6bc4df9f709414e306e9c9225bd45bccb65","Message":"feat: complete catalog customer and quotation workflows\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-24T01:18:51-07:00"},"CompareURL":"luoanwu/juhai-quotation-system/compare/2de7545076ac90e4aa88e89cdf310f72ca9692ce...8f11b6bc4df9f709414e306e9c9225bd45bccb65","Len":1}...
|
1787559678
|
Edit
Delete
|
|
25375
|
5
|
5
|
5
|
57
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"e759f5e45 {"Commits":[{"Sha1":"e759f5e4509e93cc4968259cc6d6a64bc73c09f1","Message":"feat(studio): connect script storyboard and video workflow\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-24T01:26:47-07:00"},{"Sha1":"553239d8af8a5f7a56988fa913deaecd5f154121","Message":"feat(studio): complete live Bailian production workflow\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-23T19:25:55-07:00"},{"Sha1":"69d9525d1e38cdb9da1db02f2e25411d2bd4b891","Message":"feat(models): route image generation through Bailian Wan 2.7 Pro\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-23T17:25:44-07:00"},{"Sha1":"1bc728c529ae21297108ec097f939ce72e77c3c5","Message":"feat(storyboard): persist immutable project history\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-23T11:49:04-07:00"},{"Sha1":"753d41978517db6031c10afef2a9a1897f6f7481","Message":"fix(models): restore OCR inference and reject LFS pointers\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-23T11:35:43-07:00"}],"HeadCommit":{"Sha1":"e759f5e4509e93cc4968259cc6d6a64bc73c09f1","Message":"feat(studio): connect script storyboard and video workflow\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-24T01:26:47-07:00"},"CompareURL":"luoanwu/image-generation/compare/eb6483fa7aadc8d2d4e715274c2519f67005e135...e759f5e4509e93cc4968259cc6d6a64bc73c09f1","Len":18}...
|
1787560925
|
Edit
Delete
|
|
25432
|
5
|
5
|
5
|
57
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"43fb473a0 {"Commits":[{"Sha1":"43fb473a0f44228eb0ac2dc41e920e3e5ab523b5","Message":"Refine image generation modes and custom output sizing\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-24T02:19:22-07:00"}],"HeadCommit":{"Sha1":"43fb473a0f44228eb0ac2dc41e920e3e5ab523b5","Message":"Refine image generation modes and custom output sizing\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-24T02:19:22-07:00"},"CompareURL":"luoanwu/image-generation/compare/e759f5e4509e93cc4968259cc6d6a64bc73c09f1...43fb473a0f44228eb0ac2dc41e920e3e5ab523b5","Len":1}...
|
1787563171
|
Edit
Delete
|
|
25441
|
5
|
5
|
5
|
75
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"5b6ffb2fd {"Commits":[{"Sha1":"5b6ffb2fd47829470408617bee019a0a3912b7b7","Message":"Refine training framework workflows and governance coverage\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-24T02:29:00-07:00"}],"HeadCommit":{"Sha1":"5b6ffb2fd47829470408617bee019a0a3912b7b7","Message":"Refine training framework workflows and governance coverage\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-24T02:29:00-07:00"},"CompareURL":"luoanwu/training-framework/compare/27a28dd5a5a8aabd88832337fd5ffbc1216dbbf8...5b6ffb2fd47829470408617bee019a0a3912b7b7","Len":1}...
|
1787563748
|
Edit
Delete
|
|
25442
|
5
|
5
|
5
|
62
|
0
|
0
|
refs/heads/feat/voiceprint-ui-neutral-labels
|
0
|
|
1787563985
|
Edit
Delete
|
|
25444
|
5
|
5
|
5
|
62
|
0
|
0
|
refs/heads/feat/voiceprint-ui-neutral-labels
|
0
|
{"Commits":[{"Sha1":"e9053d78a {"Commits":[{"Sha1":"e9053d78ad792bc6dc023b7e1cc96fd2d7d9ea9a","Message":"test: 补齐候选分项分数的 UI 断言覆盖\n\n反证发现:把候选行「证据A」改回「W」后 check:ui 仍然 8/8 全绿——\n说明分项分数那一行此前零断言覆盖,改文案不会红。既有断言只覆盖了\n判定原因文案、证据分歧徽章和底栏两条权重。\n\n新增一条对 identify-result 的 toContainText,锁住标签与数值:\n「证据A 0.920 · 证据B 0.900 · 分歧 0.020」(对应 stub match 分支\nwavlmScore=0.92 / ecapaScore=0.90 / scoreDisagreement=0.02)。\n\n断言有牙已实证:源码停在旧标签时该用例红(uiTestsPassed 7/8,\nReceived「W 0.920 · 证据B 0.900」),还原后 8/8 绿。\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-05T21:07:07-07:00"},{"Sha1":"ccf8759df88298d325908e7a56837fe1c7778736","Message":"feat: 声纹 UI 改用中性证据标签与巨嗨品牌口径\n\n展示层不再出现模型名,技术真源保持不变。\n\n- 候选分项 W/E → 证据A/证据B,「差」→「分歧」,徽章「模型分歧」→「证据分歧」\n- 底栏决策有效权重 / 召回投影 W../E.. → A../B..\n- 判定原因单源(contracts)「WavLM 与 ECAPA 证据分歧过大」→「两路声纹证据分歧过大」\n- 页面主标题与首页入口「声纹工作台」→「巨嗨声音画像工作台」\n- 副标题「WavLM + ECAPA 融合」→「双路证据融合」\n\n刻意不动的部分:contracts 字段名(wavlmScore / retrievalWavlmWeight 等)与\nsidecar JSON 逐字对齐,改名会打断三层真源并触发 check:contract-consumers;\n路由段 /voiceprint 与组件名保持不变。分项分数继续展示,兑现\n「双模型可观测、不能只看黑盒融合分」的既有承诺。\n\nE2E 四条硬编码断言同步(分歧原因文案、证据分歧徽章、两条权重正则)。\n验证:typecheck 5/5、lint、check:naming、check:contract-consumers 全绿;\n真实运行服务上复验 7 人库与历史辨认结果渲染正确,控制台 0 错误。\ncheck:ui 未跑(需独立测试库 PG:55432 + Redis:6382)。\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-05T21:00:27-07:00"}],"HeadCommit":{"Sha1":"e9053d78ad792bc6dc023b7e1cc96fd2d7d9ea9a","Message":"test: 补齐候选分项分数的 UI 断言覆盖\n\n反证发现:把候选行「证据A」改回「W」后 check:ui 仍然 8/8 全绿——\n说明分项分数那一行此前零断言覆盖,改文案不会红。既有断言只覆盖了\n判定原因文案、证据分歧徽章和底栏两条权重。\n\n新增一条对 identify-result 的 toContainText,锁住标签与数值:\n「证据A 0.920 · 证据B 0.900 · 分歧 0.020」(对应 stub match 分支\nwavlmScore=0.92 / ecapaScore=0.90 / scoreDisagreement=0.02)。\n\n断言有牙已实证:源码停在旧标签时该用例红(uiTestsPassed 7/8,\nReceived「W 0.920 · 证据B 0.900」),还原后 8/8 绿。\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-05T21:07:07-07:00"},"CompareURL":"luoanwu/voiceprint-recognition/compare/3e9e11cd8aef1d8572f13e41bfc4a9ad091cea59...e9053d78ad792bc6dc023b7e1cc96fd2d7d9ea9a","Len":2}...
|
1787563985
|
Edit
Delete
|
|
25470
|
5
|
5
|
5
|
62
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"ca134d551 {"Commits":[{"Sha1":"ca134d5514b10ecb8b367c953c3284aaa5984f8a","Message":"chore: record post-merge acceptance evidence\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-24T02:39:15-07:00"},{"Sha1":"d674e4aa3b5af117d85713a1e9d05ccb6b82ce3f","Message":"merge: consolidate voiceprint UI branch\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-24T02:34:29-07:00"},{"Sha1":"e9053d78ad792bc6dc023b7e1cc96fd2d7d9ea9a","Message":"test: 补齐候选分项分数的 UI 断言覆盖\n\n反证发现:把候选行「证据A」改回「W」后 check:ui 仍然 8/8 全绿——\n说明分项分数那一行此前零断言覆盖,改文案不会红。既有断言只覆盖了\n判定原因文案、证据分歧徽章和底栏两条权重。\n\n新增一条对 identify-result 的 toContainText,锁住标签与数值:\n「证据A 0.920 · 证据B 0.900 · 分歧 0.020」(对应 stub match 分支\nwavlmScore=0.92 / ecapaScore=0.90 / scoreDisagreement=0.02)。\n\n断言有牙已实证:源码停在旧标签时该用例红(uiTestsPassed 7/8,\nReceived「W 0.920 · 证据B 0.900」),还原后 8/8 绿。\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-05T21:07:07-07:00"},{"Sha1":"ccf8759df88298d325908e7a56837fe1c7778736","Message":"feat: 声纹 UI 改用中性证据标签与巨嗨品牌口径\n\n展示层不再出现模型名,技术真源保持不变。\n\n- 候选分项 W/E → 证据A/证据B,「差」→「分歧」,徽章「模型分歧」→「证据分歧」\n- 底栏决策有效权重 / 召回投影 W../E.. → A../B..\n- 判定原因单源(contracts)「WavLM 与 ECAPA 证据分歧过大」→「两路声纹证据分歧过大」\n- 页面主标题与首页入口「声纹工作台」→「巨嗨声音画像工作台」\n- 副标题「WavLM + ECAPA 融合」→「双路证据融合」\n\n刻意不动的部分:contracts 字段名(wavlmScore / retrievalWavlmWeight 等)与\nsidecar JSON 逐字对齐,改名会打断三层真源并触发 check:contract-consumers;\n路由段 /voiceprint 与组件名保持不变。分项分数继续展示,兑现\n「双模型可观测、不能只看黑盒融合分」的既有承诺。\n\nE2E 四条硬编码断言同步(分歧原因文案、证据分歧徽章、两条权重正则)。\n验证:typecheck 5/5、lint、check:naming、check:contract-consumers 全绿;\n真实运行服务上复验 7 人库与历史辨认结果渲染正确,控制台 0 错误。\ncheck:ui 未跑(需独立测试库 PG:55432 + Redis:6382)。\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-05T21:00:27-07:00"}],"HeadCommit":{"Sha1":"ca134d5514b10ecb8b367c953c3284aaa5984f8a","Message":"chore: record post-merge acceptance evidence\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-24T02:39:15-07:00"},"CompareURL":"luoanwu/voiceprint-recognition/compare/3e9e11cd8aef1d8572f13e41bfc4a9ad091cea59...ca134d5514b10ecb8b367c953c3284aaa5984f8a","Len":4}...
|
1787564570
|
Edit
Delete
|
|
25514
|
5
|
5
|
5
|
57
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"ba48645a4 {"Commits":[{"Sha1":"ba48645a4237735976c13184c3aac435bc868949","Message":"feat(marketing): add HI Atelier 4K poster series\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-24T07:05:38-07:00"}],"HeadCommit":{"Sha1":"ba48645a4237735976c13184c3aac435bc868949","Message":"feat(marketing): add HI Atelier 4K poster series\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-24T07:05:38-07:00"},"CompareURL":"luoanwu/image-generation/compare/43fb473a0f44228eb0ac2dc41e920e3e5ab523b5...ba48645a4237735976c13184c3aac435bc868949","Len":1}...
|
1787581007
|
Edit
Delete
|
|
25555
|
5
|
5
|
5
|
76
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"5cb2f1cc2 {"Commits":[{"Sha1":"5cb2f1cc2f9953d47fa0bcfac541400d01603f78","Message":"chore(repo): normalize source file endings\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-24T21:19:18-07:00"},{"Sha1":"5aa0889ab5cc77e6652747ac38c1add98092a6e6","Message":"Harden governance contracts and acceptance flows\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-24T01:22:09-07:00"},{"Sha1":"0198f6e80b1550b0eaaa7f545f9d1f2742abce20","Message":"Remove obsolete project artifacts and streamline repository structure\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-23T23:01:07-07:00"},{"Sha1":"9e7255825c080423a730cdeb719795351e0cbfbf","Message":"Refine product governance and runtime acceptance flows\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-23T22:47:37-07:00"},{"Sha1":"78828f6a83bac7f990442c063395e317c3af8a4a","Message":"Implement governed digital employee platform workflows\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-23T19:39:09-07:00"}],"HeadCommit":{"Sha1":"5cb2f1cc2f9953d47fa0bcfac541400d01603f78","Message":"chore(repo): normalize source file endings\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-24T21:19:18-07:00"},"CompareURL":"luoanwu/digital-employee-os/compare/d0abf16e0287850cbb497074a866f1b35074dbb1...5cb2f1cc2f9953d47fa0bcfac541400d01603f78","Len":16}...
|
1787631678
|
Edit
Delete
|
|
25932
|
5
|
1
|
5
|
80
|
0
|
0
|
|
1
|
|
1787673153
|
Edit
Delete
|
|
25933
|
5
|
5
|
5
|
80
|
0
|
0
|
refs/heads/main
|
1
|
|
1787673170
|
Edit
Delete
|
|
25934
|
5
|
5
|
5
|
80
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"49e97bd63 {"Commits":[{"Sha1":"49e97bd63c64e1d0484db4acffd63d40ab27bbbe","Message":"feat: implement governed device cloud V1\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T08:46:32-07:00"},{"Sha1":"670a202de86da74457bd91abf25430d04ee6cbbf","Message":"chore: bind static governance evidence\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-24T06:38:40-07:00"},{"Sha1":"47401905d7dfd16ce4c6564b881bffd3083ef847","Message":"docs: record device cloud local acceptance\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-24T06:38:16-07:00"},{"Sha1":"659ea41dd717401cf8c2a12eb36ec4add68ba15d","Message":"chore: migrate governed framework to device cloud\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-24T06:17:21-07:00"}],"HeadCommit":{"Sha1":"49e97bd63c64e1d0484db4acffd63d40ab27bbbe","Message":"feat: implement governed device cloud V1\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T08:46:32-07:00"},"CompareURL":"","Len":4}...
|
1787673170
|
Edit
Delete
|
|
25935
|
5
|
5
|
5
|
57
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"7a7e42422 {"Commits":[{"Sha1":"7a7e42422a19f6ad4c86d4cd320119a7fc912885","Message":"feat(image-edit): harden masked editing acceptance\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T09:34:04-07:00"}],"HeadCommit":{"Sha1":"7a7e42422a19f6ad4c86d4cd320119a7fc912885","Message":"feat(image-edit): harden masked editing acceptance\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T09:34:04-07:00"},"CompareURL":"luoanwu/image-generation/compare/ba48645a4237735976c13184c3aac435bc868949...7a7e42422a19f6ad4c86d4cd320119a7fc912885","Len":1}...
|
1787675666
|
Edit
Delete
|
|
25936
|
5
|
5
|
5
|
57
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"f09410135 {"Commits":[{"Sha1":"f094101357dc511e450e0e18fab5c91baaed9865","Message":"fix(governance): make source fingerprints commit-stable\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T09:40:28-07:00"}],"HeadCommit":{"Sha1":"f094101357dc511e450e0e18fab5c91baaed9865","Message":"fix(governance): make source fingerprints commit-stable\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T09:40:28-07:00"},"CompareURL":"luoanwu/image-generation/compare/7a7e42422a19f6ad4c86d4cd320119a7fc912885...f094101357dc511e450e0e18fab5c91baaed9865","Len":1}...
|
1787676046
|
Edit
Delete
|
|
25937
|
5
|
5
|
5
|
57
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"8e23fd115 {"Commits":[{"Sha1":"8e23fd115535dda184b584cb62396fa8286ef383","Message":"feat(governance): harden formal production trust boundaries\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T17:46:37-07:00"},{"Sha1":"58ffde2d1e2a662a18b4fadf901b0f6f5233f30a","Message":"feat: 完善分镜导演终审与对抗治理\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T11:55:23-07:00"}],"HeadCommit":{"Sha1":"8e23fd115535dda184b584cb62396fa8286ef383","Message":"feat(governance): harden formal production trust boundaries\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T17:46:37-07:00"},"CompareURL":"luoanwu/image-generation/compare/f094101357dc511e450e0e18fab5c91baaed9865...8e23fd115535dda184b584cb62396fa8286ef383","Len":2}...
|
1787705225
|
Edit
Delete
|
|
25938
|
5
|
1
|
5
|
81
|
0
|
0
|
|
1
|
|
1787705235
|
Edit
Delete
|
|
25939
|
5
|
5
|
5
|
81
|
0
|
0
|
refs/heads/main
|
1
|
|
1787705280
|
Edit
Delete
|
|
25940
|
5
|
5
|
5
|
81
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"464b90ba5 {"Commits":[{"Sha1":"464b90ba5bf51536276468811aac396e51d66892","Message":"chore(governance): refresh clean static evidence\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T17:47:04-07:00"},{"Sha1":"3f5170b91355e6726ead25e98deb98ea406508a8","Message":"fix: close diagnosis and governance gaps\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T17:09:26-07:00"},{"Sha1":"92324df6f0d200c66af7c2f378b471888405b358","Message":"feat: add governed juhai service product layer\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T08:56:28-07:00"},{"Sha1":"24e5dc292b0ac0acc47c0c900388cebb20cf6d07","Message":"chore: refresh clean static evidence\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-03T21:01:59-07:00"},{"Sha1":"be316e46e829c58a7cf449d2a0d1f80de6986bf5","Message":"chore: record migration evidence\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-03T21:01:32-07:00"}],"HeadCommit":{"Sha1":"464b90ba5bf51536276468811aac396e51d66892","Message":"chore(governance): refresh clean static evidence\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T17:47:04-07:00"},"CompareURL":"","Len":6}...
|
1787705280
|
Edit
Delete
|
|
25941
|
5
|
5
|
5
|
57
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"cf66be230 {"Commits":[{"Sha1":"cf66be23009de5ecbefad6083c173eb1df3f4c8b","Message":"Refresh UI acceptance evidence\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T17:52:24-07:00"}],"HeadCommit":{"Sha1":"cf66be23009de5ecbefad6083c173eb1df3f4c8b","Message":"Refresh UI acceptance evidence\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T17:52:24-07:00"},"CompareURL":"luoanwu/image-generation/compare/8e23fd115535dda184b584cb62396fa8286ef383...cf66be23009de5ecbefad6083c173eb1df3f4c8b","Len":1}...
|
1787705552
|
Edit
Delete
|
|
25942
|
5
|
5
|
5
|
80
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"730792458 {"Commits":[{"Sha1":"7307924582aa9ace4042b51463833ebd9bc9d17e","Message":"feat: harden device cloud governance\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T17:19:11-07:00"}],"HeadCommit":{"Sha1":"7307924582aa9ace4042b51463833ebd9bc9d17e","Message":"feat: harden device cloud governance\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T17:19:11-07:00"},"CompareURL":"luoanwu/juhai-device-cloud/compare/49e97bd63c64e1d0484db4acffd63d40ab27bbbe...7307924582aa9ace4042b51463833ebd9bc9d17e","Len":1}...
|
1787706493
|
Edit
Delete
|
|
25943
|
5
|
1
|
5
|
82
|
0
|
0
|
|
1
|
|
1787706537
|
Edit
Delete
|
|
25944
|
5
|
5
|
5
|
82
|
0
|
0
|
refs/heads/main
|
1
|
|
1787706744
|
Edit
Delete
|
|
25945
|
5
|
5
|
5
|
82
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"343e79d76 {"Commits":[{"Sha1":"343e79d764ae566372808d0d922fcef7ca12a30e","Message":"feat: establish governed AI ticket system core\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T17:10:23-07:00"},{"Sha1":"93598cc86c43b217c9b9b5dde7b8275bada3775b","Message":"chore: refresh OS product blueprint reports\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T09:37:52-07:00"},{"Sha1":"5901fddaa4fb03678e2367fea9ed81797de20f0f","Message":"docs: define Digital Employee OS ticket product layer\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T09:37:25-07:00"},{"Sha1":"d5c3cef1b42519c622d95937f43d70be5b48edf3","Message":"chore: refresh governance reports\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T09:31:10-07:00"},{"Sha1":"5a163aff14d43326f49ea9fe6876edfccaca2052","Message":"docs: define standalone ticket system blueprint\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T09:30:46-07:00"}],"HeadCommit":{"Sha1":"343e79d764ae566372808d0d922fcef7ca12a30e","Message":"feat: establish governed AI ticket system core\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T17:10:23-07:00"},"CompareURL":"","Len":8}...
|
1787706744
|
Edit
Delete
|
|
25946
|
5
|
5
|
5
|
76
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"3cea10da5 {"Commits":[{"Sha1":"3cea10da5556cec346fbdecf5255ad38fc2bb92a","Message":"feat(governance): harden runtime workflows and supply chain\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T18:17:12-07:00"}],"HeadCommit":{"Sha1":"3cea10da5556cec346fbdecf5255ad38fc2bb92a","Message":"feat(governance): harden runtime workflows and supply chain\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T18:17:12-07:00"},"CompareURL":"luoanwu/digital-employee-os/compare/5cb2f1cc2f9953d47fa0bcfac541400d01603f78...3cea10da5556cec346fbdecf5255ad38fc2bb92a","Len":1}...
|
1787707096
|
Edit
Delete
|
|
25947
|
5
|
1
|
5
|
83
|
0
|
0
|
|
1
|
|
1787708118
|
Edit
Delete
|
|
25948
|
5
|
1
|
5
|
84
|
0
|
0
|
|
1
|
|
1787708753
|
Edit
Delete
|
|
25949
|
5
|
5
|
5
|
84
|
0
|
0
|
refs/heads/main
|
1
|
|
1787708825
|
Edit
Delete
|
|
25950
|
5
|
5
|
5
|
84
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"f2a674de3 {"Commits":[{"Sha1":"f2a674de3343d5031dee856edd261194709b727f","Message":"feat(knowledge): add governed hybrid evidence retrieval\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T18:39:32-07:00"},{"Sha1":"e60d772bc7fba6aba92ee6becbeb1b68b2b28849","Message":"feat: establish governed knowledge cloud product\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T17:06:03-07:00"},{"Sha1":"64bf2720bce803978337aeabbadf1a88d732fa43","Message":"chore: bind static governance evidence\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T08:18:01-07:00"},{"Sha1":"7322783bb7233c3c586f15cb33c7963f0ba605ce","Message":"docs: record local framework acceptance\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T08:17:40-07:00"},{"Sha1":"512b11bc5047f7776f3dde09b0f7344982afd354","Message":"chore: migrate governed framework to juhai knowledge cloud\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T08:08:02-07:00"}],"HeadCommit":{"Sha1":"f2a674de3343d5031dee856edd261194709b727f","Message":"feat(knowledge): add governed hybrid evidence retrieval\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T18:39:32-07:00"},"CompareURL":"","Len":5}...
|
1787708825
|
Edit
Delete
|
|
25951
|
5
|
5
|
5
|
76
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"4a222fb5f {"Commits":[{"Sha1":"4a222fb5f11f2640e5e3d214e856b703128ee62c","Message":"feat(runtime): freeze product evidence and validate citations\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T18:39:37-07:00"}],"HeadCommit":{"Sha1":"4a222fb5f11f2640e5e3d214e856b703128ee62c","Message":"feat(runtime): freeze product evidence and validate citations\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T18:39:37-07:00"},"CompareURL":"luoanwu/digital-employee-os/compare/3cea10da5556cec346fbdecf5255ad38fc2bb92a...4a222fb5f11f2640e5e3d214e856b703128ee62c","Len":1}...
|
1787708829
|
Edit
Delete
|
|
25952
|
5
|
5
|
5
|
81
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"ce807fe94 {"Commits":[{"Sha1":"ce807fe941d01cc4a4a399c474be857407d4aed9","Message":"docs(governance): clarify evidence baseline\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T18:46:56-07:00"},{"Sha1":"a66ef1d2521ccf4b1c9a9c2da07eb9975ae1dc71","Message":"feat(governance): enforce signed tenant auth\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T18:46:21-07:00"}],"HeadCommit":{"Sha1":"ce807fe941d01cc4a4a399c474be857407d4aed9","Message":"docs(governance): clarify evidence baseline\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T18:46:56-07:00"},"CompareURL":"luoanwu/juhai-after-sales-service-system/compare/464b90ba5bf51536276468811aac396e51d66892...ce807fe941d01cc4a4a399c474be857407d4aed9","Len":2}...
|
1787708840
|
Edit
Delete
|
|
25953
|
5
|
5
|
5
|
81
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"f7f15c92e {"Commits":[{"Sha1":"f7f15c92e83a6df0de98d1d5df4dfdd9b63cd284","Message":"chore(governance): synchronize agent adapters\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T18:51:53-07:00"}],"HeadCommit":{"Sha1":"f7f15c92e83a6df0de98d1d5df4dfdd9b63cd284","Message":"chore(governance): synchronize agent adapters\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T18:51:53-07:00"},"CompareURL":"luoanwu/juhai-after-sales-service-system/compare/ce807fe941d01cc4a4a399c474be857407d4aed9...f7f15c92e83a6df0de98d1d5df4dfdd9b63cd284","Len":1}...
|
1787709129
|
Edit
Delete
|
|
26019
|
5
|
5
|
5
|
81
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"158a8d0a3 {"Commits":[{"Sha1":"158a8d0a3ccc575be23117643ac664ec1b6f73dc","Message":"feat(events): harden outbox delivery and map business logic\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T19:07:32-07:00"}],"HeadCommit":{"Sha1":"158a8d0a3ccc575be23117643ac664ec1b6f73dc","Message":"feat(events): harden outbox delivery and map business logic\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T19:07:32-07:00"},"CompareURL":"luoanwu/juhai-after-sales-service-system/compare/f7f15c92e83a6df0de98d1d5df4dfdd9b63cd284...158a8d0a3ccc575be23117643ac664ec1b6f73dc","Len":1}...
|
1787710066
|
Edit
Delete
|
|
26041
|
5
|
5
|
5
|
81
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"fbedaf6d0 {"Commits":[{"Sha1":"fbedaf6d0398693dc8466b4b72b6265d2397d93c","Message":"feat(operations): govern event recovery and activation leases\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T19:30:17-07:00"}],"HeadCommit":{"Sha1":"fbedaf6d0398693dc8466b4b72b6265d2397d93c","Message":"feat(operations): govern event recovery and activation leases\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T19:30:17-07:00"},"CompareURL":"luoanwu/juhai-after-sales-service-system/compare/158a8d0a3ccc575be23117643ac664ec1b6f73dc...fbedaf6d0398693dc8466b4b72b6265d2397d93c","Len":1}...
|
1787711431
|
Edit
Delete
|
|
26122
|
5
|
5
|
5
|
81
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"3d56a9a4f {"Commits":[{"Sha1":"3d56a9a4fb9cccedf11cfdb53a470fa7f29e94c7","Message":"test(governance): close dual-backend runtime blind spots\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T20:18:54-07:00"}],"HeadCommit":{"Sha1":"3d56a9a4fb9cccedf11cfdb53a470fa7f29e94c7","Message":"test(governance): close dual-backend runtime blind spots\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T20:18:54-07:00"},"CompareURL":"luoanwu/juhai-after-sales-service-system/compare/fbedaf6d0398693dc8466b4b72b6265d2397d93c...3d56a9a4fb9cccedf11cfdb53a470fa7f29e94c7","Len":1}...
|
1787714348
|
Edit
Delete
|
|
26124
|
5
|
5
|
7
|
72
|
0
|
0
|
refs/heads/hljTest
|
0
|
{"Commits":[{"Sha1":"08df317af {"Commits":[{"Sha1":"08df317afac31db70f0394580a0bb8686f49671c","Message":"Merge remote-tracking branch 'origin/codex/catalog-customer-quotation-workflows' into hljTest\n\n# Conflicts:\n#\tdeploy/vm/Dockerfile\n#\tscripts/lib/component-size.mjs\n","AuthorEmail":"hlj@g-hi.com","AuthorName":"huangliujian","CommitterEmail":"hlj@g-hi.com","CommitterName":"huangliujian","Timestamp":"2026-08-26T13:12:50+08:00"},{"Sha1":"8f11b6bc4df9f709414e306e9c9225bd45bccb65","Message":"feat: complete catalog customer and quotation workflows\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-24T01:18:51-07:00"},{"Sha1":"2de7545076ac90e4aa88e89cdf310f72ca9692ce","Message":"fix(vm): Prisma 生成物拷到运行时真正解析的位置——旧断言查的是拷贝目标而非读取路径\n\n`pnpm vm:up` 首次真跑起整栈,api-nestjs 容器启动即崩溃重启循环:\n`@prisma/client did not initialize yet. Please run \"prisma generate\"`。\n而构建期那条\"Prisma Client 必须在部署树里\"的断言是**绿的**。\n\n根因:`pnpm deploy` 把 @prisma/client 放进\n`node_modules/.pnpm/@prisma+client@\u003chash\u003e/node_modules/`,而 @prisma/client 是相对\n**自身**去找同级 `.prisma` 的——部署树顶层那份它根本不看。上一版把生成物拷到了顶层\n扁平路径,于是:\n- 运行时解析到 .pnpm 内嵌的那份,那是 @prisma/client **自带的桩**\n (`default.js` 第 43 行专门抛 \"did not initialize yet\"),没有 query engine;\n- 而断言 `test -d /runtime/\u003capp\u003e/node_modules/.prisma/client` 查的正是我刚拷过去的\n 顶层目录,\"往哪拷就查哪\",必然通过。\n\n这是「断言检查的位置 ≠ 运行时读取的位置」,与 C23(typecheck 读 src、运行时读 dist)\n同型:不是断言写得弱,而是它锚在一条运行时不走的路径上。\n\n两处一起修:\n1. 拷贝目标改为 .pnpm 内嵌位置(顶层那份保留,覆盖 hoist 布局),glob 取不到即 fail。\n2. 断言改为**按运行时同一方式推导路径**(从 require.resolve('@prisma/client/package.json')\n 反推同级 .prisma),并断言 **query engine 二进制存在**——只 `test -d` 等于没查,\n 因为那个桩目录永远存在。\n\n负向测试(实跑):去掉 .pnpm 拷贝那行后构建 EXIT=1,报\n`ERROR: no generated query engine at /runtime/api-nestjs/node_modules/.pnpm/@prisma+client@.../.prisma/client`\n——新断言会在构建期拦下这个 bug,而不是等容器启动才炸。\n\n证据(作用域=本地工作区):\n- pnpm vm:up 全流程通过:6 个服务全 healthy、migrate Exited(0)\n- 迁移真实应用到部署库(含 20260805120000_product_image_thumbnail /\n 20260807120000_quotation_void_and_restore)\n- 冒烟:Gateway + web + NestJS health passed;\n Write-chain smoke passed(create + read-back under a throwaway tenant)\n- 独立复核(不依赖脚本自述):curl 网关 /api/health -\u003e ok(db=up,redis=up)、首页 200、\n 容器内 `new PrismaClient()` 实例化成功\n- pnpm check 22 项全绿 exit=0\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-17T17:36:43-07:00"}],"HeadCommit":{"Sha1":"08df317afac31db70f0394580a0bb8686f49671c","Message":"Merge remote-tracking branch 'origin/codex/catalog-customer-quotation-workflows' into hljTest\n\n# Conflicts:\n#\tdeploy/vm/Dockerfile\n#\tscripts/lib/component-size.mjs\n","AuthorEmail":"hlj@g-hi.com","AuthorName":"huangliujian","CommitterEmail":"hlj@g-hi.com","CommitterName":"huangliujian","Timestamp":"2026-08-26T13:12:50+08:00"},"CompareURL":"luoanwu/juhai-quotation-system/compare/04432cff2b306ecd33ca2bea6e2e256814f978f0...08df317afac31db70f0394580a0bb8686f49671c","Len":3}...
|
1787721223
|
Edit
Delete
|
|
26205
|
5
|
5
|
7
|
72
|
0
|
0
|
refs/heads/hljTest
|
0
|
{"Commits":[{"Sha1":"fc0729c51 {"Commits":[{"Sha1":"fc0729c51eaa6fb61e5c2c39bdc6d4bd30696570","Message":"fix(vm): make smoke honor the web base path\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","AuthorEmail":"hlj@g-hi.com","AuthorName":"huangliujian","CommitterEmail":"hlj@g-hi.com","CommitterName":"huangliujian","Timestamp":"2026-08-26T13:51:23+08:00"}],"HeadCommit":{"Sha1":"fc0729c51eaa6fb61e5c2c39bdc6d4bd30696570","Message":"fix(vm): make smoke honor the web base path\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","AuthorEmail":"hlj@g-hi.com","AuthorName":"huangliujian","CommitterEmail":"hlj@g-hi.com","CommitterName":"huangliujian","Timestamp":"2026-08-26T13:51:23+08:00"},"CompareURL":"luoanwu/juhai-quotation-system/compare/08df317afac31db70f0394580a0bb8686f49671c...fc0729c51eaa6fb61e5c2c39bdc6d4bd30696570","Len":1}...
|
1787723483
|
Edit
Delete
|
|
26405
|
5
|
5
|
5
|
54
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"53991090b {"Commits":[{"Sha1":"53991090b821b76dff11eee3a2e92806ed3ab173","Message":"chore(reports): 刷新 OS 产品验收证据\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-26T16:22:27-07:00"},{"Sha1":"71e6ef64d1ee41cb39ffae15a73f049c42fb82b1","Message":"feat(os): 增加可装载基础框架产品\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-26T16:20:54-07:00"}],"HeadCommit":{"Sha1":"53991090b821b76dff11eee3a2e92806ed3ab173","Message":"chore(reports): 刷新 OS 产品验收证据\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-26T16:22:27-07:00"},"CompareURL":"luoanwu/base-framework/compare/9513a941af257b779d7d2c095dff71172edcefaf...53991090b821b76dff11eee3a2e92806ed3ab173","Len":2}...
|
1787787571
|
Edit
Delete
|
|
26499
|
5
|
5
|
5
|
13
|
0
|
0
|
refs/heads/fix/p0-batch-1
|
0
|
|
1787812620
|
Edit
Delete
|
|
26500
|
5
|
5
|
5
|
13
|
0
|
0
|
refs/heads/fix/p0-batch-1
|
0
|
{"Commits":[{"Sha1":"62baa5a01 {"Commits":[{"Sha1":"62baa5a01b492f05b25701859bebabf996f4f818","Message":"fix: 第二批P0修复——「一单不丢」读侧闭环\n\n- 重启回捞泵: PrinterService.recoverPersistedJobs 启动回捞30分钟窗口内\n 活跃任务(CREATED/QUEUED直接重放、中断PRINTING经fail→retry归一化、\n 重试耗尽入死信);ACTION_RECOVER_JOBS意图供UI手动触发(只重放QUEUED\n 防重复出票);防并发回捞+内存队列查重\n- 恢复按钮接真重放: QueueDetailActivity三处/MainActivity死信恢复改完DB后\n 触发回捞(此前只翻状态Toast成功、一张不打);修doRecoverAll主线程DAO崩溃\n- PrintJobReconstructor补全: 新增PrintJob.Builder.restoreState()合法还原\n 入口(保真恢复状态/计数/版本/时间戳、不发创建事件),读库路径由必NPE变可用\n- fail()放宽至CREATED/QUEUED/PRINTING全活跃态+JobStatus转移表同步:\n 上机前失败进入统一重试/死信轨道,删除onTaskFailed的2秒无限循环分支\n- MIGRATION_1_2确定性重建: 配置room.schemaLocation生成权威schema\n (schemas/2.json入库),迁移按createSql逐字重建(旧增量迁移三处与实体\n 不符、v1升级必崩)\n- PrintContent携带真实printType(任务表print_type列不再恒0);\n cancel SQL补DEAD_LETTER守卫;PrintTestActivity测试任务改协议形状JSON\n- 新增PrintJobLifecycleTest 8例(还原保真/fail放宽/回捞归一化);\n 全量回归23/23绿(testProductionDebugUnitTest)\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-26T19:53:10-07:00"},{"Sha1":"4ef4540b46e231c51c14c50696c587f3343e2af1","Message":"docs: 业务全景梳理与核心体检治理方案 + CLAUDE.md纠偏\n\n- 打印业务全景梳理.md: 四模块考古定论、38单据业务地图、\n 四套协议兼容矩阵、真接线链路与假链路警示(全部file:line实证)\n- 业务核心体检与治理方案.md: 五条业务不变量评估、缺失/冲突/bug\n 全清单(含print_type=4三方三义、camelCase归零等)、四阶段治理\n 路线与ABC决策、第一批执行记录与第二批待办\n- CLAUDE.md纠偏: 删虚标覆盖率、核心文件索引改为真接线链路+\n 死代码警示、重试参数改真实值、假测试与flavor任务名坑位警示\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-26T18:49:14-07:00"},{"Sha1":"582ef48839dac15274b8568357603068ec0eabfd","Message":"fix: 首批P0修复——适配层snake_case/线程模型/持久化/CI真源\n\n真接线链路四大P0(详见《业务核心体检与治理方案.md》§4/§7):\n- 适配层重写为线协议真key(祖本@SerializedName全snake_case),\n camelCase降级兼容;补映射printer_key/order_source/is_reprint等11字段;\n 交接款amount级联兜底——修\"真实报文下单据字段全部静默归零\"\n- 打印执行链三处observeOn(main)改IO线程,修NetworkOnMainThread必崩\n- 候选打印机不再按connection_status==1预筛,解除\"先打印成功才算在线\"自举死锁\n- save()十处裸调改persist真订阅+乐观锁差一修复,任务状态真正落库\n- processJob catch去掉非法job.fail()(状态不符二次抛异常吞原因)\n- Manifest补FOREGROUND_SERVICE_DATA_SYNC/POST_NOTIFICATIONS(targetSdk 34)\n- CI: testDebugUnitTest因flavor错配静默跳过redesign全部真测试,\n 改为显式双模块任务名;require_tests改true;wrapper 8.4→8.14.3\n- 新增金样本特征测试PrintJobOrderAdapterTest(7例,锁死字段归零回归)\n\n回归: :printer-redesign:testProductionDebugUnitTest 15/15 绿\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-26T18:48:58-07:00"},{"Sha1":"8f7d7999f6b1eddf141dea9eca0891ca7149e206","Message":"fix: 落盘2026-07-05会话的测试基建与安全修复\n\n- fixes/ 参考修复类纳入 test 源集(可编译运行、不进生产 APK)\n- 纯 JVM 下依赖 android org.json 的假跑测试改为诚实 @Ignore\n- Money.ofYuan 走 BigDecimal 精确换算,修浮点分转换误差\n- PrintJob.cancel 增加终态守卫,防死信任务被并发取消\n- docker-compose 密钥改环境变量注入 + .env.example 模板 + .gitignore 密钥规则\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-26T18:48:06-07:00"}],"HeadCommit":{"Sha1":"62baa5a01b492f05b25701859bebabf996f4f818","Message":"fix: 第二批P0修复——「一单不丢」读侧闭环\n\n- 重启回捞泵: PrinterService.recoverPersistedJobs 启动回捞30分钟窗口内\n 活跃任务(CREATED/QUEUED直接重放、中断PRINTING经fail→retry归一化、\n 重试耗尽入死信);ACTION_RECOVER_JOBS意图供UI手动触发(只重放QUEUED\n 防重复出票);防并发回捞+内存队列查重\n- 恢复按钮接真重放: QueueDetailActivity三处/MainActivity死信恢复改完DB后\n 触发回捞(此前只翻状态Toast成功、一张不打);修doRecoverAll主线程DAO崩溃\n- PrintJobReconstructor补全: 新增PrintJob.Builder.restoreState()合法还原\n 入口(保真恢复状态/计数/版本/时间戳、不发创建事件),读库路径由必NPE变可用\n- fail()放宽至CREATED/QUEUED/PRINTING全活跃态+JobStatus转移表同步:\n 上机前失败进入统一重试/死信轨道,删除onTaskFailed的2秒无限循环分支\n- MIGRATION_1_2确定性重建: 配置room.schemaLocation生成权威schema\n (schemas/2.json入库),迁移按createSql逐字重建(旧增量迁移三处与实体\n 不符、v1升级必崩)\n- PrintContent携带真实printType(任务表print_type列不再恒0);\n cancel SQL补DEAD_LETTER守卫;PrintTestActivity测试任务改协议形状JSON\n- 新增PrintJobLifecycleTest 8例(还原保真/fail放宽/回捞归一化);\n 全量回归23/23绿(testProductionDebugUnitTest)\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-26T19:53:10-07:00"},"CompareURL":"luoanwu/printer-server/compare/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448...62baa5a01b492f05b25701859bebabf996f4f818","Len":4}...
|
1787812620
|
Edit
Delete
|
|
26508
|
5
|
5
|
7
|
57
|
0
|
0
|
refs/heads/hljTest
|
0
|
{"Commits":[{"Sha1":"dc10d6356 {"Commits":[{"Sha1":"dc10d6356138564bf70fcfa6370ba66d99f0b0d7","Message":"feat(material): 完成正式生产与导演交付链路\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","AuthorEmail":"hlj@g-hi.com","AuthorName":"huangliujian","CommitterEmail":"hlj@g-hi.com","CommitterName":"huangliujian","Timestamp":"2026-08-27T14:12:06+08:00"},{"Sha1":"cf66be23009de5ecbefad6083c173eb1df3f4c8b","Message":"Refresh UI acceptance evidence\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T17:52:24-07:00"},{"Sha1":"8e23fd115535dda184b584cb62396fa8286ef383","Message":"feat(governance): harden formal production trust boundaries\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T17:46:37-07:00"},{"Sha1":"58ffde2d1e2a662a18b4fadf901b0f6f5233f30a","Message":"feat: 完善分镜导演终审与对抗治理\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T11:55:23-07:00"},{"Sha1":"f094101357dc511e450e0e18fab5c91baaed9865","Message":"fix(governance): make source fingerprints commit-stable\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-25T09:40:28-07:00"}],"HeadCommit":{"Sha1":"dc10d6356138564bf70fcfa6370ba66d99f0b0d7","Message":"feat(material): 完成正式生产与导演交付链路\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","AuthorEmail":"hlj@g-hi.com","AuthorName":"huangliujian","CommitterEmail":"hlj@g-hi.com","CommitterName":"huangliujian","Timestamp":"2026-08-27T14:12:06+08:00"},"CompareURL":"luoanwu/image-generation/compare/5fbcad0bceea9e81914ae6b7e8bfb05265845598...dc10d6356138564bf70fcfa6370ba66d99f0b0d7","Len":26}...
|
1787813227
|
Edit
Delete
|