|
322
|
2
|
5
|
1
|
17
|
0
|
0
|
refs/heads/pctest
|
0
|
{"Commits":[{"Sha1":"e31b1c088 {"Commits":[{"Sha1":"e31b1c088fcbd1c19c3ca487fe550697bfa9bdd6","Message":"测试2222333\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-03-20T14:58:36+08:00"}],"HeadCommit":{"Sha1":"e31b1c088fcbd1c19c3ca487fe550697bfa9bdd6","Message":"测试2222333\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-03-20T14:58:36+08:00"},"CompareURL":"juhai/pctest/compare/78427a51eb7bd5a7de532a80ec9e94f265930824...e31b1c088fcbd1c19c3ca487fe550697bfa9bdd6","Len":1}...
|
1773989952
|
Edit
Delete
|
|
325
|
1
|
5
|
1
|
17
|
0
|
0
|
refs/heads/pctest
|
0
|
{"Commits":[{"Sha1":"b23272882 {"Commits":[{"Sha1":"b23272882d68e0b61ab119ff0f670c4dbbe7a652","Message":"修改单个文件测试\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-03-20T15:04:08+08:00"}],"HeadCommit":{"Sha1":"b23272882d68e0b61ab119ff0f670c4dbbe7a652","Message":"修改单个文件测试\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-03-20T15:04:08+08:00"},"CompareURL":"juhai/pctest/compare/e31b1c088fcbd1c19c3ca487fe550697bfa9bdd6...b23272882d68e0b61ab119ff0f670c4dbbe7a652","Len":1}...
|
1773990288
|
Edit
Delete
|
|
326
|
2
|
5
|
1
|
17
|
0
|
0
|
refs/heads/pctest
|
0
|
{"Commits":[{"Sha1":"b23272882 {"Commits":[{"Sha1":"b23272882d68e0b61ab119ff0f670c4dbbe7a652","Message":"修改单个文件测试\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-03-20T15:04:08+08:00"}],"HeadCommit":{"Sha1":"b23272882d68e0b61ab119ff0f670c4dbbe7a652","Message":"修改单个文件测试\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-03-20T15:04:08+08:00"},"CompareURL":"juhai/pctest/compare/e31b1c088fcbd1c19c3ca487fe550697bfa9bdd6...b23272882d68e0b61ab119ff0f670c4dbbe7a652","Len":1}...
|
1773990288
|
Edit
Delete
|
|
329
|
1
|
5
|
1
|
17
|
0
|
0
|
refs/heads/pctest
|
0
|
{"Commits":[{"Sha1":"7fbec3ef9 {"Commits":[{"Sha1":"7fbec3ef95a3856eef25ceabf266030d5ca445e4","Message":"修改单个文件测试2\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-03-20T15:22:59+08:00"}],"HeadCommit":{"Sha1":"7fbec3ef95a3856eef25ceabf266030d5ca445e4","Message":"修改单个文件测试2\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-03-20T15:22:59+08:00"},"CompareURL":"juhai/pctest/compare/b23272882d68e0b61ab119ff0f670c4dbbe7a652...7fbec3ef95a3856eef25ceabf266030d5ca445e4","Len":1}...
|
1773991404
|
Edit
Delete
|
|
330
|
2
|
5
|
1
|
17
|
0
|
0
|
refs/heads/pctest
|
0
|
{"Commits":[{"Sha1":"7fbec3ef9 {"Commits":[{"Sha1":"7fbec3ef95a3856eef25ceabf266030d5ca445e4","Message":"修改单个文件测试2\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-03-20T15:22:59+08:00"}],"HeadCommit":{"Sha1":"7fbec3ef95a3856eef25ceabf266030d5ca445e4","Message":"修改单个文件测试2\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-03-20T15:22:59+08:00"},"CompareURL":"juhai/pctest/compare/b23272882d68e0b61ab119ff0f670c4dbbe7a652...7fbec3ef95a3856eef25ceabf266030d5ca445e4","Len":1}...
|
1773991404
|
Edit
Delete
|
|
333
|
1
|
5
|
1
|
17
|
0
|
0
|
refs/heads/pctest
|
0
|
{"Commits":[{"Sha1":"12a4a4ad4 {"Commits":[{"Sha1":"12a4a4ad441e2edf19328cb83a4d1532f1985c69","Message":"修改单个文件测试3\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-03-20T15:26:46+08:00"}],"HeadCommit":{"Sha1":"12a4a4ad441e2edf19328cb83a4d1532f1985c69","Message":"修改单个文件测试3\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-03-20T15:26:46+08:00"},"CompareURL":"juhai/pctest/compare/7fbec3ef95a3856eef25ceabf266030d5ca445e4...12a4a4ad441e2edf19328cb83a4d1532f1985c69","Len":1}...
|
1773991753
|
Edit
Delete
|
|
334
|
2
|
5
|
1
|
17
|
0
|
0
|
refs/heads/pctest
|
0
|
{"Commits":[{"Sha1":"12a4a4ad4 {"Commits":[{"Sha1":"12a4a4ad441e2edf19328cb83a4d1532f1985c69","Message":"修改单个文件测试3\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-03-20T15:26:46+08:00"}],"HeadCommit":{"Sha1":"12a4a4ad441e2edf19328cb83a4d1532f1985c69","Message":"修改单个文件测试3\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-03-20T15:26:46+08:00"},"CompareURL":"juhai/pctest/compare/7fbec3ef95a3856eef25ceabf266030d5ca445e4...12a4a4ad441e2edf19328cb83a4d1532f1985c69","Len":1}...
|
1773991753
|
Edit
Delete
|
|
495
|
1
|
5
|
1
|
17
|
0
|
0
|
refs/heads/pctest
|
0
|
{"Commits":[{"Sha1":"6a1850c0a {"Commits":[{"Sha1":"6a1850c0a6b2b9a5c6f910af5ddecbf2d99c8a96","Message":"ce1\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-03-25T09:54:45+08:00"},{"Sha1":"2946098562291d2b86473d4cf7d127331e99ac43","Message":"ce\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-03-25T09:53:55+08:00"}],"HeadCommit":{"Sha1":"6a1850c0a6b2b9a5c6f910af5ddecbf2d99c8a96","Message":"ce1\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-03-25T09:54:45+08:00"},"CompareURL":"juhai/pctest/compare/12a4a4ad441e2edf19328cb83a4d1532f1985c69...6a1850c0a6b2b9a5c6f910af5ddecbf2d99c8a96","Len":2}...
|
1774403728
|
Edit
Delete
|
|
496
|
2
|
5
|
1
|
17
|
0
|
0
|
refs/heads/pctest
|
0
|
{"Commits":[{"Sha1":"6a1850c0a {"Commits":[{"Sha1":"6a1850c0a6b2b9a5c6f910af5ddecbf2d99c8a96","Message":"ce1\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-03-25T09:54:45+08:00"},{"Sha1":"2946098562291d2b86473d4cf7d127331e99ac43","Message":"ce\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-03-25T09:53:55+08:00"}],"HeadCommit":{"Sha1":"6a1850c0a6b2b9a5c6f910af5ddecbf2d99c8a96","Message":"ce1\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-03-25T09:54:45+08:00"},"CompareURL":"juhai/pctest/compare/12a4a4ad441e2edf19328cb83a4d1532f1985c69...6a1850c0a6b2b9a5c6f910af5ddecbf2d99c8a96","Len":2}...
|
1774403729
|
Edit
Delete
|
|
499
|
1
|
5
|
1
|
17
|
0
|
0
|
refs/heads/pctest
|
0
|
{"Commits":[{"Sha1":"e03027962 {"Commits":[{"Sha1":"e03027962aed59b0c87ce41b201b6905760521d6","Message":"ce12\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-03-25T10:22:54+08:00"}],"HeadCommit":{"Sha1":"e03027962aed59b0c87ce41b201b6905760521d6","Message":"ce12\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-03-25T10:22:54+08:00"},"CompareURL":"juhai/pctest/compare/6a1850c0a6b2b9a5c6f910af5ddecbf2d99c8a96...e03027962aed59b0c87ce41b201b6905760521d6","Len":1}...
|
1774405382
|
Edit
Delete
|
|
500
|
2
|
5
|
1
|
17
|
0
|
0
|
refs/heads/pctest
|
0
|
{"Commits":[{"Sha1":"e03027962 {"Commits":[{"Sha1":"e03027962aed59b0c87ce41b201b6905760521d6","Message":"ce12\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-03-25T10:22:54+08:00"}],"HeadCommit":{"Sha1":"e03027962aed59b0c87ce41b201b6905760521d6","Message":"ce12\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-03-25T10:22:54+08:00"},"CompareURL":"juhai/pctest/compare/6a1850c0a6b2b9a5c6f910af5ddecbf2d99c8a96...e03027962aed59b0c87ce41b201b6905760521d6","Len":1}...
|
1774405382
|
Edit
Delete
|
|
12573
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/react-migration
|
0
|
|
1781524152
|
Edit
Delete
|
|
12574
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/react-migration
|
0
|
{"Commits":[{"Sha1":"247d57ffd {"Commits":[{"Sha1":"247d57ffdf2ba9ba3e2f8023f7f140cbcc1bbd29","Message":"feat(frontend-react): Capacitor 安卓打包与模拟器部署链路\n\n将 frontend-react 经 Capacitor 7.6.6 打包为原生安卓 App 并在模拟器跑通:\n- 新增 android 原生工程(compileSdk/targetSdk 35,gradle 8.11.1)\n- capacitor.config.ts 启用 CapacitorHttp + cleartext + allowMixedContent,\n 让 WebView 内 axios 走原生网络层,绕过混合内容/CORS 直连本机后端\n- AndroidManifest 加 usesCleartextTraffic + network_security_config,\n 放行模拟器回环 10.0.2.2 的明文 HTTP\n- .env.android 指向 http://10.0.2.2:3000/v1(模拟器访问宿主后端)\n- root/frontend-react package.json 增加 android/ios 打包脚本\n- scripts/android、scripts/ios 提供 gradle/emulator helper\n- .gitignore 忽略 .local-tools/jdks 与 gradle 缓存\n- 补齐迁移分支缺失的 ar-ledger/Detail、opportunities/DetailHeader\n 两个 .module.scss(否则 vite build 直接失败)\n- docs 补 Android/iOS runbook,记录 JDK21 要求、CapacitorHttp 连通前提、\n default 系统镜像选型与故障对照表\n\n验证:模拟器(API 34)登录 admin@juhi.com 后工作台仪表盘加载,\n后端单次进入 100+ 个 200 请求(/dashboard、/stats、/todos 等)。\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-06-15T04:45:09-07:00"},{"Sha1":"bfc67c2712903f1da5b77de5f89347be1ecdaf84","Message":"fix(rls): safe-rls-inject.sql 对齐 canonical 策略口径\n\n原脚本用 app.current_tenant_id(legacy 变体),与运行态 rls-extension.ts\n注入的 set_config('app.tenant_id',...) 不匹配,误用会导致本租户合法读被\nRLS 全过滤;且只有 USING 无 WITH CHECK,跨租户写不受拦。\n\n对齐迁移真源:app.tenant_id + current_setting(...,true) 兜底 + NULLIF 空串\n保护 + 补 WITH CHECK。已对测试库幂等实跑验证策略可建、USING/WITH CHECK\n均绑定 app.tenant_id。\n\nCo-Authored-By: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-06-14T07:26:30-07:00"},{"Sha1":"18c752c4fa928ecfa8b9b99188545f9ed939315b","Message":"chore(react-migration): pnpm dev 默认前端切到 React(接管规范端口 5173)\n\n本地 dev cutover:start-all.sh FRONTEND_DIR 默认指向 frontend-react,\nReact 接管规范端口 5173,healthcheck/docker-compose/nginx 自然指向 React。\nVue 降级为显式 opt-in(dev:frontend:vue / dev:vue / FRONTEND_APP_DIR=frontend)。\n\n- start-all.sh: FRONTEND_DIR 默认 frontend-react,保留 FRONTEND_APP_DIR 回退口\n- frontend-react/package.json: 补 dev:bg(--port 5173)/dev:bg:https/dev:cert/dev:https\n- frontend-react/vite.config.ts: 加 HTTPS dev 证书解析,与 Vue 同口径复用 generate-dev-cert\n- 根 package.json: dev:frontend→React,新增 Vue opt-in 脚本\n\n生产/容器构建仍为 Vue,生产 cutover 受 17 项治理门禁约束,未在此变更。\n\nCo-Authored-By: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-06-14T06:55:23-07:00"},{"Sha1":"4715abdbac750e073f17409c46ee9c1b27dcc9ef","Message":"chore(react-migration): refresh cutover readiness ledger\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"laoluojuhai","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"laoluojuhai","Timestamp":"2026-06-14T21:14:03+08:00"},{"Sha1":"b9000ffd475e71c448e0ab6afc283fe88b1117a6","Message":"chore(react-migration): refresh e2e readiness evidence\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"laoluojuhai","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"laoluojuhai","Timestamp":"2026-06-14T21:05:07+08:00"}],"HeadCommit":{"Sha1":"247d57ffdf2ba9ba3e2f8023f7f140cbcc1bbd29","Message":"feat(frontend-react): Capacitor 安卓打包与模拟器部署链路\n\n将 frontend-react 经 Capacitor 7.6.6 打包为原生安卓 App 并在模拟器跑通:\n- 新增 android 原生工程(compileSdk/targetSdk 35,gradle 8.11.1)\n- capacitor.config.ts 启用 CapacitorHttp + cleartext + allowMixedContent,\n 让 WebView 内 axios 走原生网络层,绕过混合内容/CORS 直连本机后端\n- AndroidManifest 加 usesCleartextTraffic + network_security_config,\n 放行模拟器回环 10.0.2.2 的明文 HTTP\n- .env.android 指向 http://10.0.2.2:3000/v1(模拟器访问宿主后端)\n- root/frontend-react package.json 增加 android/ios 打包脚本\n- scripts/android、scripts/ios 提供 gradle/emulator helper\n- .gitignore 忽略 .local-tools/jdks 与 gradle 缓存\n- 补齐迁移分支缺失的 ar-ledger/Detail、opportunities/DetailHeader\n 两个 .module.scss(否则 vite build 直接失败)\n- docs 补 Android/iOS runbook,记录 JDK21 要求、CapacitorHttp 连通前提、\n default 系统镜像选型与故障对照表\n\n验证:模拟器(API 34)登录 admin@juhi.com 后工作台仪表盘加载,\n后端单次进入 100+ 个 200 请求(/dashboard、/stats、/todos 等)。\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-06-15T04:45:09-07:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/1ae44a161007d2352abbc9000239e9a603240dfc...247d57ffdf2ba9ba3e2f8023f7f140cbcc1bbd29","Len":10}...
|
1781524152
|
Edit
Delete
|
|
12575
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/react-migration
|
0
|
{"Commits":[{"Sha1":"03d1e228d {"Commits":[{"Sha1":"03d1e228ddabedbfc97f6c2a3da75c952c522d9e","Message":"docs(frontend-react): 补记 Capacitor iOS 打包脚手架(说明 247d57ffdf)\n\n上一提交 247d57ffdf 信息仅写「安卓打包」,但实际同时纳入了 iOS 打包脚手架,\n此处在历史中补记,避免信息与内容不符:\n\n- @capacitor/ios 7.6.6 依赖 + build:ios / ios:add|sync|run|open 脚本\n (含根级 frontend-react:ios:* 转发脚本)\n- frontend-react/.env.ios(iOS 模拟器走 localhost:3000,区别于 Android 的 10.0.2.2)\n- scripts/ios/frontend-react-cap.sh(pod 命令 PATH 兜底包装,标准 PATH 优先)\n- frontend-react/capacitor.config.ts、docs/operations/frontend-react-ios-capacitor.md\n\n本提交为空,仅补充历史说明。CocoaPods 1.12.1 安装于本机用户 gem 目录\n(~/.gem/ruby/2.6.0),属本机环境不入仓库;ios/ 原生工程待安装 Xcode 后\n执行 pnpm run ios:add 生成。\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-06-15T04:52:37-07:00"}],"HeadCommit":{"Sha1":"03d1e228ddabedbfc97f6c2a3da75c952c522d9e","Message":"docs(frontend-react): 补记 Capacitor iOS 打包脚手架(说明 247d57ffdf)\n\n上一提交 247d57ffdf 信息仅写「安卓打包」,但实际同时纳入了 iOS 打包脚手架,\n此处在历史中补记,避免信息与内容不符:\n\n- @capacitor/ios 7.6.6 依赖 + build:ios / ios:add|sync|run|open 脚本\n (含根级 frontend-react:ios:* 转发脚本)\n- frontend-react/.env.ios(iOS 模拟器走 localhost:3000,区别于 Android 的 10.0.2.2)\n- scripts/ios/frontend-react-cap.sh(pod 命令 PATH 兜底包装,标准 PATH 优先)\n- frontend-react/capacitor.config.ts、docs/operations/frontend-react-ios-capacitor.md\n\n本提交为空,仅补充历史说明。CocoaPods 1.12.1 安装于本机用户 gem 目录\n(~/.gem/ruby/2.6.0),属本机环境不入仓库;ios/ 原生工程待安装 Xcode 后\n执行 pnpm run ios:add 生成。\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-06-15T04:52:37-07:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/247d57ffdf2ba9ba3e2f8023f7f140cbcc1bbd29...03d1e228ddabedbfc97f6c2a3da75c952c522d9e","Len":1}...
|
1781524367
|
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
|
|
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
|
|
323
|
1
|
17
|
1
|
17
|
0
|
0
|
refs/heads/testpc
|
0
|
|
1773990033
|
Edit
Delete
|
|
324
|
2
|
17
|
1
|
17
|
0
|
0
|
refs/heads/testpc
|
0
|
|
1773990033
|
Edit
Delete
|
|
607
|
6
|
9
|
6
|
16
|
0
|
0
|
refs/tags/v0.3-fingerprint-stable
|
0
|
{"Commits":null,"HeadCommit":{" {"Commits":null,"HeadCommit":{"Sha1":"5fbc6e8e611f32e371ed50d69336e0f0e89363c5","Message":"feat: 修复原唱/分轨播放 \u0026 M/S按钮布局重构\n","AuthorEmail":"7190060@qq.com","AuthorName":"lws","CommitterEmail":"7190060@qq.com","CommitterName":"lws","Timestamp":"2026-03-19T11:23:24+08:00"},"CompareURL":"liuwansheng/hidance/compare/0000000000000000000000000000000000000000...5fbc6e8e611f32e371ed50d69336e0f0e89363c5","Len":0}...
|
1774801182
|
Edit
Delete
|
|
668
|
5
|
9
|
5
|
6
|
0
|
0
|
refs/tags/v1.0.0
|
0
|
{"Commits":null,"HeadCommit":{" {"Commits":null,"HeadCommit":{"Sha1":"bd59e5501292cb061719f669c7a7b7afd4f1a0b7","Message":"Prepare v1.0.0 release\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-03-19T17:33:01+08:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/0000000000000000000000000000000000000000...e1e571dea3e53faf951b331ac647da4b96e0d01b","Len":0}...
|
1775181685
|
Edit
Delete
|
|
669
|
5
|
9
|
5
|
6
|
0
|
0
|
refs/tags/v1.0.0-RC1
|
0
|
{"Commits":null,"HeadCommit":{" {"Commits":null,"HeadCommit":{"Sha1":"84c900df1e544e4eb7070be9278918676c4aec69","Message":"Release(v1.0.0-RC1): 巨嗨全域智库 1.0.0 封版交付\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-03-04T17:53:20+08:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/0000000000000000000000000000000000000000...7f6c4805d0719ce236bfd86ac50cc40cc6f5e5c5","Len":0}...
|
1775181686
|
Edit
Delete
|