|
17081
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/react-migration
|
0
|
{"Commits":[{"Sha1":"9646e9036 {"Commits":[{"Sha1":"9646e903603f789cc51ec4b32200b70b3ccf2cff","Message":"docs(api): 重新生成 OpenAPI 契约与全量 API 参考(React 单前端真源口径)\n\n- openapi.json / openapi.yaml 按当前 Zod-First 真源全量重生成\n- 新增 all-api-reference.md 与 generate-api-reference.mjs 生成入口\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-07-10T01:32:29-07:00"},{"Sha1":"7b8988454f47c83a3fd319e7dc8f9a7cfeb5d649","Message":"fix(architecture): 后端架构边界治理——跨模块调用收口公开入口 + 依赖图基线门禁\n\n- commissions/revenue/treasury/assets/channel-analytics 等跨域直接依赖改走目标模块 index.* 公开入口\n- 新增 backend-module-dependencies 依赖图审计基线(存量 INFO 冻结,基线外新增硬阻断)与测试\n- 补 event-outbox-helper / password 单元测试;vitest workspace/coverage 配置对齐\n- 附 2026-07-09 菜单 292 能力真源分析报告与三份架构治理作战卡\n- 验收:pnpm -C backend run type-check 通过\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-07-10T01:32:19-07:00"},{"Sha1":"20c082f55e0c4be2105dedce9069420e2750d3fa","Message":"chore(frontend): Vue 前端物理退役——frontend/ 与 mobile/ 全面删除,React 单一真源收口\n\n- 物理删除 frontend/(1876 文件)与 mobile/(197 文件)Vue/Vant 工程,历史仅由 Git 追溯\n- pnpm workspace、启动链、CI、Harness、E2E view-governance、审计扫描根全部切换到 frontend-react/\n- 删除 Vue-only 治理脚本 13 个与旧 view-governance 快照/生成器/验证器\n- dev docker-compose frontend 服务切换为根 context + frontend-react/Dockerfile(对齐 prod),映射 5173:80\n- 新增 React 生产镜像链:frontend-react/Dockerfile、Dockerfile.prebuilt、nginx.conf、.env.example\n- check-env.sh / start-dev.sh / quick-start.sh 与 DOCKER.md / START-HERE.md / 部署与启动指南死命令收口为 frontend-react\n- 删除 Vue 时代死脚本 run_tsc.sh / generate_smoke_tests.py / debug-blank-page.html\n- CLAUDE.md / AGENTS.md / README.md / GEMINI.md / QWEN.md 同步单一前端真源口径\n- 验收:pnpm -C frontend-react run type-check 通过、docker compose config 通过、主树 .vue=0、运行链残留扫描=0\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-07-10T01:30:05-07:00"}],"HeadCommit":{"Sha1":"9646e903603f789cc51ec4b32200b70b3ccf2cff","Message":"docs(api): 重新生成 OpenAPI 契约与全量 API 参考(React 单前端真源口径)\n\n- openapi.json / openapi.yaml 按当前 Zod-First 真源全量重生成\n- 新增 all-api-reference.md 与 generate-api-reference.mjs 生成入口\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-07-10T01:32:29-07:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/101858c06a69a0ecf99c3366f5034de2786d0495...9646e903603f789cc51ec4b32200b70b3ccf2cff","Len":3}...
|
1783672582
|
Edit
Delete
|
|
17085
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/react-migration
|
0
|
{"Commits":[{"Sha1":"c39315b6c {"Commits":[{"Sha1":"c39315b6c9e556d9dfa9fa55cc933d6b5d74d2a6","Message":"fix(governance): 治理数字对账收口——MEDIUM 清零 + stale 报告刷新 + release-gate 滞后阻断消除\n\n- users 重置密码前端规则对齐后端 Zod:min 6→8,补大小写字母+数字 pattern(真实契约 bug,7 RTL 用例通过)\n- frontend-source-adapter 新增视图子树→真实模块重映射:ai-agents/skill-library 归 ai-agent-skills\n (表单实走 ai-agent-skills API,description max 4000 与 Zod 一致,消除目录名误配假告警)\n- 重跑 10 个超期 stale 审计(ai-assist 系列/migration-safety/time-analysis/workflow/process-definition 等)\n- census e2e.specFiles 基线重冻 294→338(随治理波次提交的真实增长)\n- 重跑 production-release-gate/actions:滞后的 harness-high-zero 阻断消除,11→10 条真实 P0 阻断\n- 终态:dashboard C=0/H=0/M=0、stale=0、formrules WARNING=0;\n baseline-reconcile 242 条断言 drift 10→2,剩余 2 条为受控块明文保留的 overdue 真实红线\n (10 条 P0 上线阻断逾期,只能真完成或指挥官重排 due date,不得改绿)\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-07-10T02:05:45-07:00"}],"HeadCommit":{"Sha1":"c39315b6c9e556d9dfa9fa55cc933d6b5d74d2a6","Message":"fix(governance): 治理数字对账收口——MEDIUM 清零 + stale 报告刷新 + release-gate 滞后阻断消除\n\n- users 重置密码前端规则对齐后端 Zod:min 6→8,补大小写字母+数字 pattern(真实契约 bug,7 RTL 用例通过)\n- frontend-source-adapter 新增视图子树→真实模块重映射:ai-agents/skill-library 归 ai-agent-skills\n (表单实走 ai-agent-skills API,description max 4000 与 Zod 一致,消除目录名误配假告警)\n- 重跑 10 个超期 stale 审计(ai-assist 系列/migration-safety/time-analysis/workflow/process-definition 等)\n- census e2e.specFiles 基线重冻 294→338(随治理波次提交的真实增长)\n- 重跑 production-release-gate/actions:滞后的 harness-high-zero 阻断消除,11→10 条真实 P0 阻断\n- 终态:dashboard C=0/H=0/M=0、stale=0、formrules WARNING=0;\n baseline-reconcile 242 条断言 drift 10→2,剩余 2 条为受控块明文保留的 overdue 真实红线\n (10 条 P0 上线阻断逾期,只能真完成或指挥官重排 due date,不得改绿)\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-07-10T02:05:45-07:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/9646e903603f789cc51ec4b32200b70b3ccf2cff...c39315b6c9e556d9dfa9fa55cc933d6b5d74d2a6","Len":1}...
|
1783674369
|
Edit
Delete
|
|
17104
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/react-migration
|
0
|
{"Commits":[{"Sha1":"cff2a7743 {"Commits":[{"Sha1":"cff2a7743a4472a541e5b285f5ce5e079be71d07","Message":"fix(governance): 菜单审计假阴性修复 + 14 条孤儿路由收口\n\n「内容与社媒工作台/视频内容/视频发布/视频数据/供应链工作台/系统导入/\n后台中心 无对应 API 或壳入口」经端点级 FE↔BE diff 逐条核查为污染前提,\n根因是 audit-menu-inventory 三处旧判定:\n\n- hasView 按同名 views/ 目录判 → 改为路由真源解析(lazyView import 的\n 视图文件存在性),同名目录仅兜底;\n- hasApi 按同名 api/modules/\u003cpath\u003e.ts 判 → 改为视图文件真实 @/api import\n 判定(共享 owner 映射,含目录 Index 薄壳一层转发),同名文件仅兜底;\n- 孤儿检测解析 Vue 时代 meta: 块(React 树全用 handle:,orphanRoutes=0\n 假绿)→ 改为 handle: 块窗口解析 + menu.ts 全部 path 字面量保守对比。\n\n修后揭示的 14 条真孤儿路由同轮收口:\n- /marketing-workflows 为指向 /marketing-automation 的兼容重定向壳,\n 补 hideInMenu: true;\n- 其余 13 条(store-agency / customer-balance / payment-analytics /\n disbursements / finance-periods / finance-os 支出与风险 3 项 /\n fulfillment 5 项)按路由 handle 声明的中心与分组补录进 menu.ts。\n\n证据与终态:menu-inventory 291→304 项全绿率 100%、孤儿 14→0;\nview-governance menuVisibleCount 293→306 基线同步,audit:view-governance\n复跑全绿;frontend-react tsc --noEmit 零错误,Sidebar/guards 测试 8 用例全绿。\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-07-11T20:48:16-07:00"}],"HeadCommit":{"Sha1":"cff2a7743a4472a541e5b285f5ce5e079be71d07","Message":"fix(governance): 菜单审计假阴性修复 + 14 条孤儿路由收口\n\n「内容与社媒工作台/视频内容/视频发布/视频数据/供应链工作台/系统导入/\n后台中心 无对应 API 或壳入口」经端点级 FE↔BE diff 逐条核查为污染前提,\n根因是 audit-menu-inventory 三处旧判定:\n\n- hasView 按同名 views/ 目录判 → 改为路由真源解析(lazyView import 的\n 视图文件存在性),同名目录仅兜底;\n- hasApi 按同名 api/modules/\u003cpath\u003e.ts 判 → 改为视图文件真实 @/api import\n 判定(共享 owner 映射,含目录 Index 薄壳一层转发),同名文件仅兜底;\n- 孤儿检测解析 Vue 时代 meta: 块(React 树全用 handle:,orphanRoutes=0\n 假绿)→ 改为 handle: 块窗口解析 + menu.ts 全部 path 字面量保守对比。\n\n修后揭示的 14 条真孤儿路由同轮收口:\n- /marketing-workflows 为指向 /marketing-automation 的兼容重定向壳,\n 补 hideInMenu: true;\n- 其余 13 条(store-agency / customer-balance / payment-analytics /\n disbursements / finance-periods / finance-os 支出与风险 3 项 /\n fulfillment 5 项)按路由 handle 声明的中心与分组补录进 menu.ts。\n\n证据与终态:menu-inventory 291→304 项全绿率 100%、孤儿 14→0;\nview-governance menuVisibleCount 293→306 基线同步,audit:view-governance\n复跑全绿;frontend-react tsc --noEmit 零错误,Sidebar/guards 测试 8 用例全绿。\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-07-11T20:48:16-07:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/c39315b6c9e556d9dfa9fa55cc933d6b5d74d2a6...cff2a7743a4472a541e5b285f5ce5e079be71d07","Len":1}...
|
1783828105
|
Edit
Delete
|
|
17105
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/react-migration
|
0
|
{"Commits":[{"Sha1":"3d0a44a9c {"Commits":[{"Sha1":"3d0a44a9c8d654139f4027f66c65b83a9ab64f0f","Message":"fix(field-contract): 契约断链深挖收口——12 真缺陷修复 + filter-truth/prisma-zod 审计治理归真\n\n深挖 filter-truth/update三态/list-detail/response未消费四探针 2100+ 候选,逐条 live 代码追踪对抗验证,\n修复真实缺陷并把两个喂 HARD gate 的审计从「stale/坏工具掩盖」拉回真实。\n\n假筛选/数据丢失(8):\n- groupbuy-reviews: replyStatus(reply列)/sentiment(rating派生) 接线\n- hr payroll: periodCode 接线 + grades search→canonical keyword(删死型 GradeListParams.search)\n- groupbuy-platforms: authStatus 走 extraWhere 接线(列实在·原被白名单排除)\n- ad-placement placement.service.ts:441 end_date `?? null`→`undefined`(与 running 分支对齐,消非对称清空)\n- livestream-schedule coverUrl/coverImage/cover_image `.max(2000)`→`.max(500)`(收敛 cover_url VarChar(500))\n\nowner 决策项(3):\n- groupbuy-reviews.source: 增 source 列(migration 20260711235453,default 'manual')+全栈接线,formatReview 桩 'meituan'→真列\n- customers check-duplicate: 增 contact_name 查重维度(真源 customer_contacts.name,纯 service 层)\n- social-analytics.industry: 增 social_accounts.industry 列(migration 20260712000950)+getIndustryBenchmark 真实聚合\n (按 tenant+platform+industry 筛账号→单查询聚合 social_analytics 最新快照,无数据 dataAvailable=false,不再伪 'average')\n\n审计工具治理:\n- audit-filter-truth.ts: 修复因 Vue 物理退役(frontend/ 删除)导致的 typescript 解析 anchor 失效,审计复活\n- audit-prisma-zod-contract.ts: 为 6 个静态盲区 FP(superRefine/service-fill/bizCode)加受控豁免+核验理由,归真 PASS\n- filter-truth UNSUPPORTED 18→10 三轮重冻,GOVERNANCE-BASELINE ceiling 同步下调\n\n验证: 双端 type-check 绿;backend 8783 tests(+8 负断言);前端 social-accounts RTL 4/4;\nn1=0;prisma-zod PASS;schema 镜像一致;reconcile 零新增 drift(仅剩 2 个 pre-existing overdue 意图红线)。\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-12T00:27:30-07:00"}],"HeadCommit":{"Sha1":"3d0a44a9c8d654139f4027f66c65b83a9ab64f0f","Message":"fix(field-contract): 契约断链深挖收口——12 真缺陷修复 + filter-truth/prisma-zod 审计治理归真\n\n深挖 filter-truth/update三态/list-detail/response未消费四探针 2100+ 候选,逐条 live 代码追踪对抗验证,\n修复真实缺陷并把两个喂 HARD gate 的审计从「stale/坏工具掩盖」拉回真实。\n\n假筛选/数据丢失(8):\n- groupbuy-reviews: replyStatus(reply列)/sentiment(rating派生) 接线\n- hr payroll: periodCode 接线 + grades search→canonical keyword(删死型 GradeListParams.search)\n- groupbuy-platforms: authStatus 走 extraWhere 接线(列实在·原被白名单排除)\n- ad-placement placement.service.ts:441 end_date `?? null`→`undefined`(与 running 分支对齐,消非对称清空)\n- livestream-schedule coverUrl/coverImage/cover_image `.max(2000)`→`.max(500)`(收敛 cover_url VarChar(500))\n\nowner 决策项(3):\n- groupbuy-reviews.source: 增 source 列(migration 20260711235453,default 'manual')+全栈接线,formatReview 桩 'meituan'→真列\n- customers check-duplicate: 增 contact_name 查重维度(真源 customer_contacts.name,纯 service 层)\n- social-analytics.industry: 增 social_accounts.industry 列(migration 20260712000950)+getIndustryBenchmark 真实聚合\n (按 tenant+platform+industry 筛账号→单查询聚合 social_analytics 最新快照,无数据 dataAvailable=false,不再伪 'average')\n\n审计工具治理:\n- audit-filter-truth.ts: 修复因 Vue 物理退役(frontend/ 删除)导致的 typescript 解析 anchor 失效,审计复活\n- audit-prisma-zod-contract.ts: 为 6 个静态盲区 FP(superRefine/service-fill/bizCode)加受控豁免+核验理由,归真 PASS\n- filter-truth UNSUPPORTED 18→10 三轮重冻,GOVERNANCE-BASELINE ceiling 同步下调\n\n验证: 双端 type-check 绿;backend 8783 tests(+8 负断言);前端 social-accounts RTL 4/4;\nn1=0;prisma-zod PASS;schema 镜像一致;reconcile 零新增 drift(仅剩 2 个 pre-existing overdue 意图红线)。\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-12T00:27:30-07:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/cff2a7743a4472a541e5b285f5ce5e079be71d07...3d0a44a9c8d654139f4027f66c65b83a9ab64f0f","Len":1}...
|
1783841295
|
Edit
Delete
|
|
17106
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/react-migration
|
0
|
{"Commits":[{"Sha1":"b6ca4eb97 {"Commits":[{"Sha1":"b6ca4eb97fca5dff7fe33490df662865134b08d2","Message":"fix(field-contract): 断链深挖三批收口——attribution 读模型重塑 + customers 查重富化 + cash-flow 对齐文档真源 + 筛选键 500 硬炸修复\n\n响应侧(前端声明字段后端从未返回 / 键名形状错位):\n- attribution 五报告全部对齐前端契约:model-comparison 重塑嵌套 comparison + models 假筛选真消费;\n overall stats 补 revenue/coverage 真实指标并删硬编码假数;channel/campaign/path 三报告修\n 键名错位与渲染崩溃隐患(creditPercent.toFixed / path.join),统一\"最近计算批次\"防重算翻倍;\n docs 三套幻想 schema 归真;multi-touch CSV 消费键同步\n- customers check-duplicate:match 补 phone/email/industry/primaryContact 四死字段;\n customer 与 matches[0] 深拷贝隔离(修共享引用被序列化为 \"[Circular]\" 的存量缺陷)\n- cash-flow 整模块对齐后端文档级 DTO(owner 矩阵裁定):统计卡/风险预警接真实端点,\n 列表/详情/编辑三视图重写(删 NaN%/静默丢弃/永不可达区块),detail 补回 notes 回读;\n 详情页真实消费 canonical /:id/items 明细子资源\n\n请求侧(live 复现实锤的运行时 500 与假筛选):\n- tickets 列表 9 个 schema 声明筛选键全部真消费(assigneeName/日期区间/多选/isOverdue/\n isEscalated/tags),teamId 无物理列显式吞掉防透传;修复前任意携带即整页 500\n- payments records:min/maxAmount 接 paid_amount 区间真消费,start/endDate 剔除透传\n- targets:end_date 区间补真实消费(此前从未实现),四日期键剔除透传\n\n治理配套:\n- 删除 attribution-models/attribution-reports 两个孤岛遗留 API 测试(打已删模块恒红)\n- acquisition 模块补 module-contract 单测(陈旧基线暴露的 D 级收口,A=282/D=0)\n- 49 条 CONFIRMED 分诊台账落盘 reports/field-contract-triage-2026-07-12.md\n (响应侧 5 域 42 条 + 请求侧 7 条,含共性根因与修复范式)\n\n证据:双端类型检查干净;后端单测 640 文件/8795 全绿(attribution-report 新增 7 用例、\ncustomers 引用隔离守卫);cash-flow RTL 19/19 重写;attribution/customers/multi-touch/\ncash-flow/targets API 真打 DB 全绿;三组筛选修复 live curl 收敛性断言(tickets 327→162/80/30、\npayments 177→0、targets 33→0);audit:tenant/response-columns/filter-truth/module-coverage\n全部达标且受控块零漂移。tickets/payments 两 API 套件失败经 stash 判责为存量债(vitest CJS\n加载/fixture 清理链),已记录台账。\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-07-12T06:13:37-07:00"}],"HeadCommit":{"Sha1":"b6ca4eb97fca5dff7fe33490df662865134b08d2","Message":"fix(field-contract): 断链深挖三批收口——attribution 读模型重塑 + customers 查重富化 + cash-flow 对齐文档真源 + 筛选键 500 硬炸修复\n\n响应侧(前端声明字段后端从未返回 / 键名形状错位):\n- attribution 五报告全部对齐前端契约:model-comparison 重塑嵌套 comparison + models 假筛选真消费;\n overall stats 补 revenue/coverage 真实指标并删硬编码假数;channel/campaign/path 三报告修\n 键名错位与渲染崩溃隐患(creditPercent.toFixed / path.join),统一\"最近计算批次\"防重算翻倍;\n docs 三套幻想 schema 归真;multi-touch CSV 消费键同步\n- customers check-duplicate:match 补 phone/email/industry/primaryContact 四死字段;\n customer 与 matches[0] 深拷贝隔离(修共享引用被序列化为 \"[Circular]\" 的存量缺陷)\n- cash-flow 整模块对齐后端文档级 DTO(owner 矩阵裁定):统计卡/风险预警接真实端点,\n 列表/详情/编辑三视图重写(删 NaN%/静默丢弃/永不可达区块),detail 补回 notes 回读;\n 详情页真实消费 canonical /:id/items 明细子资源\n\n请求侧(live 复现实锤的运行时 500 与假筛选):\n- tickets 列表 9 个 schema 声明筛选键全部真消费(assigneeName/日期区间/多选/isOverdue/\n isEscalated/tags),teamId 无物理列显式吞掉防透传;修复前任意携带即整页 500\n- payments records:min/maxAmount 接 paid_amount 区间真消费,start/endDate 剔除透传\n- targets:end_date 区间补真实消费(此前从未实现),四日期键剔除透传\n\n治理配套:\n- 删除 attribution-models/attribution-reports 两个孤岛遗留 API 测试(打已删模块恒红)\n- acquisition 模块补 module-contract 单测(陈旧基线暴露的 D 级收口,A=282/D=0)\n- 49 条 CONFIRMED 分诊台账落盘 reports/field-contract-triage-2026-07-12.md\n (响应侧 5 域 42 条 + 请求侧 7 条,含共性根因与修复范式)\n\n证据:双端类型检查干净;后端单测 640 文件/8795 全绿(attribution-report 新增 7 用例、\ncustomers 引用隔离守卫);cash-flow RTL 19/19 重写;attribution/customers/multi-touch/\ncash-flow/targets API 真打 DB 全绿;三组筛选修复 live curl 收敛性断言(tickets 327→162/80/30、\npayments 177→0、targets 33→0);audit:tenant/response-columns/filter-truth/module-coverage\n全部达标且受控块零漂移。tickets/payments 两 API 套件失败经 stash 判责为存量债(vitest CJS\n加载/fixture 清理链),已记录台账。\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-07-12T06:13:37-07:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/3d0a44a9c8d654139f4027f66c65b83a9ab64f0f...b6ca4eb97fca5dff7fe33490df662865134b08d2","Len":1}...
|
1783862034
|
Edit
Delete
|
|
17107
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/react-migration
|
0
|
{"Commits":[{"Sha1":"34599f92f {"Commits":[{"Sha1":"34599f92fc238176604126d3b0af3ac05efe051a","Message":"fix(field-contract): P0 批次八条收口——券码链崩溃/分配假失败/SLA 违规表/流转反馈/翻页/编辑丢字段/搜索失效\n\n响应侧:\n- groupbuy-redemptions 券码链:listVouchers/getVoucher/findByPhone 三端点接 adaptVoucher\n 归一(此前直连 canonical 形状致 row.code undefined 渲染 TypeError 崩溃、核销入口\n 永不出现、手机号核销必失败);adaptVoucher/adaptRedemption 补 metadata 双读\n (buyerName/buyerPhone/orderAmount,金额一直在此前恒 ¥0);formatVoucherCode 空值\n 守卫;reversed 状态不再折叠为 unused\n- leads 分配链:后端 assign 返回补 assignedTo(成功分配此前被前端 TypeError 报成\n \"分配失败\");分配预览 null 守卫(无可分配人显示告警 Tag 而非崩溃);shared 类型\n assignedTo nullable 化\n- SLA 违规表:getBreachedClocks 富化工单/客户/策略上下文 + breachedBy 超时分钟计算\n (metric_type 兼容 resolution/first_response 双值域),此前裸时钟 DTO 致 7 列全空\n 且超时列渲染 NaN;单测断言更新为富化契约守卫\n- 工单流转反馈:前端 executeTransition 类型与消费改读后端真源键 toStatus\n (此前读 toStage 恒 undefined,流转成功却无提示不刷新)\n- ap-ledger 列表改标准分页包络 paginated()(此前裸 res.json 致前端 total 恒 0 无法翻页)\n\n请求侧(live 实锤):\n- tickets 编辑:updateTicketSchema 补 customerId/snId/orderId/projectId 关联键\n (与 create 对称,此前换客户被 Zod 静默剥离假成功)+ service 补同租户引用校验 +\n 前端 update() 白名单映射对称化;联系人字段组确认为无物理列的想象契约,归 P2 裁定\n- payments plans:schema 补 keyword/due_date_from/due_date_to + service 到期区间消费\n (搜索框此前输入无效),内部两调用点同步补键\n\n证据:双端类型检查干净;后端单测 640 文件/8795 全绿(SLA 断言更新为富化契约);\nap-ledger 3/3、sla 12/12 API 真打 DB;live curl 实锤:工单换客户写读回(已还原)、\nplans keyword 190→0 收敛、ap-ledger 标准包络 meta.pagination;前端 leads/\ngroupbuy-redemptions RTL 17/17;分诊台账 P0 段已标记收口。\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-07-12T06:42:16-07:00"}],"HeadCommit":{"Sha1":"34599f92fc238176604126d3b0af3ac05efe051a","Message":"fix(field-contract): P0 批次八条收口——券码链崩溃/分配假失败/SLA 违规表/流转反馈/翻页/编辑丢字段/搜索失效\n\n响应侧:\n- groupbuy-redemptions 券码链:listVouchers/getVoucher/findByPhone 三端点接 adaptVoucher\n 归一(此前直连 canonical 形状致 row.code undefined 渲染 TypeError 崩溃、核销入口\n 永不出现、手机号核销必失败);adaptVoucher/adaptRedemption 补 metadata 双读\n (buyerName/buyerPhone/orderAmount,金额一直在此前恒 ¥0);formatVoucherCode 空值\n 守卫;reversed 状态不再折叠为 unused\n- leads 分配链:后端 assign 返回补 assignedTo(成功分配此前被前端 TypeError 报成\n \"分配失败\");分配预览 null 守卫(无可分配人显示告警 Tag 而非崩溃);shared 类型\n assignedTo nullable 化\n- SLA 违规表:getBreachedClocks 富化工单/客户/策略上下文 + breachedBy 超时分钟计算\n (metric_type 兼容 resolution/first_response 双值域),此前裸时钟 DTO 致 7 列全空\n 且超时列渲染 NaN;单测断言更新为富化契约守卫\n- 工单流转反馈:前端 executeTransition 类型与消费改读后端真源键 toStatus\n (此前读 toStage 恒 undefined,流转成功却无提示不刷新)\n- ap-ledger 列表改标准分页包络 paginated()(此前裸 res.json 致前端 total 恒 0 无法翻页)\n\n请求侧(live 实锤):\n- tickets 编辑:updateTicketSchema 补 customerId/snId/orderId/projectId 关联键\n (与 create 对称,此前换客户被 Zod 静默剥离假成功)+ service 补同租户引用校验 +\n 前端 update() 白名单映射对称化;联系人字段组确认为无物理列的想象契约,归 P2 裁定\n- payments plans:schema 补 keyword/due_date_from/due_date_to + service 到期区间消费\n (搜索框此前输入无效),内部两调用点同步补键\n\n证据:双端类型检查干净;后端单测 640 文件/8795 全绿(SLA 断言更新为富化契约);\nap-ledger 3/3、sla 12/12 API 真打 DB;live curl 实锤:工单换客户写读回(已还原)、\nplans keyword 190→0 收敛、ap-ledger 标准包络 meta.pagination;前端 leads/\ngroupbuy-redemptions RTL 17/17;分诊台账 P0 段已标记收口。\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-07-12T06:42:16-07:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/b6ca4eb97fca5dff7fe33490df662865134b08d2...34599f92fc238176604126d3b0af3ac05efe051a","Len":1}...
|
1783863745
|
Edit
Delete
|
|
17108
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/react-migration
|
0
|
{"Commits":[{"Sha1":"0ebe6fb5c {"Commits":[{"Sha1":"0ebe6fb5c4cc802d6d6f53fba830ec5fbf64f3d7","Message":"fix(field-contract): P1 批次十三条收口——键名/量纲映射级断链修复\n\n响应侧映射修复:\n- campaigns:getCampaignStats 从后端真实 {overview,channels} 派生 summary/channelBreakdown\n (渠道真数据此前被键名错位丢弃恒空);getStats 分组数组转对象(业务线 Tab 计数恒 0)+\n totalSpent 键对齐\n- leads /:id/score:拆分 controller 回完整评分对象(此前与 /score-details 共用剥壳 handler\n 只回裸数组,评分卡恒 0 分);shared 类型补 calculatedAt 真源键并重建 dist\n- tickets:stage-history 路由接 ticket_stage_history 真源 handler(此前 alias 到 timeline\n 被旁路,渲染「初始状态:undefined」);getReplies 补 adapter(回复人恒 '-' 修复)\n- satisfaction /analytics:adapter 归一 responseRate/avgCSAT/avgNPS/npsBreakdown\n (分析页半页恒 '-');情感分布/类型统计无后端真源,保持 undefined 失败关闭\n- commissions:my-stats adapter(四张统计卡恒 ¥0);listRecords/getMyRecords/\n getSettlementById 补 user/rule/settlement/records DTO 映射(含 org_units 部门),\n 顺手修掉 where 层 camel 死键(userId/businessDate 等触发 Prisma 未知列的潜伏 500)\n- financial-reports:KPI 卡读 actualValue/targetValue 真源键(恒 '-' 修复);\n 逾期率去掉二次 ×100(12.5% 曾显示 1250%)\n- ap-ledger:service 层补 supplier/owner 语义键映射(两列恒 '-')\n\n请求侧修复:\n- opportunities:statsQuerySchema 补 transform 唯一转换点(snake schema × camel service,\n stats/funnel/forecast 三端点 owner/日期筛选静默失效返回全量口径)\n- sla clocks:schema 补 status(此前被 Zod 剥离)+ service 消费 ticketId/clockType/breached\n (收而不筛的假筛选)\n\n附带:LeadAssignmentResult.assignedTo nullable 化后类型连坐揪出分配历史列第三处\n无守卫消费,一并加守卫。\n\n证据:双端类型检查干净;后端单测 640/8795 全绿;前端六域 RTL 20 文件/72 用例全绿;\nlive curl 实锤:opportunities funnel bogus owner 309→0、stats 2099 区间→0、\nleads score 返回完整对象键、sla clocks bogus status→0、campaigns/commissions wire\n形状确认。分诊台账 P1 段已标记收口。\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-07-12T07:01:41-07:00"}],"HeadCommit":{"Sha1":"0ebe6fb5c4cc802d6d6f53fba830ec5fbf64f3d7","Message":"fix(field-contract): P1 批次十三条收口——键名/量纲映射级断链修复\n\n响应侧映射修复:\n- campaigns:getCampaignStats 从后端真实 {overview,channels} 派生 summary/channelBreakdown\n (渠道真数据此前被键名错位丢弃恒空);getStats 分组数组转对象(业务线 Tab 计数恒 0)+\n totalSpent 键对齐\n- leads /:id/score:拆分 controller 回完整评分对象(此前与 /score-details 共用剥壳 handler\n 只回裸数组,评分卡恒 0 分);shared 类型补 calculatedAt 真源键并重建 dist\n- tickets:stage-history 路由接 ticket_stage_history 真源 handler(此前 alias 到 timeline\n 被旁路,渲染「初始状态:undefined」);getReplies 补 adapter(回复人恒 '-' 修复)\n- satisfaction /analytics:adapter 归一 responseRate/avgCSAT/avgNPS/npsBreakdown\n (分析页半页恒 '-');情感分布/类型统计无后端真源,保持 undefined 失败关闭\n- commissions:my-stats adapter(四张统计卡恒 ¥0);listRecords/getMyRecords/\n getSettlementById 补 user/rule/settlement/records DTO 映射(含 org_units 部门),\n 顺手修掉 where 层 camel 死键(userId/businessDate 等触发 Prisma 未知列的潜伏 500)\n- financial-reports:KPI 卡读 actualValue/targetValue 真源键(恒 '-' 修复);\n 逾期率去掉二次 ×100(12.5% 曾显示 1250%)\n- ap-ledger:service 层补 supplier/owner 语义键映射(两列恒 '-')\n\n请求侧修复:\n- opportunities:statsQuerySchema 补 transform 唯一转换点(snake schema × camel service,\n stats/funnel/forecast 三端点 owner/日期筛选静默失效返回全量口径)\n- sla clocks:schema 补 status(此前被 Zod 剥离)+ service 消费 ticketId/clockType/breached\n (收而不筛的假筛选)\n\n附带:LeadAssignmentResult.assignedTo nullable 化后类型连坐揪出分配历史列第三处\n无守卫消费,一并加守卫。\n\n证据:双端类型检查干净;后端单测 640/8795 全绿;前端六域 RTL 20 文件/72 用例全绿;\nlive curl 实锤:opportunities funnel bogus owner 309→0、stats 2099 区间→0、\nleads score 返回完整对象键、sla clocks bogus status→0、campaigns/commissions wire\n形状确认。分诊台账 P1 段已标记收口。\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-07-12T07:01:41-07:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/34599f92fc238176604126d3b0af3ac05efe051a...0ebe6fb5c4cc802d6d6f53fba830ec5fbf64f3d7","Len":1}...
|
1783864905
|
Edit
Delete
|
|
17109
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/react-migration
|
0
|
{"Commits":[{"Sha1":"5ae992ef9 {"Commits":[{"Sha1":"5ae992ef927153e78f5d698e12079bcd3c022f39","Message":"fix(field-contract): P2 第四批八条收口——占位统计真实现 + 无真源 UI 失败关闭\n\n后端补真实现(真源在库、此前占位/分组数组致恒 0):\n- rma:byType 真实 groupBy(type 列 2026-07-09 已建,stats 注释过期硬编码空数组致\n 「类型分布」卡恒空)\n- contracts:统计卡 active/expiringSoon/totalValue 真算(status 分组 + effective_to\n 30 天到期窗口 + total_amount 合计;live 实测 active=126 / totalValue=90 亿)\n- tickets:统计卡 pending(new+assigned)/processing(in_progress)/breached(SLA 时钟违约\n 且未终态) 真算(live 实测 177/45/0)\n- leads:/stats 补 unassigned(销售看板待办真源,live 实测 398);assignment/stats 补\n unassigned/todayAssigned + topAssignees.userName 人员姓名回填(分配页 UUID 直显修复)\n- sales-dashboard:getTrend 由硬编码空数组占位改真实月度聚合(与 overview 同口径\n won opportunities expected_amount + leads/opportunities 创建计数;live 验证趋势卡\n 出现 2026-05 真实赢单 50000,此前恒「暂无趋势数据」)\n\n前端无真源 UI 失败关闭(数据模型表达不了、禁止造假数):\n- contract-templates:删「草稿」统计卡(is_active 布尔无 draft 语义,后端字面量 0、\n 点击恒空列表)\n- customer-balance:删「透支额度」虚构列(后端无 overdraft 概念,adapter 硬编码 0)\n- groupbuy-redemptions:删「方式统计」死面板(redeem_method 未持久化,后端诚实空集)\n\n证据:双端类型检查干净;后端单测 640/8795 全绿(contracts/lead-assignment 单测断言\n更新为扁平键回归守卫);前端六域 RTL 10 文件/39 用例全绿;live curl 六端点真值实锤。\n分诊台账 P2 段拆分为已收口子集与剩余待裁定清单。\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-07-12T07:16:44-07:00"}],"HeadCommit":{"Sha1":"5ae992ef927153e78f5d698e12079bcd3c022f39","Message":"fix(field-contract): P2 第四批八条收口——占位统计真实现 + 无真源 UI 失败关闭\n\n后端补真实现(真源在库、此前占位/分组数组致恒 0):\n- rma:byType 真实 groupBy(type 列 2026-07-09 已建,stats 注释过期硬编码空数组致\n 「类型分布」卡恒空)\n- contracts:统计卡 active/expiringSoon/totalValue 真算(status 分组 + effective_to\n 30 天到期窗口 + total_amount 合计;live 实测 active=126 / totalValue=90 亿)\n- tickets:统计卡 pending(new+assigned)/processing(in_progress)/breached(SLA 时钟违约\n 且未终态) 真算(live 实测 177/45/0)\n- leads:/stats 补 unassigned(销售看板待办真源,live 实测 398);assignment/stats 补\n unassigned/todayAssigned + topAssignees.userName 人员姓名回填(分配页 UUID 直显修复)\n- sales-dashboard:getTrend 由硬编码空数组占位改真实月度聚合(与 overview 同口径\n won opportunities expected_amount + leads/opportunities 创建计数;live 验证趋势卡\n 出现 2026-05 真实赢单 50000,此前恒「暂无趋势数据」)\n\n前端无真源 UI 失败关闭(数据模型表达不了、禁止造假数):\n- contract-templates:删「草稿」统计卡(is_active 布尔无 draft 语义,后端字面量 0、\n 点击恒空列表)\n- customer-balance:删「透支额度」虚构列(后端无 overdraft 概念,adapter 硬编码 0)\n- groupbuy-redemptions:删「方式统计」死面板(redeem_method 未持久化,后端诚实空集)\n\n证据:双端类型检查干净;后端单测 640/8795 全绿(contracts/lead-assignment 单测断言\n更新为扁平键回归守卫);前端六域 RTL 10 文件/39 用例全绿;live curl 六端点真值实锤。\n分诊台账 P2 段拆分为已收口子集与剩余待裁定清单。\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-07-12T07:16:44-07:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/0ebe6fb5c4cc802d6d6f53fba830ec5fbf64f3d7...5ae992ef927153e78f5d698e12079bcd3c022f39","Len":1}...
|
1783865808
|
Edit
Delete
|
|
17110
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/react-migration
|
0
|
{"Commits":[{"Sha1":"e005063b4 {"Commits":[{"Sha1":"e005063b444466a70a8b0bc6b257ee2097fac9cb","Message":"fix(field-contract): P2 第五批十五条全量收口——SLA/门店/获客三域整链 + 微修线\n\n三域并行修复(每条裁定附 prisma schema 列证据,范式:有真源后端真算、无真源失败关闭):\n\nSLA 整链(服务#2/#3):\n- getDashboardStats 重写为前端嵌套契约:current{running/atRisk/breaching}、last30Days\n 响应/解决达标率(诚实分母:未到期 pending 不计入不造数)、breachedByPriority、\n dailyTrend 近 7 日;保留旧扁平键兼容。live 实锤 running=306、解决达标率 22.7%\n- getComplianceReport 由时钟数组改报告对象(overall/byPriority/byType/daily 逐日骨架),\n 真消费 dateFrom/dateTo(此前完全忽略);API 测试断言同步归真(旧断言锁定断链形状)\n\n门店域(门店#1-6):\n- groupbuy-platforms:全局统计/平台列表真算(accounts 计数、settled_amount 合计、\n byPlatform 分桶、authorizedPlatforms 接 auth_status 真列);店铺硬编码死指标\n (syncStatus/productCount/rating)删除;营收量纲修正(误按分除 100 → 元);\n totalOrders 全仓无 writer 全线失败关闭;同步任务无持久化表 → tab/API/类型下线\n- livestream-groupbuy-conversion:实时卡 redemptions(conversion_tracks stage='redeemed')\n 与 avgWatchDuration(viewer_tracks.watch_duration 有列有写链,纠正分诊「无列」误判)\n 真算;peakViewers 死零列失败关闭;关联表补 schedule 名称等 7 个物理列真源,\n 假时间戳/假 status 兜底删除;创建表单想象字段(商品 ID/置顶)删除\n\n获客域(获客#1/#2/#5):\n- campaigns getDashboardData 扩展 12 键真算(byStatus/byChannel/byBusinessLine groupBy、\n 预算花费聚合、executingCampaigns、recentLeadsCount、dailyTrend 7 日桶);live 实锤\n totalBudget=134.3 万、recentLeadsCount=31\n- channel-comparison 补 campaigns 计数与 avgRoi(cost=0 失败关闭);impressions/clicks\n 无真源从前端契约删除\n- campaign-targets 无 Prisma 关系 → 二次查询拼装活动摘要(查不到 null 禁止伪造);\n currentValue 无列 → 进度列失败关闭 '-';abm 触点/评分 metadata 无写链 → nullable\n\n微修线(7 条):\n- 门店系 page 回退 typo ×4(page ?? page_size 误回退,pageSize=50 会跳空页)\n- contracts 排序 order 别名(拦截器映射键此前被 Zod 剥离,升序静默回落 desc)\n- invoices「开票人」死字段三处删除(表无 issued_by 列,条件恒 false)\n- leads 保护期真实现(protect_until 真列 + 分配链真实写入;「保护期管理」由硬编码\n 空 stub 改真查询);分配历史 protectUntil 假时间戳改读 leads 真值\n- tickets assign/escalate 补 crm_activities 操作日志 writer(activity_type 直映\n timeline type,「指派记录」「升级记录」两个恒空 Tab 从此有真源)\n- cash-flow payment-behaviors 孤儿 schema 删除(零引用死文件)\n- batch8 测试存量断言缺陷补 auth mock(Permission 包裹按钮自 wire 提交起未 mock)\n\n证据:双端类型检查干净;后端单测 640 文件/8803 全绿(三域新增/强化单测:SLA 4 条、\nplatforms/livestream 聚合断言、campaigns dashboard/channel/targets 拼装断言,含\nnot.toHaveProperty 防伪造键回潮守卫);SLA API 真打 DB 12/12;前端相关域 RTL 全绿\n(含失败关闭断言与 createLink payload 精确匹配防想象字段回潮);live curl 六端点\n真值/失败关闭行为实锤。分诊台账 P2 段全部标记收口,余 4 项无消费者观察 INFO 备案。\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-07-12T08:08:16-07:00"}],"HeadCommit":{"Sha1":"e005063b444466a70a8b0bc6b257ee2097fac9cb","Message":"fix(field-contract): P2 第五批十五条全量收口——SLA/门店/获客三域整链 + 微修线\n\n三域并行修复(每条裁定附 prisma schema 列证据,范式:有真源后端真算、无真源失败关闭):\n\nSLA 整链(服务#2/#3):\n- getDashboardStats 重写为前端嵌套契约:current{running/atRisk/breaching}、last30Days\n 响应/解决达标率(诚实分母:未到期 pending 不计入不造数)、breachedByPriority、\n dailyTrend 近 7 日;保留旧扁平键兼容。live 实锤 running=306、解决达标率 22.7%\n- getComplianceReport 由时钟数组改报告对象(overall/byPriority/byType/daily 逐日骨架),\n 真消费 dateFrom/dateTo(此前完全忽略);API 测试断言同步归真(旧断言锁定断链形状)\n\n门店域(门店#1-6):\n- groupbuy-platforms:全局统计/平台列表真算(accounts 计数、settled_amount 合计、\n byPlatform 分桶、authorizedPlatforms 接 auth_status 真列);店铺硬编码死指标\n (syncStatus/productCount/rating)删除;营收量纲修正(误按分除 100 → 元);\n totalOrders 全仓无 writer 全线失败关闭;同步任务无持久化表 → tab/API/类型下线\n- livestream-groupbuy-conversion:实时卡 redemptions(conversion_tracks stage='redeemed')\n 与 avgWatchDuration(viewer_tracks.watch_duration 有列有写链,纠正分诊「无列」误判)\n 真算;peakViewers 死零列失败关闭;关联表补 schedule 名称等 7 个物理列真源,\n 假时间戳/假 status 兜底删除;创建表单想象字段(商品 ID/置顶)删除\n\n获客域(获客#1/#2/#5):\n- campaigns getDashboardData 扩展 12 键真算(byStatus/byChannel/byBusinessLine groupBy、\n 预算花费聚合、executingCampaigns、recentLeadsCount、dailyTrend 7 日桶);live 实锤\n totalBudget=134.3 万、recentLeadsCount=31\n- channel-comparison 补 campaigns 计数与 avgRoi(cost=0 失败关闭);impressions/clicks\n 无真源从前端契约删除\n- campaign-targets 无 Prisma 关系 → 二次查询拼装活动摘要(查不到 null 禁止伪造);\n currentValue 无列 → 进度列失败关闭 '-';abm 触点/评分 metadata 无写链 → nullable\n\n微修线(7 条):\n- 门店系 page 回退 typo ×4(page ?? page_size 误回退,pageSize=50 会跳空页)\n- contracts 排序 order 别名(拦截器映射键此前被 Zod 剥离,升序静默回落 desc)\n- invoices「开票人」死字段三处删除(表无 issued_by 列,条件恒 false)\n- leads 保护期真实现(protect_until 真列 + 分配链真实写入;「保护期管理」由硬编码\n 空 stub 改真查询);分配历史 protectUntil 假时间戳改读 leads 真值\n- tickets assign/escalate 补 crm_activities 操作日志 writer(activity_type 直映\n timeline type,「指派记录」「升级记录」两个恒空 Tab 从此有真源)\n- cash-flow payment-behaviors 孤儿 schema 删除(零引用死文件)\n- batch8 测试存量断言缺陷补 auth mock(Permission 包裹按钮自 wire 提交起未 mock)\n\n证据:双端类型检查干净;后端单测 640 文件/8803 全绿(三域新增/强化单测:SLA 4 条、\nplatforms/livestream 聚合断言、campaigns dashboard/channel/targets 拼装断言,含\nnot.toHaveProperty 防伪造键回潮守卫);SLA API 真打 DB 12/12;前端相关域 RTL 全绿\n(含失败关闭断言与 createLink payload 精确匹配防想象字段回潮);live curl 六端点\n真值/失败关闭行为实锤。分诊台账 P2 段全部标记收口,余 4 项无消费者观察 INFO 备案。\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-07-12T08:08:16-07:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/5ae992ef927153e78f5d698e12079bcd3c022f39...e005063b444466a70a8b0bc6b257ee2097fac9cb","Len":1}...
|
1783868903
|
Edit
Delete
|
|
17111
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/react-migration
|
0
|
{"Commits":[{"Sha1":"584554702 {"Commits":[{"Sha1":"584554702141074169c3a208e5fed2bc25768b58","Message":"fix(field-contract): 第六批 INFO 尾账四项收口——占位端点下线 + 死列失败关闭 + 三方契约归一\n\n- payment-plans/overdue 三方契约归一:service 补 minOverdueDays 真消费(due_date 前推 N 天,\n live 实锤 5→0 收敛);孤儿 schema(minAmount/maxOverdueDays 从未被消费)改为与 controller\n 实际消费一致(customerId/minOverdueDays/limit),docs 引用同步归真;前端参数删除无分页\n 语义的 page/pageSize 改 limit。类型收紧暴露分诊假阴性:orders 详情 hook 真实消费该端点,\n 此前传的 page/pageSize 一直被静默忽略,已对齐\n- livestream 报表 summary.peakViewers:后端接口与前端类型双侧 nullable + 死列注释\n (livestream_schedules.peak_viewers 无运行时 writer,类型层失败关闭防新消费者误信)\n- groupbuy getPlatformDetailStats/getStoreStats:基于 order_count/sales_amount 双死列\n (全仓仅 select 读、无 create/update 写链,相似写点在 influencer_performances 另一张表)\n 派生的 totalOrders/totalRevenue/dailyTrend/avgOrderValue/productCount/rating 全部失败\n 关闭返回 null/空并删除无用死列查询;仅保留 settled_amount 真列派生的 revenue\n- sales-dashboard 七个占位端点整体下线(products/customers/regional/activities/\n sales-cycle/my-performance/team-performance):自建立起即硬编码假数(恒空/avgDays:30)\n 且前端零视图消费,按孤岛清理先例删除 routes/controller/schema/docs/前端方法全链;\n live 实锤四端点 404;顺手对齐 getForecast 前端类型潜伏雷(声明数组 vs 后端真实对象)\n\n证据:双端类型检查干净;后端单测 640/8803 全绿;sales-dashboard API 2/2、前端\nsales-dashboard/orders RTL 17/17;route-contract 审计 coverage 100% 无破损;\nlive curl 实锤(minOverdueDays 收敛、占位端点 404、平台 stats 正常)。\n分诊台账全部条目清零,五批+尾账共约 54 项真缺陷收口完毕。\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-07-12T08:24:31-07:00"}],"HeadCommit":{"Sha1":"584554702141074169c3a208e5fed2bc25768b58","Message":"fix(field-contract): 第六批 INFO 尾账四项收口——占位端点下线 + 死列失败关闭 + 三方契约归一\n\n- payment-plans/overdue 三方契约归一:service 补 minOverdueDays 真消费(due_date 前推 N 天,\n live 实锤 5→0 收敛);孤儿 schema(minAmount/maxOverdueDays 从未被消费)改为与 controller\n 实际消费一致(customerId/minOverdueDays/limit),docs 引用同步归真;前端参数删除无分页\n 语义的 page/pageSize 改 limit。类型收紧暴露分诊假阴性:orders 详情 hook 真实消费该端点,\n 此前传的 page/pageSize 一直被静默忽略,已对齐\n- livestream 报表 summary.peakViewers:后端接口与前端类型双侧 nullable + 死列注释\n (livestream_schedules.peak_viewers 无运行时 writer,类型层失败关闭防新消费者误信)\n- groupbuy getPlatformDetailStats/getStoreStats:基于 order_count/sales_amount 双死列\n (全仓仅 select 读、无 create/update 写链,相似写点在 influencer_performances 另一张表)\n 派生的 totalOrders/totalRevenue/dailyTrend/avgOrderValue/productCount/rating 全部失败\n 关闭返回 null/空并删除无用死列查询;仅保留 settled_amount 真列派生的 revenue\n- sales-dashboard 七个占位端点整体下线(products/customers/regional/activities/\n sales-cycle/my-performance/team-performance):自建立起即硬编码假数(恒空/avgDays:30)\n 且前端零视图消费,按孤岛清理先例删除 routes/controller/schema/docs/前端方法全链;\n live 实锤四端点 404;顺手对齐 getForecast 前端类型潜伏雷(声明数组 vs 后端真实对象)\n\n证据:双端类型检查干净;后端单测 640/8803 全绿;sales-dashboard API 2/2、前端\nsales-dashboard/orders RTL 17/17;route-contract 审计 coverage 100% 无破损;\nlive curl 实锤(minOverdueDays 收敛、占位端点 404、平台 stats 正常)。\n分诊台账全部条目清零,五批+尾账共约 54 项真缺陷收口完毕。\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-07-12T08:24:31-07:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/e005063b444466a70a8b0bc6b257ee2097fac9cb...584554702141074169c3a208e5fed2bc25768b58","Len":1}...
|
1783869876
|
Edit
Delete
|
|
17112
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/react-migration
|
0
|
{"Commits":[{"Sha1":"384707574 {"Commits":[{"Sha1":"384707574f237763231e84a10939c4277977169d","Message":"feat(tickets): 工单联系人/预约时段五字段全链点亮——迁移补列 + 写读回闭环\n\n数据库迁移(20260712153553_ticket_contact_and_schedule_fields):\n- service_tickets 补 contact_name(100)/contact_phone(50)/contact_address(500)/\n estimated_start_time/estimated_end_time 五列——工单表单自建立起渲染这五个字段,\n 但无物理列导致 create/update 白名单注释「后端暂不支持」、用户填写全部静默丢弃\n (P0 批 tickets 编辑断链修复时裁定归 owner,本次补列接通)\n- 迁移应用过程处置共享 dev 库存量幽灵状态:20260711235453 为 failed 半应用\n (列+索引实际已在)、20260712000950 内容已在库但无记录——核实两者列+索引\n 完整存在后 migrate resolve --applied 补记录,再 deploy 新迁移;\n folder 真源 → 镜像同步 → audit:prisma-schema-source 通过 → client/Zod 重新生成\n\n全链接线:\n- ticketMapper 补 contactAddress/estimatedStartTime/estimatedEndTime 三条映射\n (contactName/contactPhone 映射历史上已预留、列今天才建)\n- createTicketSchema/updateTicketSchema 双 schema 补五键(Zod max 与 VarChar 逐列对齐,\n prisma-zod 契约审计 0 错误)\n- 前端 create()/update() 白名单恢复发送(表单 phone → 后端 contactPhone);\n 编辑回填改读 DTO 真源键 contactPhone;shared ServiceTicket 类型补 contactPhone\n- 连坐清理:shared 重建暴露 invoice-requests/Detail 的 issuedBy 漏网死字段消费,\n 同款移除(invoices 表无 issued_by 列)\n\n证据:双端类型检查干净;后端单测 640/8803 全绿;live 写读回实锤——PUT 五字段\n(王工/13900001111/杭州市西湖区文一路 100 号/预约时段 ISO)全部落库读回成功;\nprisma-zod p1Length/p1Required 均 0;tickets/invoices 域 RTL 6 文件/18 用例全绿。\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-07-12T08:49:04-07:00"}],"HeadCommit":{"Sha1":"384707574f237763231e84a10939c4277977169d","Message":"feat(tickets): 工单联系人/预约时段五字段全链点亮——迁移补列 + 写读回闭环\n\n数据库迁移(20260712153553_ticket_contact_and_schedule_fields):\n- service_tickets 补 contact_name(100)/contact_phone(50)/contact_address(500)/\n estimated_start_time/estimated_end_time 五列——工单表单自建立起渲染这五个字段,\n 但无物理列导致 create/update 白名单注释「后端暂不支持」、用户填写全部静默丢弃\n (P0 批 tickets 编辑断链修复时裁定归 owner,本次补列接通)\n- 迁移应用过程处置共享 dev 库存量幽灵状态:20260711235453 为 failed 半应用\n (列+索引实际已在)、20260712000950 内容已在库但无记录——核实两者列+索引\n 完整存在后 migrate resolve --applied 补记录,再 deploy 新迁移;\n folder 真源 → 镜像同步 → audit:prisma-schema-source 通过 → client/Zod 重新生成\n\n全链接线:\n- ticketMapper 补 contactAddress/estimatedStartTime/estimatedEndTime 三条映射\n (contactName/contactPhone 映射历史上已预留、列今天才建)\n- createTicketSchema/updateTicketSchema 双 schema 补五键(Zod max 与 VarChar 逐列对齐,\n prisma-zod 契约审计 0 错误)\n- 前端 create()/update() 白名单恢复发送(表单 phone → 后端 contactPhone);\n 编辑回填改读 DTO 真源键 contactPhone;shared ServiceTicket 类型补 contactPhone\n- 连坐清理:shared 重建暴露 invoice-requests/Detail 的 issuedBy 漏网死字段消费,\n 同款移除(invoices 表无 issued_by 列)\n\n证据:双端类型检查干净;后端单测 640/8803 全绿;live 写读回实锤——PUT 五字段\n(王工/13900001111/杭州市西湖区文一路 100 号/预约时段 ISO)全部落库读回成功;\nprisma-zod p1Length/p1Required 均 0;tickets/invoices 域 RTL 6 文件/18 用例全绿。\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-07-12T08:49:04-07:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/584554702141074169c3a208e5fed2bc25768b58...384707574f237763231e84a10939c4277977169d","Len":1}...
|
1783871348
|
Edit
Delete
|
|
17113
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/react-migration
|
0
|
{"Commits":[{"Sha1":"c4f0c2eab {"Commits":[{"Sha1":"c4f0c2eabbf729ae2f7cc6de2eda4416f0e7b3bb","Message":"feat(migrations): 部署完备 parity baseline——全新库 migrate deploy 终态与 schema 真源零差异\n\n新增 20260712155600_deploy_parity_baseline 迁移,收敛迁移链重放态与 folder schema\n真源之间累计 10176 行系统性漂移,使全新空库 `prisma migrate deploy` 全量重放后\n与 Prisma Client 生成依据完全一致(影子库全链演练机器验证 diff 为空)。\n\n漂移核查结论:\n- 零缺列——Client 声明的列迁移链全部建到(6 个疑似缺列实为同语句 DROP+ADD 类型\n 重建,演练撞列后实锤改判)\n- 实际漂移构成:FK onDelete/onUpdate 行为 542 对、索引命名与定义约 1950 处、\n 列类型/NOT NULL/默认值 260 条、131 个真源已废弃列清理\n\nbaseline 工程化(五类防御化,安全性由终态 diff=0 校验兜底):\n- 约束背后索引 DROP INDEX → DROP CONSTRAINT(演练发现 Prisma diff 脚本缺陷)\n- 业务视图 20 个先拆后建(排除 pg_* 扩展视图;类型变更被视图依赖阻断)\n- 业务触发器 36 个先拆后建(pg_get_triggerdef 原样导出)\n- 索引操作幂等化 + 约束 RENAME/ADD DO 块吞存在性异常\n- 收尾:11 个同名异构索引先删后建 + 1 个冗余旧名 FK 清理\n\n环境处置:\n- dev 库 resolve --applied 跳过(禁止在有数据库上执行,含 DROP COLUMN 与 FK 行为\n 变更;存量漂移由 migration-drift 审计渐进治理)\n- API 测试库非 prisma migrate 管理,不受影响\n- 附带处置共享 dev 库幽灵状态:failed 半应用迁移 20260711235453 与无记录迁移\n 20260712000950 核实内容完整在库后 resolve 补记录\n\n部署口径落盘 docs/operations/database-deploy-migration-runbook-2026-07-12.md\n(全新库两步:deploy + diff 校验;已有环境一步 resolve)。\n\n证据:影子库全链演练 deploy 成功 + 终态 diff 输出 \"This is an empty migration.\";\n后端单测 640/8803 全绿;customers/sla API 真打 DB 17/17;prisma:schema 镜像审计通过;\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-07-12T09:04:27-07:00"}],"HeadCommit":{"Sha1":"c4f0c2eabbf729ae2f7cc6de2eda4416f0e7b3bb","Message":"feat(migrations): 部署完备 parity baseline——全新库 migrate deploy 终态与 schema 真源零差异\n\n新增 20260712155600_deploy_parity_baseline 迁移,收敛迁移链重放态与 folder schema\n真源之间累计 10176 行系统性漂移,使全新空库 `prisma migrate deploy` 全量重放后\n与 Prisma Client 生成依据完全一致(影子库全链演练机器验证 diff 为空)。\n\n漂移核查结论:\n- 零缺列——Client 声明的列迁移链全部建到(6 个疑似缺列实为同语句 DROP+ADD 类型\n 重建,演练撞列后实锤改判)\n- 实际漂移构成:FK onDelete/onUpdate 行为 542 对、索引命名与定义约 1950 处、\n 列类型/NOT NULL/默认值 260 条、131 个真源已废弃列清理\n\nbaseline 工程化(五类防御化,安全性由终态 diff=0 校验兜底):\n- 约束背后索引 DROP INDEX → DROP CONSTRAINT(演练发现 Prisma diff 脚本缺陷)\n- 业务视图 20 个先拆后建(排除 pg_* 扩展视图;类型变更被视图依赖阻断)\n- 业务触发器 36 个先拆后建(pg_get_triggerdef 原样导出)\n- 索引操作幂等化 + 约束 RENAME/ADD DO 块吞存在性异常\n- 收尾:11 个同名异构索引先删后建 + 1 个冗余旧名 FK 清理\n\n环境处置:\n- dev 库 resolve --applied 跳过(禁止在有数据库上执行,含 DROP COLUMN 与 FK 行为\n 变更;存量漂移由 migration-drift 审计渐进治理)\n- API 测试库非 prisma migrate 管理,不受影响\n- 附带处置共享 dev 库幽灵状态:failed 半应用迁移 20260711235453 与无记录迁移\n 20260712000950 核实内容完整在库后 resolve 补记录\n\n部署口径落盘 docs/operations/database-deploy-migration-runbook-2026-07-12.md\n(全新库两步:deploy + diff 校验;已有环境一步 resolve)。\n\n证据:影子库全链演练 deploy 成功 + 终态 diff 输出 \"This is an empty migration.\";\n后端单测 640/8803 全绿;customers/sla API 真打 DB 17/17;prisma:schema 镜像审计通过;\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-07-12T09:04:27-07:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/384707574f237763231e84a10939c4277977169d...c4f0c2eabbf729ae2f7cc6de2eda4416f0e7b3bb","Len":1}...
|
1783872271
|
Edit
Delete
|
|
19603
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/react-migration
|
0
|
{"Commits":[{"Sha1":"b94f71f09 {"Commits":[{"Sha1":"b94f71f09dc50f1a267a97bd72bdc2417fa41014","Message":"docs(governance): 沉淀反向断言剧场与 2026-07-28 全量对抗验收结论\n\n两节新增经验(经验库约定最新置顶,同步 最后更新 → 2026-07-28):\n\n1. 反向断言剧场:事件常量漂移让「真派发」consumer 测试静默空转。\n 真派发 ≠ 真命中——架构上确实捕获并调用了 handler,但事件类型\n 打不中路由表,0===0 的断言掩盖哑火。含幂等测试非空前置断言铁律、\n 常量取值范式与 `_created` 去重分支陷阱(不能只替换字符串)。\n\n2. 全量对抗验收实测:leads 主链运行态对抗探测全通过,但\n governance-gate(stale=46)与 baseline-reconcile(7 VALUE_DRIFT,\n 其中 4 处来自最新报告)双双报红。运行态扎实 ≠ 工作区级可放行,\n 两层必须分开陈述;禁止上调 ceiling 洗绿。\n\n对应代码修复见 f0f7ca8627。\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-07-28T17:47:57-07:00"},{"Sha1":"f0f7ca86271a2530ef901fe3b4472100452a02f3","Message":"test(hr): 修复因事件常量漂移而空转的消费者幂等测试\n\nhr.consumer 的路由键从 HR_ATTENDANCE_EVENTS.LEAVE_SUBMITTED\n('hr_leave_submitted') 改为 HR_EVENTS.LEAVE_REQUEST_CREATED\n('leave_request_created') 后,本测试仍硬编码旧字面量,导致\neventHandlers 查不到 handler、静默零副作用,测试退化为空转。\nproducer (leave.service.ts:612) 与 consumer 已对齐,生产代码无需改动。\n\n- 事件类型改从 HR_EVENTS 常量取值,后续重命名将直接编译失败而非静默失效\n- occurredAt 去重语义改用非 _created 事件验证:isEventProcessed 对\n `_created` 结尾事件按 eventType:entityId 去重(忽略 occurredAt),\n 用 created 事件断言「不同 occurredAt 都生效」在语义上必然失败\n- 两个用例补 afterFirst \u003e 0 防空转断言,杜绝 0 === 0 的假通过\n- 新增用例固定 _created 分支按 entityId 去重的语义\n\nbackend test:run: 653 files / 8945 tests 全通过(此前 2 failed)\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-07-28T17:40:14-07:00"},{"Sha1":"e756bd9203bbaacc6fc41c2f89f50259eeaf7e5d","Message":"Refactor governance workflows and frontend contracts\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-21T08:15:12-07:00"},{"Sha1":"33a0e20a1f45a68e6f951709fcf06742557cecba","Message":"Harden IM member boundaries and streamline governance guidance\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-21T04:01:44-07:00"},{"Sha1":"5f2d2c14951aaf1c46ad7d55b7152fe70e66395c","Message":"Improve governance workflows and frontend contract alignment\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-21T03:36:40-07:00"}],"HeadCommit":{"Sha1":"b94f71f09dc50f1a267a97bd72bdc2417fa41014","Message":"docs(governance): 沉淀反向断言剧场与 2026-07-28 全量对抗验收结论\n\n两节新增经验(经验库约定最新置顶,同步 最后更新 → 2026-07-28):\n\n1. 反向断言剧场:事件常量漂移让「真派发」consumer 测试静默空转。\n 真派发 ≠ 真命中——架构上确实捕获并调用了 handler,但事件类型\n 打不中路由表,0===0 的断言掩盖哑火。含幂等测试非空前置断言铁律、\n 常量取值范式与 `_created` 去重分支陷阱(不能只替换字符串)。\n\n2. 全量对抗验收实测:leads 主链运行态对抗探测全通过,但\n governance-gate(stale=46)与 baseline-reconcile(7 VALUE_DRIFT,\n 其中 4 处来自最新报告)双双报红。运行态扎实 ≠ 工作区级可放行,\n 两层必须分开陈述;禁止上调 ceiling 洗绿。\n\n对应代码修复见 f0f7ca8627。\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-07-28T17:47:57-07:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/c4f0c2eabbf729ae2f7cc6de2eda4416f0e7b3bb...b94f71f09dc50f1a267a97bd72bdc2417fa41014","Len":7}...
|
1785286209
|
Edit
Delete
|
|
19604
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/react-migration
|
0
|
{"Commits":[{"Sha1":"f23014a01 {"Commits":[{"Sha1":"f23014a01acfc11abb251f3a76ea6c904a44ecac","Message":"docs(governance): 订正 view-g2=17 定性——首次诚实测量而非回归\n\n深挖推翻此前「真实视图成熟度回归」的判断,五条独立证据:\n\n1. maturityCounts 从 5-08 到 7-09 长期是 G4=300 全满级,7-21\n e756bd9203 突变为 G2=17\n2. 该提交的父提交里 git grep view-module-audit 只命中消费方,\n 无任何文件写入该报告——旧全 G4 报告无可执行生产器\n3. 该提交新增 view-audit.mjs(1348 行)并把 audit:view-governance\n 扩成 generate+verify+view:audit:generate 三段式\n4. 该提交 views 下测试文件增 1 删 0,无测试被删\n5. realViewModuleCount 299→284,归位 canonical 口径\n\n抽验 6 模块确认零 smoke 测试属实;admin 的 2 处引用是 vi.mock 桩掉,\n扫描器只认真实 from 导入是正确的保守设计。\n\n附:真实整改 backlog 19 项;生产器缺陷 1 项(mobile-prototype 因\nglobal-shell 拓扑在两条规则间不自洽而永远卡 G2 且无可修 gap)。\n受控块处置属棘轮「迁移后重存基线」分支,需 PR review,未单方面改。\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-07-28T18:21:14-07:00"}],"HeadCommit":{"Sha1":"f23014a01acfc11abb251f3a76ea6c904a44ecac","Message":"docs(governance): 订正 view-g2=17 定性——首次诚实测量而非回归\n\n深挖推翻此前「真实视图成熟度回归」的判断,五条独立证据:\n\n1. maturityCounts 从 5-08 到 7-09 长期是 G4=300 全满级,7-21\n e756bd9203 突变为 G2=17\n2. 该提交的父提交里 git grep view-module-audit 只命中消费方,\n 无任何文件写入该报告——旧全 G4 报告无可执行生产器\n3. 该提交新增 view-audit.mjs(1348 行)并把 audit:view-governance\n 扩成 generate+verify+view:audit:generate 三段式\n4. 该提交 views 下测试文件增 1 删 0,无测试被删\n5. realViewModuleCount 299→284,归位 canonical 口径\n\n抽验 6 模块确认零 smoke 测试属实;admin 的 2 处引用是 vi.mock 桩掉,\n扫描器只认真实 from 导入是正确的保守设计。\n\n附:真实整改 backlog 19 项;生产器缺陷 1 项(mobile-prototype 因\nglobal-shell 拓扑在两条规则间不自洽而永远卡 G2 且无可修 gap)。\n受控块处置属棘轮「迁移后重存基线」分支,需 PR review,未单方面改。\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-07-28T18:21:14-07:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/b94f71f09dc50f1a267a97bd72bdc2417fa41014...f23014a01acfc11abb251f3a76ea6c904a44ecac","Len":1}...
|
1785288087
|
Edit
Delete
|
|
12632
|
12
|
5
|
12
|
42
|
0
|
0
|
refs/heads/realResoVSdesignReso
|
1
|
|
1781583204
|
Edit
Delete
|
|
12633
|
12
|
5
|
12
|
42
|
0
|
0
|
refs/heads/realResoVSdesignReso
|
1
|
{"Commits":[{"Sha1":"dd849e835 {"Commits":[{"Sha1":"dd849e835f93cfe5ee27e6fc5f777c7670710592","Message":"cocos: add support to display scene which is designed in 1920x1080 in 1280x720 window\n\nAdd support to display scene which is designed in 1920x1080 in 1280x720 window.\n","AuthorEmail":"udknight@gmail.com","AuthorName":"Wang YanQing","CommitterEmail":"udknight@gmail.com","CommitterName":"Wang YanQing","Timestamp":"2017-12-08T10:13:51+08:00"}],"HeadCommit":{"Sha1":"dd849e835f93cfe5ee27e6fc5f777c7670710592","Message":"cocos: add support to display scene which is designed in 1920x1080 in 1280x720 window\n\nAdd support to display scene which is designed in 1920x1080 in 1280x720 window.\n","AuthorEmail":"udknight@gmail.com","AuthorName":"Wang YanQing","CommitterEmail":"udknight@gmail.com","CommitterName":"Wang YanQing","Timestamp":"2017-12-08T10:13:51+08:00"},"CompareURL":"zhengpeizhong/cocos2d-x/compare/838e71242271c76601a6563501f84bacd0e9ac1d...dd849e835f93cfe5ee27e6fc5f777c7670710592","Len":1}...
|
1781583204
|
Edit
Delete
|
|
6005
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/refactor/payroll-uselistpage
|
0
|
|
1779860412
|
Edit
Delete
|
|
6006
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/refactor/payroll-uselistpage
|
0
|
{"Commits":[{"Sha1":"ed6b4b052 {"Commits":[{"Sha1":"ed6b4b052da885ad63113d7d7045b7c512025b0f","Message":"fix(auth): 消除匿名访客启动即触发的无效 refresh 401,并修复 auth 中间件多余括号\n\n优化 init 会话恢复:\n- 后端登录/刷新时额外种可读 session_hint cookie(非 HttpOnly,与 refresh_token 同生命周期),登出清除\n- 前端 init() 仅在存在会话信号(localStorage token/user、loopback 标记或 session_hint cookie)时才发起 /auth/refresh,匿名访客静默清状态,不再产生无效 401\n- clearLocalState() 同步过期 session_hint cookie\n- 合法 cookie-only 会话恢复路径(含 E2E storageState)不受影响\n\n顺带修复 auth.middleware.ts 中 prisma.users.findFirst select 块多余的闭合括号,该语法错误导致后端无法启动\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"luojuhai@luojuhaideMacBook-Pro.local","AuthorName":"luojuhai","CommitterEmail":"luojuhai@luojuhaideMacBook-Pro.local","CommitterName":"luojuhai","Timestamp":"2026-05-26T22:37:58-07:00"},{"Sha1":"196258b4bf8293811ea64859f9be0f464a6c5b8d","Message":"Merge branch 'main' into refactor/payroll-uselistpage\n","AuthorEmail":"luojuhai@luojuhaideMacBook-Pro.local","AuthorName":"luojuhai","CommitterEmail":"luojuhai@luojuhaideMacBook-Pro.local","CommitterName":"luojuhai","Timestamp":"2026-05-26T22:23:29-07:00"},{"Sha1":"7ce6ae124e47fde6ee51a735062164d48e585e5e","Message":"Merge pull request #85 from laoluojuhai/governance/hr-training-readmodel-fixes\n\nGovernance/hr training readmodel fixes","AuthorEmail":"158980461+laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"noreply@github.com","CommitterName":"GitHub","Timestamp":"2026-05-26T07:42:26-07:00"},{"Sha1":"f53d2e37695ff0727b0ceb47989a45e46572d54f","Message":"fix(hr-training): 治理培训管理读模型断链 + 实现能力评估/差距分析\n\n修复贯穿培训管理 15 个 Tab 的 case-transform 读模型断链(前端读的字段名 ≠\n全局 responseCaseConverter 实际产出),共 5 种形态:\n\n1. 前端虚构字段:我的学习 totalHours=NaN(durationSeconds 不存在)→ 改用\n getStats 权威总时长 + 真实字段映射\n2. 照抄 Prisma snake 列名:学习路径列表 path_type/learning_path_steps 等 →\n LearningPath/LearningPathStep 类型与组件全改 camelCase\n3. 枚举值当对象 key:9-Box buckets 与 效果看板 coachDrafts.byStatus\n (at_risk/pending_review 被转坏成 atRisk/pendingReview)→ 9-Box 从\n members 派生计数;effectiveness-summary 的 byFamily/byStatus 改数组形态\n4. _count→Count:培训计划/培训场次 报名数恒 0 → 后端 service 把 _count 聚合\n 提升为扁平字段(sessionCount/enrollmentCount),前端读扁平字段\n5. 嵌套读错提升字段:考试管理「关联课程」读 hrCourses.title → 改读\n 后端 format 提升的 course.name\n\n其他:\n- AI 教练对练:PracticeRequest 类型补齐后端 startPracticeSchema 实收字段,\n 消除 payload:any(红线6);新增 CoachSkillSlug 联合类型\n- 课程管理:courseType 枚举漂移 blended→mixed、时长/学分字段名错配修正\n- 证书管理:模板 status←is_active 桥接(修恒「停用」)、有效期单位天、移除\n 结构不可支持的「已颁发」列\n- 能力模型:getMyAssessments/getGapAnalysis 由空桩实现为复用\n capability-graph.getRadar 的真源派生(current=真实评分、target=维度满级),\n 不杜撰数字;零前端改动\n- 效果看板:空数据窗口感知空态提示\n\n前端 vue-tsc + 后端 tsc 全绿。\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"laoluojuhai","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"laoluojuhai","Timestamp":"2026-05-26T07:39:18-07:00"},{"Sha1":"ab2d0482cb4d14233885b25cef63e58890d3044e","Message":"fix(auth): RLS 自动注入分支补 await,避免异常逃出 try/catch 挂起请求\n\n安全专审 Finding 1:authenticate 中间件 RLS_AUTO_INJECT 分支\n`return tenantContext.run(...)` 未 await,loadUserAndContinue 抛错\n(用户禁用/回源失败) 时被拒 promise 逃出外层 try/catch,next(error)\n不触发,请求挂起而非返回 401。改为 return await,与 auth.service.ts:213\n已有正确写法一致。fail-closed 无越权,属可用性/正确性修复。\n\n附带本轮治理改动:\n- auth.service.ts refresh 链路显式建立 tenantContext (R-RLS-4)\n- 新增 core-event-closed-loop / rls-staging-canary / 30d-war-plan 审计\n- .env 写入守卫 + 单文件 eslint hook;security-reviewer agent\n- serial-numbers controller + 测试;治理报告/基线刷新\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"laoluojuhai","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"laoluojuhai","Timestamp":"2026-05-26T05:14:04-07:00"}],"HeadCommit":{"Sha1":"ed6b4b052da885ad63113d7d7045b7c512025b0f","Message":"fix(auth): 消除匿名访客启动即触发的无效 refresh 401,并修复 auth 中间件多余括号\n\n优化 init 会话恢复:\n- 后端登录/刷新时额外种可读 session_hint cookie(非 HttpOnly,与 refresh_token 同生命周期),登出清除\n- 前端 init() 仅在存在会话信号(localStorage token/user、loopback 标记或 session_hint cookie)时才发起 /auth/refresh,匿名访客静默清状态,不再产生无效 401\n- clearLocalState() 同步过期 session_hint cookie\n- 合法 cookie-only 会话恢复路径(含 E2E storageState)不受影响\n\n顺带修复 auth.middleware.ts 中 prisma.users.findFirst select 块多余的闭合括号,该语法错误导致后端无法启动\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"luojuhai@luojuhaideMacBook-Pro.local","AuthorName":"luojuhai","CommitterEmail":"luojuhai@luojuhaideMacBook-Pro.local","CommitterName":"luojuhai","Timestamp":"2026-05-26T22:37:58-07:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/1a0e581f336639079ebba02b42516bda34f59268...ed6b4b052da885ad63113d7d7045b7c512025b0f","Len":10}...
|
1779860412
|
Edit
Delete
|
|
12607
|
12
|
5
|
12
|
41
|
0
|
0
|
refs/heads/release
|
1
|
|
1781582669
|
Edit
Delete
|
|
12608
|
12
|
5
|
12
|
41
|
0
|
0
|
refs/heads/release
|
1
|
{"Commits":[{"Sha1":"5afdeae06 {"Commits":[{"Sha1":"5afdeae06ae8a62470ff01d425f80fd05ca404e9","Message":"v1.2.3\n","AuthorEmail":"paidong@163.com","AuthorName":"paidong","CommitterEmail":"paidong@163.com","CommitterName":"paidong","Timestamp":"2022-11-15T15:53:19+08:00"},{"Sha1":"ad43ffdae9c3d00f92cc6bcbd828b5049fd764bc","Message":"修改网络直播播放协议,播放网络直播时,播放参数\"ip\"必须修改为\"live\"(原来是\"filename\")\n","AuthorEmail":"paidong@163.com","AuthorName":"paidong","CommitterEmail":"paidong@163.com","CommitterName":"paidong","Timestamp":"2022-11-15T15:52:05+08:00"},{"Sha1":"5cc2bb53003bb1e9b3c5ca966b1d8f85ee40ad37","Message":"update cocos path\n","AuthorEmail":"paidong@163.com","AuthorName":"paidong","CommitterEmail":"paidong@163.com","CommitterName":"paidong","Timestamp":"2022-10-14T21:23:47+08:00"},{"Sha1":"645f828acc48cc3b304c8a44f939bc397be01dee","Message":"update dev platform\n","AuthorEmail":"paidong@163.com","AuthorName":"paidong","CommitterEmail":"paidong@163.com","CommitterName":"paidong","Timestamp":"2022-10-14T14:32:23+08:00"},{"Sha1":"4edbb7c63e6daefe7a20a2fbd3ae7cea440a8cca","Message":"jhplayer: v1.2.2\n调整播放器错误日志上传策略,只上传启动后头10条错误日志\n","AuthorEmail":"paidong@163.com","AuthorName":"paidong","CommitterEmail":"paidong@163.com","CommitterName":"paidong","Timestamp":"2022-08-10T14:48:10+08:00"}],"HeadCommit":{"Sha1":"5afdeae06ae8a62470ff01d425f80fd05ca404e9","Message":"v1.2.3\n","AuthorEmail":"paidong@163.com","AuthorName":"paidong","CommitterEmail":"paidong@163.com","CommitterName":"paidong","Timestamp":"2022-11-15T15:53:19+08:00"},"CompareURL":"zhengpeizhong/jhplayer/compare/b26b24b51fce270795fc7df6ba219704efe76aeb...5afdeae06ae8a62470ff01d425f80fd05ca404e9","Len":5}...
|
1781582669
|
Edit
Delete
|
|
12634
|
12
|
5
|
12
|
42
|
0
|
0
|
refs/heads/release
|
1
|
|
1781583206
|
Edit
Delete
|
|
12635
|
12
|
5
|
12
|
42
|
0
|
0
|
refs/heads/release
|
1
|
{"Commits":[{"Sha1":"29074acab {"Commits":[{"Sha1":"29074acabad78e1782326cba71dc39d8a8e45b8a","Message":"v1.3.2\n","AuthorEmail":"paidong@163.com","AuthorName":"paidong","CommitterEmail":"paidong@163.com","CommitterName":"paidong","Timestamp":"2024-04-11T10:37:24+08:00"},{"Sha1":"7ee4487fdfdfb4ccfb0921a897ccead20bd2cb14","Message":"修复addCustomHandler导致的崩溃问题\n","AuthorEmail":"paidong@163.com","AuthorName":"paidong","CommitterEmail":"paidong@163.com","CommitterName":"paidong","Timestamp":"2024-04-11T10:37:13+08:00"},{"Sha1":"0e7cf043bf604f5a2d94f5d99a784f7a4035e824","Message":"v1.3.1\n","AuthorEmail":"paidong@163.com","AuthorName":"paidong","CommitterEmail":"paidong@163.com","CommitterName":"paidong","Timestamp":"2024-03-14T11:06:43+08:00"},{"Sha1":"72663d3dd66f49d4d9d261207a03c305476551e0","Message":"增加支持JH600三合一功放\n","AuthorEmail":"paidong@163.com","AuthorName":"paidong","CommitterEmail":"paidong@163.com","CommitterName":"paidong","Timestamp":"2024-03-14T11:02:33+08:00"},{"Sha1":"38cbd957bece2ac973d868853b7af0880dca85bf","Message":"v1.3.0\n","AuthorEmail":"paidong@163.com","AuthorName":"paidong","CommitterEmail":"paidong@163.com","CommitterName":"paidong","Timestamp":"2024-03-14T10:53:37+08:00"}],"HeadCommit":{"Sha1":"29074acabad78e1782326cba71dc39d8a8e45b8a","Message":"v1.3.2\n","AuthorEmail":"paidong@163.com","AuthorName":"paidong","CommitterEmail":"paidong@163.com","CommitterName":"paidong","Timestamp":"2024-04-11T10:37:24+08:00"},"CompareURL":"zhengpeizhong/cocos2d-x/compare/943f1e4e2549c32bcebb882e23523d07936fd545...29074acabad78e1782326cba71dc39d8a8e45b8a","Len":10}...
|
1781583206
|
Edit
Delete
|
|
18857
|
1
|
5
|
1
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
|
1785120100
|
Edit
Delete
|
|
18858
|
9
|
5
|
1
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
|
1785120100
|
Edit
Delete
|
|
18859
|
3
|
5
|
1
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
|
1785120100
|
Edit
Delete
|
|
18860
|
4
|
5
|
1
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
|
1785120100
|
Edit
Delete
|
|
18861
|
7
|
5
|
1
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
|
1785120100
|
Edit
Delete
|
|
18862
|
8
|
5
|
1
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
|
1785120100
|
Edit
Delete
|
|
18863
|
10
|
5
|
1
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
|
1785120100
|
Edit
Delete
|
|
18864
|
11
|
5
|
1
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
|
1785120100
|
Edit
Delete
|
|
18865
|
1
|
5
|
1
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
{"Commits":[{"Sha1":"6afdc03c6 {"Commits":[{"Sha1":"6afdc03c68058ef9bbea47552f0bc2db4e1dc9a6","Message":"chore: import room API codebase\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-07-27T10:27:52+08:00"}],"HeadCommit":{"Sha1":"6afdc03c68058ef9bbea47552f0bc2db4e1dc9a6","Message":"chore: import room API codebase\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-07-27T10:27:52+08:00"},"CompareURL":"","Len":1}...
|
1785120100
|
Edit
Delete
|
|
18866
|
9
|
5
|
1
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
{"Commits":[{"Sha1":"6afdc03c6 {"Commits":[{"Sha1":"6afdc03c68058ef9bbea47552f0bc2db4e1dc9a6","Message":"chore: import room API codebase\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-07-27T10:27:52+08:00"}],"HeadCommit":{"Sha1":"6afdc03c68058ef9bbea47552f0bc2db4e1dc9a6","Message":"chore: import room API codebase\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-07-27T10:27:52+08:00"},"CompareURL":"","Len":1}...
|
1785120100
|
Edit
Delete
|
|
18867
|
3
|
5
|
1
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
{"Commits":[{"Sha1":"6afdc03c6 {"Commits":[{"Sha1":"6afdc03c68058ef9bbea47552f0bc2db4e1dc9a6","Message":"chore: import room API codebase\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-07-27T10:27:52+08:00"}],"HeadCommit":{"Sha1":"6afdc03c68058ef9bbea47552f0bc2db4e1dc9a6","Message":"chore: import room API codebase\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-07-27T10:27:52+08:00"},"CompareURL":"","Len":1}...
|
1785120100
|
Edit
Delete
|
|
18868
|
4
|
5
|
1
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
{"Commits":[{"Sha1":"6afdc03c6 {"Commits":[{"Sha1":"6afdc03c68058ef9bbea47552f0bc2db4e1dc9a6","Message":"chore: import room API codebase\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-07-27T10:27:52+08:00"}],"HeadCommit":{"Sha1":"6afdc03c68058ef9bbea47552f0bc2db4e1dc9a6","Message":"chore: import room API codebase\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-07-27T10:27:52+08:00"},"CompareURL":"","Len":1}...
|
1785120100
|
Edit
Delete
|
|
18869
|
7
|
5
|
1
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
{"Commits":[{"Sha1":"6afdc03c6 {"Commits":[{"Sha1":"6afdc03c68058ef9bbea47552f0bc2db4e1dc9a6","Message":"chore: import room API codebase\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-07-27T10:27:52+08:00"}],"HeadCommit":{"Sha1":"6afdc03c68058ef9bbea47552f0bc2db4e1dc9a6","Message":"chore: import room API codebase\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-07-27T10:27:52+08:00"},"CompareURL":"","Len":1}...
|
1785120100
|
Edit
Delete
|
|
18870
|
8
|
5
|
1
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
{"Commits":[{"Sha1":"6afdc03c6 {"Commits":[{"Sha1":"6afdc03c68058ef9bbea47552f0bc2db4e1dc9a6","Message":"chore: import room API codebase\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-07-27T10:27:52+08:00"}],"HeadCommit":{"Sha1":"6afdc03c68058ef9bbea47552f0bc2db4e1dc9a6","Message":"chore: import room API codebase\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-07-27T10:27:52+08:00"},"CompareURL":"","Len":1}...
|
1785120100
|
Edit
Delete
|
|
18871
|
10
|
5
|
1
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
{"Commits":[{"Sha1":"6afdc03c6 {"Commits":[{"Sha1":"6afdc03c68058ef9bbea47552f0bc2db4e1dc9a6","Message":"chore: import room API codebase\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-07-27T10:27:52+08:00"}],"HeadCommit":{"Sha1":"6afdc03c68058ef9bbea47552f0bc2db4e1dc9a6","Message":"chore: import room API codebase\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-07-27T10:27:52+08:00"},"CompareURL":"","Len":1}...
|
1785120100
|
Edit
Delete
|
|
18872
|
11
|
5
|
1
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
{"Commits":[{"Sha1":"6afdc03c6 {"Commits":[{"Sha1":"6afdc03c68058ef9bbea47552f0bc2db4e1dc9a6","Message":"chore: import room API codebase\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-07-27T10:27:52+08:00"}],"HeadCommit":{"Sha1":"6afdc03c68058ef9bbea47552f0bc2db4e1dc9a6","Message":"chore: import room API codebase\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-07-27T10:27:52+08:00"},"CompareURL":"","Len":1}...
|
1785120100
|
Edit
Delete
|
|
18937
|
8
|
5
|
8
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
{"Commits":[{"Sha1":"1a41dd78e {"Commits":[{"Sha1":"1a41dd78ef391213f361fa08e302f1478ea8faa4","Message":"需求 包厢暂停语音配置 16708\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-07-27T14:03:43+08:00"}],"HeadCommit":{"Sha1":"1a41dd78ef391213f361fa08e302f1478ea8faa4","Message":"需求 包厢暂停语音配置 16708\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-07-27T14:03:43+08:00"},"CompareURL":"vodtest/room_api/compare/6afdc03c68058ef9bbea47552f0bc2db4e1dc9a6...1a41dd78ef391213f361fa08e302f1478ea8faa4","Len":1}...
|
1785132227
|
Edit
Delete
|
|
18938
|
9
|
5
|
8
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
{"Commits":[{"Sha1":"1a41dd78e {"Commits":[{"Sha1":"1a41dd78ef391213f361fa08e302f1478ea8faa4","Message":"需求 包厢暂停语音配置 16708\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-07-27T14:03:43+08:00"}],"HeadCommit":{"Sha1":"1a41dd78ef391213f361fa08e302f1478ea8faa4","Message":"需求 包厢暂停语音配置 16708\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-07-27T14:03:43+08:00"},"CompareURL":"vodtest/room_api/compare/6afdc03c68058ef9bbea47552f0bc2db4e1dc9a6...1a41dd78ef391213f361fa08e302f1478ea8faa4","Len":1}...
|
1785132227
|
Edit
Delete
|
|
18939
|
1
|
5
|
8
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
{"Commits":[{"Sha1":"1a41dd78e {"Commits":[{"Sha1":"1a41dd78ef391213f361fa08e302f1478ea8faa4","Message":"需求 包厢暂停语音配置 16708\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-07-27T14:03:43+08:00"}],"HeadCommit":{"Sha1":"1a41dd78ef391213f361fa08e302f1478ea8faa4","Message":"需求 包厢暂停语音配置 16708\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-07-27T14:03:43+08:00"},"CompareURL":"vodtest/room_api/compare/6afdc03c68058ef9bbea47552f0bc2db4e1dc9a6...1a41dd78ef391213f361fa08e302f1478ea8faa4","Len":1}...
|
1785132227
|
Edit
Delete
|
|
18940
|
3
|
5
|
8
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
{"Commits":[{"Sha1":"1a41dd78e {"Commits":[{"Sha1":"1a41dd78ef391213f361fa08e302f1478ea8faa4","Message":"需求 包厢暂停语音配置 16708\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-07-27T14:03:43+08:00"}],"HeadCommit":{"Sha1":"1a41dd78ef391213f361fa08e302f1478ea8faa4","Message":"需求 包厢暂停语音配置 16708\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-07-27T14:03:43+08:00"},"CompareURL":"vodtest/room_api/compare/6afdc03c68058ef9bbea47552f0bc2db4e1dc9a6...1a41dd78ef391213f361fa08e302f1478ea8faa4","Len":1}...
|
1785132227
|
Edit
Delete
|
|
18941
|
4
|
5
|
8
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
{"Commits":[{"Sha1":"1a41dd78e {"Commits":[{"Sha1":"1a41dd78ef391213f361fa08e302f1478ea8faa4","Message":"需求 包厢暂停语音配置 16708\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-07-27T14:03:43+08:00"}],"HeadCommit":{"Sha1":"1a41dd78ef391213f361fa08e302f1478ea8faa4","Message":"需求 包厢暂停语音配置 16708\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-07-27T14:03:43+08:00"},"CompareURL":"vodtest/room_api/compare/6afdc03c68058ef9bbea47552f0bc2db4e1dc9a6...1a41dd78ef391213f361fa08e302f1478ea8faa4","Len":1}...
|
1785132227
|
Edit
Delete
|
|
18942
|
7
|
5
|
8
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
{"Commits":[{"Sha1":"1a41dd78e {"Commits":[{"Sha1":"1a41dd78ef391213f361fa08e302f1478ea8faa4","Message":"需求 包厢暂停语音配置 16708\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-07-27T14:03:43+08:00"}],"HeadCommit":{"Sha1":"1a41dd78ef391213f361fa08e302f1478ea8faa4","Message":"需求 包厢暂停语音配置 16708\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-07-27T14:03:43+08:00"},"CompareURL":"vodtest/room_api/compare/6afdc03c68058ef9bbea47552f0bc2db4e1dc9a6...1a41dd78ef391213f361fa08e302f1478ea8faa4","Len":1}...
|
1785132227
|
Edit
Delete
|
|
18943
|
10
|
5
|
8
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
{"Commits":[{"Sha1":"1a41dd78e {"Commits":[{"Sha1":"1a41dd78ef391213f361fa08e302f1478ea8faa4","Message":"需求 包厢暂停语音配置 16708\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-07-27T14:03:43+08:00"}],"HeadCommit":{"Sha1":"1a41dd78ef391213f361fa08e302f1478ea8faa4","Message":"需求 包厢暂停语音配置 16708\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-07-27T14:03:43+08:00"},"CompareURL":"vodtest/room_api/compare/6afdc03c68058ef9bbea47552f0bc2db4e1dc9a6...1a41dd78ef391213f361fa08e302f1478ea8faa4","Len":1}...
|
1785132227
|
Edit
Delete
|
|
18944
|
11
|
5
|
8
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
{"Commits":[{"Sha1":"1a41dd78e {"Commits":[{"Sha1":"1a41dd78ef391213f361fa08e302f1478ea8faa4","Message":"需求 包厢暂停语音配置 16708\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-07-27T14:03:43+08:00"}],"HeadCommit":{"Sha1":"1a41dd78ef391213f361fa08e302f1478ea8faa4","Message":"需求 包厢暂停语音配置 16708\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-07-27T14:03:43+08:00"},"CompareURL":"vodtest/room_api/compare/6afdc03c68058ef9bbea47552f0bc2db4e1dc9a6...1a41dd78ef391213f361fa08e302f1478ea8faa4","Len":1}...
|
1785132227
|
Edit
Delete
|
|
12636
|
12
|
5
|
12
|
42
|
0
|
0
|
refs/heads/test
|
1
|
|
1781583206
|
Edit
Delete
|
|
12637
|
12
|
5
|
12
|
42
|
0
|
0
|
refs/heads/test
|
1
|
{"Commits":[],"HeadCommit":{"S {"Commits":[],"HeadCommit":{"Sha1":"57c62b99b7985a668f2516504e0ae74c79872f89","Message":"Multi-window implementation\n\nWindowKey is used as a multiplatform identifier for windows. For now it's a hash of the GLFWwindow pointer, but that can be changed.\n\nDirectorContext encapsulates a \"mini director\" instance for each window. There is still a central director which is responsible for updating each context. Each context also has its own event manager, action manager, and scheduler.\n\nTo reduce the amount of code changes necessary for mobile, by default the first window created is the main window. The main window is special; if it gets closed, it terminates the application. There are special accessors to grab the \"main\"scheduler/eventmanager/actionmanager. For certain tasks, especially async tasks, they need to schedule their callbacks on the main window, because the existence of the other windows is not guaranteed, unlike the main one.\n\nThe contexts work in a similar manner as opengl. A context is set to be active (setContextAndLock) and then non-actve (unlock). Doing so changes what gets returned by the getCurrentWindow call and the getCurrentScheduler/EventManager/ActionManager calls. This allows nodes and virtually everything to not care which window it was created in. Unless the node is transplanted into a new window/context, its getCurrentManagers functions will always return the same. It also hides any window dependancy. Almost everything outside of the director doens't know or care which window it was created in.\n\nCCGLViewImpl-desktop.cpp required substantial changes. The poll events function grabs all the events for all windows at once. What we want to do is sort them by window and defer the execution of them until the correct context is active. Otherwise, we'll be switching contexts rapidly while processing the polled events. Thus, the callbacks all push std::functions onto a map, keyed to the correct window.\n\nThere are also a number of order of operation fixes and smaller miscelaneous changes that were required as a result of this feature.\n\ncpp-empty-test has been extended to create 3 windows at launch to demonstrate the multi window functionality.\n","AuthorEmail":"dereky@amayasoftware.com","AuthorName":"Derek Yau","CommitterEmail":"dereky@amayasoftware.com","CommitterName":"Derek Yau","Timestamp":"2015-09-29T17:07:48-04:00"},"CompareURL":"zhengpeizhong/cocos2d-x/compare/3719c...57c62b99b7985a668f2516504e0ae74c79872f89","Len":0}...
|
1781583206
|
Edit
Delete
|
|
317
|
1
|
5
|
1
|
17
|
0
|
0
|
refs/heads/testpc
|
0
|
|
1773989093
|
Edit
Delete
|
|
318
|
2
|
5
|
1
|
17
|
0
|
0
|
refs/heads/testpc
|
0
|
|
1773989093
|
Edit
Delete
|