|
25199
|
feat: add consumer referral invites and enforce fi feat: add consumer referral invites and enforce first-purchase rewards...
|
51
|
5
|
ci.yml
|
58
|
5
|
0
|
refs/heads/main
|
1d335e46af39fab7287df8b066ebdb6441866ea8
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"55dfcf8071943ca22e462fcd79a103681f9c9090","after":"1d335e46af39fab7287df8b066ebdb6441866ea8","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/55dfcf8071943ca22e462fcd79a103681f9c9090...1d335e46af39fab7287df8b066ebdb6441866ea8","commits":[{"id":"1d335e46af39fab7287df8b066ebdb6441866ea8","message":"feat: add consumer referral invites and enforce first-purchase rewards\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/1d335e46af39fab7287df8b066ebdb6441866ea8","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-03T19:47:57-07:00","added":["docs/consumer-referral-governance-2026-10-03.md","docs/contracts/consumer-referral.md","docs/deployments/consumer-referral-local-2026-10-03.md","e2e/tests/11-consumer-referral.spec.ts","server/src/modules/consumer/referral-schema.ts","server/src/modules/consumer/referral-service.ts","server/test/r47-referral-integrity.test.ts","server/test/r48-consumer-referral.test.ts","server/test/r49-referral-revenue.test.ts"],"removed":[],"modified":["CLAUDE.md","README.md","e2e/README.md","e2e/package.json","e2e/tests/02-deep-flows.spec.ts","server/README.md","server/src/middleware/request-log.ts","server/src/modules/booking/service.ts","server/src/modules/consumer/routes.ts","server/src/modules/orders/service.ts","server/src/modules/referral/schema.ts","server/src/modules/referral/service.ts","server/src/openapi.ts","server/test/request-log.unit.test.ts","团购本地生活AI运营App/WEB.md","团购本地生活AI运营App/consumer-api.js","团购本地生活AI运营App/consumer-app.jsx","团购本地生活AI运营App/consumer.html","团购本地生活AI运营App/screens-fission.jsx","团购本地生活AI运营App/scripts/build.mjs","团购本地生活AI运营App/scripts/test-checkout-usage.mjs","团购本地生活AI运营App/scripts/test-consumer-auth.mjs","团购本地生活AI运营App/scripts/test-consumer-static.mjs","尤克特拉产品设计PRD.md","开发计划.md","治理经验库.md","项目阻塞点分析.md"]}],"total_commits":0,"head_commit":{"id":"1d335e46af39fab7287df8b066ebdb6441866ea8","message":"feat: add consumer referral invites and enforce first-purchase rewards\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/1d335e46af39fab7287df8b066ebdb6441866ea8","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-03T19:47:57-07:00","added":["docs/consumer-referral-governance-2026-10-03.md","docs/contracts/consumer-referral.md","docs/deployments/consumer-referral-local-2026-10-03.md","e2e/tests/11-consumer-referral.spec.ts","server/src/modules/consumer/referral-schema.ts","server/src/modules/consumer/referral-service.ts","server/test/r47-referral-integrity.test.ts","server/test/r48-consumer-referral.test.ts","server/test/r49-referral-revenue.test.ts"],"removed":[],"modified":["CLAUDE.md","README.md","e2e/README.md","e2e/package.json","e2e/tests/02-deep-flows.spec.ts","server/README.md","server/src/middleware/request-log.ts","server/src/modules/booking/service.ts","server/src/modules/consumer/routes.ts","server/src/modules/orders/service.ts","server/src/modules/referral/schema.ts","server/src/modules/referral/service.ts","server/src/openapi.ts","server/test/request-log.unit.test.ts","团购本地生活AI运营App/WEB.md","团购本地生活AI运营App/consumer-api.js","团购本地生活AI运营App/consumer-app.jsx","团购本地生活AI运营App/consumer.html","团购本地生活AI运营App/screens-fission.jsx","团购本地生活AI运营App/scripts/build.mjs","团购本地生活AI运营App/scripts/test-checkout-usage.mjs","团购本地生活AI运营App/scripts/test-consumer-auth.mjs","团购本地生活AI运营App/scripts/test-consumer-static.mjs","尤克特拉产品设计PRD.md","开发计划.md","治理经验库.md","项目阻塞点分析.md"]},"repository":{"id":51,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"yggdrasil-local-life-tools","full_name":"luoanwu/yggdrasil-local-life-tools","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":91013,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools/languages","html_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/yggdrasil-local-life-tools.git","clone_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-02T16:02:07+08:00","updated_at":"2026-10-04T09:53:43+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
5
|
0
|
1791082950
|
0
|
1791082093
|
1791082950
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25201
|
docs: record referral regression and verified loca docs: record referral regression and verified local deployment...
|
51
|
5
|
ci.yml
|
60
|
5
|
0
|
refs/heads/main
|
c8b1849d97c16e01d0e54b6b5f0ba7d9c49670d2
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1d335e46af39fab7287df8b066ebdb6441866ea8","after":"c8b1849d97c16e01d0e54b6b5f0ba7d9c49670d2","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/1d335e46af39fab7287df8b066ebdb6441866ea8...c8b1849d97c16e01d0e54b6b5f0ba7d9c49670d2","commits":[{"id":"c8b1849d97c16e01d0e54b6b5f0ba7d9c49670d2","message":"docs: record referral regression and verified local deployment\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/c8b1849d97c16e01d0e54b6b5f0ba7d9c49670d2","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-03T20:02:13-07:00","added":[],"removed":[],"modified":["docs/consumer-referral-governance-2026-10-03.md","docs/deployments/consumer-referral-local-2026-10-03.md"]}],"total_commits":0,"head_commit":{"id":"c8b1849d97c16e01d0e54b6b5f0ba7d9c49670d2","message":"docs: record referral regression and verified local deployment\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/c8b1849d97c16e01d0e54b6b5f0ba7d9c49670d2","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-03T20:02:13-07:00","added":[],"removed":[],"modified":["docs/consumer-referral-governance-2026-10-03.md","docs/deployments/consumer-referral-local-2026-10-03.md"]},"repository":{"id":51,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"yggdrasil-local-life-tools","full_name":"luoanwu/yggdrasil-local-life-tools","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":91232,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools/languages","html_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/yggdrasil-local-life-tools.git","clone_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-02T16:02:07+08:00","updated_at":"2026-10-04T10:48:13+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
5
|
0
|
1791085991
|
0
|
1791082950
|
1791085991
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25203
|
test(fission): 裂变缺口用例轮次定为 R50(R41–R49 已被主线占用)
|
51
|
5
|
ci.yml
|
62
|
5
|
0
|
refs/heads/main
|
6bd4254c53f9089a569f370eae1380f3d362e82b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c8b1849d97c16e01d0e54b6b5f0ba7d9c49670d2","after":"6bd4254c53f9089a569f370eae1380f3d362e82b","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/c8b1849d97c16e01d0e54b6b5f0ba7d9c49670d2...6bd4254c53f9089a569f370eae1380f3d362e82b","commits":[{"id":"6bd4254c53f9089a569f370eae1380f3d362e82b","message":"test(fission): 裂变缺口用例轮次定为 R50(R41–R49 已被主线占用)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/6bd4254c53f9089a569f370eae1380f3d362e82b","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-03T18:31:19-07:00","added":["server/test/r50-fission-gaps.test.ts"],"removed":["server/test/r41-fission-gaps.test.ts"],"modified":[]},{"id":"e9b2d8df01fc1e8488f2cdfb7b5654493313dba4","message":"feat(fission): 裂变屏展示奖励券码与状态,过期口径改用后端 overdue\n\n配合上一个提交(后端裂变缺口修复)新增的响应字段:\n\n- 拼团卡片的获奖提示带券码;成员详情里获奖人一行给出免单券券码、状态\n (待核销 / 已核销 / 已过期 / 已作废)与有效期;储值赠金写「已入账」;\n 约定储值赠金却改发免单券的存量团在详情里说明原因\n- 转介绍台账已发奖的行给出奖励券券码、状态与有效期\n- 「已过截止时间」以后端回的 overdue 为准,离线样例没有该字段时仍按截止时间自算\n- 开团表单的储值赠金提示改成后端现在的规则(团长无钱包不能开团;\n 不指定团长时首位参团者须有钱包)\n- 离线样例带一张示例券演示展示效果;真实模式在加载中 / 请求失败时显示的\n fallback 不带券码,避免假券码出现在真实界面\n- e2e:开团到结算、手动发转介绍奖励两条补券码与状态断言(页面与接口一致),\n 店员用例补「券码对店员可见」\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/e9b2d8df01fc1e8488f2cdfb7b5654493313dba4","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-03T17:53:05-07:00","added":[],"removed":[],"modified":["e2e/tests/02-deep-flows.spec.ts","团购本地生活AI运营App/index.html","团购本地生活AI运营App/screens-fission.jsx"]},{"id":"3b699ca902cd2a352e8eaa5e052317a72939d45a","message":"fix(fission): 奖励券码可查、截止时间生效、储值赠金团不再卡死、团价加上界\n\n裂变屏补界面时读后端代码确认的四处缺口,逐条先写真实库集成测试复现\n(test/r41-fission-gaps.test.ts,修复前 13 条里 12 条红),再修。\n\n1. 奖励券码无处可查:拼团详情 / 列表的成员带实发奖励 rewardKind 与\n rewardVoucher{code,status,validUntil,redeemedAt},转介绍台账行带 rewardVoucher。\n 券按 storeId 取(回指列没有外键,指向他店的券不回码);ACTIVE 但已过有效期按\n EXPIRED 派生,同 /bookings;不回 qrPayload。可见范围同 /bookings、/orders 的\n 券码口径:本店全部角色(含店员,核销台要按码核销)。\n2. 截止时间不生效:参团的占名额 CAS 加上 expiresAt 条件,过期 409、不占名额。\n 响应新增 overdue(招募中且已过截止时间,读时派生);不在读路径改状态,\n 也不加无人值守的自动过期,退回仍由人执行。\n3. 储值赠金团卡死在 SUCCESS:开团时团长无钱包 400;门店代开团里按规则会成为\n 获奖人的参团者无钱包 400 且不占名额。存量已满员的团结算时改发免单券并在\n 审计、通知里写明,不再次次回滚。获奖人规则定为:团长,无团长取最早参团者\n (参团时间升序、id 兜底),成员在结算事务内按此顺序读取。\n4. 团价无上限:groupPriceYuan 大于 0、上限 999999.99、最多 2 位小数,\n 极大值不再落成 500,多余小数不再被悄悄四舍五入。\n\nOpenAPI 说明同步;没有新增或删除接口。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/3b699ca902cd2a352e8eaa5e052317a72939d45a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-03T17:39:35-07:00","added":["server/test/r41-fission-gaps.test.ts"],"removed":[],"modified":["server/src/lib/voucher.ts","server/src/modules/groupbuy/schema.ts","server/src/modules/groupbuy/service.ts","server/src/modules/referral/service.ts","server/src/openapi.ts"]},{"id":"46b426ed494e780e81a7d6d6245de985a1180bca","message":"docs: 订正控制面接入说明的验收门槛第 3 条——不再写死「71 个 Prisma 模型」\n\n2026-10-03 当天 schema 由 71 增到 90 个模型(node scripts/docs-metrics.mjs @ c8b1849)。控制面要守的\n是「与 Entity Catalog 的精确重名集合 = DEC-030 登记的 7 个」,不是模型总数;新增 19 个模型没有新的精确重名。\n只改 docs/platform-onboarding.md 这一条;带日期的历史快照与基准文档(产品说明书 v1.0、模块关系图谱\n2026-07-31 基准、真实实现治理记录)保留原读数不动。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/46b426ed494e780e81a7d6d6245de985a1180bca","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-03T20:43:42-07:00","added":[],"removed":[],"modified":["docs/platform-onboarding.md"]}],"total_commits":0,"head_commit":{"id":"6bd4254c53f9089a569f370eae1380f3d362e82b","message":"test(fission): 裂变缺口用例轮次定为 R50(R41–R49 已被主线占用)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/6bd4254c53f9089a569f370eae1380f3d362e82b","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-03T18:31:19-07:00","added":["server/test/r50-fission-gaps.test.ts"],"removed":["server/test/r41-fission-gaps.test.ts"],"modified":[]},"repository":{"id":51,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"yggdrasil-local-life-tools","full_name":"luoanwu/yggdrasil-local-life-tools","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":91246,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools/languages","html_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/yggdrasil-local-life-tools.git","clone_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-02T16:02:07+08:00","updated_at":"2026-10-04T11:02:30+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
5
|
0
|
1791087416
|
0
|
1791085991
|
1791087416
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25206
|
fix(money): 元金额入参加上界与小数位,极大值 400 而不是 500
|
51
|
5
|
ci.yml
|
64
|
5
|
0
|
refs/heads/main
|
f5e0f5cd7013ffb3bc7f30f173fa8aab7fbe59f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"6bd4254c53f9089a569f370eae1380f3d362e82b","after":"f5e0f5cd7013ffb3bc7f30f173fa8aab7fbe59f0","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/6bd4254c53f9089a569f370eae1380f3d362e82b...f5e0f5cd7013ffb3bc7f30f173fa8aab7fbe59f0","commits":[{"id":"f5e0f5cd7013ffb3bc7f30f173fa8aab7fbe59f0","message":"fix(money): 元金额入参加上界与小数位,极大值 400 而不是 500\n\n多处 zod 入参收「元」但没有上界、没有小数位限制:极大值经 yuanToCents 转分后超出\nPostgres Int,写库抛错落成 500 INTERNAL;多于 2 位的小数则被悄悄四舍五入。\n先写真实库集成测试复现(test/r53-amount-bounds.test.ts,修复前 54 条里 39 条红,\n13 个字段的 1e12 全部 500),再修。\n\n- lib/money.ts 新增共用的 yuanAmountSchema:上界、最多 2 位小数(乘 100 后离最近\n 整数的距离判定,0.07 / 1.15 这类不被误拒)、可选必须为正;声明的上界自身转分\n 超出 Int 时直接抛错。\n- 单笔上界 999999.99:钱包充值 / 抵扣、工单补偿、差评补救、资源低消。\n- 汇总上界 9999999.99:投放预算与花费、单日营业额与投放。\n- 月度目标 targetWan 上界 2000(万元)。\n- 资源低消沿用原有的数字字符串兼容,同样受上界与小数位约束。\n- OpenAPI 请求体说明同步;PATCH /resources/{id}、PATCH /campaigns/{id} 补上请求体。\n- 前端:会员抵扣、经营截图补录两处自由输入的金额按同口径先校验(Caliber.yuanInputError),\n 不合法不发请求。\n\n差评补救 amountYuan 与月度目标 targetWan 不在最初清单里,同一条转分路径、同样 500,一并修。\n没有新增或删除接口。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/f5e0f5cd7013ffb3bc7f30f173fa8aab7fbe59f0","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-03T18:47:38-07:00","added":["server/test/money.unit.test.ts","server/test/r53-amount-bounds.test.ts"],"removed":[],"modified":["server/src/lib/money.ts","server/src/modules/campaigns/schema.ts","server/src/modules/goal/routes.ts","server/src/modules/metrics/schema.ts","server/src/modules/ops/schema.ts","server/src/modules/resources/schema.ts","server/src/modules/reviews/routes.ts","server/src/modules/wallet/schema.ts","server/src/openapi.ts","团购本地生活AI运营App/caliber.js","团购本地生活AI运营App/consumer.html","团购本地生活AI运营App/index.html","团购本地生活AI运营App/screens-member.jsx","团购本地生活AI运营App/screens-p2.jsx"]}],"total_commits":0,"head_commit":{"id":"f5e0f5cd7013ffb3bc7f30f173fa8aab7fbe59f0","message":"fix(money): 元金额入参加上界与小数位,极大值 400 而不是 500\n\n多处 zod 入参收「元」但没有上界、没有小数位限制:极大值经 yuanToCents 转分后超出\nPostgres Int,写库抛错落成 500 INTERNAL;多于 2 位的小数则被悄悄四舍五入。\n先写真实库集成测试复现(test/r53-amount-bounds.test.ts,修复前 54 条里 39 条红,\n13 个字段的 1e12 全部 500),再修。\n\n- lib/money.ts 新增共用的 yuanAmountSchema:上界、最多 2 位小数(乘 100 后离最近\n 整数的距离判定,0.07 / 1.15 这类不被误拒)、可选必须为正;声明的上界自身转分\n 超出 Int 时直接抛错。\n- 单笔上界 999999.99:钱包充值 / 抵扣、工单补偿、差评补救、资源低消。\n- 汇总上界 9999999.99:投放预算与花费、单日营业额与投放。\n- 月度目标 targetWan 上界 2000(万元)。\n- 资源低消沿用原有的数字字符串兼容,同样受上界与小数位约束。\n- OpenAPI 请求体说明同步;PATCH /resources/{id}、PATCH /campaigns/{id} 补上请求体。\n- 前端:会员抵扣、经营截图补录两处自由输入的金额按同口径先校验(Caliber.yuanInputError),\n 不合法不发请求。\n\n差评补救 amountYuan 与月度目标 targetWan 不在最初清单里,同一条转分路径、同样 500,一并修。\n没有新增或删除接口。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/f5e0f5cd7013ffb3bc7f30f173fa8aab7fbe59f0","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-03T18:47:38-07:00","added":["server/test/money.unit.test.ts","server/test/r53-amount-bounds.test.ts"],"removed":[],"modified":["server/src/lib/money.ts","server/src/modules/campaigns/schema.ts","server/src/modules/goal/routes.ts","server/src/modules/metrics/schema.ts","server/src/modules/ops/schema.ts","server/src/modules/resources/schema.ts","server/src/modules/reviews/routes.ts","server/src/modules/wallet/schema.ts","server/src/openapi.ts","团购本地生活AI运营App/caliber.js","团购本地生活AI运营App/consumer.html","团购本地生活AI运营App/index.html","团购本地生活AI运营App/screens-member.jsx","团购本地生活AI运营App/screens-p2.jsx"]},"repository":{"id":51,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"yggdrasil-local-life-tools","full_name":"luoanwu/yggdrasil-local-life-tools","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":91339,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools/languages","html_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/yggdrasil-local-life-tools.git","clone_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-02T16:02:07+08:00","updated_at":"2026-10-04T11:53:12+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
5
|
0
|
1791088492
|
0
|
1791087416
|
1791088492
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25208
|
fix: require exact cents across merged amount inpu fix: require exact cents across merged amount inputs...
|
51
|
5
|
ci.yml
|
66
|
5
|
0
|
refs/heads/main
|
ffc82024e26210dd956dd84dfb66b6a102026bf6
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f5e0f5cd7013ffb3bc7f30f173fa8aab7fbe59f0","after":"ffc82024e26210dd956dd84dfb66b6a102026bf6","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/f5e0f5cd7013ffb3bc7f30f173fa8aab7fbe59f0...ffc82024e26210dd956dd84dfb66b6a102026bf6","commits":[{"id":"ffc82024e26210dd956dd84dfb66b6a102026bf6","message":"fix: require exact cents across merged amount inputs\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/ffc82024e26210dd956dd84dfb66b6a102026bf6","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-03T21:34:48-07:00","added":["server/test/r55-fission-integrity.test.ts"],"removed":["server/test/r53-fission-integrity.test.ts"],"modified":["CLAUDE.md","README.md","docs/ai-limit-billing-governance-2026-10-03.md","docs/contracts/fission-integrity-followup.md","server/src/lib/money.ts","server/test/money.unit.test.ts","开发计划.md"]},{"id":"81a2787d7039b14f777fbe6cc21fc7c2fbf395e4","message":"Merge remote-tracking branch 'origin/main'\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/81a2787d7039b14f777fbe6cc21fc7c2fbf395e4","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-03T21:26:20-07:00","added":["server/test/money.unit.test.ts","server/test/r53-amount-bounds.test.ts"],"removed":[],"modified":["server/src/lib/money.ts","server/src/modules/campaigns/schema.ts","server/src/modules/goal/routes.ts","server/src/modules/metrics/schema.ts","server/src/modules/ops/schema.ts","server/src/modules/resources/schema.ts","server/src/modules/reviews/routes.ts","server/src/modules/wallet/schema.ts","server/src/openapi.ts","团购本地生活AI运营App/caliber.js","团购本地生活AI运营App/consumer.html","团购本地生活AI运营App/index.html","团购本地生活AI运营App/screens-member.jsx","团购本地生活AI运营App/screens-p2.jsx"]},{"id":"254dd57c81fd4898889329e637a82c8616d80eea","message":"feat: enforce AI admissions and recover billing with proven fission rewards\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/254dd57c81fd4898889329e637a82c8616d80eea","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-03T21:26:20-07:00","added":["docs/ai-limit-billing-governance-2026-10-03.md","docs/contracts/ai-limit-billing-recovery.md","docs/contracts/fission-integrity-followup.md","e2e/tests/12-ai-limit-billing.spec.ts","e2e/tests/13-fission-integrity.spec.ts","server/src/lib/ai-usage-limit.ts","server/test/ai-limit-billing-contract.unit.test.ts","server/test/ai-limit-env.unit.test.ts","server/test/groupbuy-price.unit.test.ts","server/test/r51-billing-recovery.test.ts","server/test/r52-ai-monthly-limit.test.ts","server/test/r53-fission-integrity.test.ts","server/test/r54-reward-primitives.test.ts","团购本地生活AI运营App/scripts/test-ai-limit-billing.mjs","团购本地生活AI运营App/scripts/test-fission-integrity.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","docs/contracts/ai-usage.md","e2e/package.json","server/.env.example","server/src/config/env.ts","server/src/lib/ai-usage-context.ts","server/src/lib/voucher.ts","server/src/modules/billing/service.ts","server/src/modules/groupbuy/schema.ts","server/src/modules/groupbuy/service.ts","server/src/modules/referral/service.ts","server/src/modules/usage/service.ts","server/src/modules/wallet/service.ts","server/src/openapi.ts","server/test/r37-billing.test.ts","团购本地生活AI运营App/package.json","团购本地生活AI运营App/screens-checkout-usage.jsx","团购本地生活AI运营App/screens-fission.jsx","团购本地生活AI运营App/screens-p1.jsx","尤克特拉产品设计PRD.md","开发计划.md","治理经验库.md","项目阻塞点分析.md"]}],"total_commits":0,"head_commit":{"id":"ffc82024e26210dd956dd84dfb66b6a102026bf6","message":"fix: require exact cents across merged amount inputs\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/ffc82024e26210dd956dd84dfb66b6a102026bf6","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-03T21:34:48-07:00","added":["server/test/r55-fission-integrity.test.ts"],"removed":["server/test/r53-fission-integrity.test.ts"],"modified":["CLAUDE.md","README.md","docs/ai-limit-billing-governance-2026-10-03.md","docs/contracts/fission-integrity-followup.md","server/src/lib/money.ts","server/test/money.unit.test.ts","开发计划.md"]},"repository":{"id":51,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"yggdrasil-local-life-tools","full_name":"luoanwu/yggdrasil-local-life-tools","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":91424,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools/languages","html_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/yggdrasil-local-life-tools.git","clone_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-02T16:02:07+08:00","updated_at":"2026-10-04T12:16:56+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
5
|
0
|
1791088761
|
0
|
1791088492
|
1791088761
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25210
|
docs: record verified AI billing and fission local docs: record verified AI billing and fission local release...
|
51
|
5
|
ci.yml
|
68
|
5
|
0
|
refs/heads/main
|
2a4061e4c3ff9166f1b8d1bdd1a847749a5b7828
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ffc82024e26210dd956dd84dfb66b6a102026bf6","after":"2a4061e4c3ff9166f1b8d1bdd1a847749a5b7828","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/ffc82024e26210dd956dd84dfb66b6a102026bf6...2a4061e4c3ff9166f1b8d1bdd1a847749a5b7828","commits":[{"id":"2a4061e4c3ff9166f1b8d1bdd1a847749a5b7828","message":"docs: record verified AI billing and fission local release\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/2a4061e4c3ff9166f1b8d1bdd1a847749a5b7828","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-03T21:39:18-07:00","added":[],"removed":[],"modified":["docs/ai-limit-billing-governance-2026-10-03.md"]}],"total_commits":0,"head_commit":{"id":"2a4061e4c3ff9166f1b8d1bdd1a847749a5b7828","message":"docs: record verified AI billing and fission local release\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/2a4061e4c3ff9166f1b8d1bdd1a847749a5b7828","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-03T21:39:18-07:00","added":[],"removed":[],"modified":["docs/ai-limit-billing-governance-2026-10-03.md"]},"repository":{"id":51,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"yggdrasil-local-life-tools","full_name":"luoanwu/yggdrasil-local-life-tools","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":91781,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools/languages","html_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/yggdrasil-local-life-tools.git","clone_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-02T16:02:07+08:00","updated_at":"2026-10-04T12:34:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
5
|
0
|
1791092429
|
0
|
1791088761
|
1791092429
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25212
|
fix(honesty): 真实接口模式不再把样例当数据、把未做的动作说成已完成
|
51
|
5
|
ci.yml
|
70
|
5
|
0
|
refs/heads/main
|
92a86b698b2071089cbb4e272dea99863d4f162a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2a4061e4c3ff9166f1b8d1bdd1a847749a5b7828","after":"92a86b698b2071089cbb4e272dea99863d4f162a","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/2a4061e4c3ff9166f1b8d1bdd1a847749a5b7828...92a86b698b2071089cbb4e272dea99863d4f162a","commits":[{"id":"92a86b698b2071089cbb4e272dea99863d4f162a","message":"fix(honesty): 真实接口模式不再把样例当数据、把未做的动作说成已完成\n\n- 工作日历:后端无数据返回 0 / null / 空数组,去掉 9/6/11/4 项、完成率 76、\n 固定月度进度与示例议程;年视图目标进度改为当月 GMV ÷ 已设目标。前端真实\n 模式只认后端值,加载中或失败是空日历。\n- 复制:新增 copyText / useCopyFeedback,写入剪贴板成功才显示「已复制」。\n- 自动内容发布:只选出候选并登记,返回 selected / published:0 /\n externalPublished:false,通知改为「内容候选待你发布」。\n- 差评退款:通知与界面改为「已登记、待人工出款」,响应带 payout。\n- 卫生打卡:文字记录,photoUrl 可选且只收 http(s);迁移清空历史占位串。\n- 同城热点:响应带 hotspotsSource(seed-sample),界面标明内置样例。\n- 遗留组件 MediaPlanResult 去掉无接口的「已同步到智能投放」。\n\n验证(变基到 2a4061e 后):后端 91 文件 850 条、接口覆盖 251/253(基线 2\n未变);浏览器深度流程 + 本轮场景 32/32。变基前整套浏览器回归 226/226。\n记录见 docs/honest-state-governance-2026-10-03.md。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/92a86b698b2071089cbb4e272dea99863d4f162a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-03T22:16:55-07:00","added":["docs/honest-state-governance-2026-10-03.md","e2e/tests/14-honest-state.spec.ts","server/prisma/migrations/20261004043749_hygiene_photo_optional/migration.sql","团购本地生活AI运营App/scripts/test-honest-state.mjs"],"removed":[],"modified":["e2e/package.json","e2e/tests/02-deep-flows.spec.ts","server/prisma/schema.prisma","server/prisma/seed.ts","server/src/modules/automation-runner/service.ts","server/src/modules/automation/service.ts","server/src/modules/ops/schema.ts","server/src/modules/ops/service.ts","server/src/modules/periphery/service.ts","server/src/modules/reviews/service.ts","server/src/modules/work-calendar/service.ts","server/src/openapi.ts","server/test/r11-review-care.test.ts","server/test/r20-ops.test.ts","server/test/r23-work-calendar.test.ts","server/test/r4-trust.test.ts","server/test/r5-periphery.test.ts","团购本地生活AI运营App/app.jsx","团购本地生活AI运营App/package.json","团购本地生活AI运营App/screens-facility.jsx","团购本地生活AI运营App/screens-more.jsx","团购本地生活AI运营App/screens-ops.jsx","团购本地生活AI运营App/screens-private.jsx","团购本地生活AI运营App/ui.jsx"]}],"total_commits":0,"head_commit":{"id":"92a86b698b2071089cbb4e272dea99863d4f162a","message":"fix(honesty): 真实接口模式不再把样例当数据、把未做的动作说成已完成\n\n- 工作日历:后端无数据返回 0 / null / 空数组,去掉 9/6/11/4 项、完成率 76、\n 固定月度进度与示例议程;年视图目标进度改为当月 GMV ÷ 已设目标。前端真实\n 模式只认后端值,加载中或失败是空日历。\n- 复制:新增 copyText / useCopyFeedback,写入剪贴板成功才显示「已复制」。\n- 自动内容发布:只选出候选并登记,返回 selected / published:0 /\n externalPublished:false,通知改为「内容候选待你发布」。\n- 差评退款:通知与界面改为「已登记、待人工出款」,响应带 payout。\n- 卫生打卡:文字记录,photoUrl 可选且只收 http(s);迁移清空历史占位串。\n- 同城热点:响应带 hotspotsSource(seed-sample),界面标明内置样例。\n- 遗留组件 MediaPlanResult 去掉无接口的「已同步到智能投放」。\n\n验证(变基到 2a4061e 后):后端 91 文件 850 条、接口覆盖 251/253(基线 2\n未变);浏览器深度流程 + 本轮场景 32/32。变基前整套浏览器回归 226/226。\n记录见 docs/honest-state-governance-2026-10-03.md。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/92a86b698b2071089cbb4e272dea99863d4f162a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-03T22:16:55-07:00","added":["docs/honest-state-governance-2026-10-03.md","e2e/tests/14-honest-state.spec.ts","server/prisma/migrations/20261004043749_hygiene_photo_optional/migration.sql","团购本地生活AI运营App/scripts/test-honest-state.mjs"],"removed":[],"modified":["e2e/package.json","e2e/tests/02-deep-flows.spec.ts","server/prisma/schema.prisma","server/prisma/seed.ts","server/src/modules/automation-runner/service.ts","server/src/modules/automation/service.ts","server/src/modules/ops/schema.ts","server/src/modules/ops/service.ts","server/src/modules/periphery/service.ts","server/src/modules/reviews/service.ts","server/src/modules/work-calendar/service.ts","server/src/openapi.ts","server/test/r11-review-care.test.ts","server/test/r20-ops.test.ts","server/test/r23-work-calendar.test.ts","server/test/r4-trust.test.ts","server/test/r5-periphery.test.ts","团购本地生活AI运营App/app.jsx","团购本地生活AI运营App/package.json","团购本地生活AI运营App/screens-facility.jsx","团购本地生活AI运营App/screens-more.jsx","团购本地生活AI运营App/screens-ops.jsx","团购本地生活AI运营App/screens-private.jsx","团购本地生活AI运营App/ui.jsx"]},"repository":{"id":51,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"yggdrasil-local-life-tools","full_name":"luoanwu/yggdrasil-local-life-tools","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":91794,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools/languages","html_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/yggdrasil-local-life-tools.git","clone_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-02T16:02:07+08:00","updated_at":"2026-10-04T12:39:21+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
5
|
0
|
1791097228
|
0
|
1791092429
|
1791097228
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25214
|
fix: enforce task, notification and fulfillment ex fix: enforce task, notification and fulfillment execution integrity...
|
51
|
5
|
ci.yml
|
72
|
5
|
0
|
refs/heads/main
|
bc7a44f1327b4955940074a6789cd7354d345a53
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"92a86b698b2071089cbb4e272dea99863d4f162a","after":"bc7a44f1327b4955940074a6789cd7354d345a53","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/92a86b698b2071089cbb4e272dea99863d4f162a...bc7a44f1327b4955940074a6789cd7354d345a53","commits":[{"id":"bc7a44f1327b4955940074a6789cd7354d345a53","message":"fix: enforce task, notification and fulfillment execution integrity\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/bc7a44f1327b4955940074a6789cd7354d345a53","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-04T00:00:05-07:00","added":["docs/contracts/execution-integrity-followup.md","docs/execution-integrity-governance-2026-10-03.md","e2e/tests/15-execution-integrity.spec.ts","server/test/consumer-reward-proof.unit.test.ts","server/test/r56-task-integrity.test.ts","server/test/r57-notification-discovery.test.ts","server/test/r58-automation-failure.test.ts","server/test/r59-fulfillment-admission.test.ts","server/test/r60-consumer-reward-proof.test.ts","团购本地生活AI运营App/scripts/test-execution-integrity.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","e2e/package.json","e2e/tests/11-consumer-referral.spec.ts","server/src/modules/automation-runner/service.ts","server/src/modules/booking/service.ts","server/src/modules/consumer-checkout/service.ts","server/src/modules/consumer/referral-service.ts","server/src/modules/operations/notifications.ts","server/src/modules/periphery/service.ts","server/src/modules/resources/service.ts","server/src/modules/tasks/service.ts","server/src/openapi.ts","server/test/r48-consumer-referral.test.ts","团购本地生活AI运营App/consumer-app.jsx","团购本地生活AI运营App/package.json","团购本地生活AI运营App/screen-governance.generated.json","团购本地生活AI运营App/screens-tasks.jsx","开发计划.md","治理经验库.md"]}],"total_commits":0,"head_commit":{"id":"bc7a44f1327b4955940074a6789cd7354d345a53","message":"fix: enforce task, notification and fulfillment execution integrity\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/bc7a44f1327b4955940074a6789cd7354d345a53","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-04T00:00:05-07:00","added":["docs/contracts/execution-integrity-followup.md","docs/execution-integrity-governance-2026-10-03.md","e2e/tests/15-execution-integrity.spec.ts","server/test/consumer-reward-proof.unit.test.ts","server/test/r56-task-integrity.test.ts","server/test/r57-notification-discovery.test.ts","server/test/r58-automation-failure.test.ts","server/test/r59-fulfillment-admission.test.ts","server/test/r60-consumer-reward-proof.test.ts","团购本地生活AI运营App/scripts/test-execution-integrity.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","e2e/package.json","e2e/tests/11-consumer-referral.spec.ts","server/src/modules/automation-runner/service.ts","server/src/modules/booking/service.ts","server/src/modules/consumer-checkout/service.ts","server/src/modules/consumer/referral-service.ts","server/src/modules/operations/notifications.ts","server/src/modules/periphery/service.ts","server/src/modules/resources/service.ts","server/src/modules/tasks/service.ts","server/src/openapi.ts","server/test/r48-consumer-referral.test.ts","团购本地生活AI运营App/consumer-app.jsx","团购本地生活AI运营App/package.json","团购本地生活AI运营App/screen-governance.generated.json","团购本地生活AI运营App/screens-tasks.jsx","开发计划.md","治理经验库.md"]},"repository":{"id":51,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"yggdrasil-local-life-tools","full_name":"luoanwu/yggdrasil-local-life-tools","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":92106,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools/languages","html_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/yggdrasil-local-life-tools.git","clone_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-02T16:02:07+08:00","updated_at":"2026-10-04T13:40:30+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
5
|
0
|
1791097459
|
0
|
1791097228
|
1791097459
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25216
|
docs: record verified execution integrity local re docs: record verified execution integrity local release...
|
51
|
5
|
ci.yml
|
74
|
5
|
0
|
refs/heads/main
|
c403f278853af537c83151736686e428a13ef35a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"bc7a44f1327b4955940074a6789cd7354d345a53","after":"c403f278853af537c83151736686e428a13ef35a","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/bc7a44f1327b4955940074a6789cd7354d345a53...c403f278853af537c83151736686e428a13ef35a","commits":[{"id":"c403f278853af537c83151736686e428a13ef35a","message":"docs: record verified execution integrity local release\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/c403f278853af537c83151736686e428a13ef35a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-04T00:03:52-07:00","added":[],"removed":[],"modified":["docs/execution-integrity-governance-2026-10-03.md"]}],"total_commits":0,"head_commit":{"id":"c403f278853af537c83151736686e428a13ef35a","message":"docs: record verified execution integrity local release\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/c403f278853af537c83151736686e428a13ef35a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-04T00:03:52-07:00","added":[],"removed":[],"modified":["docs/execution-integrity-governance-2026-10-03.md"]},"repository":{"id":51,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"yggdrasil-local-life-tools","full_name":"luoanwu/yggdrasil-local-life-tools","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":92301,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools/languages","html_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/yggdrasil-local-life-tools.git","clone_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-02T16:02:07+08:00","updated_at":"2026-10-04T15:00:28+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
5
|
0
|
1791098629
|
0
|
1791097459
|
1791098629
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25218
|
fix(honesty): 真实接口模式下各屏不再显示样例数字、不再有只报成功不调接口的按钮
|
51
|
5
|
ci.yml
|
76
|
5
|
0
|
refs/heads/main
|
cc720a3ed232225461ea8651defce0f7de17a7e8
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c403f278853af537c83151736686e428a13ef35a","after":"cc720a3ed232225461ea8651defce0f7de17a7e8","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/c403f278853af537c83151736686e428a13ef35a...cc720a3ed232225461ea8651defce0f7de17a7e8","commits":[{"id":"cc720a3ed232225461ea8651defce0f7de17a7e8","message":"fix(honesty): 真实接口模式下各屏不再显示样例数字、不再有只报成功不调接口的按钮\n\n前端(离线演示模式保持原样):\n- 门店总览、桌面经营工作流、手机首页:只用后端数据;工作流「确认」真的创建任务。\n- 增长看板:头部数字、环比、趋势从每日经营数据算;没有接口的画像与洞察不渲染。\n- 增长闭环、目标设定、行动详情、今日简报、操作审计:去掉样例兜底与编造的依据;\n 目标保存到当前月份(原先写死 2026-06)。\n- 智能投放、核销订单、我的、门店连锁、数据中心、模板、跨店下发、调价等:\n 加载 / 失败 / 空三态;套餐与角色取真实身份;新建投放由用户填写。\n- 内容创作、评价、线索、任务、私域、合规、装修:没生成不显示结果;去掉「发布」\n 「生成成片」;评价回复标明未回写平台;线索跟进与邀约由操作人填写。\n- 已登录商家不再显示演示业态切换;权限页标明只读。\n\n后端:\n- 预算建议不再写「预计整体核销可 +18%」,迁移额与可迁移额一致;\n 应用预算不再返回「明日生效」。\n- 经营漏斗各环节达标时 weakest 为 null,前缀改为「规则诊断」。\n- 跨店下发依据「本月增量」改为「归因增量」。\n\n任务屏以执行完整性一轮(bc7a44f)的版本为准,本提交不改它。\n\n验证(变基到 bc7a44f 后):前端整链(含 5 个新回归脚本)通过;后端 97 文件\n909 条、接口覆盖 251/253;浏览器完整回归 244 通过 / 2 按设计跳过。\n记录见 docs/honest-state-governance-2026-10-03.md 第二批。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/cc720a3ed232225461ea8651defce0f7de17a7e8","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-03T23:54:59-07:00","added":["e2e/tests/16-honest-shell.spec.ts","团购本地生活AI运营App/scripts/test-honest-content.mjs","团购本地生活AI运营App/scripts/test-honest-data.mjs","团购本地生活AI运营App/scripts/test-honest-growth.mjs","团购本地生活AI运营App/scripts/test-honest-misc.mjs","团购本地生活AI运营App/scripts/test-honest-shell.mjs"],"removed":[],"modified":["CLAUDE.md","docs/honest-state-governance-2026-10-03.md","e2e/package.json","server/src/modules/campaigns/service.ts","server/src/modules/metrics/service.ts","server/src/modules/rollout/service.ts","server/test/r2-ops.test.ts","server/test/r3-growth.test.ts","server/test/r35-uncovered-writes.test.ts","团购本地生活AI运营App/app.jsx","团购本地生活AI运营App/index.html","团购本地生活AI运营App/package.json","团购本地生活AI运营App/screen-governance.generated.json","团购本地生活AI运营App/screens-ai.jsx","团购本地生活AI运营App/screens-compliance.jsx","团购本地生活AI运营App/screens-data.jsx","团购本地生活AI运营App/screens-decor.jsx","团购本地生活AI运营App/screens-growth.jsx","团购本地生活AI运营App/screens-leads.jsx","团购本地生活AI运营App/screens-more.jsx","团购本地生活AI运营App/screens-ops.jsx","团购本地生活AI运营App/screens-p1.jsx","团购本地生活AI运营App/screens-p2.jsx","团购本地生活AI运营App/screens-private.jsx","团购本地生活AI运营App/screens-strategy.jsx","团购本地生活AI运营App/ui.jsx","开发计划.md"]}],"total_commits":0,"head_commit":{"id":"cc720a3ed232225461ea8651defce0f7de17a7e8","message":"fix(honesty): 真实接口模式下各屏不再显示样例数字、不再有只报成功不调接口的按钮\n\n前端(离线演示模式保持原样):\n- 门店总览、桌面经营工作流、手机首页:只用后端数据;工作流「确认」真的创建任务。\n- 增长看板:头部数字、环比、趋势从每日经营数据算;没有接口的画像与洞察不渲染。\n- 增长闭环、目标设定、行动详情、今日简报、操作审计:去掉样例兜底与编造的依据;\n 目标保存到当前月份(原先写死 2026-06)。\n- 智能投放、核销订单、我的、门店连锁、数据中心、模板、跨店下发、调价等:\n 加载 / 失败 / 空三态;套餐与角色取真实身份;新建投放由用户填写。\n- 内容创作、评价、线索、任务、私域、合规、装修:没生成不显示结果;去掉「发布」\n 「生成成片」;评价回复标明未回写平台;线索跟进与邀约由操作人填写。\n- 已登录商家不再显示演示业态切换;权限页标明只读。\n\n后端:\n- 预算建议不再写「预计整体核销可 +18%」,迁移额与可迁移额一致;\n 应用预算不再返回「明日生效」。\n- 经营漏斗各环节达标时 weakest 为 null,前缀改为「规则诊断」。\n- 跨店下发依据「本月增量」改为「归因增量」。\n\n任务屏以执行完整性一轮(bc7a44f)的版本为准,本提交不改它。\n\n验证(变基到 bc7a44f 后):前端整链(含 5 个新回归脚本)通过;后端 97 文件\n909 条、接口覆盖 251/253;浏览器完整回归 244 通过 / 2 按设计跳过。\n记录见 docs/honest-state-governance-2026-10-03.md 第二批。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/cc720a3ed232225461ea8651defce0f7de17a7e8","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-03T23:54:59-07:00","added":["e2e/tests/16-honest-shell.spec.ts","团购本地生活AI运营App/scripts/test-honest-content.mjs","团购本地生活AI运营App/scripts/test-honest-data.mjs","团购本地生活AI运营App/scripts/test-honest-growth.mjs","团购本地生活AI运营App/scripts/test-honest-misc.mjs","团购本地生活AI运营App/scripts/test-honest-shell.mjs"],"removed":[],"modified":["CLAUDE.md","docs/honest-state-governance-2026-10-03.md","e2e/package.json","server/src/modules/campaigns/service.ts","server/src/modules/metrics/service.ts","server/src/modules/rollout/service.ts","server/test/r2-ops.test.ts","server/test/r3-growth.test.ts","server/test/r35-uncovered-writes.test.ts","团购本地生活AI运营App/app.jsx","团购本地生活AI运营App/index.html","团购本地生活AI运营App/package.json","团购本地生活AI运营App/screen-governance.generated.json","团购本地生活AI运营App/screens-ai.jsx","团购本地生活AI运营App/screens-compliance.jsx","团购本地生活AI运营App/screens-data.jsx","团购本地生活AI运营App/screens-decor.jsx","团购本地生活AI运营App/screens-growth.jsx","团购本地生活AI运营App/screens-leads.jsx","团购本地生活AI运营App/screens-more.jsx","团购本地生活AI运营App/screens-ops.jsx","团购本地生活AI运营App/screens-p1.jsx","团购本地生活AI运营App/screens-p2.jsx","团购本地生活AI运营App/screens-private.jsx","团购本地生活AI运营App/screens-strategy.jsx","团购本地生活AI运营App/ui.jsx","开发计划.md"]},"repository":{"id":51,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"yggdrasil-local-life-tools","full_name":"luoanwu/yggdrasil-local-life-tools","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":92311,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools/languages","html_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/yggdrasil-local-life-tools.git","clone_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-02T16:02:07+08:00","updated_at":"2026-10-04T15:04:20+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
5
|
0
|
1791117721
|
0
|
1791098629
|
1791117721
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25669
|
publishing v1 of action
|
137
|
5
|
workflow.yml
|
8
|
5
|
0
|
refs/tags/v1.0.0
|
0d7d2ca66539aca4af6c5102e29a33757e2c2d2c
|
0
|
0
|
0
|
push
|
{"ref":"refs/tags/v1.0.0","bef {"ref":"refs/tags/v1.0.0","before":"0000000000000000000000000000000000000000","after":"0d7d2ca66539aca4af6c5102e29a33757e2c2d2c","compare_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/compare/0000000000000000000000000000000000000000...0d7d2ca66539aca4af6c5102e29a33757e2c2d2c","commits":[],"total_commits":0,"head_commit":{"id":"0d7d2ca66539aca4af6c5102e29a33757e2c2d2c","message":"publishing v1 of action\n","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/0d7d2ca66539aca4af6c5102e29a33757e2c2d2c","author":{"name":"Chris Patterson","email":"chrispat@github.com","username":""},"committer":{"name":"Chris Patterson","email":"chrispat@github.com","username":""},"verification":null,"timestamp":"2019-08-04T16:20:50-04:00","added":[],"removed":["node_modules/.bin/semver.cmd","node_modules/.bin/shjs.cmd","node_modules/.bin/uuid.cmd"],"modified":["node_modules/@actions/core/README.md","node_modules/@actions/core/lib/command.d.ts","node_modules/@actions/core/lib/command.js","node_modules/@actions/core/lib/core.d.ts","node_modules/@actions/core/lib/core.js","node_modules/@actions/core/package.json","node_modules/@actions/exec/package.json","node_modules/@actions/exit/package.json","node_modules/@actions/io/package.json","node_modules/@actions/tool-cache/lib/tool-cache.js","node_modules/@actions/tool-cache/package.json","node_modules/semver/package.json","node_modules/shelljs/bin/shjs","node_modules/shelljs/package.json","node_modules/shelljs/scripts/generate-docs.js","node_modules/shelljs/scripts/run-tests.js","node_modules/tunnel/package.json","node_modules/typed-rest-client/package.json","node_modules/underscore/package.json","node_modules/uuid/package.json","package-lock.json"]},"repository":{"id":137,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"actions-setup-node","full_name":"luoanwu/actions-setup-node","description":"Mirror of github.com/actions/setup-node for Gitea Actions (MIT)","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"TypeScript","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-setup-node/languages","html_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-setup-node","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/actions-setup-node.git","clone_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-10-13T06:36:42+08:00","updated_at":"2026-10-13T06:38:34+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
5
|
1791846942
|
1791950481
|
0
|
1791844721
|
1791950481
|
|
|
0
|
Edit
Delete
|
|
25670
|
Add correct tool-cache
|
137
|
5
|
workflow.yml
|
9
|
5
|
0
|
refs/tags/v1.0.1
|
9580326150d2ee14fdc290ab1d7d5fa11e64f3e6
|
0
|
0
|
0
|
push
|
{"ref":"refs/tags/v1.0.1","bef {"ref":"refs/tags/v1.0.1","before":"0000000000000000000000000000000000000000","after":"9580326150d2ee14fdc290ab1d7d5fa11e64f3e6","compare_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/compare/0000000000000000000000000000000000000000...9580326150d2ee14fdc290ab1d7d5fa11e64f3e6","commits":[],"total_commits":0,"head_commit":{"id":"9580326150d2ee14fdc290ab1d7d5fa11e64f3e6","message":"Add correct tool-cache\n","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/9580326150d2ee14fdc290ab1d7d5fa11e64f3e6","author":{"name":"Danny McCormick","email":"damccorm@microsoft.com","username":""},"committer":{"name":"Danny McCormick","email":"damccorm@microsoft.com","username":""},"verification":null,"timestamp":"2019-08-05T14:46:03-04:00","added":[],"removed":["node_modules/.bin/shjs","node_modules/.bin/shjs.cmd","node_modules/shelljs/.documentup.json","node_modules/shelljs/.jshintrc","node_modules/shelljs/.npmignore","node_modules/shelljs/.travis.yml","node_modules/shelljs/LICENSE","node_modules/shelljs/README.md","node_modules/shelljs/bin/shjs","node_modules/shelljs/global.js","node_modules/shelljs/make.js","node_modules/shelljs/package.json","node_modules/shelljs/scripts/generate-docs.js","node_modules/shelljs/scripts/run-tests.js","node_modules/shelljs/shell.js","node_modules/shelljs/src/cat.js","node_modules/shelljs/src/cd.js","node_modules/shelljs/src/chmod.js","node_modules/shelljs/src/common.js","node_modules/shelljs/src/cp.js","node_modules/shelljs/src/dirs.js","node_modules/shelljs/src/echo.js","node_modules/shelljs/src/error.js","node_modules/shelljs/src/exec.js","node_modules/shelljs/src/find.js","node_modules/shelljs/src/grep.js","node_modules/shelljs/src/ln.js","node_modules/shelljs/src/ls.js","node_modules/shelljs/src/mkdir.js","node_modules/shelljs/src/mv.js","node_modules/shelljs/src/popd.js","node_modules/shelljs/src/pushd.js","node_modules/shelljs/src/pwd.js","node_modules/shelljs/src/rm.js","node_modules/shelljs/src/sed.js","node_modules/shelljs/src/tempdir.js","node_modules/shelljs/src/test.js","node_modules/shelljs/src/to.js","node_modules/shelljs/src/toEnd.js","node_modules/shelljs/src/which.js"],"modified":["node_modules/@actions/exec/README.md","node_modules/@actions/exec/lib/exec.d.ts","node_modules/@actions/exec/lib/exec.js","node_modules/@actions/exec/lib/interfaces.d.ts","node_modules/@actions/exec/lib/interfaces.js","node_modules/@actions/exec/lib/toolrunner.d.ts","node_modules/@actions/exec/lib/toolrunner.js","node_modules/@actions/exit/LICENSE.md","node_modules/@actions/exit/README.md","node_modules/@actions/exit/lib/exit.d.ts","node_modules/@actions/exit/lib/exit.js","node_modules/@actions/io/README.md","node_modules/@actions/io/lib/io-util.d.ts","node_modules/@actions/io/lib/io-util.js","node_modules/@actions/io/lib/io.d.ts","node_modules/@actions/io/lib/io.js","node_modules/@actions/tool-cache/README.md","node_modules/@actions/tool-cache/lib/tool-cache.d.ts","node_modules/@actions/tool-cache/lib/tool-cache.js","node_modules/@actions/tool-cache/lib/tool-cache.js.map","node_modules/@actions/tool-cache/package.json","node_modules/@actions/tool-cache/scripts/Invoke-7zdec.ps1","package-lock.json","package.json","toolkit/actions-tool-cache-0.0.0.tgz"]},"repository":{"id":137,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"actions-setup-node","full_name":"luoanwu/actions-setup-node","description":"Mirror of github.com/actions/setup-node for Gitea Actions (MIT)","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"TypeScript","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-setup-node/languages","html_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-setup-node","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/actions-setup-node.git","clone_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-10-13T06:36:42+08:00","updated_at":"2026-10-13T06:38:34+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
5
|
1791847050
|
1791950481
|
0
|
1791844721
|
1791950481
|
|
|
0
|
Edit
Delete
|
|
25671
|
Update package version
|
137
|
5
|
workflow.yml
|
10
|
5
|
0
|
refs/tags/v1.0.2
|
ea546c14bf2618d82e09407b899bcb32ed9ab992
|
0
|
0
|
0
|
push
|
{"ref":"refs/tags/v1.0.2","bef {"ref":"refs/tags/v1.0.2","before":"0000000000000000000000000000000000000000","after":"ea546c14bf2618d82e09407b899bcb32ed9ab992","compare_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/compare/0000000000000000000000000000000000000000...ea546c14bf2618d82e09407b899bcb32ed9ab992","commits":[],"total_commits":0,"head_commit":{"id":"ea546c14bf2618d82e09407b899bcb32ed9ab992","message":"Update package version\n","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/ea546c14bf2618d82e09407b899bcb32ed9ab992","author":{"name":"Danny McCormick","email":"damccorm@microsoft.com","username":""},"committer":{"name":"Danny McCormick","email":"damccorm@microsoft.com","username":""},"verification":null,"timestamp":"2019-08-05T15:42:48-04:00","added":[],"removed":[],"modified":["package-lock.json","package.json"]},"repository":{"id":137,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"actions-setup-node","full_name":"luoanwu/actions-setup-node","description":"Mirror of github.com/actions/setup-node for Gitea Actions (MIT)","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"TypeScript","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-setup-node/languages","html_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-setup-node","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/actions-setup-node.git","clone_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-10-13T06:36:42+08:00","updated_at":"2026-10-13T06:38:34+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
5
|
1791847085
|
1791950481
|
0
|
1791844722
|
1791950481
|
|
|
0
|
Edit
Delete
|
|
25672
|
Update to 1.0.3
|
137
|
5
|
workflow.yml
|
11
|
5
|
0
|
refs/tags/v1.0.3
|
401832ee6450765bf6640e4179c200c79deb4856
|
0
|
0
|
0
|
push
|
{"ref":"refs/tags/v1.0.3","bef {"ref":"refs/tags/v1.0.3","before":"0000000000000000000000000000000000000000","after":"401832ee6450765bf6640e4179c200c79deb4856","compare_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/compare/0000000000000000000000000000000000000000...401832ee6450765bf6640e4179c200c79deb4856","commits":[],"total_commits":0,"head_commit":{"id":"401832ee6450765bf6640e4179c200c79deb4856","message":"Update to 1.0.3\n","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/401832ee6450765bf6640e4179c200c79deb4856","author":{"name":"Danny McCormick","email":"damccorm@microsoft.com","username":""},"committer":{"name":"Danny McCormick","email":"damccorm@microsoft.com","username":""},"verification":null,"timestamp":"2019-08-05T16:51:20-04:00","added":[],"removed":[],"modified":["package-lock.json","package.json"]},"repository":{"id":137,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"actions-setup-node","full_name":"luoanwu/actions-setup-node","description":"Mirror of github.com/actions/setup-node for Gitea Actions (MIT)","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"TypeScript","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-setup-node/languages","html_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-setup-node","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/actions-setup-node.git","clone_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-10-13T06:36:42+08:00","updated_at":"2026-10-13T06:38:34+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
5
|
1791847120
|
1791950481
|
0
|
1791844722
|
1791950481
|
|
|
0
|
Edit
Delete
|
|
25673
|
Update version
|
137
|
5
|
workflow.yml
|
12
|
5
|
0
|
refs/tags/v1.0.4
|
fc9ff49b90869a686df00e922af871c12215986a
|
0
|
0
|
0
|
push
|
{"ref":"refs/tags/v1.0.4","bef {"ref":"refs/tags/v1.0.4","before":"0000000000000000000000000000000000000000","after":"fc9ff49b90869a686df00e922af871c12215986a","compare_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/compare/0000000000000000000000000000000000000000...fc9ff49b90869a686df00e922af871c12215986a","commits":[],"total_commits":0,"head_commit":{"id":"fc9ff49b90869a686df00e922af871c12215986a","message":"Update version\n","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/fc9ff49b90869a686df00e922af871c12215986a","author":{"name":"Danny McCormick","email":"damccorm@microsoft.com","username":""},"committer":{"name":"Danny McCormick","email":"damccorm@microsoft.com","username":""},"verification":null,"timestamp":"2019-08-05T22:07:27-04:00","added":[],"removed":[],"modified":["package-lock.json","package.json"]},"repository":{"id":137,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"actions-setup-node","full_name":"luoanwu/actions-setup-node","description":"Mirror of github.com/actions/setup-node for Gitea Actions (MIT)","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"TypeScript","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-setup-node/languages","html_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-setup-node","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/actions-setup-node.git","clone_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-10-13T06:36:42+08:00","updated_at":"2026-10-13T06:38:34+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
5
|
1791847156
|
1791950481
|
0
|
1791844722
|
1791950481
|
|
|
0
|
Edit
Delete
|
|
25674
|
Add auth
|
137
|
5
|
workflow.yml
|
13
|
5
|
0
|
refs/tags/v1.1.0
|
5273d0df9c603edc4284ac8402cf650b4f1f6686
|
0
|
0
|
0
|
push
|
{"ref":"refs/tags/v1.1.0","bef {"ref":"refs/tags/v1.1.0","before":"0000000000000000000000000000000000000000","after":"5273d0df9c603edc4284ac8402cf650b4f1f6686","compare_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/compare/0000000000000000000000000000000000000000...5273d0df9c603edc4284ac8402cf650b4f1f6686","commits":[],"total_commits":0,"head_commit":{"id":"5273d0df9c603edc4284ac8402cf650b4f1f6686","message":"Add auth\n","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/5273d0df9c603edc4284ac8402cf650b4f1f6686","author":{"name":"Danny McCormick","email":"damccorm@microsoft.com","username":""},"committer":{"name":"Danny McCormick","email":"damccorm@microsoft.com","username":""},"verification":null,"timestamp":"2019-08-06T18:29:44-04:00","added":["__tests__/__snapshots__/authutil.test.ts.snap","__tests__/authutil.test.ts","lib/authutil.js","node_modules/.bin/which","node_modules/.bin/which.cmd","node_modules/@actions/github/README.md","node_modules/@actions/github/lib/context.d.ts","node_modules/@actions/github/lib/context.js","node_modules/@actions/github/lib/context.js.map","node_modules/@actions/github/lib/github.d.ts","node_modules/@actions/github/lib/github.js","node_modules/@actions/github/lib/github.js.map","node_modules/@actions/github/lib/interfaces.d.ts","node_modules/@actions/github/lib/interfaces.js","node_modules/@actions/github/lib/interfaces.js.map","node_modules/@actions/github/package.json","node_modules/@octokit/endpoint/LICENSE","node_modules/@octokit/endpoint/README.md","node_modules/@octokit/endpoint/dist-node/index.js","node_modules/@octokit/endpoint/dist-src/defaults.js","node_modules/@octokit/endpoint/dist-src/endpoint-with-defaults.js","node_modules/@octokit/endpoint/dist-src/generated/routes.js","node_modules/@octokit/endpoint/dist-src/index.js","node_modules/@octokit/endpoint/dist-src/merge.js","node_modules/@octokit/endpoint/dist-src/parse.js","node_modules/@octokit/endpoint/dist-src/types.js","node_modules/@octokit/endpoint/dist-src/util/add-query-parameters.js","node_modules/@octokit/endpoint/dist-src/util/extract-url-variable-names.js","node_modules/@octokit/endpoint/dist-src/util/lowercase-keys.js","node_modules/@octokit/endpoint/dist-src/util/omit.js","node_modules/@octokit/endpoint/dist-src/version.js","node_modules/@octokit/endpoint/dist-src/with-defaults.js","node_modules/@octokit/endpoint/dist-types/defaults.d.ts","node_modules/@octokit/endpoint/dist-types/endpoint-with-defaults.d.ts","node_modules/@octokit/endpoint/dist-types/generated/routes.d.ts","node_modules/@octokit/endpoint/dist-types/index.d.ts","node_modules/@octokit/endpoint/dist-types/merge.d.ts","node_modules/@octokit/endpoint/dist-types/parse.d.ts","node_modules/@octokit/endpoint/dist-types/types.d.ts","node_modules/@octokit/endpoint/dist-types/util/add-query-parameters.d.ts","node_modules/@octokit/endpoint/dist-types/util/extract-url-variable-names.d.ts","node_modules/@octokit/endpoint/dist-types/util/lowercase-keys.d.ts","node_modules/@octokit/endpoint/dist-types/util/omit.d.ts","node_modules/@octokit/endpoint/dist-types/version.d.ts","node_modules/@octokit/endpoint/dist-types/with-defaults.d.ts","node_modules/@octokit/endpoint/dist-web/index.js","node_modules/@octokit/endpoint/node_modules/is-plain-object/LICENSE","node_modules/@octokit/endpoint/node_modules/is-plain-object/README.md","node_modules/@octokit/endpoint/node_modules/is-plain-object/index.cjs.js","node_modules/@octokit/endpoint/node_modules/is-plain-object/index.d.ts","node_modules/@octokit/endpoint/node_modules/is-plain-object/index.js","node_modules/@octokit/endpoint/node_modules/is-plain-object/package.json","node_modules/@octokit/endpoint/node_modules/isobject/LICENSE","node_modules/@octokit/endpoint/node_modules/isobject/README.md","node_modules/@octokit/endpoint/node_modules/isobject/index.cjs.js","node_modules/@octokit/endpoint/node_modules/isobject/index.d.ts","node_modules/@octokit/endpoint/node_modules/isobject/index.js","node_modules/@octokit/endpoint/node_modules/isobject/package.json","node_modules/@octokit/endpoint/node_modules/universal-user-agent/.travis.yml","node_modules/@octokit/endpoint/node_modules/universal-user-agent/LICENSE.md","node_modules/@octokit/endpoint/node_modules/universal-user-agent/README.md","node_modules/@octokit/endpoint/node_modules/universal-user-agent/browser.js","node_modules/@octokit/endpoint/node_modules/universal-user-agent/cypress.json","node_modules/@octokit/endpoint/node_modules/universal-user-agent/index.d.ts","node_modules/@octokit/endpoint/node_modules/universal-user-agent/index.js","node_modules/@octokit/endpoint/node_modules/universal-user-agent/package.json","node_modules/@octokit/endpoint/node_modules/universal-user-agent/test/smoke-test.js","node_modules/@octokit/endpoint/package.json","node_modules/@octokit/graphql/LICENSE","node_modules/@octokit/graphql/README.md","node_modules/@octokit/graphql/index.js","node_modules/@octokit/graphql/lib/error.js","node_modules/@octokit/graphql/lib/graphql.js","node_modules/@octokit/graphql/lib/with-defaults.js","node_modules/@octokit/graphql/package.json","node_modules/@octokit/request-error/LICENSE","node_modules/@octokit/request-error/README.md","node_modules/@octokit/request-error/dist-node/index.js","node_modules/@octokit/request-error/dist-src/index.js","node_modules/@octokit/request-error/dist-src/types.js","node_modules/@octokit/request-error/dist-types/index.d.ts","node_modules/@octokit/request-error/dist-types/types.d.ts","node_modules/@octokit/request-error/dist-web/index.js","node_modules/@octokit/request-error/package.json","node_modules/@octokit/request/LICENSE","node_modules/@octokit/request/README.md","node_modules/@octokit/request/dist-node/index.js","node_modules/@octokit/request/dist-src/fetch-wrapper.js","node_modules/@octokit/request/dist-src/get-buffer-response.js","node_modules/@octokit/request/dist-src/index.js","node_modules/@octokit/request/dist-src/types.js","node_modules/@octokit/request/dist-src/version.js","node_modules/@octokit/request/dist-src/with-defaults.js","node_modules/@octokit/request/dist-types/fetch-wrapper.d.ts","node_modules/@octokit/request/dist-types/get-buffer-response.d.ts","node_modules/@octokit/request/dist-types/index.d.ts","node_modules/@octokit/request/dist-types/types.d.ts","node_modules/@octokit/request/dist-types/version.d.ts","node_modules/@octokit/request/dist-types/with-defaults.d.ts","node_modules/@octokit/request/dist-web/index.js","node_modules/@octokit/request/node_modules/is-plain-object/LICENSE","node_modules/@octokit/request/node_modules/is-plain-object/README.md","node_modules/@octokit/request/node_modules/is-plain-object/index.cjs.js","node_modules/@octokit/request/node_modules/is-plain-object/index.d.ts","node_modules/@octokit/request/node_modules/is-plain-object/index.js","node_modules/@octokit/request/node_modules/is-plain-object/package.json","node_modules/@octokit/request/node_modules/isobject/LICENSE","node_modules/@octokit/request/node_modules/isobject/README.md","node_modules/@octokit/request/node_modules/isobject/index.cjs.js","node_modules/@octokit/request/node_modules/isobject/index.d.ts","node_modules/@octokit/request/node_modules/isobject/index.js","node_modules/@octokit/request/node_modules/isobject/package.json","node_modules/@octokit/request/node_modules/universal-user-agent/.travis.yml","node_modules/@octokit/request/node_modules/universal-user-agent/LICENSE.md","node_modules/@octokit/request/node_modules/universal-user-agent/README.md","node_modules/@octokit/request/node_modules/universal-user-agent/browser.js","node_modules/@octokit/request/node_modules/universal-user-agent/cypress.json","node_modules/@octokit/request/node_modules/universal-user-agent/index.d.ts","node_modules/@octokit/request/node_modules/universal-user-agent/index.js","node_modules/@octokit/request/node_modules/universal-user-agent/package.json","node_modules/@octokit/request/node_modules/universal-user-agent/test/smoke-test.js","node_modules/@octokit/request/package.json","node_modules/@octokit/rest/LICENSE","node_modules/@octokit/rest/README.md","node_modules/@octokit/rest/index.d.ts","node_modules/@octokit/rest/index.js","node_modules/@octokit/rest/lib/constructor.js","node_modules/@octokit/rest/lib/core.js","node_modules/@octokit/rest/lib/factory.js","node_modules/@octokit/rest/lib/parse-client-options.js","node_modules/@octokit/rest/lib/register-plugin.js","node_modules/@octokit/rest/node_modules/universal-user-agent/.travis.yml","node_modules/@octokit/rest/node_modules/universal-user-agent/LICENSE.md","node_modules/@octokit/rest/node_modules/universal-user-agent/README.md","node_modules/@octokit/rest/node_modules/universal-user-agent/browser.js","node_modules/@octokit/rest/node_modules/universal-user-agent/cypress.json","node_modules/@octokit/rest/node_modules/universal-user-agent/index.d.ts","node_modules/@octokit/rest/node_modules/universal-user-agent/index.js","node_modules/@octokit/rest/node_modules/universal-user-agent/package.json","node_modules/@octokit/rest/node_modules/universal-user-agent/test/smoke-test.js","node_modules/@octokit/rest/package.json","node_modules/@octokit/rest/plugins/authentication-deprecated/authenticate.js","node_modules/@octokit/rest/plugins/authentication-deprecated/before-request.js","node_modules/@octokit/rest/plugins/authentication-deprecated/index.js","node_modules/@octokit/rest/plugins/authentication-deprecated/request-error.js","node_modules/@octokit/rest/plugins/authentication/before-request.js","node_modules/@octokit/rest/plugins/authentication/index.js","node_modules/@octokit/rest/plugins/authentication/request-error.js","node_modules/@octokit/rest/plugins/authentication/validate.js","node_modules/@octokit/rest/plugins/authentication/with-authorization-prefix.js","node_modules/@octokit/rest/plugins/log/index.js","node_modules/@octokit/rest/plugins/normalize-git-reference-responses/index.js","node_modules/@octokit/rest/plugins/pagination/index.js","node_modules/@octokit/rest/plugins/pagination/iterator.js","node_modules/@octokit/rest/plugins/pagination/normalize-paginated-list-response.js","node_modules/@octokit/rest/plugins/pagination/paginate.js","node_modules/@octokit/rest/plugins/register-endpoints/index.js","node_modules/@octokit/rest/plugins/register-endpoints/register-endpoints.js","node_modules/@octokit/rest/plugins/rest-api-endpoints/index.js","node_modules/@octokit/rest/plugins/rest-api-endpoints/routes.json","node_modules/@octokit/rest/plugins/validate/index.js","node_modules/@octokit/rest/plugins/validate/validate.js","node_modules/atob-lite/.npmignore","node_modules/atob-lite/LICENSE.md","node_modules/atob-lite/README.md","node_modules/atob-lite/atob-browser.js","node_modules/atob-lite/atob-node.js","node_modules/atob-lite/package.json","node_modules/before-after-hook/LICENSE","node_modules/before-after-hook/README.md","node_modules/before-after-hook/index.d.ts","node_modules/before-after-hook/index.js","node_modules/before-after-hook/lib/add.js","node_modules/before-after-hook/lib/register.js","node_modules/before-after-hook/lib/remove.js","node_modules/before-after-hook/package.json","node_modules/btoa-lite/.npmignore","node_modules/btoa-lite/LICENSE.md","node_modules/btoa-lite/README.md","node_modules/btoa-lite/btoa-browser.js","node_modules/btoa-lite/btoa-node.js","node_modules/btoa-lite/package.json","node_modules/cross-spawn/CHANGELOG.md","node_modules/cross-spawn/LICENSE","node_modules/cross-spawn/README.md","node_modules/cross-spawn/index.js","node_modules/cross-spawn/lib/enoent.js","node_modules/cross-spawn/lib/parse.js","node_modules/cross-spawn/lib/util/escape.js","node_modules/cross-spawn/lib/util/readShebang.js","node_modules/cross-spawn/lib/util/resolveCommand.js","node_modules/cross-spawn/node_modules/.bin/semver","node_modules/cross-spawn/node_modules/.bin/semver.cmd","node_modules/cross-spawn/node_modules/semver/CHANGELOG.md","node_modules/cross-spawn/node_modules/semver/LICENSE","node_modules/cross-spawn/node_modules/semver/README.md","node_modules/cross-spawn/node_modules/semver/bin/semver","node_modules/cross-spawn/node_modules/semver/package.json","node_modules/cross-spawn/node_modules/semver/range.bnf","node_modules/cross-spawn/node_modules/semver/semver.js","node_modules/cross-spawn/package.json","node_modules/deepmerge/changelog.md","node_modules/deepmerge/dist/cjs.js","node_modules/deepmerge/dist/umd.js","node_modules/deepmerge/index.d.ts","node_modules/deepmerge/index.js","node_modules/deepmerge/license.txt","node_modules/deepmerge/package.json","node_modules/deepmerge/readme.md","node_modules/deepmerge/rollup.config.js","node_modules/deprecation/LICENSE","node_modules/deprecation/README.md","node_modules/deprecation/dist-node/index.js","node_modules/deprecation/dist-src/index.js","node_modules/deprecation/dist-types/index.d.ts","node_modules/deprecation/dist-web/index.js","node_modules/deprecation/package.json","node_modules/end-of-stream/LICENSE","node_modules/end-of-stream/README.md","node_modules/end-of-stream/index.js","node_modules/end-of-stream/package.json","node_modules/execa/index.js","node_modules/execa/lib/errname.js","node_modules/execa/lib/stdio.js","node_modules/execa/license","node_modules/execa/package.json","node_modules/execa/readme.md","node_modules/get-stream/buffer-stream.js","node_modules/get-stream/index.js","node_modules/get-stream/license","node_modules/get-stream/package.json","node_modules/get-stream/readme.md","node_modules/is-stream/index.js","node_modules/is-stream/license","node_modules/is-stream/package.json","node_modules/is-stream/readme.md","node_modules/isexe/.npmignore","node_modules/isexe/LICENSE","node_modules/isexe/README.md","node_modules/isexe/index.js","node_modules/isexe/mode.js","node_modules/isexe/package.json","node_modules/isexe/test/basic.js","node_modules/isexe/windows.js","node_modules/lodash.get/LICENSE","node_modules/lodash.get/README.md","node_modules/lodash.get/index.js","node_modules/lodash.get/package.json","node_modules/lodash.set/LICENSE","node_modules/lodash.set/README.md","node_modules/lodash.set/index.js","node_modules/lodash.set/package.json","node_modules/lodash.uniq/LICENSE","node_modules/lodash.uniq/README.md","node_modules/lodash.uniq/index.js","node_modules/lodash.uniq/package.json","node_modules/macos-release/index.d.ts","node_modules/macos-release/index.js","node_modules/macos-release/license","node_modules/macos-release/package.json","node_modules/macos-release/readme.md","node_modules/nice-try/CHANGELOG.md","node_modules/nice-try/LICENSE","node_modules/nice-try/README.md","node_modules/nice-try/package.json","node_modules/nice-try/src/index.js","node_modules/node-fetch/CHANGELOG.md","node_modules/node-fetch/LICENSE.md","node_modules/node-fetch/README.md","node_modules/node-fetch/browser.js","node_modules/node-fetch/lib/index.es.js","node_modules/node-fetch/lib/index.js","node_modules/node-fetch/lib/index.mjs","node_modules/node-fetch/package.json","node_modules/npm-run-path/index.js","node_modules/npm-run-path/license","node_modules/npm-run-path/package.json","node_modules/npm-run-path/readme.md","node_modules/octokit-pagination-methods/.travis.yml","node_modules/octokit-pagination-methods/CODE_OF_CONDUCT.md","node_modules/octokit-pagination-methods/LICENSE","node_modules/octokit-pagination-methods/README.md","node_modules/octokit-pagination-methods/index.js","node_modules/octokit-pagination-methods/lib/deprecate.js","node_modules/octokit-pagination-methods/lib/get-first-page.js","node_modules/octokit-pagination-methods/lib/get-last-page.js","node_modules/octokit-pagination-methods/lib/get-next-page.js","node_modules/octokit-pagination-methods/lib/get-page-links.js","node_modules/octokit-pagination-methods/lib/get-page.js","node_modules/octokit-pagination-methods/lib/get-previous-page.js","node_modules/octokit-pagination-methods/lib/has-first-page.js","node_modules/octokit-pagination-methods/lib/has-last-page.js","node_modules/octokit-pagination-methods/lib/has-next-page.js","node_modules/octokit-pagination-methods/lib/has-previous-page.js","node_modules/octokit-pagination-methods/lib/http-error.js","node_modules/octokit-pagination-methods/package.json","node_modules/octokit-pagination-methods/test.js","node_modules/once/LICENSE","node_modules/once/README.md","node_modules/once/once.js","node_modules/once/package.json","node_modules/os-name/index.d.ts","node_modules/os-name/index.js","node_modules/os-name/license","node_modules/os-name/package.json","node_modules/os-name/readme.md","node_modules/p-finally/index.js","node_modules/p-finally/license","node_modules/p-finally/package.json","node_modules/p-finally/readme.md","node_modules/path-key/index.js","node_modules/path-key/license","node_modules/path-key/package.json","node_modules/path-key/readme.md","node_modules/pump/.travis.yml","node_modules/pump/LICENSE","node_modules/pump/README.md","node_modules/pump/index.js","node_modules/pump/package.json","node_modules/pump/test-browser.js","node_modules/pump/test-node.js","node_modules/shebang-command/index.js","node_modules/shebang-command/license","node_modules/shebang-command/package.json","node_modules/shebang-command/readme.md","node_modules/shebang-regex/index.js","node_modules/shebang-regex/license","node_modules/shebang-regex/package.json","node_modules/shebang-regex/readme.md","node_modules/signal-exit/CHANGELOG.md","node_modules/signal-exit/LICENSE.txt","node_modules/signal-exit/README.md","node_modules/signal-exit/index.js","node_modules/signal-exit/package.json","node_modules/signal-exit/signals.js","node_modules/strip-eof/index.js","node_modules/strip-eof/license","node_modules/strip-eof/package.json","node_modules/strip-eof/readme.md","node_modules/universal-user-agent/.travis.yml","node_modules/universal-user-agent/LICENSE.md","node_modules/universal-user-agent/README.md","node_modules/universal-user-agent/browser.js","node_modules/universal-user-agent/cypress.json","node_modules/universal-user-agent/index.d.ts","node_modules/universal-user-agent/index.js","node_modules/universal-user-agent/package.json","node_modules/universal-user-agent/test/smoke-test.js","node_modules/url-template/.gitmodules","node_modules/url-template/.npmignore","node_modules/url-template/LICENSE","node_modules/url-template/README.md","node_modules/url-template/lib/url-template.js","node_modules/url-template/package.json","node_modules/url-template/test/index.html","node_modules/url-template/test/uritemplate-test.js","node_modules/url-template/test/url-template-test.js","node_modules/url-template/uritemplate-test/README.md","node_modules/url-template/uritemplate-test/extended-tests.json","node_modules/url-template/uritemplate-test/json2xml.xslt","node_modules/url-template/uritemplate-test/negative-tests.json","node_modules/url-template/uritemplate-test/spec-examples-by-section.json","node_modules/url-template/uritemplate-test/spec-examples.json","node_modules/url-template/uritemplate-test/transform-json-tests.xslt","node_modules/which/CHANGELOG.md","node_modules/which/LICENSE","node_modules/which/README.md","node_modules/which/bin/which","node_modules/which/package.json","node_modules/which/which.js","node_modules/windows-release/index.d.ts","node_modules/windows-release/index.js","node_modules/windows-release/license","node_modules/windows-release/package.json","node_modules/windows-release/readme.md","node_modules/wrappy/LICENSE","node_modules/wrappy/README.md","node_modules/wrappy/package.json","node_modules/wrappy/wrappy.js","src/authutil.ts","toolkit/actions-github-0.0.0.tgz"],"removed":[],"modified":["README.md","__tests__/installer.test.ts","action.yml","lib/setup-node.js","node_modules/@actions/io/README.md","node_modules/@actions/tool-cache/lib/tool-cache.js","package-lock.json","package.json","src/setup-node.ts","tsconfig.json"]},"repository":{"id":137,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"actions-setup-node","full_name":"luoanwu/actions-setup-node","description":"Mirror of github.com/actions/setup-node for Gitea Actions (MIT)","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"TypeScript","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-setup-node/languages","html_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-setup-node","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/actions-setup-node.git","clone_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-10-13T06:36:42+08:00","updated_at":"2026-10-13T06:38:34+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
5
|
1791847247
|
1791950481
|
0
|
1791844722
|
1791950481
|
|
|
0
|
Edit
Delete
|
|
25675
|
Use node-version instead of version (#28)
|
137
|
5
|
workflow.yml
|
14
|
5
|
0
|
refs/tags/v1.1.1
|
dd2e8a486fdc1071872c594d5388fd6dce1a7534
|
0
|
0
|
0
|
push
|
{"ref":"refs/tags/v1.1.1","bef {"ref":"refs/tags/v1.1.1","before":"0000000000000000000000000000000000000000","after":"dd2e8a486fdc1071872c594d5388fd6dce1a7534","compare_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/compare/0000000000000000000000000000000000000000...dd2e8a486fdc1071872c594d5388fd6dce1a7534","commits":[],"total_commits":0,"head_commit":{"id":"dd2e8a486fdc1071872c594d5388fd6dce1a7534","message":"Use node-version instead of version (#28)\n\n* Use node-version instead of version\r\n\r\n* Add deprecation date\r\n","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/dd2e8a486fdc1071872c594d5388fd6dce1a7534","author":{"name":"Danny McCormick","email":"damccorm@microsoft.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2019-08-13T16:32:09-04:00","added":[],"removed":[],"modified":["README.md","action.yml","lib/setup-node.js","src/setup-node.ts"]},"repository":{"id":137,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"actions-setup-node","full_name":"luoanwu/actions-setup-node","description":"Mirror of github.com/actions/setup-node for Gitea Actions (MIT)","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"TypeScript","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-setup-node/languages","html_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-setup-node","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/actions-setup-node.git","clone_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-10-13T06:36:42+08:00","updated_at":"2026-10-13T06:38:34+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
5
|
1791847277
|
1791950481
|
0
|
1791844723
|
1791950481
|
|
|
0
|
Edit
Delete
|
|
25676
|
Release from master
|
137
|
5
|
workflow.yml
|
15
|
5
|
0
|
refs/tags/v1.1.2
|
8de2f9fcbc73a4ff49e2c9df61041a0f03f10914
|
0
|
0
|
0
|
push
|
{"ref":"refs/tags/v1.1.2","bef {"ref":"refs/tags/v1.1.2","before":"0000000000000000000000000000000000000000","after":"8de2f9fcbc73a4ff49e2c9df61041a0f03f10914","compare_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/compare/0000000000000000000000000000000000000000...8de2f9fcbc73a4ff49e2c9df61041a0f03f10914","commits":[],"total_commits":0,"head_commit":{"id":"8de2f9fcbc73a4ff49e2c9df61041a0f03f10914","message":"Release from master\n","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/8de2f9fcbc73a4ff49e2c9df61041a0f03f10914","author":{"name":"Danny McCormick","email":"damccorm@Dannys-MBP.frontierlocal.net","username":""},"committer":{"name":"Danny McCormick","email":"damccorm@Dannys-MBP.frontierlocal.net","username":""},"verification":null,"timestamp":"2019-08-21T22:58:23-04:00","added":["node_modules/@actions/core/LICENSE.md","node_modules/@actions/exec/LICENSE.md","node_modules/@actions/github/LICENSE.md","node_modules/@actions/io/LICENSE.md","node_modules/@actions/tool-cache/LICENSE.md"],"removed":["node_modules/@actions/exit/LICENSE.md","node_modules/@actions/exit/README.md","node_modules/@actions/exit/lib/exit.d.ts","node_modules/@actions/exit/lib/exit.js","node_modules/@actions/exit/lib/exit.js.map","node_modules/@actions/exit/package.json"],"modified":["README.md","__tests__/__snapshots__/authutil.test.ts.snap","__tests__/authutil.test.ts","action.yml","lib/authutil.js","lib/installer.js","lib/setup-node.js","node_modules/@actions/core/README.md","node_modules/@actions/core/lib/core.d.ts","node_modules/@actions/core/lib/core.js","node_modules/@actions/core/lib/core.js.map","node_modules/@actions/core/package.json","node_modules/@actions/exec/README.md","node_modules/@actions/exec/package.json","node_modules/@actions/github/package.json","node_modules/@actions/io/README.md","node_modules/@actions/io/package.json","node_modules/@actions/tool-cache/lib/tool-cache.js","node_modules/@actions/tool-cache/package.json","package-lock.json","package.json","src/authutil.ts","src/installer.ts","src/setup-node.ts"]},"repository":{"id":137,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"actions-setup-node","full_name":"luoanwu/actions-setup-node","description":"Mirror of github.com/actions/setup-node for Gitea Actions (MIT)","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"TypeScript","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-setup-node/languages","html_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-setup-node","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/actions-setup-node.git","clone_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-10-13T06:36:42+08:00","updated_at":"2026-10-13T06:38:34+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
5
|
1791847307
|
1791950481
|
0
|
1791844723
|
1791950481
|
|
|
0
|
Edit
Delete
|
|
25677
|
Deprecate version property (#54)
|
137
|
5
|
workflow.yml
|
16
|
5
|
0
|
refs/tags/v1.2.0
|
c35dd24c52f85b8c80fd1619f6bc7b9e82c840db
|
0
|
0
|
0
|
push
|
{"ref":"refs/tags/v1.2.0","bef {"ref":"refs/tags/v1.2.0","before":"0000000000000000000000000000000000000000","after":"c35dd24c52f85b8c80fd1619f6bc7b9e82c840db","compare_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/compare/0000000000000000000000000000000000000000...c35dd24c52f85b8c80fd1619f6bc7b9e82c840db","commits":[],"total_commits":0,"head_commit":{"id":"c35dd24c52f85b8c80fd1619f6bc7b9e82c840db","message":"Deprecate version property (#54)\n\n","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/c35dd24c52f85b8c80fd1619f6bc7b9e82c840db","author":{"name":"Danny McCormick","email":"damccorm@github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2019-09-12T10:30:15-04:00","added":[],"removed":[],"modified":["action.yml"]},"repository":{"id":137,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"actions-setup-node","full_name":"luoanwu/actions-setup-node","description":"Mirror of github.com/actions/setup-node for Gitea Actions (MIT)","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"TypeScript","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-setup-node/languages","html_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-setup-node","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/actions-setup-node.git","clone_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-10-13T06:36:42+08:00","updated_at":"2026-10-13T06:38:34+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
5
|
1791847338
|
1791950481
|
0
|
1791844723
|
1791950481
|
|
|
0
|
Edit
Delete
|
|
25678
|
Merge pull request #88 from actions/arm-installer
|
137
|
5
|
workflow.yml
|
17
|
5
|
0
|
refs/tags/v1.3.0
|
b6651e20e530d6e6b845a9828606779e89f5529c
|
0
|
0
|
0
|
push
|
{"ref":"refs/tags/v1.3.0","bef {"ref":"refs/tags/v1.3.0","before":"0000000000000000000000000000000000000000","after":"280ca3d133fb567e0329575ed7c5eac74034e25d","compare_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/compare/0000000000000000000000000000000000000000...280ca3d133fb567e0329575ed7c5eac74034e25d","commits":[],"total_commits":0,"head_commit":{"id":"b6651e20e530d6e6b845a9828606779e89f5529c","message":"Merge pull request #88 from actions/arm-installer\n\nGet correct url for arm dist","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/b6651e20e530d6e6b845a9828606779e89f5529c","author":{"name":"David Kale","email":"dakale@github.com","username":""},"committer":{"name":"David Kale","email":"dakale@microsoft.com","username":""},"verification":null,"timestamp":"2019-11-20T15:46:02-05:00","added":[],"removed":[],"modified":["lib/installer.js","src/installer.ts"]},"repository":{"id":137,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"actions-setup-node","full_name":"luoanwu/actions-setup-node","description":"Mirror of github.com/actions/setup-node for Gitea Actions (MIT)","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"TypeScript","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-setup-node/languages","html_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-setup-node","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/actions-setup-node.git","clone_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-10-13T06:36:42+08:00","updated_at":"2026-10-13T06:38:34+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
5
|
1791847375
|
1791950481
|
0
|
1791844723
|
1791950481
|
|
|
0
|
Edit
Delete
|
|
25939
|
test(enterprise): retain route measurement for iso test(enterprise): retain route measurement for isolated application...
|
51
|
5
|
ci.yml
|
90
|
5
|
0
|
refs/heads/main
|
06da26b62307d87f339427e40d2cd85c93825ca1
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"28509e8a04468e0f5b93eada653ced107b252d69","after":"06da26b62307d87f339427e40d2cd85c93825ca1","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/28509e8a04468e0f5b93eada653ced107b252d69...06da26b62307d87f339427e40d2cd85c93825ca1","commits":[{"id":"06da26b62307d87f339427e40d2cd85c93825ca1","message":"test(enterprise): retain route measurement for isolated application\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/06da26b62307d87f339427e40d2cd85c93825ca1","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-16T17:32:22-07:00","added":[],"removed":[],"modified":["docs/deployments/enterprise-integration-local-2026-10-16.md","docs/enterprise-integration-2026-10-16.md","server/test/helpers.ts","server/test/r63-enterprise-integration.test.ts"]}],"total_commits":0,"head_commit":{"id":"06da26b62307d87f339427e40d2cd85c93825ca1","message":"test(enterprise): retain route measurement for isolated application\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/06da26b62307d87f339427e40d2cd85c93825ca1","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-16T17:32:22-07:00","added":[],"removed":[],"modified":["docs/deployments/enterprise-integration-local-2026-10-16.md","docs/enterprise-integration-2026-10-16.md","server/test/helpers.ts","server/test/r63-enterprise-integration.test.ts"]},"repository":{"id":51,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"yggdrasil-local-life-tools","full_name":"luoanwu/yggdrasil-local-life-tools","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":93765,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools/languages","html_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/yggdrasil-local-life-tools.git","clone_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-02T16:02:07+08:00","updated_at":"2026-10-17T08:20:43+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
5
|
0
|
1792197261
|
0
|
1792197144
|
1792197261
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
26086
|
docs(device): bind final S2 fixed artifact verific docs(device): bind final S2 fixed artifact verification...
|
135
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
8a42cf77069e4a70692e366281b75ab8848f3e7c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"4b39ba2e2da24a46314e9d171f4c3636d023290d","after":"8a42cf77069e4a70692e366281b75ab8848f3e7c","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud/compare/4b39ba2e2da24a46314e9d171f4c3636d023290d...8a42cf77069e4a70692e366281b75ab8848f3e7c","commits":[{"id":"8a42cf77069e4a70692e366281b75ab8848f3e7c","message":"docs(device): bind final S2 fixed artifact verification\n","url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud/commit/8a42cf77069e4a70692e366281b75ab8848f3e7c","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-18T04:04:18-07:00","added":["reports/s2-candidate.latest.json"],"removed":[],"modified":["reports/evidence-current.latest.json"]}],"total_commits":0,"head_commit":{"id":"8a42cf77069e4a70692e366281b75ab8848f3e7c","message":"docs(device): bind final S2 fixed artifact verification\n","url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud/commit/8a42cf77069e4a70692e366281b75ab8848f3e7c","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-18T04:04:18-07:00","added":["reports/s2-candidate.latest.json"],"removed":[],"modified":["reports/evidence-current.latest.json"]},"repository":{"id":135,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-thing-cloud","full_name":"luoanwu/juhai-thing-cloud","description":"物云:02「物」域应用,自设备云 juhai-device-cloud 4652ce0 分叉","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":2119,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-thing-cloud/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-thing-cloud","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-thing-cloud.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-10-12T21:14:44+08:00","updated_at":"2026-10-18T19:02:13+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
5
|
0
|
1792321736
|
0
|
1792321485
|
1792321736
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
governance-governance.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
26160
|
docs(deploy): finalize enterprise SSO service and docs(deploy): finalize enterprise SSO service and recovery record...
|
51
|
5
|
ci.yml
|
140
|
5
|
0
|
refs/heads/main
|
9c56e58889870b1c9ea607deec97331f2481a924
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"73d1df58b937f7a2dd2e8ef33e14f8dfb928171a","after":"9c56e58889870b1c9ea607deec97331f2481a924","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/73d1df58b937f7a2dd2e8ef33e14f8dfb928171a...9c56e58889870b1c9ea607deec97331f2481a924","commits":[{"id":"9c56e58889870b1c9ea607deec97331f2481a924","message":"docs(deploy): finalize enterprise SSO service and recovery record\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/9c56e58889870b1c9ea607deec97331f2481a924","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-20T00:08:57-07:00","added":[],"removed":[],"modified":["docs/deployments/enterprise-sso-local-2026-10-19.md"]}],"total_commits":0,"head_commit":{"id":"9c56e58889870b1c9ea607deec97331f2481a924","message":"docs(deploy): finalize enterprise SSO service and recovery record\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/9c56e58889870b1c9ea607deec97331f2481a924","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-20T00:08:57-07:00","added":[],"removed":[],"modified":["docs/deployments/enterprise-sso-local-2026-10-19.md"]},"repository":{"id":51,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"yggdrasil-local-life-tools","full_name":"luoanwu/yggdrasil-local-life-tools","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":95472,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools/languages","html_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/yggdrasil-local-life-tools.git","clone_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-02T16:02:07+08:00","updated_at":"2026-10-20T15:08:05+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
5
|
0
|
1792480505
|
0
|
1792480140
|
1792480505
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
26409
|
docs(governance): record narrow kernel consumer mi docs(governance): record narrow kernel consumer migration receipt...
|
83
|
5
|
governance.yml
|
80
|
5
|
0
|
refs/heads/main
|
de07c3b593c59498d0dce8410c0e8a7538c599a9
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"679ac5ec200b7307919bf939f87ecfe7fefaf8fd","after":"de07c3b593c59498d0dce8410c0e8a7538c599a9","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/compare/679ac5ec200b7307919bf939f87ecfe7fefaf8fd...de07c3b593c59498d0dce8410c0e8a7538c599a9","commits":[{"id":"de07c3b593c59498d0dce8410c0e8a7538c599a9","message":"docs(governance): record narrow kernel consumer migration receipt\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/de07c3b593c59498d0dce8410c0e8a7538c599a9","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-23T20:32:23-07:00","added":["reports/kernel-consumer-migration.latest.json"],"removed":[],"modified":[]},{"id":"64a01f52dabfc1acbafe1edb8cb0a48615bc0ce3","message":"docs(governance): record kernel 0.27 native and fixed-host acceptance\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/64a01f52dabfc1acbafe1edb8cb0a48615bc0ce3","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-23T20:31:26-07:00","added":["reports/consumer-profile027.latest.json"],"removed":[],"modified":["reports/app-manifest.latest.json","reports/contract-consumers.latest.json","reports/database-rls.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-kit.latest.json","reports/governance.latest.json","reports/health-dependency-failure.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-bundle.latest.json","reports/os-product-distribution.latest.json","reports/os-product-host-ui.latest.json","reports/os-product-host-ui/fastify.png","reports/os-product-host-ui/nestjs.png","reports/os-product-layer.latest.json","reports/outbox-multi-instance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/ui-fastify-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"000ba546876b3f54ec99a0e34d5f25708cc779c6","message":"chore(kernel): upgrade HR context consumer and governance tool to 0.27\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/000ba546876b3f54ec99a0e34d5f25708cc779c6","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-23T19:56:56-07:00","added":["governance/framework-consumer.json"],"removed":[],"modified":["CLAUDE.md","docs/governance-kit-migration.md","package.json","packages/scope-source/package.json","pnpm-lock.yaml","scripts/check-governance-kit.mjs"]}],"total_commits":0,"head_commit":{"id":"de07c3b593c59498d0dce8410c0e8a7538c599a9","message":"docs(governance): record narrow kernel consumer migration receipt\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/de07c3b593c59498d0dce8410c0e8a7538c599a9","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-23T20:32:23-07:00","added":["reports/kernel-consumer-migration.latest.json"],"removed":[],"modified":[]},"repository":{"id":83,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-ai-hr-system","full_name":"luoanwu/juhai-ai-hr-system","description":"巨嗨 AI 人事系统:受治理全栈基础框架","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":10964,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-hr-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:35:18+08:00","updated_at":"2026-10-19T18:40:28+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
5
|
1792812764
|
1792813718
|
0
|
1792812748
|
1792813718
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
26461
|
chore(evidence): record accepted HR D3 compatibili chore(evidence): record accepted HR D3 compatibility and independent verification...
|
83
|
5
|
governance.yml
|
84
|
5
|
0
|
refs/heads/main
|
9f253ba82a97df8a2e3b4ac24ad650f26555512a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"07deabdcf542864541a6f597ed7c0d724d89971b","after":"9f253ba82a97df8a2e3b4ac24ad650f26555512a","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/compare/07deabdcf542864541a6f597ed7c0d724d89971b...9f253ba82a97df8a2e3b4ac24ad650f26555512a","commits":[{"id":"9f253ba82a97df8a2e3b4ac24ad650f26555512a","message":"chore(evidence): record accepted HR D3 compatibility and independent verification\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/9f253ba82a97df8a2e3b4ac24ad650f26555512a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-25T03:54:23-07:00","added":["reports/d3-cli-rejections.latest.json","reports/d3-independent-review.latest.json","reports/d3-service-update.latest.json"],"removed":[],"modified":["reports/app-manifest.latest.json","reports/contract-consumers.latest.json","reports/d3-commit-visibility-negative.latest.json","reports/d3-convergence.latest.json","reports/d3-migration-history.latest.json","reports/database-rls.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-kit.latest.json","reports/governance.latest.json","reports/health-dependency-failure.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-bundle.latest.json","reports/os-product-compat.latest.json","reports/os-product-distribution.latest.json","reports/os-product-host-runtime.latest.json","reports/os-product-host-ui.latest.json","reports/os-product-host-ui/fastify.png","reports/os-product-host-ui/nestjs.png","reports/os-product-layer.latest.json","reports/outbox-multi-instance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"45b4a89dd03694a10682f4d5e5fed6771d80e6fa","message":"docs(governance): use ANSI wording in runtime counter comment\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/45b4a89dd03694a10682f4d5e5fed6771d80e6fa","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-25T03:41:12-07:00","added":[],"removed":[],"modified":["scripts/lib/runtime-test-count.mjs"]},{"id":"bd1fc802fd7ca6e4ba70ac3afc4e7fedc3e65421","message":"fix(d3): revalidate HR clean compatibility lock and preserve independent assertions\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/bd1fc802fd7ca6e4ba70ac3afc4e7fedc3e65421","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-25T03:25:51-07:00","added":["apps/api-nestjs/test/d3-idp-tenant.acceptance.test.ts","docs/nestjs-convergence-evidence/c4-historical-readiness.json","docs/nestjs-convergence-evidence/c4-revalidation-analysis.json","scripts/lib/runtime-test-count.mjs","scripts/lib/runtime-test-count.test.mjs"],"removed":[],"modified":["CLAUDE.md","apps/api-nestjs/package.json","apps/api-nestjs/src/events/fanout.service.ts","apps/api-nestjs/src/sse/sse-connection.guard.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/test/d3-adapter.acceptance.test.ts","docs/nestjs-convergence-evidence/test-crosswalk.json","docs/nestjs-convergence.md","package.json","pnpm-lock.yaml","products/juhai.hr/readiness.json","reports/baseline-d3.json","scripts/check-os-product-layer.mjs","scripts/check-runtime-acceptance.mjs","scripts/lib/d3-protection.mjs","scripts/lib/d3-protection.test.mjs"]},{"id":"f84a883ab57e1be0e718c6ff41c785a0a1085691","message":"docs(d3): record fixed HR acceptance, negative proof and bounded compatibility constraint\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/f84a883ab57e1be0e718c6ff41c785a0a1085691","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-25T02:32:55-07:00","added":["reports/d3-commit-visibility-negative.latest.json","reports/d3-migration-history.latest.json","reports/d3-resource-cleanup.latest.json"],"removed":[],"modified":["reports/app-manifest.latest.json","reports/contract-consumers.latest.json","reports/d3-convergence.latest.json","reports/database-rls.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-kit.latest.json","reports/governance.latest.json","reports/health-dependency-failure.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-bundle.latest.json","reports/os-product-compat.latest.json","reports/os-product-distribution.latest.json","reports/os-product-host-runtime.latest.json","reports/os-product-host-ui.latest.json","reports/os-product-host-ui/fastify.png","reports/os-product-host-ui/nestjs.png","reports/os-product-layer.latest.json","reports/outbox-multi-instance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"dc468077b35522c59680cbb7e996e7b90b8272db","message":"test(d3): verify response visibility while the database commits\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/dc468077b35522c59680cbb7e996e7b90b8272db","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-25T02:21:53-07:00","added":[],"removed":[],"modified":["apps/api-nestjs/test/d3-adapter.acceptance.test.ts"]}],"total_commits":0,"head_commit":{"id":"9f253ba82a97df8a2e3b4ac24ad650f26555512a","message":"chore(evidence): record accepted HR D3 compatibility and independent verification\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/9f253ba82a97df8a2e3b4ac24ad650f26555512a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-25T03:54:23-07:00","added":["reports/d3-cli-rejections.latest.json","reports/d3-independent-review.latest.json","reports/d3-service-update.latest.json"],"removed":[],"modified":["reports/app-manifest.latest.json","reports/contract-consumers.latest.json","reports/d3-commit-visibility-negative.latest.json","reports/d3-convergence.latest.json","reports/d3-migration-history.latest.json","reports/database-rls.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-kit.latest.json","reports/governance.latest.json","reports/health-dependency-failure.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-bundle.latest.json","reports/os-product-compat.latest.json","reports/os-product-distribution.latest.json","reports/os-product-host-runtime.latest.json","reports/os-product-host-ui.latest.json","reports/os-product-host-ui/fastify.png","reports/os-product-host-ui/nestjs.png","reports/os-product-layer.latest.json","reports/outbox-multi-instance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},"repository":{"id":83,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-ai-hr-system","full_name":"luoanwu/juhai-ai-hr-system","description":"巨嗨 AI 人事系统:受治理全栈基础框架","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":11618,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-hr-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:35:18+08:00","updated_at":"2026-10-24T11:48:38+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
5
|
1792925686
|
1792925761
|
0
|
1792925686
|
1792925761
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
26506
|
fix(ci): fetch locked OS with a Gitea token header fix(ci): fetch locked OS with a Gitea token header and probe access first...
|
83
|
5
|
governance.yml
|
104
|
5
|
0
|
refs/pull/3/head
|
ad805d3ec6a5912aad0de6b9317e9f000779d276
|
0
|
0
|
0
|
pull_request
|
{"action":"opened","number" {"action":"opened","number":3,"pull_request":{"id":219,"url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/pulls/3","number":3,"user":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"title":"fix(ci): fetch locked OS with a Gitea token header and probe access first","body":"actions/checkout presented OS_REPO_READ_TOKEN as Basic credentials and\r\nGitea answered 401 (git fell back to a username prompt) for two\r\ndifferent correctly scoped tokens. Fetch the locked SHA with plain git\r\nand an \"Authorization: token\" header into RUNNER_TEMP instead, after a\r\nGitea API probe that prints only the HTTP status, so a missing secret,\r\nunusable token or missing repository access fails with a clear reason.\r\nThis step also no longer downloads an action from github.com.\r\n\r\n🤖 Generated with [Claude Code](https://claude.com/claude-code)","labels":[],"milestone":null,"assignee":null,"assignees":[],"requested_reviewers":[],"requested_reviewers_teams":[],"state":"open","draft":false,"is_locked":false,"comments":0,"additions":18,"deletions":13,"changed_files":1,"html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/pulls/3","diff_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/pulls/3.diff","patch_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/pulls/3.patch","mergeable":true,"merged":false,"merged_at":null,"merge_commit_sha":null,"merged_by":null,"allow_maintainer_edit":false,"base":{"label":"main","ref":"main","sha":"4751737a2a79c2851a709438431e86970cf84e41","repo_id":83,"repo":{"id":83,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-ai-hr-system","full_name":"luoanwu/juhai-ai-hr-system","description":"巨嗨 AI 人事系统:受治理全栈基础框架","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":13343,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-hr-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:35:18+08:00","updated_at":"2026-10-27T18:15:18+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]}},"head":{"label":"claude/project-progress-analysis-69857d","ref":"claude/project-progress-analysis-69857d","sha":"ad805d3ec6a5912aad0de6b9317e9f000779d276","repo_id":83,"repo":{"id":83,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-ai-hr-system","full_name":"luoanwu/juhai-ai-hr-system","description":"巨嗨 AI 人事系统:受治理全栈基础框架","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":13343,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-hr-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:35:18+08:00","updated_at":"2026-10-27T18:15:18+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]}},"merge_base":"2638e9e8bf29c2e49d029ca1a7c4dd706461a510","due_date":null,"created_at":"2026-10-27T18:16:44+08:00","updated_at":"2026-10-27T18:16:44+08:00","closed_at":null,"pin_order":0},"requested_reviewer":null,"repository":{"id":83,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-ai-hr-system","full_name":"luoanwu/juhai-ai-hr-system","description":"巨嗨 AI 人事系统:受治理全栈基础框架","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":13343,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-hr-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:35:18+08:00","updated_at":"2026-10-27T18:15:18+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"commit_id":"","review":null}...
|
pull_request
|
3
|
5
|
1793096205
|
1793096840
|
0
|
1793096204
|
1793096840
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/pull/3/head
|
1
|
Edit
Delete
|
|
26507
|
fix(ci): fetch locked OS with a Gitea token header fix(ci): fetch locked OS with a Gitea token header and probe access first...
|
83
|
5
|
platform-governance.yml
|
105
|
5
|
0
|
refs/pull/3/head
|
ad805d3ec6a5912aad0de6b9317e9f000779d276
|
0
|
0
|
0
|
pull_request
|
{"action":"opened","number" {"action":"opened","number":3,"pull_request":{"id":219,"url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/pulls/3","number":3,"user":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"title":"fix(ci): fetch locked OS with a Gitea token header and probe access first","body":"actions/checkout presented OS_REPO_READ_TOKEN as Basic credentials and\r\nGitea answered 401 (git fell back to a username prompt) for two\r\ndifferent correctly scoped tokens. Fetch the locked SHA with plain git\r\nand an \"Authorization: token\" header into RUNNER_TEMP instead, after a\r\nGitea API probe that prints only the HTTP status, so a missing secret,\r\nunusable token or missing repository access fails with a clear reason.\r\nThis step also no longer downloads an action from github.com.\r\n\r\n🤖 Generated with [Claude Code](https://claude.com/claude-code)","labels":[],"milestone":null,"assignee":null,"assignees":[],"requested_reviewers":[],"requested_reviewers_teams":[],"state":"open","draft":false,"is_locked":false,"comments":0,"additions":18,"deletions":13,"changed_files":1,"html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/pulls/3","diff_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/pulls/3.diff","patch_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/pulls/3.patch","mergeable":true,"merged":false,"merged_at":null,"merge_commit_sha":null,"merged_by":null,"allow_maintainer_edit":false,"base":{"label":"main","ref":"main","sha":"4751737a2a79c2851a709438431e86970cf84e41","repo_id":83,"repo":{"id":83,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-ai-hr-system","full_name":"luoanwu/juhai-ai-hr-system","description":"巨嗨 AI 人事系统:受治理全栈基础框架","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":13343,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-hr-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:35:18+08:00","updated_at":"2026-10-27T18:15:18+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]}},"head":{"label":"claude/project-progress-analysis-69857d","ref":"claude/project-progress-analysis-69857d","sha":"ad805d3ec6a5912aad0de6b9317e9f000779d276","repo_id":83,"repo":{"id":83,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-ai-hr-system","full_name":"luoanwu/juhai-ai-hr-system","description":"巨嗨 AI 人事系统:受治理全栈基础框架","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":13343,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-hr-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:35:18+08:00","updated_at":"2026-10-27T18:15:18+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]}},"merge_base":"2638e9e8bf29c2e49d029ca1a7c4dd706461a510","due_date":null,"created_at":"2026-10-27T18:16:44+08:00","updated_at":"2026-10-27T18:16:44+08:00","closed_at":null,"pin_order":0},"requested_reviewer":null,"repository":{"id":83,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-ai-hr-system","full_name":"luoanwu/juhai-ai-hr-system","description":"巨嗨 AI 人事系统:受治理全栈基础框架","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":13343,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-hr-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:35:18+08:00","updated_at":"2026-10-27T18:15:18+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"commit_id":"","review":null}...
|
pull_request
|
3
|
5
|
1793097229
|
1793097625
|
0
|
1793096205
|
1793097625
|
|
|
0
|
Edit
Delete
|
|
26763
|
fix(diagnostic): 限制迁移回执大小以避免runner单行截断
|
116
|
5
|
gitea-migration-identity.yml
|
1176
|
5
|
0
|
refs/heads/codex/runner-maintenance-diagnostic-202 refs/heads/codex/runner-maintenance-diagnostic-20261101...
|
ab0f7a9662b7e37f9a553ef821c0cb2700017692
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/codex/runner-mainte {"ref":"refs/heads/codex/runner-maintenance-diagnostic-20261101","before":"92c09a09fe3dd2c949f933fc1871f0c00ef65efd","after":"ab0f7a9662b7e37f9a553ef821c0cb2700017692","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/92c09a09fe3dd2c949f933fc1871f0c00ef65efd...ab0f7a9662b7e37f9a553ef821c0cb2700017692","commits":[{"id":"ab0f7a9662b7e37f9a553ef821c0cb2700017692","message":"fix(diagnostic): 限制迁移回执大小以避免runner单行截断\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/ab0f7a9662b7e37f9a553ef821c0cb2700017692","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-11-01T01:36:50-07:00","added":[],"removed":[],"modified":[".gitea/workflows/gitea-migration-identity.yml"]}],"total_commits":0,"head_commit":{"id":"ab0f7a9662b7e37f9a553ef821c0cb2700017692","message":"fix(diagnostic): 限制迁移回执大小以避免runner单行截断\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/ab0f7a9662b7e37f9a553ef821c0cb2700017692","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-11-01T01:36:50-07:00","added":[],"removed":[],"modified":[".gitea/workflows/gitea-migration-identity.yml"]},"repository":{"id":116,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"enterprise-platform","full_name":"luoanwu/enterprise-platform","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":109083,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/enterprise-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":168,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-11T07:33:25+08:00","updated_at":"2026-11-01T16:36:24+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
5
|
0
|
1793522621
|
0
|
1793522218
|
1793522621
|
group: runner-maintenance-readonly
cancel-in-progr group: runner-maintenance-readonly
cancel-in-progress: "false"
...
|
runner-maintenance-readonly
|
0
|
Edit
Delete
|
|
13780
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13702
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776056751
|
1776056752
|
0
|
1776056750
|
1776056752
|
|
|
0
|
Edit
Delete
|
|
13781
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13703
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776057051
|
1776057052
|
0
|
1776057050
|
1776057052
|
|
|
0
|
Edit
Delete
|
|
13782
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13704
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776057351
|
1776057352
|
0
|
1776057350
|
1776057352
|
|
|
0
|
Edit
Delete
|
|
13783
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13705
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776057651
|
1776057652
|
0
|
1776057650
|
1776057652
|
|
|
0
|
Edit
Delete
|
|
13784
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13706
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776057951
|
1776057952
|
0
|
1776057950
|
1776057952
|
|
|
0
|
Edit
Delete
|
|
13785
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13707
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776058251
|
1776058252
|
0
|
1776058250
|
1776058252
|
|
|
0
|
Edit
Delete
|
|
13786
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13708
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776058551
|
1776058552
|
0
|
1776058550
|
1776058552
|
|
|
0
|
Edit
Delete
|
|
13787
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13709
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776058851
|
1776058852
|
0
|
1776058850
|
1776058852
|
|
|
0
|
Edit
Delete
|
|
13788
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13710
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776059153
|
1776059154
|
0
|
1776059150
|
1776059154
|
|
|
0
|
Edit
Delete
|
|
13789
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13711
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776059451
|
1776059452
|
0
|
1776059450
|
1776059452
|
|
|
0
|
Edit
Delete
|
|
13790
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13712
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776059751
|
1776059752
|
0
|
1776059750
|
1776059752
|
|
|
0
|
Edit
Delete
|
|
13791
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13713
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776060051
|
1776060052
|
0
|
1776060050
|
1776060052
|
|
|
0
|
Edit
Delete
|
|
13792
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13714
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776060352
|
1776060352
|
0
|
1776060350
|
1776060352
|
|
|
0
|
Edit
Delete
|
|
13793
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13715
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776060651
|
1776060652
|
0
|
1776060650
|
1776060652
|
|
|
0
|
Edit
Delete
|
|
13794
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13716
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776060951
|
1776060952
|
0
|
1776060950
|
1776060952
|
|
|
0
|
Edit
Delete
|
|
13795
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13717
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776061251
|
1776061252
|
0
|
1776061250
|
1776061252
|
|
|
0
|
Edit
Delete
|
|
13796
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13718
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776061551
|
1776061552
|
0
|
1776061550
|
1776061552
|
|
|
0
|
Edit
Delete
|
|
13797
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13719
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776061851
|
1776061852
|
0
|
1776061850
|
1776061852
|
|
|
0
|
Edit
Delete
|
|
13798
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13720
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776062151
|
1776062152
|
0
|
1776062150
|
1776062152
|
|
|
0
|
Edit
Delete
|
|
13799
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13721
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776062451
|
1776062452
|
0
|
1776062450
|
1776062452
|
|
|
0
|
Edit
Delete
|
|
13800
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13722
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776062751
|
1776062752
|
0
|
1776062750
|
1776062752
|
|
|
0
|
Edit
Delete
|
|
13801
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13723
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776063051
|
1776063052
|
0
|
1776063050
|
1776063052
|
|
|
0
|
Edit
Delete
|