|
10529
|
fix(schema): annotate 47 Prisma String? fields + f fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E...
|
6
|
5
|
test-pipeline.yml
|
10453
|
5
|
0
|
refs/heads/main
|
624893ef324e57874ecb721dfd5539eb58d49b8e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","after":"624893ef324e57874ecb721dfd5539eb58d49b8e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/7212eb23c82b2ecae9ea1f22fa928fc6382f842d...624893ef324e57874ecb721dfd5539eb58d49b8e","commits":[{"id":"624893ef324e57874ecb721dfd5539eb58d49b8e","message":"fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E\n\n- Add @db.Text (18) and @db.VarChar(2000) (29) to all bare String?\n fields, eliminating 47 pre-commit Prisma warnings\n- Fix assembly.controller.ts 10 type errors using Parameters\u003c\u003e utility\n- Sync E2E test results and playwright reports\n- Update audit reports and governance docs\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\nPre-commit Prisma warnings: 47 → 0\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/624893ef324e57874ecb721dfd5539eb58d49b8e","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T06:59:18+08:00","added":["e2e/playwright-report/data/120f8592f0449e7d84ecbb98535f92dbd5c055df.png","e2e/playwright-report/data/6a680276f19eb94c37efac2217eb10187216fc8d.png","e2e/playwright-report/data/8f49f37de62cf7c3163a26e1c24fc10fb4addae7.md","e2e/playwright-report/data/aefe43d14b4c42045c882db4c112b0f5536f7381.md","e2e/playwright-report/data/b1b4116ac344e1e9335a1c933cb1166e6b548ead.png","e2e/playwright-report/data/b6c0c18844d3465d82e2f6c53316a066c88520fb.png","e2e/playwright-report/data/c71aa4c93404526c84e47bdb8f0880a143981fd2.png","e2e/playwright-report/data/cda80cbeb2e5b4caea4520ec564ecbdffe143f15.md","e2e/playwright-report/data/f5045aa7d74062d1dd8eae8d5bd3ceb77b1bbca9.png","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/test-failed-1.png"],"removed":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-线索.png"],"modified":[".claude/skills/juhi/harness.md","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/schema.prisma","backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/assembly/assembly.controller.ts","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/tickets/ticket.service.ts","backend/tests/api/setup.ts","backend/tests/api/stores.test.ts","backend/tests/api/test-context.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","e2e/helpers/p0-chain.helper.ts","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-created.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/auth/ai-agent-employee-smoke.spec.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/composables/useRouteSyncedTab.ts","frontend/src/views/cpq/Index.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/leads/useLeadCenterContext.ts","frontend/src/views/marketing-chatbot/composables/useChatbot.ts","frontend/src/views/payment-plans/Index.vue","frontend/src/views/payments/Index.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/price-books/Form.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/social-analytics/__tests__/social-analytics-g4.smoke.test.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-field-payload.ts"]},{"id":"ad579baf8043eb72ed26d4b2750a83bf39888acf","message":"Advance harness governance and align enum sources\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ad579baf8043eb72ed26d4b2750a83bf39888acf","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T06:46:31+08:00","added":[],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","docs/governance/baseline-and-experience.md","frontend/src/api/modules/channels.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/api/modules/segments.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/views/approvals/Detail.vue","frontend/src/views/approvals/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/suppliers/Detail.vue","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","scripts/harness/report.ts"]},{"id":"a11d601814a16c9221a3a43172d3ba80e47ab5d8","message":"chore: refresh outbox and harness dashboard reports\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a11d601814a16c9221a3a43172d3ba80e47ab5d8","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T06:45:42+08:00","added":[],"removed":[],"modified":["reports/harness-dashboard.latest.json","reports/outbox-atomicity-audit.latest.json"]},{"id":"2b5617f7972d9e2e8d8714659d24a0629a387ff9","message":"chore: clean up E2E reports and sync audit scripts\n\n- Remove stale playwright report artifacts\n- Update outbox-atomicity audit script\n- Refresh E2E auth session\n- Add new E2E test fixtures\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2b5617f7972d9e2e8d8714659d24a0629a387ff9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T06:45:27+08:00","added":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/ui-lead-created.png"],"removed":["e2e/playwright-report/data/08814a62bc42dda0a801567cc9d4c6cf9108644f.png","e2e/playwright-report/data/08ae5320caa7ecb0943f1b38c4c138f60d9004c3.md","e2e/playwright-report/data/1cba8ad03f3e633e0a9b010b05e07c93a5dfc44a.png","e2e/playwright-report/data/1d43f546e96c93650a26552a100c1855a88d5458.png","e2e/playwright-report/data/5fb52d57fb25da788351f81f13f38f47b49d8b1f.png","e2e/playwright-report/data/6f0eb64dd0e32bcdd5c42b43e2c9b28a889500f2.md","e2e/playwright-report/data/74e23d758057f5aed55e9fbf3ece31b9d3acea58.png","e2e/playwright-report/data/9ab0f255905482fca6d669a755fd9b960bb373fc.png","e2e/playwright-report/data/a5d205df4f843ab178a43626f09d16d3c119f64b.png","e2e/playwright-report/data/a9144dba21c9cb4f71a0e572a1c614ba88aeecc3.png","e2e/playwright-report/data/b3cf18b7fc81abe0483c5b53d8d595ec25d48bf2.png","e2e/playwright-report/data/b6880efa02d1267768bc45dce241b63de538c889.md","e2e/playwright-report/data/c88450e727adf63687ab82953a1feb25d41783b6.png","e2e/playwright-report/data/d22ec590fa752ce8d4e445623611badd1dd32aec.png","e2e/playwright-report/data/d25303c48b8928a147c383e3a15ad19f7ca9f0ca.md","e2e/playwright-report/data/db687a8cb0ddb131fe43b1624363672704a90635.png","e2e/playwright-report/data/e9bf62f6a8fb0b7f4fd2adcf360c6c709f3f0c3c.png","e2e/playwright-report/data/fbba64b2ea6842818d1bc5425e078f1688c87111.png","e2e/playwright-report/data/fec0773e4a656970b1bfa0f108a88929a9099f30.png","e2e/test-results/p0-chain-boundary-guards-边界防御-并发操作-同一订单并发支付不应导致重复扣款-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-并发操作-同一订单并发支付不应导致重复扣款-chromium/test-failed-1.png","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建工单---缺少主题应返回-4xx-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建工单---缺少主题应返回-4xx-chromium/test-failed-1.png","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建线索---缺少公司名称应返回-4xx-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建线索---缺少公司名称应返回-4xx-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-0f9bf--to-Renewal-Phase-2-线索转化为商机-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-0f9bf--to-Renewal-Phase-2-线索转化为商机-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-UI-创建线索-通过-UI-表单创建新线索-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-UI-创建线索-通过-UI-表单创建新线索-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-合同列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-合同列表页可正常访问-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-245f6-act-合同-回退场景-submit-→-reject-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-245f6-act-合同-回退场景-submit-→-reject-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-3594e--→-支付-→-发货-→-交付-→-completed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-3594e--→-支付-→-发货-→-交付-→-completed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-3b128-ding-sign-→-signed-→-active-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-3b128-ding-sign-→-signed-→-active-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-66015-合同-终止场景-active-→-terminated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-66015-合同-终止场景-active-→-terminated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-7ae5b--取消场景-confirmed-→-cancelled-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-7ae5b--取消场景-confirmed-→-cancelled-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-94d5a-ted-→-qualified-→-converted-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-94d5a-ted-→-qualified-→-converted-chromium/test-failed-1.png"],"modified":["backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.ts","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-线索.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/adapters.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/channels.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/cross-domain-funnel.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/event-subscriptions.ts","frontend/src/api/modules/finance.ts","frontend/src/api/modules/financial-reports.ts","frontend/src/api/modules/groupbuy-platforms.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-pools.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/partner-customers.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/scheduled-jobs.ts","frontend/src/api/modules/segments.ts","frontend/src/api/modules/sms-marketing.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/stage-knowledge.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/web-tracking.ts","frontend/src/types/enums.ts","frontend/src/views/alliance-agreements/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/cross-domain-funnel/Index.vue","frontend/src/views/financial-reports/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/reports/Schedules.vue","frontend/src/views/stage-knowledge/Index.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/web-tracking/Index.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"5276d7aba4c8e857b2fb6c26eb6445143fbf9802","message":"fix: resolve remaining field-payload ERRORs and update audit reports\n\n- Fix 3 remaining field-payload ERROR (commissions/payments/price-books\n createSchema optional→required alignment)\n- Update geo-pois service and tests\n- Refresh all audit reports (enum/field-payload/outbox/type-debt)\n- Update governance docs and project documentation\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\n\nfield-payload: ERROR 3→0, WARNING 61 (stable)\nenum: ERROR 5 (audit mismatch), WARNING 14\nOutbox B-class: 3 (all passing tx — audit false positive)\nNon-test as any: 0 (all remaining are comments only)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5276d7aba4c8e857b2fb6c26eb6445143fbf9802","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T06:45:05+08:00","added":["backend/tests/api/events.test.ts","backend/tests/api/store-performance.test.ts","docs/reports/view-audit-domains/a1-acquisition-center-2026-04-02.md","docs/reports/view-audit-domains/a2-finance-center-2026-04-02.md","docs/reports/view-audit-domains/a3-ai-knowledge-2026-04-02.md","docs/reports/view-audit-domains/a4-store-groupbuy-alliance-2026-04-02.md","docs/reports/view-audit-domains/a5-admin-center-2026-04-02.md","docs/reports/view-audit-domains/a6-synergy-hr-2026-04-02.md","docs/reports/view-audit-domains/a7-analytics-marketing-2026-04-02.md","docs/reports/view-audit-domains/a8-system-center-2026-04-02.md","docs/reports/view-audit-domains/a9-service-sales-fulfillment-2026-04-02.md","docs/reports/view-audit-full-matrix-2026-04-02.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/geo-pois/geo-poi.service.test.ts","backend/src/modules/geo-pois/geo-poi.service.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/price-books/price-definition.schema.ts","backend/tests/api/community-analytics.test.ts","backend/tests/api/contract-templates.test.ts","backend/tests/api/module-catalog.ts","backend/tests/api/process-designer.test.ts","backend/tests/api/reconciliation.test.ts","backend/tests/api/store-ops-access.test.ts","docs/governance/baseline-and-experience.md","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/enum-consistency-audit.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-changed.latest.json","reports/harness-dashboard.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/route-registration-audit.latest.json","reports/route-registration-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md","reports/type-debt-audit.latest.json","reports/view-module-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/harness/audit-registry.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"624893ef324e57874ecb721dfd5539eb58d49b8e","message":"fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E\n\n- Add @db.Text (18) and @db.VarChar(2000) (29) to all bare String?\n fields, eliminating 47 pre-commit Prisma warnings\n- Fix assembly.controller.ts 10 type errors using Parameters\u003c\u003e utility\n- Sync E2E test results and playwright reports\n- Update audit reports and governance docs\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\nPre-commit Prisma warnings: 47 → 0\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/624893ef324e57874ecb721dfd5539eb58d49b8e","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T06:59:18+08:00","added":["e2e/playwright-report/data/120f8592f0449e7d84ecbb98535f92dbd5c055df.png","e2e/playwright-report/data/6a680276f19eb94c37efac2217eb10187216fc8d.png","e2e/playwright-report/data/8f49f37de62cf7c3163a26e1c24fc10fb4addae7.md","e2e/playwright-report/data/aefe43d14b4c42045c882db4c112b0f5536f7381.md","e2e/playwright-report/data/b1b4116ac344e1e9335a1c933cb1166e6b548ead.png","e2e/playwright-report/data/b6c0c18844d3465d82e2f6c53316a066c88520fb.png","e2e/playwright-report/data/c71aa4c93404526c84e47bdb8f0880a143981fd2.png","e2e/playwright-report/data/cda80cbeb2e5b4caea4520ec564ecbdffe143f15.md","e2e/playwright-report/data/f5045aa7d74062d1dd8eae8d5bd3ceb77b1bbca9.png","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/test-failed-1.png"],"removed":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-线索.png"],"modified":[".claude/skills/juhi/harness.md","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/schema.prisma","backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/assembly/assembly.controller.ts","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/tickets/ticket.service.ts","backend/tests/api/setup.ts","backend/tests/api/stores.test.ts","backend/tests/api/test-context.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","e2e/helpers/p0-chain.helper.ts","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-created.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/auth/ai-agent-employee-smoke.spec.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/composables/useRouteSyncedTab.ts","frontend/src/views/cpq/Index.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/leads/useLeadCenterContext.ts","frontend/src/views/marketing-chatbot/composables/useChatbot.ts","frontend/src/views/payment-plans/Index.vue","frontend/src/views/payments/Index.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/price-books/Form.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/social-analytics/__tests__/social-analytics-g4.smoke.test.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-field-payload.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":5197876,"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-02T02:05: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"}}...
|
push
|
2
|
68
|
1775097304
|
1775097365
|
0
|
1775097115
|
1775098674
|
group: test-pipeline-${{ github.ref }}
cancel-in-p group: test-pipeline-${{ github.ref }}
cancel-in-progress: "true"
...
|
test-pipeline-refs/heads/main
|
1
|
Edit
Delete
|
|
10813
|
feat: 单机 Docker 生产部署 + 治理基线对齐 (#18)
|
6
|
5
|
e2e-tests.yml
|
10737
|
5
|
0
|
refs/heads/main
|
40dae5944f158653af8288a3f38b6c97e8ce9f06
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"624893ef324e57874ecb721dfd5539eb58d49b8e","after":"40dae5944f158653af8288a3f38b6c97e8ce9f06","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/624893ef324e57874ecb721dfd5539eb58d49b8e...40dae5944f158653af8288a3f38b6c97e8ce9f06","commits":[{"id":"40dae5944f158653af8288a3f38b6c97e8ce9f06","message":"feat: 单机 Docker 生产部署 + 治理基线对齐 (#18)\n\nfeat: 单机 Docker 生产部署 + 治理基线对齐","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/40dae5944f158653af8288a3f38b6c97e8ce9f06","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-04-02T22:53:05+08:00","added":[".dockerignore.local","backend/Dockerfile.local","deploy/ssl/.gitkeep","docker-compose.local-prod.yml","frontend/Dockerfile.local"],"removed":[],"modified":[".gitignore","backend/package.json","backend/prisma/schema/_base.prisma","pnpm-lock.yaml"]},{"id":"588c47ea1f151f20d7e919cd87a5b07385b02022","message":"chore: 将 .env.production 加入 .gitignore 防止密钥泄露\n\nhttps://claude.ai/code/session_0178CfAo3ibEjsJuMqDCHR7X\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/588c47ea1f151f20d7e919cd87a5b07385b02022","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-04-02T14:47:51Z","added":[],"removed":[],"modified":[".gitignore"]},{"id":"3b9130b7e0040b49d5bc08307c9e050175994903","message":"feat: 单机 Docker 生产部署成功 - 全套本地构建方案\n\n新增本地部署配套文件:\n- docker-compose.local-prod.yml: 本地单机生产编排(pgvector + apache/kafka + minio + api + frontend + nginx)\n- backend/Dockerfile.local: 后端本地构建镜像(tsx 运行源码,避免路径别名问题)\n- frontend/Dockerfile.local: 前端本地构建镜像\n- .dockerignore.local: 本地构建专用忽略规则(保留 dist/node_modules)\n\n修改:\n- backend/prisma/schema/_base.prisma: 添加 binaryTargets linux-musl-openssl-3.0.x(Alpine 容器支持)\n\n部署验证通过:\n- PostgreSQL (pgvector:pg16) + Redis + Kafka + MinIO + API + Frontend + Nginx 全部在线\n- 135+ 数据库迁移全部应用成功\n- API /health 返回 {\"status\":\"ok\"}\n- Nginx HTTP→HTTPS 重定向正常,SSL 自签名证书工作\n\nhttps://claude.ai/code/session_0178CfAo3ibEjsJuMqDCHR7X\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3b9130b7e0040b49d5bc08307c9e050175994903","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-04-02T14:46:47Z","added":[".dockerignore.local","backend/Dockerfile.local","docker-compose.local-prod.yml","frontend/Dockerfile.local"],"removed":[],"modified":["backend/prisma/schema/_base.prisma"]},{"id":"a5244b9fafc440f46250c8a1b72b7fea82d6d1ef","message":"chore: 部署准备 - 补齐 deploy/ssl 目录 + 修复 fast-xml-parser 缺失依赖\n\n- 创建 deploy/ssl/.gitkeep,确保 Nginx 生产环境 SSL 挂载目录存在\n- 添加 fast-xml-parser 依赖,修复微信企业号 webhook 模块的类型错误\n- 后端 tsc 0 错误 / 前端 vue-tsc 0 错误,类型检查双清零\n\nhttps://claude.ai/code/session_0178CfAo3ibEjsJuMqDCHR7X\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a5244b9fafc440f46250c8a1b72b7fea82d6d1ef","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-04-02T14:04:59Z","added":["deploy/ssl/.gitkeep"],"removed":[],"modified":["backend/package.json","pnpm-lock.yaml"]}],"total_commits":0,"head_commit":{"id":"40dae5944f158653af8288a3f38b6c97e8ce9f06","message":"feat: 单机 Docker 生产部署 + 治理基线对齐 (#18)\n\nfeat: 单机 Docker 生产部署 + 治理基线对齐","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/40dae5944f158653af8288a3f38b6c97e8ce9f06","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-04-02T22:53:05+08:00","added":[".dockerignore.local","backend/Dockerfile.local","deploy/ssl/.gitkeep","docker-compose.local-prod.yml","frontend/Dockerfile.local"],"removed":[],"modified":[".gitignore","backend/package.json","backend/prisma/schema/_base.prisma","pnpm-lock.yaml"]},"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":5204315,"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-02T10:31: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":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"}}...
|
push
|
2
|
20
|
1775180411
|
1775181235
|
0
|
1775180411
|
1775184778
|
|
|
0
|
Edit
Delete
|
|
10814
|
feat: 单机 Docker 生产部署 + 治理基线对齐 (#18)
|
6
|
5
|
test-pipeline.yml
|
10738
|
5
|
0
|
refs/heads/main
|
40dae5944f158653af8288a3f38b6c97e8ce9f06
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"624893ef324e57874ecb721dfd5539eb58d49b8e","after":"40dae5944f158653af8288a3f38b6c97e8ce9f06","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/624893ef324e57874ecb721dfd5539eb58d49b8e...40dae5944f158653af8288a3f38b6c97e8ce9f06","commits":[{"id":"40dae5944f158653af8288a3f38b6c97e8ce9f06","message":"feat: 单机 Docker 生产部署 + 治理基线对齐 (#18)\n\nfeat: 单机 Docker 生产部署 + 治理基线对齐","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/40dae5944f158653af8288a3f38b6c97e8ce9f06","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-04-02T22:53:05+08:00","added":[".dockerignore.local","backend/Dockerfile.local","deploy/ssl/.gitkeep","docker-compose.local-prod.yml","frontend/Dockerfile.local"],"removed":[],"modified":[".gitignore","backend/package.json","backend/prisma/schema/_base.prisma","pnpm-lock.yaml"]},{"id":"588c47ea1f151f20d7e919cd87a5b07385b02022","message":"chore: 将 .env.production 加入 .gitignore 防止密钥泄露\n\nhttps://claude.ai/code/session_0178CfAo3ibEjsJuMqDCHR7X\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/588c47ea1f151f20d7e919cd87a5b07385b02022","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-04-02T14:47:51Z","added":[],"removed":[],"modified":[".gitignore"]},{"id":"3b9130b7e0040b49d5bc08307c9e050175994903","message":"feat: 单机 Docker 生产部署成功 - 全套本地构建方案\n\n新增本地部署配套文件:\n- docker-compose.local-prod.yml: 本地单机生产编排(pgvector + apache/kafka + minio + api + frontend + nginx)\n- backend/Dockerfile.local: 后端本地构建镜像(tsx 运行源码,避免路径别名问题)\n- frontend/Dockerfile.local: 前端本地构建镜像\n- .dockerignore.local: 本地构建专用忽略规则(保留 dist/node_modules)\n\n修改:\n- backend/prisma/schema/_base.prisma: 添加 binaryTargets linux-musl-openssl-3.0.x(Alpine 容器支持)\n\n部署验证通过:\n- PostgreSQL (pgvector:pg16) + Redis + Kafka + MinIO + API + Frontend + Nginx 全部在线\n- 135+ 数据库迁移全部应用成功\n- API /health 返回 {\"status\":\"ok\"}\n- Nginx HTTP→HTTPS 重定向正常,SSL 自签名证书工作\n\nhttps://claude.ai/code/session_0178CfAo3ibEjsJuMqDCHR7X\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3b9130b7e0040b49d5bc08307c9e050175994903","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-04-02T14:46:47Z","added":[".dockerignore.local","backend/Dockerfile.local","docker-compose.local-prod.yml","frontend/Dockerfile.local"],"removed":[],"modified":["backend/prisma/schema/_base.prisma"]},{"id":"a5244b9fafc440f46250c8a1b72b7fea82d6d1ef","message":"chore: 部署准备 - 补齐 deploy/ssl 目录 + 修复 fast-xml-parser 缺失依赖\n\n- 创建 deploy/ssl/.gitkeep,确保 Nginx 生产环境 SSL 挂载目录存在\n- 添加 fast-xml-parser 依赖,修复微信企业号 webhook 模块的类型错误\n- 后端 tsc 0 错误 / 前端 vue-tsc 0 错误,类型检查双清零\n\nhttps://claude.ai/code/session_0178CfAo3ibEjsJuMqDCHR7X\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a5244b9fafc440f46250c8a1b72b7fea82d6d1ef","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-04-02T14:04:59Z","added":["deploy/ssl/.gitkeep"],"removed":[],"modified":["backend/package.json","pnpm-lock.yaml"]}],"total_commits":0,"head_commit":{"id":"40dae5944f158653af8288a3f38b6c97e8ce9f06","message":"feat: 单机 Docker 生产部署 + 治理基线对齐 (#18)\n\nfeat: 单机 Docker 生产部署 + 治理基线对齐","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/40dae5944f158653af8288a3f38b6c97e8ce9f06","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-04-02T22:53:05+08:00","added":[".dockerignore.local","backend/Dockerfile.local","deploy/ssl/.gitkeep","docker-compose.local-prod.yml","frontend/Dockerfile.local"],"removed":[],"modified":[".gitignore","backend/package.json","backend/prisma/schema/_base.prisma","pnpm-lock.yaml"]},"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":5204315,"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-02T10:31: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":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"}}...
|
push
|
3
|
24
|
0
|
1775180537
|
0
|
1775180412
|
1775180540
|
group: test-pipeline-${{ github.ref }}
cancel-in-p group: test-pipeline-${{ github.ref }}
cancel-in-progress: "true"
...
|
test-pipeline-refs/heads/main
|
1
|
Edit
Delete
|
|
10815
|
Merge remote-tracking branch 'origin/codex/fin Merge remote-tracking branch 'origin/codex/finance-smoke-sync-20260331'...
|
6
|
5
|
e2e-tests.yml
|
10739
|
5
|
0
|
refs/heads/main
|
9d69e1960ec649a49c0c6f307c0fc197f47ee4c4
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"40dae5944f158653af8288a3f38b6c97e8ce9f06","after":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/40dae5944f158653af8288a3f38b6c97e8ce9f06...9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","commits":[{"id":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","message":"Merge remote-tracking branch 'origin/codex/finance-smoke-sync-20260331'\n\n# Conflicts:\n#\tfrontend/src/views/invoices/Detail.vue\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-03T09:41:29+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":[]},{"id":"0152aae7b8ff9440c5f4e7aad113420208e6c304","message":"Merge remote-tracking branch 'origin/codex/design-scalable-autopilot-os-architecture'\n\n# Conflicts:\n#\te2e/agents/playwright-agent/index.ts\n#\te2e/agents/playwright-agent/inspectors/index.ts\n#\te2e/agents/playwright-agent/reporters/backend-reporter.ts\n#\te2e/package.json\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0152aae7b8ff9440c5f4e7aad113420208e6c304","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-03T09:41:05+08:00","added":[],"removed":[],"modified":[]},{"id":"e2587fae3d50e6ef7c30450199abd1bfc910a016","message":"test(finance): add finance mainline smoke and harden invoice detail formatting","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e2587fae3d50e6ef7c30450199abd1bfc910a016","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T13:47:05+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":["frontend/src/views/invoices/Detail.vue"]},{"id":"803578ebec2d6f4c0d00335c1f5c61067112d923","message":"feat(e2e): add playwright agent mvp skeleton","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/803578ebec2d6f4c0d00335c1f5c61067112d923","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-19T19:55:36+08:00","added":["e2e/agents/playwright-agent/README.md","e2e/agents/playwright-agent/__tests__/playwright-agent.unit.test.ts","e2e/agents/playwright-agent/artifacts/artifact-writer.ts","e2e/agents/playwright-agent/auth/auth-provider.ts","e2e/agents/playwright-agent/auth/storage-state-auth.ts","e2e/agents/playwright-agent/constants/diagnosis.ts","e2e/agents/playwright-agent/constants/status.ts","e2e/agents/playwright-agent/constants/timeouts.ts","e2e/agents/playwright-agent/core/action-runner.ts","e2e/agents/playwright-agent/core/browser-manager.ts","e2e/agents/playwright-agent/core/execution-engine.ts","e2e/agents/playwright-agent/core/retry-engine.ts","e2e/agents/playwright-agent/core/session-factory.ts","e2e/agents/playwright-agent/index.ts","e2e/agents/playwright-agent/inspectors/base-inspector.ts","e2e/agents/playwright-agent/inspectors/booking-inspector.ts","e2e/agents/playwright-agent/inspectors/dashboard-inspector.ts","e2e/agents/playwright-agent/inspectors/index.ts","e2e/agents/playwright-agent/inspectors/payment-inspector.ts","e2e/agents/playwright-agent/observers/console-observer.ts","e2e/agents/playwright-agent/observers/network-observer.ts","e2e/agents/playwright-agent/observers/page-probe.ts","e2e/agents/playwright-agent/reporters/backend-reporter.ts","e2e/agents/playwright-agent/reporters/json-reporter.ts","e2e/agents/playwright-agent/resolvers/selector-resolver.ts","e2e/agents/playwright-agent/types/diagnosis.ts","e2e/agents/playwright-agent/types/execution-plan.ts","e2e/agents/playwright-agent/types/execution-result.ts","e2e/agents/playwright-agent/types/execution-step.ts","e2e/agents/playwright-agent/types/inspector.ts","e2e/agents/playwright-agent/types/runtime.ts"],"removed":[],"modified":["e2e/package.json"]}],"total_commits":0,"head_commit":{"id":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","message":"Merge remote-tracking branch 'origin/codex/finance-smoke-sync-20260331'\n\n# Conflicts:\n#\tfrontend/src/views/invoices/Detail.vue\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-03T09:41:29+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":[]},"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":5204515,"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-03T09:40: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":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"}}...
|
push
|
2
|
20
|
1775181236
|
1775183619
|
0
|
1775180536
|
1775185999
|
|
|
0
|
Edit
Delete
|
|
10817
|
Merge remote-tracking branch 'origin/codex/fin Merge remote-tracking branch 'origin/codex/finance-smoke-sync-20260331'...
|
6
|
5
|
test-pipeline.yml
|
10740
|
5
|
0
|
refs/heads/main
|
9d69e1960ec649a49c0c6f307c0fc197f47ee4c4
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"40dae5944f158653af8288a3f38b6c97e8ce9f06","after":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/40dae5944f158653af8288a3f38b6c97e8ce9f06...9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","commits":[{"id":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","message":"Merge remote-tracking branch 'origin/codex/finance-smoke-sync-20260331'\n\n# Conflicts:\n#\tfrontend/src/views/invoices/Detail.vue\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-03T09:41:29+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":[]},{"id":"0152aae7b8ff9440c5f4e7aad113420208e6c304","message":"Merge remote-tracking branch 'origin/codex/design-scalable-autopilot-os-architecture'\n\n# Conflicts:\n#\te2e/agents/playwright-agent/index.ts\n#\te2e/agents/playwright-agent/inspectors/index.ts\n#\te2e/agents/playwright-agent/reporters/backend-reporter.ts\n#\te2e/package.json\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0152aae7b8ff9440c5f4e7aad113420208e6c304","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-03T09:41:05+08:00","added":[],"removed":[],"modified":[]},{"id":"e2587fae3d50e6ef7c30450199abd1bfc910a016","message":"test(finance): add finance mainline smoke and harden invoice detail formatting","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e2587fae3d50e6ef7c30450199abd1bfc910a016","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T13:47:05+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":["frontend/src/views/invoices/Detail.vue"]},{"id":"803578ebec2d6f4c0d00335c1f5c61067112d923","message":"feat(e2e): add playwright agent mvp skeleton","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/803578ebec2d6f4c0d00335c1f5c61067112d923","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-19T19:55:36+08:00","added":["e2e/agents/playwright-agent/README.md","e2e/agents/playwright-agent/__tests__/playwright-agent.unit.test.ts","e2e/agents/playwright-agent/artifacts/artifact-writer.ts","e2e/agents/playwright-agent/auth/auth-provider.ts","e2e/agents/playwright-agent/auth/storage-state-auth.ts","e2e/agents/playwright-agent/constants/diagnosis.ts","e2e/agents/playwright-agent/constants/status.ts","e2e/agents/playwright-agent/constants/timeouts.ts","e2e/agents/playwright-agent/core/action-runner.ts","e2e/agents/playwright-agent/core/browser-manager.ts","e2e/agents/playwright-agent/core/execution-engine.ts","e2e/agents/playwright-agent/core/retry-engine.ts","e2e/agents/playwright-agent/core/session-factory.ts","e2e/agents/playwright-agent/index.ts","e2e/agents/playwright-agent/inspectors/base-inspector.ts","e2e/agents/playwright-agent/inspectors/booking-inspector.ts","e2e/agents/playwright-agent/inspectors/dashboard-inspector.ts","e2e/agents/playwright-agent/inspectors/index.ts","e2e/agents/playwright-agent/inspectors/payment-inspector.ts","e2e/agents/playwright-agent/observers/console-observer.ts","e2e/agents/playwright-agent/observers/network-observer.ts","e2e/agents/playwright-agent/observers/page-probe.ts","e2e/agents/playwright-agent/reporters/backend-reporter.ts","e2e/agents/playwright-agent/reporters/json-reporter.ts","e2e/agents/playwright-agent/resolvers/selector-resolver.ts","e2e/agents/playwright-agent/types/diagnosis.ts","e2e/agents/playwright-agent/types/execution-plan.ts","e2e/agents/playwright-agent/types/execution-result.ts","e2e/agents/playwright-agent/types/execution-step.ts","e2e/agents/playwright-agent/types/inspector.ts","e2e/agents/playwright-agent/types/runtime.ts"],"removed":[],"modified":["e2e/package.json"]}],"total_commits":0,"head_commit":{"id":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","message":"Merge remote-tracking branch 'origin/codex/finance-smoke-sync-20260331'\n\n# Conflicts:\n#\tfrontend/src/views/invoices/Detail.vue\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-03T09:41:29+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":[]},"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":5204515,"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-03T09:40: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":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"}}...
|
push
|
2
|
68
|
1775183622
|
1775184730
|
0
|
1775180541
|
1775186341
|
group: test-pipeline-${{ github.ref }}
cancel-in-p group: test-pipeline-${{ github.ref }}
cancel-in-progress: "true"
...
|
test-pipeline-refs/heads/main
|
1
|
Edit
Delete
|
|
10823
|
Prepare v1.0.0 release
|
6
|
5
|
deploy.yml
|
10747
|
5
|
0
|
refs/tags/v1.0.0
|
bd59e5501292cb061719f669c7a7b7afd4f1a0b7
|
0
|
0
|
0
|
push
|
{"ref":"refs/tags/v1.0.0","bef {"ref":"refs/tags/v1.0.0","before":"0000000000000000000000000000000000000000","after":"e1e571dea3e53faf951b331ac647da4b96e0d01b","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/0000000000000000000000000000000000000000...e1e571dea3e53faf951b331ac647da4b96e0d01b","commits":[],"total_commits":0,"head_commit":{"id":"bd59e5501292cb061719f669c7a7b7afd4f1a0b7","message":"Prepare v1.0.0 release\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/bd59e5501292cb061719f669c7a7b7afd4f1a0b7","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-19T17:33:01+08:00","added":["CHANGELOG.md"],"removed":[],"modified":[]},"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":5204580,"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-03T09:42:23+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"}}...
|
push
|
2
|
22
|
1775184783
|
1775185807
|
0
|
1775181685
|
1775186344
|
group: deploy-${{ github.ref }}
cancel-in-progress group: deploy-${{ github.ref }}
cancel-in-progress: "false"
...
|
deploy-refs/tags/v1.0.0
|
0
|
Edit
Delete
|
|
10824
|
Release(v1.0.0-RC1): 巨嗨全域智库 1.0.0 封版交付
|
6
|
5
|
deploy.yml
|
10748
|
5
|
0
|
refs/tags/v1.0.0-RC1
|
84c900df1e544e4eb7070be9278918676c4aec69
|
0
|
0
|
0
|
push
|
{"ref":"refs/tags/v1.0.0-RC1"," {"ref":"refs/tags/v1.0.0-RC1","before":"0000000000000000000000000000000000000000","after":"7f6c4805d0719ce236bfd86ac50cc40cc6f5e5c5","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/0000000000000000000000000000000000000000...7f6c4805d0719ce236bfd86ac50cc40cc6f5e5c5","commits":[],"total_commits":0,"head_commit":{"id":"84c900df1e544e4eb7070be9278918676c4aec69","message":"Release(v1.0.0-RC1): 巨嗨全域智库 1.0.0 封版交付\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/84c900df1e544e4eb7070be9278918676c4aec69","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-04T17:53:20+08:00","added":["docs/RELEASE_NOTE_v1.0.0.md"],"removed":[],"modified":[]},"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":5204580,"language":"HTML","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-03T09:42:23+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"}}...
|
push
|
2
|
22
|
1775185809
|
1775185982
|
0
|
1775181686
|
1775186346
|
group: deploy-${{ github.ref }}
cancel-in-progress group: deploy-${{ github.ref }}
cancel-in-progress: "false"
...
|
deploy-refs/tags/v1.0.0-RC1
|
0
|
Edit
Delete
|
|
13575
|
feat: 更新项目配置和脚本
|
6
|
5
|
ci.yml
|
13498
|
5
|
0
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"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":5204609,"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-03T10:01:27+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"}}...
|
push
|
2
|
12
|
1776001252
|
1776001294
|
0
|
1776001251
|
1776007228
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
13576
|
feat: 更新项目配置和脚本
|
6
|
5
|
e2e-tests.yml
|
13499
|
5
|
0
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"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":5204609,"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-03T10:01:27+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"}}...
|
push
|
2
|
20
|
1776001294
|
1776007179
|
0
|
1776001251
|
1776007270
|
|
|
0
|
Edit
Delete
|
|
13577
|
feat: 更新项目配置和脚本
|
6
|
5
|
test-pipeline.yml
|
13500
|
5
|
0
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"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":5204609,"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-03T10:01:27+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"}}...
|
push
|
2
|
68
|
1776007180
|
1776007225
|
0
|
1776001252
|
1776007337
|
group: test-pipeline-${{ github.ref }}
cancel-in-p group: test-pipeline-${{ github.ref }}
cancel-in-progress: "true"
...
|
test-pipeline-refs/heads/main
|
1
|
Edit
Delete
|
|
13615
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
ci.yml
|
13538
|
5
|
0
|
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"}}...
|
push
|
2
|
12
|
1776011087
|
1776011123
|
0
|
1776011085
|
1776011734
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
13616
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
e2e-tests.yml
|
13539
|
5
|
0
|
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"}}...
|
push
|
2
|
20
|
1776011124
|
1776011670
|
0
|
1776011086
|
1776011800
|
|
|
0
|
Edit
Delete
|
|
13617
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
test-pipeline.yml
|
13540
|
5
|
0
|
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"}}...
|
push
|
2
|
68
|
1776011671
|
1776011732
|
0
|
1776011086
|
1776011896
|
group: test-pipeline-${{ github.ref }}
cancel-in-p group: test-pipeline-${{ github.ref }}
cancel-in-progress: "true"
...
|
test-pipeline-refs/heads/main
|
1
|
Edit
Delete
|
|
13812
|
feat: 同步最新代码更改,包括后端API、前端组件、测试和报告更新
|
6
|
5
|
ci.yml
|
13734
|
5
|
0
|
refs/heads/main
|
d2c68b13960de626f7a8d496bf1977d263eb7931
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"98cc8da660b8d4dba9887432490471d976c03f5f","after":"d2c68b13960de626f7a8d496bf1977d263eb7931","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/98cc8da660b8d4dba9887432490471d976c03f5f...d2c68b13960de626f7a8d496bf1977d263eb7931","commits":[{"id":"d2c68b13960de626f7a8d496bf1977d263eb7931","message":"feat: 同步最新代码更改,包括后端API、前端组件、测试和报告更新\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d2c68b13960de626f7a8d496bf1977d263eb7931","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T15:39:52+08:00","added":["backend/prisma/migrations/20260413_add_journey_orchestration_and_store_configs/migration.sql","backend/src/modules/journey-orchestration/journey-orchestration.contract.routes.ts","backend/src/modules/process/process.controller.ts","backend/src/modules/process/process.types.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/treasury/treasury-crud.service.ts","e2e/test-results/form-interactions-core-bus-0f529-d-to-Cash-F03-商机表单---编辑回填验证-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-0f529-d-to-Cash-F03-商机表单---编辑回填验证-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-184fa--to-Cash-F01-客户表单---创建成功全流程-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-184fa--to-Cash-F01-客户表单---创建成功全流程-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-4c4ce--to-Cash-F07-客户表单---手机号重复检测-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-4c4ce--to-Cash-F07-客户表单---手机号重复检测-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-64a51-to-Cash-F05-合同表单---复杂字段联动验证-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-64a51-to-Cash-F05-合同表单---复杂字段联动验证-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-80c59-d-to-Cash-F08-报价表单---实时计算验证-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-80c59-d-to-Cash-F08-报价表单---实时计算验证-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-90544-d-to-Cash-F02-线索表单---验证错误提示-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-90544-d-to-Cash-F02-线索表单---验证错误提示-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-a51f4-d-to-Cash-F04-报价表单---草稿自动恢复-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-a51f4-d-to-Cash-F04-报价表单---草稿自动恢复-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-cf0d9--to-Cash-F06-订单表单---动态明细行验证-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-cf0d9--to-Cash-F06-订单表单---动态明细行验证-chromium/test-failed-1.png","e2e/tests/form-interactions/hr-forms.spec.ts","e2e/tests/form-interactions/large-data-performance.spec.ts","e2e/tests/form-interactions/service-center-forms.spec.ts","e2e/tests/form-interactions/supply-chain-forms.spec.ts","frontend/src/views/cpq/components/PoliciesTab.vue","frontend/src/views/marketing-calendar/components/CalendarAgendaView.vue","frontend/src/views/marketing-calendar/components/CalendarMonthView.vue","frontend/src/views/marketing-calendar/components/CalendarWeekView.vue","frontend/src/views/marketing-calendar/components/EventDetailDrawer.vue","frontend/src/views/marketing-calendar/components/EventFormDialog.vue","frontend/src/views/marketing-calendar/composables/useMarketingCalendar.ts","frontend/src/views/marketing-north-star/components/NorthStarAlerts.vue","frontend/src/views/marketing-north-star/components/NorthStarDashboard.vue","frontend/src/views/marketing-north-star/components/NorthStarMetricForm.vue","frontend/src/views/settings/components/integration/IntegrationAdPlatformsPanel.vue","frontend/src/views/settings/components/integration/IntegrationAiConfig.vue","frontend/src/views/settings/components/integration/IntegrationDingtalkConfig.vue","frontend/src/views/settings/components/integration/IntegrationEmailConfig.vue","frontend/src/views/settings/components/integration/IntegrationFeishuConfig.vue","frontend/src/views/settings/components/integration/IntegrationGroupbuyPanel.vue","frontend/src/views/settings/components/integration/IntegrationSmsConfig.vue","frontend/src/views/settings/components/integration/IntegrationWebhookConfig.vue","frontend/src/views/settings/components/integration/IntegrationWechatPublicConfig.vue","frontend/src/views/settings/components/integration/IntegrationWechatWorkConfig.vue","scripts/migrate-to-uselistpage.ts"],"removed":["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"],"modified":[".github/workflows/e2e-tests.yml","backend/.env.test","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/src/modules/ad-placement/placement.contract.routes.ts","backend/src/modules/ad-placement/placement.controller.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/channels/channel.contract.routes.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.routes.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.contract.routes.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/expense/expense.routes.ts","backend/src/modules/faults/fault.contract.routes.ts","backend/src/modules/faults/fault.service.ts","backend/src/modules/geo-keywords/geo-keyword.contract.routes.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.routes.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.contract.routes.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.routes.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.routes.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.contract.routes.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.controller.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.routes.ts","backend/src/modules/marketing-matrix/matrix.contract.routes.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/process/process.routes.ts","backend/src/modules/process/process.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.controller.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue.contract.routes.ts","backend/src/modules/revenue/revenue.controller.ts","backend/src/modules/revenue/revenue.routes.ts","backend/src/modules/search/search.controller.ts","backend/src/modules/search/search.routes.ts","backend/src/modules/search/search.schema.ts","backend/src/modules/search/search.service.ts","backend/src/modules/social-analytics/social-analytics.service.ts","backend/src/modules/stores/store.contract.routes.ts","backend/src/modules/stores/store.controller.ts","backend/src/modules/stores/store.routes.ts","backend/src/modules/stores/store.schema.ts","backend/src/modules/treasury/treasury.contract.routes.ts","backend/src/modules/treasury/treasury.controller.ts","backend/src/modules/treasury/treasury.routes.ts","e2e/.auth/admin.json","e2e/helpers/form-test-helpers.ts","e2e/package.json","e2e/test-results/.last-run.json","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/api/modules/im-channels.ts","frontend/src/composables/useDashboardRealtime.ts","frontend/src/views/ad-accounts/Index.vue","frontend/src/views/ad-audiences/Index.vue","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-campaigns/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ad-reports/Index.vue","frontend/src/views/alliance-analytics/Index.vue","frontend/src/views/alliance-merchants/Index.vue","frontend/src/views/alliance-products/Index.vue","frontend/src/views/alliance-promotions/Index.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/alliance-settlements/Index.vue","frontend/src/views/ap-ledger/Index.vue","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/bom/Index.vue","frontend/src/views/campaign-drafts/Index.vue","frontend/src/views/campaign-use-case-templates/Index.vue","frontend/src/views/channel-integrations/Index.vue","frontend/src/views/cohort-analysis/Index.vue","frontend/src/views/community-activities/Index.vue","frontend/src/views/community-analytics/Index.vue","frontend/src/views/community-groups/Index.vue","frontend/src/views/community-levels/Index.vue","frontend/src/views/community-members/Index.vue","frontend/src/views/community-messages/Index.vue","frontend/src/views/community-points/Index.vue","frontend/src/views/consumer-behavior-analytics/Index.vue","frontend/src/views/content-categories/Index.vue","frontend/src/views/content-copyright/Index.vue","frontend/src/views/content-creation/Index.vue","frontend/src/views/content-distribution/Index.vue","frontend/src/views/content-library/Index.vue","frontend/src/views/content-review/Index.vue","frontend/src/views/content-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/cpq/Index.vue","frontend/src/views/cpq/composables/useCpqCommon.ts","frontend/src/views/crm-activities/Index.vue","frontend/src/views/cross-domain-funnel/Index.vue","frontend/src/views/customer-health/Index.vue","frontend/src/views/customer-journey/Index.vue","frontend/src/views/customer-ltv/Index.vue","frontend/src/views/customer-marketing/Index.vue","frontend/src/views/customer-segmentation/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/devices/Index.vue","frontend/src/views/dimension-transform/Index.vue","frontend/src/views/email-marketing/Index.vue","frontend/src/views/email-templates/Index.vue","frontend/src/views/event-logs/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/finance-os/ai/AutoCreditAdjustment.vue","frontend/src/views/finance-os/ai/CashForecastModel.vue","frontend/src/views/finance-os/ai/DefaultProbabilityModel.vue","frontend/src/views/finance-os/ai/ROIEvaluation.vue","frontend/src/views/geo-fences/Index.vue","frontend/src/views/geo-keywords/Detail.vue","frontend/src/views/geo-keywords/Index.vue","frontend/src/views/groupbuy-analytics/Index.vue","frontend/src/views/groupbuy-campaigns/Index.vue","frontend/src/views/groupbuy-orders/Index.vue","frontend/src/views/groupbuy-participants/Detail.vue","frontend/src/views/groupbuy-participants/Form.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/groupbuy-products/Index.vue","frontend/src/views/groupbuy-settlements/Index.vue","frontend/src/views/im-channels/Index.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/journey-orchestration/Index.vue","frontend/src/views/knowledge-candidates/Index.vue","frontend/src/views/knowledge-capture/Index.vue","frontend/src/views/knowledge-feedback/Index.vue","frontend/src/views/landing-pages/Index.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-pool/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-analytics/Index.vue","frontend/src/views/livestream-interactions/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/local-events/Index.vue","frontend/src/views/local-promotion/Index.vue","frontend/src/views/location-assessments/Index.vue","frontend/src/views/marketing-automation/Index.vue","frontend/src/views/marketing-calendar/Index.vue","frontend/src/views/marketing-content/Index.vue","frontend/src/views/marketing-effectiveness/Index.vue","frontend/src/views/marketing-forms/Index.vue","frontend/src/views/marketing-matrix/Index.vue","frontend/src/views/marketing-north-star/Index.vue","frontend/src/views/marketing-tools/Index.vue","frontend/src/views/member-levels/Index.vue","frontend/src/views/member-points/Index.vue","frontend/src/views/members/Index.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/predictive-analytics/Index.vue","frontend/src/views/product-categories/Index.vue","frontend/src/views/projects/Index.vue","frontend/src/views/purchase-orders/Index.vue","frontend/src/views/realtime-trigger/Index.vue","frontend/src/views/redemptions/Index.vue","frontend/src/views/rfm-analysis/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/satisfaction/Index.vue","frontend/src/views/settings/IntegrationServices.vue","frontend/src/views/social-accounts/Index.vue","frontend/src/views/social-auto-replies/Index.vue","frontend/src/views/social-competitors/Index.vue","frontend/src/views/social-followers/Index.vue","frontend/src/views/social-hot-topics/Index.vue","frontend/src/views/social-interactions/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/spare-parts/Index.vue","frontend/src/views/store-inventory/Index.vue","frontend/src/views/store-settlements/Index.vue","frontend/src/views/store-staff/Index.vue","frontend/src/views/stores/Index.vue","frontend/src/views/supplier-center/Index.vue","frontend/src/views/supplier-payments/Index.vue","frontend/src/views/system-events/Index.vue","frontend/src/views/ticket-workflows/Index.vue","frontend/src/views/users/Index.vue","frontend/src/views/video-calls/Index.vue","frontend/src/views/video-content/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/outbox-atomicity-audit.latest.json"]}],"total_commits":0,"head_commit":{"id":"d2c68b13960de626f7a8d496bf1977d263eb7931","message":"feat: 同步最新代码更改,包括后端API、前端组件、测试和报告更新\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d2c68b13960de626f7a8d496bf1977d263eb7931","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T15:39:52+08:00","added":["backend/prisma/migrations/20260413_add_journey_orchestration_and_store_configs/migration.sql","backend/src/modules/journey-orchestration/journey-orchestration.contract.routes.ts","backend/src/modules/process/process.controller.ts","backend/src/modules/process/process.types.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/treasury/treasury-crud.service.ts","e2e/test-results/form-interactions-core-bus-0f529-d-to-Cash-F03-商机表单---编辑回填验证-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-0f529-d-to-Cash-F03-商机表单---编辑回填验证-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-184fa--to-Cash-F01-客户表单---创建成功全流程-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-184fa--to-Cash-F01-客户表单---创建成功全流程-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-4c4ce--to-Cash-F07-客户表单---手机号重复检测-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-4c4ce--to-Cash-F07-客户表单---手机号重复检测-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-64a51-to-Cash-F05-合同表单---复杂字段联动验证-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-64a51-to-Cash-F05-合同表单---复杂字段联动验证-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-80c59-d-to-Cash-F08-报价表单---实时计算验证-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-80c59-d-to-Cash-F08-报价表单---实时计算验证-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-90544-d-to-Cash-F02-线索表单---验证错误提示-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-90544-d-to-Cash-F02-线索表单---验证错误提示-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-a51f4-d-to-Cash-F04-报价表单---草稿自动恢复-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-a51f4-d-to-Cash-F04-报价表单---草稿自动恢复-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-cf0d9--to-Cash-F06-订单表单---动态明细行验证-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-cf0d9--to-Cash-F06-订单表单---动态明细行验证-chromium/test-failed-1.png","e2e/tests/form-interactions/hr-forms.spec.ts","e2e/tests/form-interactions/large-data-performance.spec.ts","e2e/tests/form-interactions/service-center-forms.spec.ts","e2e/tests/form-interactions/supply-chain-forms.spec.ts","frontend/src/views/cpq/components/PoliciesTab.vue","frontend/src/views/marketing-calendar/components/CalendarAgendaView.vue","frontend/src/views/marketing-calendar/components/CalendarMonthView.vue","frontend/src/views/marketing-calendar/components/CalendarWeekView.vue","frontend/src/views/marketing-calendar/components/EventDetailDrawer.vue","frontend/src/views/marketing-calendar/components/EventFormDialog.vue","frontend/src/views/marketing-calendar/composables/useMarketingCalendar.ts","frontend/src/views/marketing-north-star/components/NorthStarAlerts.vue","frontend/src/views/marketing-north-star/components/NorthStarDashboard.vue","frontend/src/views/marketing-north-star/components/NorthStarMetricForm.vue","frontend/src/views/settings/components/integration/IntegrationAdPlatformsPanel.vue","frontend/src/views/settings/components/integration/IntegrationAiConfig.vue","frontend/src/views/settings/components/integration/IntegrationDingtalkConfig.vue","frontend/src/views/settings/components/integration/IntegrationEmailConfig.vue","frontend/src/views/settings/components/integration/IntegrationFeishuConfig.vue","frontend/src/views/settings/components/integration/IntegrationGroupbuyPanel.vue","frontend/src/views/settings/components/integration/IntegrationSmsConfig.vue","frontend/src/views/settings/components/integration/IntegrationWebhookConfig.vue","frontend/src/views/settings/components/integration/IntegrationWechatPublicConfig.vue","frontend/src/views/settings/components/integration/IntegrationWechatWorkConfig.vue","scripts/migrate-to-uselistpage.ts"],"removed":["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"],"modified":[".github/workflows/e2e-tests.yml","backend/.env.test","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/src/modules/ad-placement/placement.contract.routes.ts","backend/src/modules/ad-placement/placement.controller.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/channels/channel.contract.routes.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.routes.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.contract.routes.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/expense/expense.routes.ts","backend/src/modules/faults/fault.contract.routes.ts","backend/src/modules/faults/fault.service.ts","backend/src/modules/geo-keywords/geo-keyword.contract.routes.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.routes.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.contract.routes.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.routes.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.routes.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.contract.routes.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.controller.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.routes.ts","backend/src/modules/marketing-matrix/matrix.contract.routes.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/process/process.routes.ts","backend/src/modules/process/process.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.controller.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue.contract.routes.ts","backend/src/modules/revenue/revenue.controller.ts","backend/src/modules/revenue/revenue.routes.ts","backend/src/modules/search/search.controller.ts","backend/src/modules/search/search.routes.ts","backend/src/modules/search/search.schema.ts","backend/src/modules/search/search.service.ts","backend/src/modules/social-analytics/social-analytics.service.ts","backend/src/modules/stores/store.contract.routes.ts","backend/src/modules/stores/store.controller.ts","backend/src/modules/stores/store.routes.ts","backend/src/modules/stores/store.schema.ts","backend/src/modules/treasury/treasury.contract.routes.ts","backend/src/modules/treasury/treasury.controller.ts","backend/src/modules/treasury/treasury.routes.ts","e2e/.auth/admin.json","e2e/helpers/form-test-helpers.ts","e2e/package.json","e2e/test-results/.last-run.json","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/api/modules/im-channels.ts","frontend/src/composables/useDashboardRealtime.ts","frontend/src/views/ad-accounts/Index.vue","frontend/src/views/ad-audiences/Index.vue","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-campaigns/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ad-reports/Index.vue","frontend/src/views/alliance-analytics/Index.vue","frontend/src/views/alliance-merchants/Index.vue","frontend/src/views/alliance-products/Index.vue","frontend/src/views/alliance-promotions/Index.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/alliance-settlements/Index.vue","frontend/src/views/ap-ledger/Index.vue","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/bom/Index.vue","frontend/src/views/campaign-drafts/Index.vue","frontend/src/views/campaign-use-case-templates/Index.vue","frontend/src/views/channel-integrations/Index.vue","frontend/src/views/cohort-analysis/Index.vue","frontend/src/views/community-activities/Index.vue","frontend/src/views/community-analytics/Index.vue","frontend/src/views/community-groups/Index.vue","frontend/src/views/community-levels/Index.vue","frontend/src/views/community-members/Index.vue","frontend/src/views/community-messages/Index.vue","frontend/src/views/community-points/Index.vue","frontend/src/views/consumer-behavior-analytics/Index.vue","frontend/src/views/content-categories/Index.vue","frontend/src/views/content-copyright/Index.vue","frontend/src/views/content-creation/Index.vue","frontend/src/views/content-distribution/Index.vue","frontend/src/views/content-library/Index.vue","frontend/src/views/content-review/Index.vue","frontend/src/views/content-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/cpq/Index.vue","frontend/src/views/cpq/composables/useCpqCommon.ts","frontend/src/views/crm-activities/Index.vue","frontend/src/views/cross-domain-funnel/Index.vue","frontend/src/views/customer-health/Index.vue","frontend/src/views/customer-journey/Index.vue","frontend/src/views/customer-ltv/Index.vue","frontend/src/views/customer-marketing/Index.vue","frontend/src/views/customer-segmentation/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/devices/Index.vue","frontend/src/views/dimension-transform/Index.vue","frontend/src/views/email-marketing/Index.vue","frontend/src/views/email-templates/Index.vue","frontend/src/views/event-logs/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/finance-os/ai/AutoCreditAdjustment.vue","frontend/src/views/finance-os/ai/CashForecastModel.vue","frontend/src/views/finance-os/ai/DefaultProbabilityModel.vue","frontend/src/views/finance-os/ai/ROIEvaluation.vue","frontend/src/views/geo-fences/Index.vue","frontend/src/views/geo-keywords/Detail.vue","frontend/src/views/geo-keywords/Index.vue","frontend/src/views/groupbuy-analytics/Index.vue","frontend/src/views/groupbuy-campaigns/Index.vue","frontend/src/views/groupbuy-orders/Index.vue","frontend/src/views/groupbuy-participants/Detail.vue","frontend/src/views/groupbuy-participants/Form.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/groupbuy-products/Index.vue","frontend/src/views/groupbuy-settlements/Index.vue","frontend/src/views/im-channels/Index.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/journey-orchestration/Index.vue","frontend/src/views/knowledge-candidates/Index.vue","frontend/src/views/knowledge-capture/Index.vue","frontend/src/views/knowledge-feedback/Index.vue","frontend/src/views/landing-pages/Index.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-pool/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-analytics/Index.vue","frontend/src/views/livestream-interactions/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/local-events/Index.vue","frontend/src/views/local-promotion/Index.vue","frontend/src/views/location-assessments/Index.vue","frontend/src/views/marketing-automation/Index.vue","frontend/src/views/marketing-calendar/Index.vue","frontend/src/views/marketing-content/Index.vue","frontend/src/views/marketing-effectiveness/Index.vue","frontend/src/views/marketing-forms/Index.vue","frontend/src/views/marketing-matrix/Index.vue","frontend/src/views/marketing-north-star/Index.vue","frontend/src/views/marketing-tools/Index.vue","frontend/src/views/member-levels/Index.vue","frontend/src/views/member-points/Index.vue","frontend/src/views/members/Index.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/predictive-analytics/Index.vue","frontend/src/views/product-categories/Index.vue","frontend/src/views/projects/Index.vue","frontend/src/views/purchase-orders/Index.vue","frontend/src/views/realtime-trigger/Index.vue","frontend/src/views/redemptions/Index.vue","frontend/src/views/rfm-analysis/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/satisfaction/Index.vue","frontend/src/views/settings/IntegrationServices.vue","frontend/src/views/social-accounts/Index.vue","frontend/src/views/social-auto-replies/Index.vue","frontend/src/views/social-competitors/Index.vue","frontend/src/views/social-followers/Index.vue","frontend/src/views/social-hot-topics/Index.vue","frontend/src/views/social-interactions/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/spare-parts/Index.vue","frontend/src/views/store-inventory/Index.vue","frontend/src/views/store-settlements/Index.vue","frontend/src/views/store-staff/Index.vue","frontend/src/views/stores/Index.vue","frontend/src/views/supplier-center/Index.vue","frontend/src/views/supplier-payments/Index.vue","frontend/src/views/system-events/Index.vue","frontend/src/views/ticket-workflows/Index.vue","frontend/src/views/users/Index.vue","frontend/src/views/video-calls/Index.vue","frontend/src/views/video-content/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/outbox-atomicity-audit.latest.json"]},"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":5212729,"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-13T00:24:48+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"}}...
|
push
|
2
|
12
|
1776066084
|
1776066121
|
0
|
1776066083
|
1776066559
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
13813
|
feat: 同步最新代码更改,包括后端API、前端组件、测试和报告更新
|
6
|
5
|
e2e-tests.yml
|
13735
|
5
|
0
|
refs/heads/main
|
d2c68b13960de626f7a8d496bf1977d263eb7931
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"98cc8da660b8d4dba9887432490471d976c03f5f","after":"d2c68b13960de626f7a8d496bf1977d263eb7931","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/98cc8da660b8d4dba9887432490471d976c03f5f...d2c68b13960de626f7a8d496bf1977d263eb7931","commits":[{"id":"d2c68b13960de626f7a8d496bf1977d263eb7931","message":"feat: 同步最新代码更改,包括后端API、前端组件、测试和报告更新\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d2c68b13960de626f7a8d496bf1977d263eb7931","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T15:39:52+08:00","added":["backend/prisma/migrations/20260413_add_journey_orchestration_and_store_configs/migration.sql","backend/src/modules/journey-orchestration/journey-orchestration.contract.routes.ts","backend/src/modules/process/process.controller.ts","backend/src/modules/process/process.types.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/treasury/treasury-crud.service.ts","e2e/test-results/form-interactions-core-bus-0f529-d-to-Cash-F03-商机表单---编辑回填验证-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-0f529-d-to-Cash-F03-商机表单---编辑回填验证-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-184fa--to-Cash-F01-客户表单---创建成功全流程-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-184fa--to-Cash-F01-客户表单---创建成功全流程-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-4c4ce--to-Cash-F07-客户表单---手机号重复检测-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-4c4ce--to-Cash-F07-客户表单---手机号重复检测-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-64a51-to-Cash-F05-合同表单---复杂字段联动验证-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-64a51-to-Cash-F05-合同表单---复杂字段联动验证-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-80c59-d-to-Cash-F08-报价表单---实时计算验证-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-80c59-d-to-Cash-F08-报价表单---实时计算验证-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-90544-d-to-Cash-F02-线索表单---验证错误提示-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-90544-d-to-Cash-F02-线索表单---验证错误提示-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-a51f4-d-to-Cash-F04-报价表单---草稿自动恢复-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-a51f4-d-to-Cash-F04-报价表单---草稿自动恢复-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-cf0d9--to-Cash-F06-订单表单---动态明细行验证-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-cf0d9--to-Cash-F06-订单表单---动态明细行验证-chromium/test-failed-1.png","e2e/tests/form-interactions/hr-forms.spec.ts","e2e/tests/form-interactions/large-data-performance.spec.ts","e2e/tests/form-interactions/service-center-forms.spec.ts","e2e/tests/form-interactions/supply-chain-forms.spec.ts","frontend/src/views/cpq/components/PoliciesTab.vue","frontend/src/views/marketing-calendar/components/CalendarAgendaView.vue","frontend/src/views/marketing-calendar/components/CalendarMonthView.vue","frontend/src/views/marketing-calendar/components/CalendarWeekView.vue","frontend/src/views/marketing-calendar/components/EventDetailDrawer.vue","frontend/src/views/marketing-calendar/components/EventFormDialog.vue","frontend/src/views/marketing-calendar/composables/useMarketingCalendar.ts","frontend/src/views/marketing-north-star/components/NorthStarAlerts.vue","frontend/src/views/marketing-north-star/components/NorthStarDashboard.vue","frontend/src/views/marketing-north-star/components/NorthStarMetricForm.vue","frontend/src/views/settings/components/integration/IntegrationAdPlatformsPanel.vue","frontend/src/views/settings/components/integration/IntegrationAiConfig.vue","frontend/src/views/settings/components/integration/IntegrationDingtalkConfig.vue","frontend/src/views/settings/components/integration/IntegrationEmailConfig.vue","frontend/src/views/settings/components/integration/IntegrationFeishuConfig.vue","frontend/src/views/settings/components/integration/IntegrationGroupbuyPanel.vue","frontend/src/views/settings/components/integration/IntegrationSmsConfig.vue","frontend/src/views/settings/components/integration/IntegrationWebhookConfig.vue","frontend/src/views/settings/components/integration/IntegrationWechatPublicConfig.vue","frontend/src/views/settings/components/integration/IntegrationWechatWorkConfig.vue","scripts/migrate-to-uselistpage.ts"],"removed":["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"],"modified":[".github/workflows/e2e-tests.yml","backend/.env.test","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/src/modules/ad-placement/placement.contract.routes.ts","backend/src/modules/ad-placement/placement.controller.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/channels/channel.contract.routes.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.routes.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.contract.routes.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/expense/expense.routes.ts","backend/src/modules/faults/fault.contract.routes.ts","backend/src/modules/faults/fault.service.ts","backend/src/modules/geo-keywords/geo-keyword.contract.routes.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.routes.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.contract.routes.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.routes.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.routes.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.contract.routes.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.controller.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.routes.ts","backend/src/modules/marketing-matrix/matrix.contract.routes.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/process/process.routes.ts","backend/src/modules/process/process.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.controller.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue.contract.routes.ts","backend/src/modules/revenue/revenue.controller.ts","backend/src/modules/revenue/revenue.routes.ts","backend/src/modules/search/search.controller.ts","backend/src/modules/search/search.routes.ts","backend/src/modules/search/search.schema.ts","backend/src/modules/search/search.service.ts","backend/src/modules/social-analytics/social-analytics.service.ts","backend/src/modules/stores/store.contract.routes.ts","backend/src/modules/stores/store.controller.ts","backend/src/modules/stores/store.routes.ts","backend/src/modules/stores/store.schema.ts","backend/src/modules/treasury/treasury.contract.routes.ts","backend/src/modules/treasury/treasury.controller.ts","backend/src/modules/treasury/treasury.routes.ts","e2e/.auth/admin.json","e2e/helpers/form-test-helpers.ts","e2e/package.json","e2e/test-results/.last-run.json","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/api/modules/im-channels.ts","frontend/src/composables/useDashboardRealtime.ts","frontend/src/views/ad-accounts/Index.vue","frontend/src/views/ad-audiences/Index.vue","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-campaigns/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ad-reports/Index.vue","frontend/src/views/alliance-analytics/Index.vue","frontend/src/views/alliance-merchants/Index.vue","frontend/src/views/alliance-products/Index.vue","frontend/src/views/alliance-promotions/Index.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/alliance-settlements/Index.vue","frontend/src/views/ap-ledger/Index.vue","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/bom/Index.vue","frontend/src/views/campaign-drafts/Index.vue","frontend/src/views/campaign-use-case-templates/Index.vue","frontend/src/views/channel-integrations/Index.vue","frontend/src/views/cohort-analysis/Index.vue","frontend/src/views/community-activities/Index.vue","frontend/src/views/community-analytics/Index.vue","frontend/src/views/community-groups/Index.vue","frontend/src/views/community-levels/Index.vue","frontend/src/views/community-members/Index.vue","frontend/src/views/community-messages/Index.vue","frontend/src/views/community-points/Index.vue","frontend/src/views/consumer-behavior-analytics/Index.vue","frontend/src/views/content-categories/Index.vue","frontend/src/views/content-copyright/Index.vue","frontend/src/views/content-creation/Index.vue","frontend/src/views/content-distribution/Index.vue","frontend/src/views/content-library/Index.vue","frontend/src/views/content-review/Index.vue","frontend/src/views/content-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/cpq/Index.vue","frontend/src/views/cpq/composables/useCpqCommon.ts","frontend/src/views/crm-activities/Index.vue","frontend/src/views/cross-domain-funnel/Index.vue","frontend/src/views/customer-health/Index.vue","frontend/src/views/customer-journey/Index.vue","frontend/src/views/customer-ltv/Index.vue","frontend/src/views/customer-marketing/Index.vue","frontend/src/views/customer-segmentation/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/devices/Index.vue","frontend/src/views/dimension-transform/Index.vue","frontend/src/views/email-marketing/Index.vue","frontend/src/views/email-templates/Index.vue","frontend/src/views/event-logs/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/finance-os/ai/AutoCreditAdjustment.vue","frontend/src/views/finance-os/ai/CashForecastModel.vue","frontend/src/views/finance-os/ai/DefaultProbabilityModel.vue","frontend/src/views/finance-os/ai/ROIEvaluation.vue","frontend/src/views/geo-fences/Index.vue","frontend/src/views/geo-keywords/Detail.vue","frontend/src/views/geo-keywords/Index.vue","frontend/src/views/groupbuy-analytics/Index.vue","frontend/src/views/groupbuy-campaigns/Index.vue","frontend/src/views/groupbuy-orders/Index.vue","frontend/src/views/groupbuy-participants/Detail.vue","frontend/src/views/groupbuy-participants/Form.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/groupbuy-products/Index.vue","frontend/src/views/groupbuy-settlements/Index.vue","frontend/src/views/im-channels/Index.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/journey-orchestration/Index.vue","frontend/src/views/knowledge-candidates/Index.vue","frontend/src/views/knowledge-capture/Index.vue","frontend/src/views/knowledge-feedback/Index.vue","frontend/src/views/landing-pages/Index.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-pool/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-analytics/Index.vue","frontend/src/views/livestream-interactions/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/local-events/Index.vue","frontend/src/views/local-promotion/Index.vue","frontend/src/views/location-assessments/Index.vue","frontend/src/views/marketing-automation/Index.vue","frontend/src/views/marketing-calendar/Index.vue","frontend/src/views/marketing-content/Index.vue","frontend/src/views/marketing-effectiveness/Index.vue","frontend/src/views/marketing-forms/Index.vue","frontend/src/views/marketing-matrix/Index.vue","frontend/src/views/marketing-north-star/Index.vue","frontend/src/views/marketing-tools/Index.vue","frontend/src/views/member-levels/Index.vue","frontend/src/views/member-points/Index.vue","frontend/src/views/members/Index.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/predictive-analytics/Index.vue","frontend/src/views/product-categories/Index.vue","frontend/src/views/projects/Index.vue","frontend/src/views/purchase-orders/Index.vue","frontend/src/views/realtime-trigger/Index.vue","frontend/src/views/redemptions/Index.vue","frontend/src/views/rfm-analysis/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/satisfaction/Index.vue","frontend/src/views/settings/IntegrationServices.vue","frontend/src/views/social-accounts/Index.vue","frontend/src/views/social-auto-replies/Index.vue","frontend/src/views/social-competitors/Index.vue","frontend/src/views/social-followers/Index.vue","frontend/src/views/social-hot-topics/Index.vue","frontend/src/views/social-interactions/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/spare-parts/Index.vue","frontend/src/views/store-inventory/Index.vue","frontend/src/views/store-settlements/Index.vue","frontend/src/views/store-staff/Index.vue","frontend/src/views/stores/Index.vue","frontend/src/views/supplier-center/Index.vue","frontend/src/views/supplier-payments/Index.vue","frontend/src/views/system-events/Index.vue","frontend/src/views/ticket-workflows/Index.vue","frontend/src/views/users/Index.vue","frontend/src/views/video-calls/Index.vue","frontend/src/views/video-content/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/outbox-atomicity-audit.latest.json"]}],"total_commits":0,"head_commit":{"id":"d2c68b13960de626f7a8d496bf1977d263eb7931","message":"feat: 同步最新代码更改,包括后端API、前端组件、测试和报告更新\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d2c68b13960de626f7a8d496bf1977d263eb7931","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T15:39:52+08:00","added":["backend/prisma/migrations/20260413_add_journey_orchestration_and_store_configs/migration.sql","backend/src/modules/journey-orchestration/journey-orchestration.contract.routes.ts","backend/src/modules/process/process.controller.ts","backend/src/modules/process/process.types.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/treasury/treasury-crud.service.ts","e2e/test-results/form-interactions-core-bus-0f529-d-to-Cash-F03-商机表单---编辑回填验证-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-0f529-d-to-Cash-F03-商机表单---编辑回填验证-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-184fa--to-Cash-F01-客户表单---创建成功全流程-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-184fa--to-Cash-F01-客户表单---创建成功全流程-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-4c4ce--to-Cash-F07-客户表单---手机号重复检测-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-4c4ce--to-Cash-F07-客户表单---手机号重复检测-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-64a51-to-Cash-F05-合同表单---复杂字段联动验证-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-64a51-to-Cash-F05-合同表单---复杂字段联动验证-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-80c59-d-to-Cash-F08-报价表单---实时计算验证-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-80c59-d-to-Cash-F08-报价表单---实时计算验证-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-90544-d-to-Cash-F02-线索表单---验证错误提示-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-90544-d-to-Cash-F02-线索表单---验证错误提示-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-a51f4-d-to-Cash-F04-报价表单---草稿自动恢复-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-a51f4-d-to-Cash-F04-报价表单---草稿自动恢复-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-cf0d9--to-Cash-F06-订单表单---动态明细行验证-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-cf0d9--to-Cash-F06-订单表单---动态明细行验证-chromium/test-failed-1.png","e2e/tests/form-interactions/hr-forms.spec.ts","e2e/tests/form-interactions/large-data-performance.spec.ts","e2e/tests/form-interactions/service-center-forms.spec.ts","e2e/tests/form-interactions/supply-chain-forms.spec.ts","frontend/src/views/cpq/components/PoliciesTab.vue","frontend/src/views/marketing-calendar/components/CalendarAgendaView.vue","frontend/src/views/marketing-calendar/components/CalendarMonthView.vue","frontend/src/views/marketing-calendar/components/CalendarWeekView.vue","frontend/src/views/marketing-calendar/components/EventDetailDrawer.vue","frontend/src/views/marketing-calendar/components/EventFormDialog.vue","frontend/src/views/marketing-calendar/composables/useMarketingCalendar.ts","frontend/src/views/marketing-north-star/components/NorthStarAlerts.vue","frontend/src/views/marketing-north-star/components/NorthStarDashboard.vue","frontend/src/views/marketing-north-star/components/NorthStarMetricForm.vue","frontend/src/views/settings/components/integration/IntegrationAdPlatformsPanel.vue","frontend/src/views/settings/components/integration/IntegrationAiConfig.vue","frontend/src/views/settings/components/integration/IntegrationDingtalkConfig.vue","frontend/src/views/settings/components/integration/IntegrationEmailConfig.vue","frontend/src/views/settings/components/integration/IntegrationFeishuConfig.vue","frontend/src/views/settings/components/integration/IntegrationGroupbuyPanel.vue","frontend/src/views/settings/components/integration/IntegrationSmsConfig.vue","frontend/src/views/settings/components/integration/IntegrationWebhookConfig.vue","frontend/src/views/settings/components/integration/IntegrationWechatPublicConfig.vue","frontend/src/views/settings/components/integration/IntegrationWechatWorkConfig.vue","scripts/migrate-to-uselistpage.ts"],"removed":["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"],"modified":[".github/workflows/e2e-tests.yml","backend/.env.test","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/src/modules/ad-placement/placement.contract.routes.ts","backend/src/modules/ad-placement/placement.controller.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/channels/channel.contract.routes.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.routes.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.contract.routes.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/expense/expense.routes.ts","backend/src/modules/faults/fault.contract.routes.ts","backend/src/modules/faults/fault.service.ts","backend/src/modules/geo-keywords/geo-keyword.contract.routes.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.routes.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.contract.routes.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.routes.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.routes.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.contract.routes.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.controller.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.routes.ts","backend/src/modules/marketing-matrix/matrix.contract.routes.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/process/process.routes.ts","backend/src/modules/process/process.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.controller.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue.contract.routes.ts","backend/src/modules/revenue/revenue.controller.ts","backend/src/modules/revenue/revenue.routes.ts","backend/src/modules/search/search.controller.ts","backend/src/modules/search/search.routes.ts","backend/src/modules/search/search.schema.ts","backend/src/modules/search/search.service.ts","backend/src/modules/social-analytics/social-analytics.service.ts","backend/src/modules/stores/store.contract.routes.ts","backend/src/modules/stores/store.controller.ts","backend/src/modules/stores/store.routes.ts","backend/src/modules/stores/store.schema.ts","backend/src/modules/treasury/treasury.contract.routes.ts","backend/src/modules/treasury/treasury.controller.ts","backend/src/modules/treasury/treasury.routes.ts","e2e/.auth/admin.json","e2e/helpers/form-test-helpers.ts","e2e/package.json","e2e/test-results/.last-run.json","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/api/modules/im-channels.ts","frontend/src/composables/useDashboardRealtime.ts","frontend/src/views/ad-accounts/Index.vue","frontend/src/views/ad-audiences/Index.vue","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-campaigns/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ad-reports/Index.vue","frontend/src/views/alliance-analytics/Index.vue","frontend/src/views/alliance-merchants/Index.vue","frontend/src/views/alliance-products/Index.vue","frontend/src/views/alliance-promotions/Index.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/alliance-settlements/Index.vue","frontend/src/views/ap-ledger/Index.vue","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/bom/Index.vue","frontend/src/views/campaign-drafts/Index.vue","frontend/src/views/campaign-use-case-templates/Index.vue","frontend/src/views/channel-integrations/Index.vue","frontend/src/views/cohort-analysis/Index.vue","frontend/src/views/community-activities/Index.vue","frontend/src/views/community-analytics/Index.vue","frontend/src/views/community-groups/Index.vue","frontend/src/views/community-levels/Index.vue","frontend/src/views/community-members/Index.vue","frontend/src/views/community-messages/Index.vue","frontend/src/views/community-points/Index.vue","frontend/src/views/consumer-behavior-analytics/Index.vue","frontend/src/views/content-categories/Index.vue","frontend/src/views/content-copyright/Index.vue","frontend/src/views/content-creation/Index.vue","frontend/src/views/content-distribution/Index.vue","frontend/src/views/content-library/Index.vue","frontend/src/views/content-review/Index.vue","frontend/src/views/content-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/cpq/Index.vue","frontend/src/views/cpq/composables/useCpqCommon.ts","frontend/src/views/crm-activities/Index.vue","frontend/src/views/cross-domain-funnel/Index.vue","frontend/src/views/customer-health/Index.vue","frontend/src/views/customer-journey/Index.vue","frontend/src/views/customer-ltv/Index.vue","frontend/src/views/customer-marketing/Index.vue","frontend/src/views/customer-segmentation/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/devices/Index.vue","frontend/src/views/dimension-transform/Index.vue","frontend/src/views/email-marketing/Index.vue","frontend/src/views/email-templates/Index.vue","frontend/src/views/event-logs/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/finance-os/ai/AutoCreditAdjustment.vue","frontend/src/views/finance-os/ai/CashForecastModel.vue","frontend/src/views/finance-os/ai/DefaultProbabilityModel.vue","frontend/src/views/finance-os/ai/ROIEvaluation.vue","frontend/src/views/geo-fences/Index.vue","frontend/src/views/geo-keywords/Detail.vue","frontend/src/views/geo-keywords/Index.vue","frontend/src/views/groupbuy-analytics/Index.vue","frontend/src/views/groupbuy-campaigns/Index.vue","frontend/src/views/groupbuy-orders/Index.vue","frontend/src/views/groupbuy-participants/Detail.vue","frontend/src/views/groupbuy-participants/Form.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/groupbuy-products/Index.vue","frontend/src/views/groupbuy-settlements/Index.vue","frontend/src/views/im-channels/Index.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/journey-orchestration/Index.vue","frontend/src/views/knowledge-candidates/Index.vue","frontend/src/views/knowledge-capture/Index.vue","frontend/src/views/knowledge-feedback/Index.vue","frontend/src/views/landing-pages/Index.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-pool/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-analytics/Index.vue","frontend/src/views/livestream-interactions/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/local-events/Index.vue","frontend/src/views/local-promotion/Index.vue","frontend/src/views/location-assessments/Index.vue","frontend/src/views/marketing-automation/Index.vue","frontend/src/views/marketing-calendar/Index.vue","frontend/src/views/marketing-content/Index.vue","frontend/src/views/marketing-effectiveness/Index.vue","frontend/src/views/marketing-forms/Index.vue","frontend/src/views/marketing-matrix/Index.vue","frontend/src/views/marketing-north-star/Index.vue","frontend/src/views/marketing-tools/Index.vue","frontend/src/views/member-levels/Index.vue","frontend/src/views/member-points/Index.vue","frontend/src/views/members/Index.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/predictive-analytics/Index.vue","frontend/src/views/product-categories/Index.vue","frontend/src/views/projects/Index.vue","frontend/src/views/purchase-orders/Index.vue","frontend/src/views/realtime-trigger/Index.vue","frontend/src/views/redemptions/Index.vue","frontend/src/views/rfm-analysis/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/satisfaction/Index.vue","frontend/src/views/settings/IntegrationServices.vue","frontend/src/views/social-accounts/Index.vue","frontend/src/views/social-auto-replies/Index.vue","frontend/src/views/social-competitors/Index.vue","frontend/src/views/social-followers/Index.vue","frontend/src/views/social-hot-topics/Index.vue","frontend/src/views/social-interactions/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/spare-parts/Index.vue","frontend/src/views/store-inventory/Index.vue","frontend/src/views/store-settlements/Index.vue","frontend/src/views/store-staff/Index.vue","frontend/src/views/stores/Index.vue","frontend/src/views/supplier-center/Index.vue","frontend/src/views/supplier-payments/Index.vue","frontend/src/views/system-events/Index.vue","frontend/src/views/ticket-workflows/Index.vue","frontend/src/views/users/Index.vue","frontend/src/views/video-calls/Index.vue","frontend/src/views/video-content/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/outbox-atomicity-audit.latest.json"]},"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":5212729,"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-13T00:24:48+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"}}...
|
push
|
2
|
20
|
1776066121
|
1776066496
|
0
|
1776066084
|
1776066744
|
|
|
0
|
Edit
Delete
|
|
13814
|
feat: 同步最新代码更改,包括后端API、前端组件、测试和报告更新
|
6
|
5
|
test-pipeline.yml
|
13736
|
5
|
0
|
refs/heads/main
|
d2c68b13960de626f7a8d496bf1977d263eb7931
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"98cc8da660b8d4dba9887432490471d976c03f5f","after":"d2c68b13960de626f7a8d496bf1977d263eb7931","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/98cc8da660b8d4dba9887432490471d976c03f5f...d2c68b13960de626f7a8d496bf1977d263eb7931","commits":[{"id":"d2c68b13960de626f7a8d496bf1977d263eb7931","message":"feat: 同步最新代码更改,包括后端API、前端组件、测试和报告更新\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d2c68b13960de626f7a8d496bf1977d263eb7931","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T15:39:52+08:00","added":["backend/prisma/migrations/20260413_add_journey_orchestration_and_store_configs/migration.sql","backend/src/modules/journey-orchestration/journey-orchestration.contract.routes.ts","backend/src/modules/process/process.controller.ts","backend/src/modules/process/process.types.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/treasury/treasury-crud.service.ts","e2e/test-results/form-interactions-core-bus-0f529-d-to-Cash-F03-商机表单---编辑回填验证-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-0f529-d-to-Cash-F03-商机表单---编辑回填验证-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-184fa--to-Cash-F01-客户表单---创建成功全流程-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-184fa--to-Cash-F01-客户表单---创建成功全流程-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-4c4ce--to-Cash-F07-客户表单---手机号重复检测-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-4c4ce--to-Cash-F07-客户表单---手机号重复检测-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-64a51-to-Cash-F05-合同表单---复杂字段联动验证-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-64a51-to-Cash-F05-合同表单---复杂字段联动验证-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-80c59-d-to-Cash-F08-报价表单---实时计算验证-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-80c59-d-to-Cash-F08-报价表单---实时计算验证-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-90544-d-to-Cash-F02-线索表单---验证错误提示-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-90544-d-to-Cash-F02-线索表单---验证错误提示-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-a51f4-d-to-Cash-F04-报价表单---草稿自动恢复-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-a51f4-d-to-Cash-F04-报价表单---草稿自动恢复-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-cf0d9--to-Cash-F06-订单表单---动态明细行验证-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-cf0d9--to-Cash-F06-订单表单---动态明细行验证-chromium/test-failed-1.png","e2e/tests/form-interactions/hr-forms.spec.ts","e2e/tests/form-interactions/large-data-performance.spec.ts","e2e/tests/form-interactions/service-center-forms.spec.ts","e2e/tests/form-interactions/supply-chain-forms.spec.ts","frontend/src/views/cpq/components/PoliciesTab.vue","frontend/src/views/marketing-calendar/components/CalendarAgendaView.vue","frontend/src/views/marketing-calendar/components/CalendarMonthView.vue","frontend/src/views/marketing-calendar/components/CalendarWeekView.vue","frontend/src/views/marketing-calendar/components/EventDetailDrawer.vue","frontend/src/views/marketing-calendar/components/EventFormDialog.vue","frontend/src/views/marketing-calendar/composables/useMarketingCalendar.ts","frontend/src/views/marketing-north-star/components/NorthStarAlerts.vue","frontend/src/views/marketing-north-star/components/NorthStarDashboard.vue","frontend/src/views/marketing-north-star/components/NorthStarMetricForm.vue","frontend/src/views/settings/components/integration/IntegrationAdPlatformsPanel.vue","frontend/src/views/settings/components/integration/IntegrationAiConfig.vue","frontend/src/views/settings/components/integration/IntegrationDingtalkConfig.vue","frontend/src/views/settings/components/integration/IntegrationEmailConfig.vue","frontend/src/views/settings/components/integration/IntegrationFeishuConfig.vue","frontend/src/views/settings/components/integration/IntegrationGroupbuyPanel.vue","frontend/src/views/settings/components/integration/IntegrationSmsConfig.vue","frontend/src/views/settings/components/integration/IntegrationWebhookConfig.vue","frontend/src/views/settings/components/integration/IntegrationWechatPublicConfig.vue","frontend/src/views/settings/components/integration/IntegrationWechatWorkConfig.vue","scripts/migrate-to-uselistpage.ts"],"removed":["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"],"modified":[".github/workflows/e2e-tests.yml","backend/.env.test","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/src/modules/ad-placement/placement.contract.routes.ts","backend/src/modules/ad-placement/placement.controller.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/channels/channel.contract.routes.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.routes.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.contract.routes.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/expense/expense.routes.ts","backend/src/modules/faults/fault.contract.routes.ts","backend/src/modules/faults/fault.service.ts","backend/src/modules/geo-keywords/geo-keyword.contract.routes.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.routes.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.contract.routes.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.routes.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.routes.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.contract.routes.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.controller.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.routes.ts","backend/src/modules/marketing-matrix/matrix.contract.routes.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/process/process.routes.ts","backend/src/modules/process/process.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.controller.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue.contract.routes.ts","backend/src/modules/revenue/revenue.controller.ts","backend/src/modules/revenue/revenue.routes.ts","backend/src/modules/search/search.controller.ts","backend/src/modules/search/search.routes.ts","backend/src/modules/search/search.schema.ts","backend/src/modules/search/search.service.ts","backend/src/modules/social-analytics/social-analytics.service.ts","backend/src/modules/stores/store.contract.routes.ts","backend/src/modules/stores/store.controller.ts","backend/src/modules/stores/store.routes.ts","backend/src/modules/stores/store.schema.ts","backend/src/modules/treasury/treasury.contract.routes.ts","backend/src/modules/treasury/treasury.controller.ts","backend/src/modules/treasury/treasury.routes.ts","e2e/.auth/admin.json","e2e/helpers/form-test-helpers.ts","e2e/package.json","e2e/test-results/.last-run.json","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/api/modules/im-channels.ts","frontend/src/composables/useDashboardRealtime.ts","frontend/src/views/ad-accounts/Index.vue","frontend/src/views/ad-audiences/Index.vue","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-campaigns/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ad-reports/Index.vue","frontend/src/views/alliance-analytics/Index.vue","frontend/src/views/alliance-merchants/Index.vue","frontend/src/views/alliance-products/Index.vue","frontend/src/views/alliance-promotions/Index.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/alliance-settlements/Index.vue","frontend/src/views/ap-ledger/Index.vue","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/bom/Index.vue","frontend/src/views/campaign-drafts/Index.vue","frontend/src/views/campaign-use-case-templates/Index.vue","frontend/src/views/channel-integrations/Index.vue","frontend/src/views/cohort-analysis/Index.vue","frontend/src/views/community-activities/Index.vue","frontend/src/views/community-analytics/Index.vue","frontend/src/views/community-groups/Index.vue","frontend/src/views/community-levels/Index.vue","frontend/src/views/community-members/Index.vue","frontend/src/views/community-messages/Index.vue","frontend/src/views/community-points/Index.vue","frontend/src/views/consumer-behavior-analytics/Index.vue","frontend/src/views/content-categories/Index.vue","frontend/src/views/content-copyright/Index.vue","frontend/src/views/content-creation/Index.vue","frontend/src/views/content-distribution/Index.vue","frontend/src/views/content-library/Index.vue","frontend/src/views/content-review/Index.vue","frontend/src/views/content-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/cpq/Index.vue","frontend/src/views/cpq/composables/useCpqCommon.ts","frontend/src/views/crm-activities/Index.vue","frontend/src/views/cross-domain-funnel/Index.vue","frontend/src/views/customer-health/Index.vue","frontend/src/views/customer-journey/Index.vue","frontend/src/views/customer-ltv/Index.vue","frontend/src/views/customer-marketing/Index.vue","frontend/src/views/customer-segmentation/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/devices/Index.vue","frontend/src/views/dimension-transform/Index.vue","frontend/src/views/email-marketing/Index.vue","frontend/src/views/email-templates/Index.vue","frontend/src/views/event-logs/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/finance-os/ai/AutoCreditAdjustment.vue","frontend/src/views/finance-os/ai/CashForecastModel.vue","frontend/src/views/finance-os/ai/DefaultProbabilityModel.vue","frontend/src/views/finance-os/ai/ROIEvaluation.vue","frontend/src/views/geo-fences/Index.vue","frontend/src/views/geo-keywords/Detail.vue","frontend/src/views/geo-keywords/Index.vue","frontend/src/views/groupbuy-analytics/Index.vue","frontend/src/views/groupbuy-campaigns/Index.vue","frontend/src/views/groupbuy-orders/Index.vue","frontend/src/views/groupbuy-participants/Detail.vue","frontend/src/views/groupbuy-participants/Form.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/groupbuy-products/Index.vue","frontend/src/views/groupbuy-settlements/Index.vue","frontend/src/views/im-channels/Index.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/journey-orchestration/Index.vue","frontend/src/views/knowledge-candidates/Index.vue","frontend/src/views/knowledge-capture/Index.vue","frontend/src/views/knowledge-feedback/Index.vue","frontend/src/views/landing-pages/Index.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-pool/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-analytics/Index.vue","frontend/src/views/livestream-interactions/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/local-events/Index.vue","frontend/src/views/local-promotion/Index.vue","frontend/src/views/location-assessments/Index.vue","frontend/src/views/marketing-automation/Index.vue","frontend/src/views/marketing-calendar/Index.vue","frontend/src/views/marketing-content/Index.vue","frontend/src/views/marketing-effectiveness/Index.vue","frontend/src/views/marketing-forms/Index.vue","frontend/src/views/marketing-matrix/Index.vue","frontend/src/views/marketing-north-star/Index.vue","frontend/src/views/marketing-tools/Index.vue","frontend/src/views/member-levels/Index.vue","frontend/src/views/member-points/Index.vue","frontend/src/views/members/Index.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/predictive-analytics/Index.vue","frontend/src/views/product-categories/Index.vue","frontend/src/views/projects/Index.vue","frontend/src/views/purchase-orders/Index.vue","frontend/src/views/realtime-trigger/Index.vue","frontend/src/views/redemptions/Index.vue","frontend/src/views/rfm-analysis/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/satisfaction/Index.vue","frontend/src/views/settings/IntegrationServices.vue","frontend/src/views/social-accounts/Index.vue","frontend/src/views/social-auto-replies/Index.vue","frontend/src/views/social-competitors/Index.vue","frontend/src/views/social-followers/Index.vue","frontend/src/views/social-hot-topics/Index.vue","frontend/src/views/social-interactions/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/spare-parts/Index.vue","frontend/src/views/store-inventory/Index.vue","frontend/src/views/store-settlements/Index.vue","frontend/src/views/store-staff/Index.vue","frontend/src/views/stores/Index.vue","frontend/src/views/supplier-center/Index.vue","frontend/src/views/supplier-payments/Index.vue","frontend/src/views/system-events/Index.vue","frontend/src/views/ticket-workflows/Index.vue","frontend/src/views/users/Index.vue","frontend/src/views/video-calls/Index.vue","frontend/src/views/video-content/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/outbox-atomicity-audit.latest.json"]}],"total_commits":0,"head_commit":{"id":"d2c68b13960de626f7a8d496bf1977d263eb7931","message":"feat: 同步最新代码更改,包括后端API、前端组件、测试和报告更新\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d2c68b13960de626f7a8d496bf1977d263eb7931","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T15:39:52+08:00","added":["backend/prisma/migrations/20260413_add_journey_orchestration_and_store_configs/migration.sql","backend/src/modules/journey-orchestration/journey-orchestration.contract.routes.ts","backend/src/modules/process/process.controller.ts","backend/src/modules/process/process.types.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/treasury/treasury-crud.service.ts","e2e/test-results/form-interactions-core-bus-0f529-d-to-Cash-F03-商机表单---编辑回填验证-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-0f529-d-to-Cash-F03-商机表单---编辑回填验证-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-184fa--to-Cash-F01-客户表单---创建成功全流程-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-184fa--to-Cash-F01-客户表单---创建成功全流程-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-4c4ce--to-Cash-F07-客户表单---手机号重复检测-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-4c4ce--to-Cash-F07-客户表单---手机号重复检测-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-64a51-to-Cash-F05-合同表单---复杂字段联动验证-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-64a51-to-Cash-F05-合同表单---复杂字段联动验证-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-80c59-d-to-Cash-F08-报价表单---实时计算验证-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-80c59-d-to-Cash-F08-报价表单---实时计算验证-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-90544-d-to-Cash-F02-线索表单---验证错误提示-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-90544-d-to-Cash-F02-线索表单---验证错误提示-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-a51f4-d-to-Cash-F04-报价表单---草稿自动恢复-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-a51f4-d-to-Cash-F04-报价表单---草稿自动恢复-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-cf0d9--to-Cash-F06-订单表单---动态明细行验证-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-cf0d9--to-Cash-F06-订单表单---动态明细行验证-chromium/test-failed-1.png","e2e/tests/form-interactions/hr-forms.spec.ts","e2e/tests/form-interactions/large-data-performance.spec.ts","e2e/tests/form-interactions/service-center-forms.spec.ts","e2e/tests/form-interactions/supply-chain-forms.spec.ts","frontend/src/views/cpq/components/PoliciesTab.vue","frontend/src/views/marketing-calendar/components/CalendarAgendaView.vue","frontend/src/views/marketing-calendar/components/CalendarMonthView.vue","frontend/src/views/marketing-calendar/components/CalendarWeekView.vue","frontend/src/views/marketing-calendar/components/EventDetailDrawer.vue","frontend/src/views/marketing-calendar/components/EventFormDialog.vue","frontend/src/views/marketing-calendar/composables/useMarketingCalendar.ts","frontend/src/views/marketing-north-star/components/NorthStarAlerts.vue","frontend/src/views/marketing-north-star/components/NorthStarDashboard.vue","frontend/src/views/marketing-north-star/components/NorthStarMetricForm.vue","frontend/src/views/settings/components/integration/IntegrationAdPlatformsPanel.vue","frontend/src/views/settings/components/integration/IntegrationAiConfig.vue","frontend/src/views/settings/components/integration/IntegrationDingtalkConfig.vue","frontend/src/views/settings/components/integration/IntegrationEmailConfig.vue","frontend/src/views/settings/components/integration/IntegrationFeishuConfig.vue","frontend/src/views/settings/components/integration/IntegrationGroupbuyPanel.vue","frontend/src/views/settings/components/integration/IntegrationSmsConfig.vue","frontend/src/views/settings/components/integration/IntegrationWebhookConfig.vue","frontend/src/views/settings/components/integration/IntegrationWechatPublicConfig.vue","frontend/src/views/settings/components/integration/IntegrationWechatWorkConfig.vue","scripts/migrate-to-uselistpage.ts"],"removed":["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"],"modified":[".github/workflows/e2e-tests.yml","backend/.env.test","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/src/modules/ad-placement/placement.contract.routes.ts","backend/src/modules/ad-placement/placement.controller.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/channels/channel.contract.routes.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.routes.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.contract.routes.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/expense/expense.routes.ts","backend/src/modules/faults/fault.contract.routes.ts","backend/src/modules/faults/fault.service.ts","backend/src/modules/geo-keywords/geo-keyword.contract.routes.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.routes.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.contract.routes.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.routes.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.routes.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.contract.routes.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.controller.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.routes.ts","backend/src/modules/marketing-matrix/matrix.contract.routes.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/process/process.routes.ts","backend/src/modules/process/process.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.controller.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue.contract.routes.ts","backend/src/modules/revenue/revenue.controller.ts","backend/src/modules/revenue/revenue.routes.ts","backend/src/modules/search/search.controller.ts","backend/src/modules/search/search.routes.ts","backend/src/modules/search/search.schema.ts","backend/src/modules/search/search.service.ts","backend/src/modules/social-analytics/social-analytics.service.ts","backend/src/modules/stores/store.contract.routes.ts","backend/src/modules/stores/store.controller.ts","backend/src/modules/stores/store.routes.ts","backend/src/modules/stores/store.schema.ts","backend/src/modules/treasury/treasury.contract.routes.ts","backend/src/modules/treasury/treasury.controller.ts","backend/src/modules/treasury/treasury.routes.ts","e2e/.auth/admin.json","e2e/helpers/form-test-helpers.ts","e2e/package.json","e2e/test-results/.last-run.json","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/api/modules/im-channels.ts","frontend/src/composables/useDashboardRealtime.ts","frontend/src/views/ad-accounts/Index.vue","frontend/src/views/ad-audiences/Index.vue","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-campaigns/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ad-reports/Index.vue","frontend/src/views/alliance-analytics/Index.vue","frontend/src/views/alliance-merchants/Index.vue","frontend/src/views/alliance-products/Index.vue","frontend/src/views/alliance-promotions/Index.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/alliance-settlements/Index.vue","frontend/src/views/ap-ledger/Index.vue","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/bom/Index.vue","frontend/src/views/campaign-drafts/Index.vue","frontend/src/views/campaign-use-case-templates/Index.vue","frontend/src/views/channel-integrations/Index.vue","frontend/src/views/cohort-analysis/Index.vue","frontend/src/views/community-activities/Index.vue","frontend/src/views/community-analytics/Index.vue","frontend/src/views/community-groups/Index.vue","frontend/src/views/community-levels/Index.vue","frontend/src/views/community-members/Index.vue","frontend/src/views/community-messages/Index.vue","frontend/src/views/community-points/Index.vue","frontend/src/views/consumer-behavior-analytics/Index.vue","frontend/src/views/content-categories/Index.vue","frontend/src/views/content-copyright/Index.vue","frontend/src/views/content-creation/Index.vue","frontend/src/views/content-distribution/Index.vue","frontend/src/views/content-library/Index.vue","frontend/src/views/content-review/Index.vue","frontend/src/views/content-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/cpq/Index.vue","frontend/src/views/cpq/composables/useCpqCommon.ts","frontend/src/views/crm-activities/Index.vue","frontend/src/views/cross-domain-funnel/Index.vue","frontend/src/views/customer-health/Index.vue","frontend/src/views/customer-journey/Index.vue","frontend/src/views/customer-ltv/Index.vue","frontend/src/views/customer-marketing/Index.vue","frontend/src/views/customer-segmentation/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/devices/Index.vue","frontend/src/views/dimension-transform/Index.vue","frontend/src/views/email-marketing/Index.vue","frontend/src/views/email-templates/Index.vue","frontend/src/views/event-logs/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/finance-os/ai/AutoCreditAdjustment.vue","frontend/src/views/finance-os/ai/CashForecastModel.vue","frontend/src/views/finance-os/ai/DefaultProbabilityModel.vue","frontend/src/views/finance-os/ai/ROIEvaluation.vue","frontend/src/views/geo-fences/Index.vue","frontend/src/views/geo-keywords/Detail.vue","frontend/src/views/geo-keywords/Index.vue","frontend/src/views/groupbuy-analytics/Index.vue","frontend/src/views/groupbuy-campaigns/Index.vue","frontend/src/views/groupbuy-orders/Index.vue","frontend/src/views/groupbuy-participants/Detail.vue","frontend/src/views/groupbuy-participants/Form.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/groupbuy-products/Index.vue","frontend/src/views/groupbuy-settlements/Index.vue","frontend/src/views/im-channels/Index.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/journey-orchestration/Index.vue","frontend/src/views/knowledge-candidates/Index.vue","frontend/src/views/knowledge-capture/Index.vue","frontend/src/views/knowledge-feedback/Index.vue","frontend/src/views/landing-pages/Index.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-pool/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-analytics/Index.vue","frontend/src/views/livestream-interactions/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/local-events/Index.vue","frontend/src/views/local-promotion/Index.vue","frontend/src/views/location-assessments/Index.vue","frontend/src/views/marketing-automation/Index.vue","frontend/src/views/marketing-calendar/Index.vue","frontend/src/views/marketing-content/Index.vue","frontend/src/views/marketing-effectiveness/Index.vue","frontend/src/views/marketing-forms/Index.vue","frontend/src/views/marketing-matrix/Index.vue","frontend/src/views/marketing-north-star/Index.vue","frontend/src/views/marketing-tools/Index.vue","frontend/src/views/member-levels/Index.vue","frontend/src/views/member-points/Index.vue","frontend/src/views/members/Index.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/predictive-analytics/Index.vue","frontend/src/views/product-categories/Index.vue","frontend/src/views/projects/Index.vue","frontend/src/views/purchase-orders/Index.vue","frontend/src/views/realtime-trigger/Index.vue","frontend/src/views/redemptions/Index.vue","frontend/src/views/rfm-analysis/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/satisfaction/Index.vue","frontend/src/views/settings/IntegrationServices.vue","frontend/src/views/social-accounts/Index.vue","frontend/src/views/social-auto-replies/Index.vue","frontend/src/views/social-competitors/Index.vue","frontend/src/views/social-followers/Index.vue","frontend/src/views/social-hot-topics/Index.vue","frontend/src/views/social-interactions/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/spare-parts/Index.vue","frontend/src/views/store-inventory/Index.vue","frontend/src/views/store-settlements/Index.vue","frontend/src/views/store-staff/Index.vue","frontend/src/views/stores/Index.vue","frontend/src/views/supplier-center/Index.vue","frontend/src/views/supplier-payments/Index.vue","frontend/src/views/system-events/Index.vue","frontend/src/views/ticket-workflows/Index.vue","frontend/src/views/users/Index.vue","frontend/src/views/video-calls/Index.vue","frontend/src/views/video-content/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/outbox-atomicity-audit.latest.json"]},"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":5212729,"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-13T00:24:48+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"}}...
|
push
|
2
|
68
|
1776066496
|
1776066558
|
0
|
1776066085
|
1776067928
|
group: test-pipeline-${{ github.ref }}
cancel-in-p group: test-pipeline-${{ github.ref }}
cancel-in-progress: "true"
...
|
test-pipeline-refs/heads/main
|
1
|
Edit
Delete
|
|
10017
|
test(finance): add finance mainline smoke
|
6
|
5
|
e2e-tests.yml
|
9941
|
5
|
0
|
refs/pull/1/head
|
8c225d73253fe95a23618816b2f7e6a03010cae4
|
0
|
0
|
0
|
pull_request
|
{"action":"opened","number" {"action":"opened","number":1,"pull_request":{"id":6,"url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/1","number":1,"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":"test(finance): add finance mainline smoke and harden invoice detail formatting","body":"## Summary\n- add a finance-role mainline smoke that covers invoices, AR ledger, and finance dashboard\n- treat reconciliation 403 as the current permission boundary for the finance fixture\n- harden invoice detail amount formatting so null values no longer trip the page\n\n## Validation\n- E2E_SKIP_WEB_SERVER=true E2E_USE_SYSTEM_CHROME=true pnpm -C e2e exec playwright test tests/auth/finance-mainline-flow-smoke.spec.ts --project=chromium-no-auth\n- result: 1 passed (9.4s)\n\n## Note\n- git fetch/clone against the current Gitea main is currently failing with upload-pack not our ref, so this patch was replayed through the Gitea contents API on top of the live main history.","labels":[],"milestone":null,"assignee":null,"assignees":[],"requested_reviewers":[],"requested_reviewers_teams":[],"state":"open","draft":false,"is_locked":false,"comments":0,"additions":211,"deletions":4,"changed_files":2,"html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/1","diff_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/1.diff","patch_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/1.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":"dffb3332733fb56fd51632938c4379422125381c","repo_id":6,"repo":{"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":3553340,"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":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T17:38:38+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"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":[]}},"head":{"label":"codex/finance-mainline-gitea-main-20260331","ref":"codex/finance-mainline-gitea-main-20260331","sha":"8c225d73253fe95a23618816b2f7e6a03010cae4","repo_id":6,"repo":{"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":3553340,"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":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T17:38:38+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"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":[]}},"merge_base":"dffb3332733fb56fd51632938c4379422125381c","due_date":null,"created_at":"2026-03-31T17:40:58+08:00","updated_at":"2026-03-31T17:40:59+08:00","closed_at":null,"pin_order":0},"requested_reviewer":null,"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":3553340,"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":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T17:38: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":false,"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
|
2
|
20
|
1774950060
|
1774950254
|
0
|
1774950059
|
1774951991
|
|
|
0
|
Edit
Delete
|
|
10018
|
test(finance): add finance mainline smoke
|
6
|
5
|
pr-validation.yml
|
9942
|
5
|
0
|
refs/pull/1/head
|
8c225d73253fe95a23618816b2f7e6a03010cae4
|
0
|
0
|
0
|
pull_request
|
{"action":"opened","number" {"action":"opened","number":1,"pull_request":{"id":6,"url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/1","number":1,"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":"test(finance): add finance mainline smoke and harden invoice detail formatting","body":"## Summary\n- add a finance-role mainline smoke that covers invoices, AR ledger, and finance dashboard\n- treat reconciliation 403 as the current permission boundary for the finance fixture\n- harden invoice detail amount formatting so null values no longer trip the page\n\n## Validation\n- E2E_SKIP_WEB_SERVER=true E2E_USE_SYSTEM_CHROME=true pnpm -C e2e exec playwright test tests/auth/finance-mainline-flow-smoke.spec.ts --project=chromium-no-auth\n- result: 1 passed (9.4s)\n\n## Note\n- git fetch/clone against the current Gitea main is currently failing with upload-pack not our ref, so this patch was replayed through the Gitea contents API on top of the live main history.","labels":[],"milestone":null,"assignee":null,"assignees":[],"requested_reviewers":[],"requested_reviewers_teams":[],"state":"open","draft":false,"is_locked":false,"comments":0,"additions":211,"deletions":4,"changed_files":2,"html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/1","diff_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/1.diff","patch_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/1.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":"dffb3332733fb56fd51632938c4379422125381c","repo_id":6,"repo":{"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":3553340,"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":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T17:38:38+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"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":[]}},"head":{"label":"codex/finance-mainline-gitea-main-20260331","ref":"codex/finance-mainline-gitea-main-20260331","sha":"8c225d73253fe95a23618816b2f7e6a03010cae4","repo_id":6,"repo":{"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":3553340,"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":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T17:38:38+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"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":[]}},"merge_base":"dffb3332733fb56fd51632938c4379422125381c","due_date":null,"created_at":"2026-03-31T17:40:58+08:00","updated_at":"2026-03-31T17:40:59+08:00","closed_at":null,"pin_order":0},"requested_reviewer":null,"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":3553340,"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":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T17:38: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":false,"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
|
2
|
26
|
1774950256
|
1774951998
|
0
|
1774950059
|
1774952026
|
group: pr-${{ github.event.pull_request.number }}
group: pr-${{ github.event.pull_request.number }}
cancel-in-progress: "true"
...
|
pr-1
|
1
|
Edit
Delete
|
|
10019
|
test(finance): add finance mainline smoke
|
6
|
5
|
test-pipeline.yml
|
9943
|
5
|
0
|
refs/pull/1/head
|
8c225d73253fe95a23618816b2f7e6a03010cae4
|
0
|
0
|
0
|
pull_request
|
{"action":"opened","number" {"action":"opened","number":1,"pull_request":{"id":6,"url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/1","number":1,"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":"test(finance): add finance mainline smoke and harden invoice detail formatting","body":"## Summary\n- add a finance-role mainline smoke that covers invoices, AR ledger, and finance dashboard\n- treat reconciliation 403 as the current permission boundary for the finance fixture\n- harden invoice detail amount formatting so null values no longer trip the page\n\n## Validation\n- E2E_SKIP_WEB_SERVER=true E2E_USE_SYSTEM_CHROME=true pnpm -C e2e exec playwright test tests/auth/finance-mainline-flow-smoke.spec.ts --project=chromium-no-auth\n- result: 1 passed (9.4s)\n\n## Note\n- git fetch/clone against the current Gitea main is currently failing with upload-pack not our ref, so this patch was replayed through the Gitea contents API on top of the live main history.","labels":[],"milestone":null,"assignee":null,"assignees":[],"requested_reviewers":[],"requested_reviewers_teams":[],"state":"open","draft":false,"is_locked":false,"comments":0,"additions":211,"deletions":4,"changed_files":2,"html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/1","diff_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/1.diff","patch_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/1.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":"dffb3332733fb56fd51632938c4379422125381c","repo_id":6,"repo":{"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":3553340,"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":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T17:38:38+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"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":[]}},"head":{"label":"codex/finance-mainline-gitea-main-20260331","ref":"codex/finance-mainline-gitea-main-20260331","sha":"8c225d73253fe95a23618816b2f7e6a03010cae4","repo_id":6,"repo":{"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":3553340,"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":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T17:38:38+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"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":[]}},"merge_base":"dffb3332733fb56fd51632938c4379422125381c","due_date":null,"created_at":"2026-03-31T17:40:58+08:00","updated_at":"2026-03-31T17:40:59+08:00","closed_at":null,"pin_order":0},"requested_reviewer":null,"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":3553340,"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":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T17:38: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":false,"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
|
2
|
68
|
1774950697
|
1774950967
|
0
|
1774950060
|
1774952313
|
group: test-pipeline-${{ github.ref }}
cancel-in-p group: test-pipeline-${{ github.ref }}
cancel-in-progress: "true"
...
|
test-pipeline-refs/pull/1/head
|
1
|
Edit
Delete
|