|
1362
|
fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误
|
6
|
5
|
health-check.yml
|
1315
|
-2
|
43
|
refs/heads/main
|
79d594dd776b47b40e6329ed3f6cf53c2b18251f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2186d56d658fcaab3ff5ca5880742254dc8c4545","after":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2186d56d658fcaab3ff5ca5880742254dc8c4545...79d594dd776b47b40e6329ed3f6cf53c2b18251f","commits":[{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]}],"total_commits":0,"head_commit":{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]},"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/avatars/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,"parent":null,"mirror":false,"size":481311,"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,"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-02-28T08:55:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":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,"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","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/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":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772244012
|
1772244013
|
0
|
1772244012
|
1772244013
|
NULL
|
|
0
|
Edit
Delete
|
|
1363
|
fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误
|
6
|
5
|
health-check.yml
|
1316
|
-2
|
43
|
refs/heads/main
|
79d594dd776b47b40e6329ed3f6cf53c2b18251f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2186d56d658fcaab3ff5ca5880742254dc8c4545","after":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2186d56d658fcaab3ff5ca5880742254dc8c4545...79d594dd776b47b40e6329ed3f6cf53c2b18251f","commits":[{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]}],"total_commits":0,"head_commit":{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]},"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/avatars/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,"parent":null,"mirror":false,"size":481311,"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,"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-02-28T08:55:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":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,"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","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/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":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772244312
|
1772244313
|
0
|
1772244312
|
1772244313
|
NULL
|
|
0
|
Edit
Delete
|
|
1364
|
fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误
|
6
|
5
|
health-check.yml
|
1317
|
-2
|
43
|
refs/heads/main
|
79d594dd776b47b40e6329ed3f6cf53c2b18251f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2186d56d658fcaab3ff5ca5880742254dc8c4545","after":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2186d56d658fcaab3ff5ca5880742254dc8c4545...79d594dd776b47b40e6329ed3f6cf53c2b18251f","commits":[{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]}],"total_commits":0,"head_commit":{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]},"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/avatars/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,"parent":null,"mirror":false,"size":481311,"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,"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-02-28T08:55:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":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,"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","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/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":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772244612
|
1772244613
|
0
|
1772244612
|
1772244613
|
NULL
|
|
0
|
Edit
Delete
|
|
1365
|
fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误
|
6
|
5
|
health-check.yml
|
1318
|
-2
|
43
|
refs/heads/main
|
79d594dd776b47b40e6329ed3f6cf53c2b18251f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2186d56d658fcaab3ff5ca5880742254dc8c4545","after":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2186d56d658fcaab3ff5ca5880742254dc8c4545...79d594dd776b47b40e6329ed3f6cf53c2b18251f","commits":[{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]}],"total_commits":0,"head_commit":{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]},"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/avatars/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,"parent":null,"mirror":false,"size":481311,"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,"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-02-28T08:55:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":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,"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","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/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":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772244912
|
1772244913
|
0
|
1772244912
|
1772244913
|
NULL
|
|
0
|
Edit
Delete
|
|
1366
|
fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误
|
6
|
5
|
health-check.yml
|
1319
|
-2
|
43
|
refs/heads/main
|
79d594dd776b47b40e6329ed3f6cf53c2b18251f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2186d56d658fcaab3ff5ca5880742254dc8c4545","after":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2186d56d658fcaab3ff5ca5880742254dc8c4545...79d594dd776b47b40e6329ed3f6cf53c2b18251f","commits":[{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]}],"total_commits":0,"head_commit":{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]},"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/avatars/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,"parent":null,"mirror":false,"size":481311,"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,"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-02-28T08:55:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":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,"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","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/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":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772245212
|
1772245213
|
0
|
1772245212
|
1772245213
|
NULL
|
|
0
|
Edit
Delete
|
|
1367
|
fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误
|
6
|
5
|
health-check.yml
|
1320
|
-2
|
43
|
refs/heads/main
|
79d594dd776b47b40e6329ed3f6cf53c2b18251f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2186d56d658fcaab3ff5ca5880742254dc8c4545","after":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2186d56d658fcaab3ff5ca5880742254dc8c4545...79d594dd776b47b40e6329ed3f6cf53c2b18251f","commits":[{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]}],"total_commits":0,"head_commit":{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]},"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/avatars/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,"parent":null,"mirror":false,"size":481311,"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,"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-02-28T08:55:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":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,"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","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/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":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772245512
|
1772245513
|
0
|
1772245512
|
1772245513
|
NULL
|
|
0
|
Edit
Delete
|
|
1368
|
fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误
|
6
|
5
|
health-check.yml
|
1321
|
-2
|
43
|
refs/heads/main
|
79d594dd776b47b40e6329ed3f6cf53c2b18251f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2186d56d658fcaab3ff5ca5880742254dc8c4545","after":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2186d56d658fcaab3ff5ca5880742254dc8c4545...79d594dd776b47b40e6329ed3f6cf53c2b18251f","commits":[{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]}],"total_commits":0,"head_commit":{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]},"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/avatars/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,"parent":null,"mirror":false,"size":481311,"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,"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-02-28T08:55:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":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,"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","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/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":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772245812
|
1772245813
|
0
|
1772245812
|
1772245813
|
NULL
|
|
0
|
Edit
Delete
|
|
1369
|
fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误
|
6
|
5
|
health-check.yml
|
1322
|
-2
|
43
|
refs/heads/main
|
79d594dd776b47b40e6329ed3f6cf53c2b18251f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2186d56d658fcaab3ff5ca5880742254dc8c4545","after":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2186d56d658fcaab3ff5ca5880742254dc8c4545...79d594dd776b47b40e6329ed3f6cf53c2b18251f","commits":[{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]}],"total_commits":0,"head_commit":{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]},"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/avatars/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,"parent":null,"mirror":false,"size":481311,"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,"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-02-28T08:55:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":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,"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","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/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":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772246112
|
1772246113
|
0
|
1772246112
|
1772246113
|
NULL
|
|
0
|
Edit
Delete
|
|
1370
|
fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误
|
6
|
5
|
health-check.yml
|
1323
|
-2
|
43
|
refs/heads/main
|
79d594dd776b47b40e6329ed3f6cf53c2b18251f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2186d56d658fcaab3ff5ca5880742254dc8c4545","after":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2186d56d658fcaab3ff5ca5880742254dc8c4545...79d594dd776b47b40e6329ed3f6cf53c2b18251f","commits":[{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]}],"total_commits":0,"head_commit":{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]},"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/avatars/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,"parent":null,"mirror":false,"size":481311,"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,"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-02-28T08:55:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":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,"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","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/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":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772246412
|
1772246413
|
0
|
1772246412
|
1772246413
|
NULL
|
|
0
|
Edit
Delete
|
|
21
|
test11188889
|
2
|
2
|
hello-world.yaml
|
20
|
1
|
0
|
refs/heads/main
|
ac9571bc40f603c832247b982b1f4181e6a3e297
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"22ffb09cf279f85db485e386b24c7d3a1cdda4e6","after":"ac9571bc40f603c832247b982b1f4181e6a3e297","compare_url":"https://gitea.g-hi.com/juhai/testpc/compare/22ffb09cf279f85db485e386b24c7d3a1cdda4e6...ac9571bc40f603c832247b982b1f4181e6a3e297","commits":[{"id":"ac9571bc40f603c832247b982b1f4181e6a3e297","message":"test11188889\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/ac9571bc40f603c832247b982b1f4181e6a3e297","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-12T14:39:37+08:00","added":[],"removed":[],"modified":[".gitea/workflows/hello-world.yaml"]}],"total_commits":0,"head_commit":{"id":"ac9571bc40f603c832247b982b1f4181e6a3e297","message":"test11188889\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/ac9571bc40f603c832247b982b1f4181e6a3e297","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-12T14:39:37+08:00","added":[],"removed":[],"modified":[".gitea/workflows/hello-world.yaml"]},"repository":{"id":2,"owner":{"id":2,"login":"juhai","login_name":"","source_id":0,"full_name":"","email":"","avatar_url":"https://gitea.g-hi.com/avatars/8edeea9a6ada1d3d48db9231e9328f15","html_url":"https://gitea.g-hi.com/juhai","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T15:37:00+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"private","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"juhai"},"name":"testpc","full_name":"juhai/testpc","description":"pc测试环境","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":17726,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/juhai/testpc/languages","html_url":"https://gitea.g-hi.com/juhai/testpc","url":"https://gitea.g-hi.com/api/v1/repos/juhai/testpc","link":"","ssh_url":"git@gitea.g-hi.com:juhai/testpc.git","clone_url":"https://gitea.g-hi.com/juhai/testpc.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-06T13:52:11+08:00","updated_at":"2026-02-12T14:39:21+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":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,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":true,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":1,"login":"zhangjunnan","login_name":"","source_id":0,"full_name":"","email":"zhangjunnan@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/db7dcb12d6f370df9341167b55583f8b","html_url":"https://gitea.g-hi.com/zhangjunnan","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T15:36:25+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":"zhangjunnan"},"sender":{"id":1,"login":"zhangjunnan","login_name":"","source_id":0,"full_name":"","email":"zhangjunnan@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/db7dcb12d6f370df9341167b55583f8b","html_url":"https://gitea.g-hi.com/zhangjunnan","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T15:36:25+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":"zhangjunnan"}}...
|
push
|
2
|
3
|
1770878387
|
1770878407
|
0
|
1770878387
|
1770878407
|
NULL
|
|
0
|
Edit
Delete
|
|
6324
|
修改测试调用不存在的model
|
2
|
2
|
hello-world.yaml
|
45
|
1
|
0
|
refs/heads/main
|
82563bcddd8d32587bc08757c8fdba4bb728fdbe
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"252852cf322c50ffd2a193223a08e9e4b567bf78","after":"82563bcddd8d32587bc08757c8fdba4bb728fdbe","compare_url":"https://gitea.g-hi.com/juhai/testpc/compare/252852cf322c50ffd2a193223a08e9e4b567bf78...82563bcddd8d32587bc08757c8fdba4bb728fdbe","commits":[{"id":"82563bcddd8d32587bc08757c8fdba4bb728fdbe","message":"修改测试调用不存在的model\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/82563bcddd8d32587bc08757c8fdba4bb728fdbe","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-03-17T13:06:35+08:00","added":[],"removed":[],"modified":["pc/application/controllers/Bill.php"]},{"id":"8af6ec06b4c2ac909aacc0291583cee3db2e235d","message":"修改测试调用不存在的model\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/8af6ec06b4c2ac909aacc0291583cee3db2e235d","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-03-17T13:04:18+08:00","added":[],"removed":[],"modified":["pc/application/controllers/Bill.php"]},{"id":"22b2df01d02fbe472599226ffcd14ff8b3b10460","message":"修改测试调用不存在的model\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/22b2df01d02fbe472599226ffcd14ff8b3b10460","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-03-17T11:27:00+08:00","added":[],"removed":[],"modified":["pc/application/controllers/Bill.php"]}],"total_commits":0,"head_commit":{"id":"82563bcddd8d32587bc08757c8fdba4bb728fdbe","message":"修改测试调用不存在的model\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/82563bcddd8d32587bc08757c8fdba4bb728fdbe","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-03-17T13:06:35+08:00","added":[],"removed":[],"modified":["pc/application/controllers/Bill.php"]},"repository":{"id":2,"owner":{"id":2,"login":"juhai","login_name":"","source_id":0,"full_name":"","email":"","avatar_url":"https://gitea.g-hi.com/avatars/8edeea9a6ada1d3d48db9231e9328f15","html_url":"https://gitea.g-hi.com/juhai","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T15:37:00+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"private","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"juhai"},"name":"testpc","full_name":"juhai/testpc","description":"pc测试环境","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":17808,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/juhai/testpc/languages","html_url":"https://gitea.g-hi.com/juhai/testpc","url":"https://gitea.g-hi.com/api/v1/repos/juhai/testpc","link":"","ssh_url":"git@gitea.g-hi.com:juhai/testpc.git","clone_url":"https://gitea.g-hi.com/juhai/testpc.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":10,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-06T13:52:11+08:00","updated_at":"2026-03-17T11:13:49+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":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,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":true,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":1,"login":"zhangjunnan","login_name":"","source_id":0,"full_name":"","email":"zhangjunnan@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/db7dcb12d6f370df9341167b55583f8b","html_url":"https://gitea.g-hi.com/zhangjunnan","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T15:36:25+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":"zhangjunnan"},"sender":{"id":1,"login":"zhangjunnan","login_name":"","source_id":0,"full_name":"","email":"zhangjunnan@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/db7dcb12d6f370df9341167b55583f8b","html_url":"https://gitea.g-hi.com/zhangjunnan","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T15:36:25+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":"zhangjunnan"}}...
|
push
|
1
|
3
|
1773724005
|
1773724008
|
0
|
1773724005
|
1773724008
|
NULL
|
|
0
|
Edit
Delete
|
|
9
|
测试修改3333
|
2
|
2
|
hello-world.yaml
|
8
|
1
|
0
|
refs/heads/main
|
9ea10aada78365404579933ba4df771f312ad652
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"265f1b4a557b2a64464bc98e1e418e0e01298d31","after":"9ea10aada78365404579933ba4df771f312ad652","compare_url":"https://gitea.g-hi.com/juhai/testpc/compare/265f1b4a557b2a64464bc98e1e418e0e01298d31...9ea10aada78365404579933ba4df771f312ad652","commits":[{"id":"9ea10aada78365404579933ba4df771f312ad652","message":"测试修改3333\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/9ea10aada78365404579933ba4df771f312ad652","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-11T17:16:15+08:00","added":[],"removed":[],"modified":[".gitea/workflows/hello-world.yaml"]}],"total_commits":0,"head_commit":{"id":"9ea10aada78365404579933ba4df771f312ad652","message":"测试修改3333\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/9ea10aada78365404579933ba4df771f312ad652","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-11T17:16:15+08:00","added":[],"removed":[],"modified":[".gitea/workflows/hello-world.yaml"]},"repository":{"id":2,"owner":{"id":2,"login":"juhai","login_name":"","source_id":0,"full_name":"","email":"","avatar_url":"https://gitea.g-hi.com/avatars/8edeea9a6ada1d3d48db9231e9328f15","html_url":"https://gitea.g-hi.com/juhai","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T15:37:00+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"private","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"juhai"},"name":"testpc","full_name":"juhai/testpc","description":"pc测试环境","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":17706,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/juhai/testpc/languages","html_url":"https://gitea.g-hi.com/juhai/testpc","url":"https://gitea.g-hi.com/api/v1/repos/juhai/testpc","link":"","ssh_url":"git@gitea.g-hi.com:juhai/testpc.git","clone_url":"https://gitea.g-hi.com/juhai/testpc.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-06T13:52:11+08:00","updated_at":"2026-02-11T17:05:40+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":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,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":true,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":1,"login":"zhangjunnan","login_name":"","source_id":0,"full_name":"","email":"zhangjunnan@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/db7dcb12d6f370df9341167b55583f8b","html_url":"https://gitea.g-hi.com/zhangjunnan","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T15:36:25+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":"zhangjunnan"},"sender":{"id":1,"login":"zhangjunnan","login_name":"","source_id":0,"full_name":"","email":"zhangjunnan@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/db7dcb12d6f370df9341167b55583f8b","html_url":"https://gitea.g-hi.com/zhangjunnan","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T15:36:25+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":"zhangjunnan"}}...
|
push
|
2
|
3
|
1770801383
|
1770801388
|
0
|
1770801383
|
1770801388
|
NULL
|
|
0
|
Edit
Delete
|
|
6430
|
sync: 同步治理文档与获客/内容/增长中心治理回放产物
|
6
|
5
|
ci.yml
|
6358
|
5
|
0
|
refs/heads/main
|
8a1f5fc17b0e1692e9da7c94fc0fd769eff89926
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2732364ba177bf3cf8029788b582f34689d5d9a9","after":"8a1f5fc17b0e1692e9da7c94fc0fd769eff89926","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2732364ba177bf3cf8029788b582f34689d5d9a9...8a1f5fc17b0e1692e9da7c94fc0fd769eff89926","commits":[{"id":"8a1f5fc17b0e1692e9da7c94fc0fd769eff89926","message":"sync: 同步治理文档与获客/内容/增长中心治理回放产物\n\n- 同步四份统一文档(AGENTS/CLAUDE/GEMINI/README)\n- 更新治理经验报告与契约治理 3.0 文档\n- 更新 admin.json 认证夹具\n- 后端修复 content-distribution 模块(controller/routes/schema)\n- 前端修复 community-messages API 模块\n- 新增获客中心治理回放产物 (acquisition-governance-v1~v5)\n - 覆盖归因/渠道/线索/二维码/UTM 等 probes\n- 新增内容中心治理回放产物:\n - content-social-content-v1~v4: 社交内容/内容库\n - content-templates-v1~v2: 内容模板\n- 新增增长中心治理回放产物:\n - growth-community-messages-v1: 社区消息\n - growth-governance-tail-v1~v6: 社区等级/营销工具/细分\n - growth-groupbuy-pricing-v1: 团购定价\n - growth-segments-v1~v2: 用户细分\n- 更新可见菜单写动作配置 (module-catalog.overrides.ts)\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8a1f5fc17b0e1692e9da7c94fc0fd769eff89926","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-17T20:36:51+08:00","added":["e2e/output/playwright/acquisition-governance-v1/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v1/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v1/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v1/probes/-attribution-1773750248508.json","e2e/output/playwright/acquisition-governance-v1/probes/-attribution-models-1773750244916.json","e2e/output/playwright/acquisition-governance-v1/probes/-channel-integrations-1773750228269.json","e2e/output/playwright/acquisition-governance-v1/probes/-channels-1773750225676.json","e2e/output/playwright/acquisition-governance-v1/probes/-lead-pools-1773750223182.json","e2e/output/playwright/acquisition-governance-v1/probes/-lead-qualification-1773750218697.json","e2e/output/playwright/acquisition-governance-v1/probes/-lead-scoring-1773750220904.json","e2e/output/playwright/acquisition-governance-v1/probes/-leads-1773750216441.json","e2e/output/playwright/acquisition-governance-v1/probes/-qr-codes-1773750229812.json","e2e/output/playwright/acquisition-governance-v1/probes/-utm-tracking-1773750231196.json","e2e/output/playwright/acquisition-governance-v1/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v2/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v2/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v2/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v2/probes/-channel-integrations-1773750273145.json","e2e/output/playwright/acquisition-governance-v2/probes/-channels-1773750270510.json","e2e/output/playwright/acquisition-governance-v2/probes/-lead-pools-1773750268034.json","e2e/output/playwright/acquisition-governance-v2/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v3/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v3/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v3/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v3/probes/-channel-integrations-1773750292253.json","e2e/output/playwright/acquisition-governance-v3/probes/-channels-1773750289713.json","e2e/output/playwright/acquisition-governance-v3/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v4/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v4/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v4/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v4/probes/-qr-codes-1773750355274.json","e2e/output/playwright/acquisition-governance-v4/probes/-utm-tracking-1773750356685.json","e2e/output/playwright/acquisition-governance-v4/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v5/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v5/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v5/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v5/probes/-attribution-1773750386093.json","e2e/output/playwright/acquisition-governance-v5/probes/-attribution-models-1773750382566.json","e2e/output/playwright/acquisition-governance-v5/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v1/action-coverage-report.json","e2e/output/playwright/content-social-content-v1/probes/-content-library-1773750524004.json","e2e/output/playwright/content-social-content-v1/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v2/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v3/action-coverage-report.json","e2e/output/playwright/content-social-content-v3/action-coverage-report.md","e2e/output/playwright/content-social-content-v3/blocked-unmapped-pages.json","e2e/output/playwright/content-social-content-v3/failure-1.html","e2e/output/playwright/content-social-content-v3/failure-1.png","e2e/output/playwright/content-social-content-v3/failure-2.html","e2e/output/playwright/content-social-content-v3/failure-2.png","e2e/output/playwright/content-social-content-v3/failure-3.html","e2e/output/playwright/content-social-content-v3/failure-3.png","e2e/output/playwright/content-social-content-v3/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v4/action-coverage-report.json","e2e/output/playwright/content-social-content-v4/action-coverage-report.md","e2e/output/playwright/content-social-content-v4/blocked-unmapped-pages.json","e2e/output/playwright/content-social-content-v4/failure-1.html","e2e/output/playwright/content-social-content-v4/failure-1.png","e2e/output/playwright/content-social-content-v4/failure-2.html","e2e/output/playwright/content-social-content-v4/failure-2.png","e2e/output/playwright/content-social-content-v4/probes/-content-creation-1773750936440.json","e2e/output/playwright/content-social-content-v4/probes/-content-distribution-1773750940988.json","e2e/output/playwright/content-social-content-v4/probes/-email-marketing-1773750939178.json","e2e/output/playwright/content-social-content-v4/visible-menu-snapshot.json","e2e/output/playwright/content-templates-v1/visible-menu-snapshot.json","e2e/output/playwright/content-templates-v2/action-coverage-report.json","e2e/output/playwright/content-templates-v2/action-coverage-report.md","e2e/output/playwright/content-templates-v2/blocked-unmapped-pages.json","e2e/output/playwright/content-templates-v2/probes/-content-templates-1773750715239.json","e2e/output/playwright/content-templates-v2/visible-menu-snapshot.json","e2e/output/playwright/growth-community-messages-v1/action-coverage-report.json","e2e/output/playwright/growth-community-messages-v1/action-coverage-report.md","e2e/output/playwright/growth-community-messages-v1/blocked-unmapped-pages.json","e2e/output/playwright/growth-community-messages-v1/probes/-community-messages-1773749886865.json","e2e/output/playwright/growth-community-messages-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v2/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v2/failure-1.html","e2e/output/playwright/growth-governance-tail-v2/failure-1.png","e2e/output/playwright/growth-governance-tail-v2/failure-2.html","e2e/output/playwright/growth-governance-tail-v2/failure-2.png","e2e/output/playwright/growth-governance-tail-v2/probes/-community-levels-1773749472298.json","e2e/output/playwright/growth-governance-tail-v2/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v3/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v3/failure-1.html","e2e/output/playwright/growth-governance-tail-v3/failure-1.png","e2e/output/playwright/growth-governance-tail-v3/probes/-community-levels-1773749696995.json","e2e/output/playwright/growth-governance-tail-v3/probes/-marketing-tools-1773749700362.json","e2e/output/playwright/growth-governance-tail-v3/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v4/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v4/failure-1.html","e2e/output/playwright/growth-governance-tail-v4/failure-1.png","e2e/output/playwright/growth-governance-tail-v4/probes/-community-levels-1773749913824.json","e2e/output/playwright/growth-governance-tail-v4/probes/-community-messages-1773749916334.json","e2e/output/playwright/growth-governance-tail-v4/probes/-marketing-tools-1773749918891.json","e2e/output/playwright/growth-governance-tail-v4/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v5/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v6/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v6/action-coverage-report.md","e2e/output/playwright/growth-governance-tail-v6/blocked-unmapped-pages.json","e2e/output/playwright/growth-governance-tail-v6/probes/-community-levels-1773750123745.json","e2e/output/playwright/growth-governance-tail-v6/probes/-community-messages-1773750126280.json","e2e/output/playwright/growth-governance-tail-v6/probes/-marketing-tools-1773750128787.json","e2e/output/playwright/growth-governance-tail-v6/probes/-segments-1773750131379.json","e2e/output/playwright/growth-governance-tail-v6/visible-menu-snapshot.json","e2e/output/playwright/growth-groupbuy-pricing-v1/action-coverage-report.json","e2e/output/playwright/growth-groupbuy-pricing-v1/action-coverage-report.md","e2e/output/playwright/growth-groupbuy-pricing-v1/blocked-unmapped-pages.json","e2e/output/playwright/growth-groupbuy-pricing-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-segments-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-segments-v2/action-coverage-report.json","e2e/output/playwright/growth-segments-v2/action-coverage-report.md","e2e/output/playwright/growth-segments-v2/blocked-unmapped-pages.json","e2e/output/playwright/growth-segments-v2/probes/-segments-1773750075276.json","e2e/output/playwright/growth-segments-v2/visible-menu-snapshot.json","e2e/playwright-report/data/01283c1528362c00e12351f7e0f8db5f816037e7.md","e2e/playwright-report/data/324ffedd11b224a0791a44b2b2e43373471ce70e.png","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/content-distribution/content-distribution.controller.ts","backend/src/modules/content-distribution/content-distribution.routes.ts","backend/src/modules/content-distribution/content-distribution.schema.ts","docs/contract-governance-3.0.md","docs/reports/governance-experience-2026-03-07.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/results.json","e2e/tests/crud/module-catalog.overrides.ts","frontend/src/api/modules/community-messages.ts"]}],"total_commits":0,"head_commit":{"id":"8a1f5fc17b0e1692e9da7c94fc0fd769eff89926","message":"sync: 同步治理文档与获客/内容/增长中心治理回放产物\n\n- 同步四份统一文档(AGENTS/CLAUDE/GEMINI/README)\n- 更新治理经验报告与契约治理 3.0 文档\n- 更新 admin.json 认证夹具\n- 后端修复 content-distribution 模块(controller/routes/schema)\n- 前端修复 community-messages API 模块\n- 新增获客中心治理回放产物 (acquisition-governance-v1~v5)\n - 覆盖归因/渠道/线索/二维码/UTM 等 probes\n- 新增内容中心治理回放产物:\n - content-social-content-v1~v4: 社交内容/内容库\n - content-templates-v1~v2: 内容模板\n- 新增增长中心治理回放产物:\n - growth-community-messages-v1: 社区消息\n - growth-governance-tail-v1~v6: 社区等级/营销工具/细分\n - growth-groupbuy-pricing-v1: 团购定价\n - growth-segments-v1~v2: 用户细分\n- 更新可见菜单写动作配置 (module-catalog.overrides.ts)\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8a1f5fc17b0e1692e9da7c94fc0fd769eff89926","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-17T20:36:51+08:00","added":["e2e/output/playwright/acquisition-governance-v1/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v1/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v1/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v1/probes/-attribution-1773750248508.json","e2e/output/playwright/acquisition-governance-v1/probes/-attribution-models-1773750244916.json","e2e/output/playwright/acquisition-governance-v1/probes/-channel-integrations-1773750228269.json","e2e/output/playwright/acquisition-governance-v1/probes/-channels-1773750225676.json","e2e/output/playwright/acquisition-governance-v1/probes/-lead-pools-1773750223182.json","e2e/output/playwright/acquisition-governance-v1/probes/-lead-qualification-1773750218697.json","e2e/output/playwright/acquisition-governance-v1/probes/-lead-scoring-1773750220904.json","e2e/output/playwright/acquisition-governance-v1/probes/-leads-1773750216441.json","e2e/output/playwright/acquisition-governance-v1/probes/-qr-codes-1773750229812.json","e2e/output/playwright/acquisition-governance-v1/probes/-utm-tracking-1773750231196.json","e2e/output/playwright/acquisition-governance-v1/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v2/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v2/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v2/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v2/probes/-channel-integrations-1773750273145.json","e2e/output/playwright/acquisition-governance-v2/probes/-channels-1773750270510.json","e2e/output/playwright/acquisition-governance-v2/probes/-lead-pools-1773750268034.json","e2e/output/playwright/acquisition-governance-v2/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v3/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v3/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v3/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v3/probes/-channel-integrations-1773750292253.json","e2e/output/playwright/acquisition-governance-v3/probes/-channels-1773750289713.json","e2e/output/playwright/acquisition-governance-v3/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v4/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v4/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v4/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v4/probes/-qr-codes-1773750355274.json","e2e/output/playwright/acquisition-governance-v4/probes/-utm-tracking-1773750356685.json","e2e/output/playwright/acquisition-governance-v4/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v5/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v5/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v5/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v5/probes/-attribution-1773750386093.json","e2e/output/playwright/acquisition-governance-v5/probes/-attribution-models-1773750382566.json","e2e/output/playwright/acquisition-governance-v5/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v1/action-coverage-report.json","e2e/output/playwright/content-social-content-v1/probes/-content-library-1773750524004.json","e2e/output/playwright/content-social-content-v1/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v2/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v3/action-coverage-report.json","e2e/output/playwright/content-social-content-v3/action-coverage-report.md","e2e/output/playwright/content-social-content-v3/blocked-unmapped-pages.json","e2e/output/playwright/content-social-content-v3/failure-1.html","e2e/output/playwright/content-social-content-v3/failure-1.png","e2e/output/playwright/content-social-content-v3/failure-2.html","e2e/output/playwright/content-social-content-v3/failure-2.png","e2e/output/playwright/content-social-content-v3/failure-3.html","e2e/output/playwright/content-social-content-v3/failure-3.png","e2e/output/playwright/content-social-content-v3/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v4/action-coverage-report.json","e2e/output/playwright/content-social-content-v4/action-coverage-report.md","e2e/output/playwright/content-social-content-v4/blocked-unmapped-pages.json","e2e/output/playwright/content-social-content-v4/failure-1.html","e2e/output/playwright/content-social-content-v4/failure-1.png","e2e/output/playwright/content-social-content-v4/failure-2.html","e2e/output/playwright/content-social-content-v4/failure-2.png","e2e/output/playwright/content-social-content-v4/probes/-content-creation-1773750936440.json","e2e/output/playwright/content-social-content-v4/probes/-content-distribution-1773750940988.json","e2e/output/playwright/content-social-content-v4/probes/-email-marketing-1773750939178.json","e2e/output/playwright/content-social-content-v4/visible-menu-snapshot.json","e2e/output/playwright/content-templates-v1/visible-menu-snapshot.json","e2e/output/playwright/content-templates-v2/action-coverage-report.json","e2e/output/playwright/content-templates-v2/action-coverage-report.md","e2e/output/playwright/content-templates-v2/blocked-unmapped-pages.json","e2e/output/playwright/content-templates-v2/probes/-content-templates-1773750715239.json","e2e/output/playwright/content-templates-v2/visible-menu-snapshot.json","e2e/output/playwright/growth-community-messages-v1/action-coverage-report.json","e2e/output/playwright/growth-community-messages-v1/action-coverage-report.md","e2e/output/playwright/growth-community-messages-v1/blocked-unmapped-pages.json","e2e/output/playwright/growth-community-messages-v1/probes/-community-messages-1773749886865.json","e2e/output/playwright/growth-community-messages-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v2/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v2/failure-1.html","e2e/output/playwright/growth-governance-tail-v2/failure-1.png","e2e/output/playwright/growth-governance-tail-v2/failure-2.html","e2e/output/playwright/growth-governance-tail-v2/failure-2.png","e2e/output/playwright/growth-governance-tail-v2/probes/-community-levels-1773749472298.json","e2e/output/playwright/growth-governance-tail-v2/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v3/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v3/failure-1.html","e2e/output/playwright/growth-governance-tail-v3/failure-1.png","e2e/output/playwright/growth-governance-tail-v3/probes/-community-levels-1773749696995.json","e2e/output/playwright/growth-governance-tail-v3/probes/-marketing-tools-1773749700362.json","e2e/output/playwright/growth-governance-tail-v3/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v4/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v4/failure-1.html","e2e/output/playwright/growth-governance-tail-v4/failure-1.png","e2e/output/playwright/growth-governance-tail-v4/probes/-community-levels-1773749913824.json","e2e/output/playwright/growth-governance-tail-v4/probes/-community-messages-1773749916334.json","e2e/output/playwright/growth-governance-tail-v4/probes/-marketing-tools-1773749918891.json","e2e/output/playwright/growth-governance-tail-v4/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v5/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v6/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v6/action-coverage-report.md","e2e/output/playwright/growth-governance-tail-v6/blocked-unmapped-pages.json","e2e/output/playwright/growth-governance-tail-v6/probes/-community-levels-1773750123745.json","e2e/output/playwright/growth-governance-tail-v6/probes/-community-messages-1773750126280.json","e2e/output/playwright/growth-governance-tail-v6/probes/-marketing-tools-1773750128787.json","e2e/output/playwright/growth-governance-tail-v6/probes/-segments-1773750131379.json","e2e/output/playwright/growth-governance-tail-v6/visible-menu-snapshot.json","e2e/output/playwright/growth-groupbuy-pricing-v1/action-coverage-report.json","e2e/output/playwright/growth-groupbuy-pricing-v1/action-coverage-report.md","e2e/output/playwright/growth-groupbuy-pricing-v1/blocked-unmapped-pages.json","e2e/output/playwright/growth-groupbuy-pricing-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-segments-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-segments-v2/action-coverage-report.json","e2e/output/playwright/growth-segments-v2/action-coverage-report.md","e2e/output/playwright/growth-segments-v2/blocked-unmapped-pages.json","e2e/output/playwright/growth-segments-v2/probes/-segments-1773750075276.json","e2e/output/playwright/growth-segments-v2/visible-menu-snapshot.json","e2e/playwright-report/data/01283c1528362c00e12351f7e0f8db5f816037e7.md","e2e/playwright-report/data/324ffedd11b224a0791a44b2b2e43373471ce70e.png","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/content-distribution/content-distribution.controller.ts","backend/src/modules/content-distribution/content-distribution.routes.ts","backend/src/modules/content-distribution/content-distribution.schema.ts","docs/contract-governance-3.0.md","docs/reports/governance-experience-2026-03-07.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/results.json","e2e/tests/crud/module-catalog.overrides.ts","frontend/src/api/modules/community-messages.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/avatars/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,"parent":null,"mirror":false,"size":1839621,"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,"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-17T20:35:34+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":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,"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","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/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":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/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
|
24
|
1773751025
|
1773751151
|
0
|
1773751025
|
1773751151
|
NULL
|
|
0
|
Edit
Delete
|
|
6431
|
sync: 同步治理文档与获客/内容/增长中心治理回放产物
|
6
|
5
|
health-check.yml
|
6359
|
-2
|
64
|
refs/heads/main
|
8a1f5fc17b0e1692e9da7c94fc0fd769eff89926
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2732364ba177bf3cf8029788b582f34689d5d9a9","after":"8a1f5fc17b0e1692e9da7c94fc0fd769eff89926","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2732364ba177bf3cf8029788b582f34689d5d9a9...8a1f5fc17b0e1692e9da7c94fc0fd769eff89926","commits":[{"id":"8a1f5fc17b0e1692e9da7c94fc0fd769eff89926","message":"sync: 同步治理文档与获客/内容/增长中心治理回放产物\n\n- 同步四份统一文档(AGENTS/CLAUDE/GEMINI/README)\n- 更新治理经验报告与契约治理 3.0 文档\n- 更新 admin.json 认证夹具\n- 后端修复 content-distribution 模块(controller/routes/schema)\n- 前端修复 community-messages API 模块\n- 新增获客中心治理回放产物 (acquisition-governance-v1~v5)\n - 覆盖归因/渠道/线索/二维码/UTM 等 probes\n- 新增内容中心治理回放产物:\n - content-social-content-v1~v4: 社交内容/内容库\n - content-templates-v1~v2: 内容模板\n- 新增增长中心治理回放产物:\n - growth-community-messages-v1: 社区消息\n - growth-governance-tail-v1~v6: 社区等级/营销工具/细分\n - growth-groupbuy-pricing-v1: 团购定价\n - growth-segments-v1~v2: 用户细分\n- 更新可见菜单写动作配置 (module-catalog.overrides.ts)\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8a1f5fc17b0e1692e9da7c94fc0fd769eff89926","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-17T20:36:51+08:00","added":["e2e/output/playwright/acquisition-governance-v1/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v1/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v1/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v1/probes/-attribution-1773750248508.json","e2e/output/playwright/acquisition-governance-v1/probes/-attribution-models-1773750244916.json","e2e/output/playwright/acquisition-governance-v1/probes/-channel-integrations-1773750228269.json","e2e/output/playwright/acquisition-governance-v1/probes/-channels-1773750225676.json","e2e/output/playwright/acquisition-governance-v1/probes/-lead-pools-1773750223182.json","e2e/output/playwright/acquisition-governance-v1/probes/-lead-qualification-1773750218697.json","e2e/output/playwright/acquisition-governance-v1/probes/-lead-scoring-1773750220904.json","e2e/output/playwright/acquisition-governance-v1/probes/-leads-1773750216441.json","e2e/output/playwright/acquisition-governance-v1/probes/-qr-codes-1773750229812.json","e2e/output/playwright/acquisition-governance-v1/probes/-utm-tracking-1773750231196.json","e2e/output/playwright/acquisition-governance-v1/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v2/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v2/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v2/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v2/probes/-channel-integrations-1773750273145.json","e2e/output/playwright/acquisition-governance-v2/probes/-channels-1773750270510.json","e2e/output/playwright/acquisition-governance-v2/probes/-lead-pools-1773750268034.json","e2e/output/playwright/acquisition-governance-v2/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v3/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v3/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v3/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v3/probes/-channel-integrations-1773750292253.json","e2e/output/playwright/acquisition-governance-v3/probes/-channels-1773750289713.json","e2e/output/playwright/acquisition-governance-v3/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v4/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v4/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v4/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v4/probes/-qr-codes-1773750355274.json","e2e/output/playwright/acquisition-governance-v4/probes/-utm-tracking-1773750356685.json","e2e/output/playwright/acquisition-governance-v4/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v5/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v5/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v5/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v5/probes/-attribution-1773750386093.json","e2e/output/playwright/acquisition-governance-v5/probes/-attribution-models-1773750382566.json","e2e/output/playwright/acquisition-governance-v5/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v1/action-coverage-report.json","e2e/output/playwright/content-social-content-v1/probes/-content-library-1773750524004.json","e2e/output/playwright/content-social-content-v1/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v2/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v3/action-coverage-report.json","e2e/output/playwright/content-social-content-v3/action-coverage-report.md","e2e/output/playwright/content-social-content-v3/blocked-unmapped-pages.json","e2e/output/playwright/content-social-content-v3/failure-1.html","e2e/output/playwright/content-social-content-v3/failure-1.png","e2e/output/playwright/content-social-content-v3/failure-2.html","e2e/output/playwright/content-social-content-v3/failure-2.png","e2e/output/playwright/content-social-content-v3/failure-3.html","e2e/output/playwright/content-social-content-v3/failure-3.png","e2e/output/playwright/content-social-content-v3/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v4/action-coverage-report.json","e2e/output/playwright/content-social-content-v4/action-coverage-report.md","e2e/output/playwright/content-social-content-v4/blocked-unmapped-pages.json","e2e/output/playwright/content-social-content-v4/failure-1.html","e2e/output/playwright/content-social-content-v4/failure-1.png","e2e/output/playwright/content-social-content-v4/failure-2.html","e2e/output/playwright/content-social-content-v4/failure-2.png","e2e/output/playwright/content-social-content-v4/probes/-content-creation-1773750936440.json","e2e/output/playwright/content-social-content-v4/probes/-content-distribution-1773750940988.json","e2e/output/playwright/content-social-content-v4/probes/-email-marketing-1773750939178.json","e2e/output/playwright/content-social-content-v4/visible-menu-snapshot.json","e2e/output/playwright/content-templates-v1/visible-menu-snapshot.json","e2e/output/playwright/content-templates-v2/action-coverage-report.json","e2e/output/playwright/content-templates-v2/action-coverage-report.md","e2e/output/playwright/content-templates-v2/blocked-unmapped-pages.json","e2e/output/playwright/content-templates-v2/probes/-content-templates-1773750715239.json","e2e/output/playwright/content-templates-v2/visible-menu-snapshot.json","e2e/output/playwright/growth-community-messages-v1/action-coverage-report.json","e2e/output/playwright/growth-community-messages-v1/action-coverage-report.md","e2e/output/playwright/growth-community-messages-v1/blocked-unmapped-pages.json","e2e/output/playwright/growth-community-messages-v1/probes/-community-messages-1773749886865.json","e2e/output/playwright/growth-community-messages-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v2/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v2/failure-1.html","e2e/output/playwright/growth-governance-tail-v2/failure-1.png","e2e/output/playwright/growth-governance-tail-v2/failure-2.html","e2e/output/playwright/growth-governance-tail-v2/failure-2.png","e2e/output/playwright/growth-governance-tail-v2/probes/-community-levels-1773749472298.json","e2e/output/playwright/growth-governance-tail-v2/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v3/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v3/failure-1.html","e2e/output/playwright/growth-governance-tail-v3/failure-1.png","e2e/output/playwright/growth-governance-tail-v3/probes/-community-levels-1773749696995.json","e2e/output/playwright/growth-governance-tail-v3/probes/-marketing-tools-1773749700362.json","e2e/output/playwright/growth-governance-tail-v3/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v4/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v4/failure-1.html","e2e/output/playwright/growth-governance-tail-v4/failure-1.png","e2e/output/playwright/growth-governance-tail-v4/probes/-community-levels-1773749913824.json","e2e/output/playwright/growth-governance-tail-v4/probes/-community-messages-1773749916334.json","e2e/output/playwright/growth-governance-tail-v4/probes/-marketing-tools-1773749918891.json","e2e/output/playwright/growth-governance-tail-v4/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v5/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v6/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v6/action-coverage-report.md","e2e/output/playwright/growth-governance-tail-v6/blocked-unmapped-pages.json","e2e/output/playwright/growth-governance-tail-v6/probes/-community-levels-1773750123745.json","e2e/output/playwright/growth-governance-tail-v6/probes/-community-messages-1773750126280.json","e2e/output/playwright/growth-governance-tail-v6/probes/-marketing-tools-1773750128787.json","e2e/output/playwright/growth-governance-tail-v6/probes/-segments-1773750131379.json","e2e/output/playwright/growth-governance-tail-v6/visible-menu-snapshot.json","e2e/output/playwright/growth-groupbuy-pricing-v1/action-coverage-report.json","e2e/output/playwright/growth-groupbuy-pricing-v1/action-coverage-report.md","e2e/output/playwright/growth-groupbuy-pricing-v1/blocked-unmapped-pages.json","e2e/output/playwright/growth-groupbuy-pricing-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-segments-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-segments-v2/action-coverage-report.json","e2e/output/playwright/growth-segments-v2/action-coverage-report.md","e2e/output/playwright/growth-segments-v2/blocked-unmapped-pages.json","e2e/output/playwright/growth-segments-v2/probes/-segments-1773750075276.json","e2e/output/playwright/growth-segments-v2/visible-menu-snapshot.json","e2e/playwright-report/data/01283c1528362c00e12351f7e0f8db5f816037e7.md","e2e/playwright-report/data/324ffedd11b224a0791a44b2b2e43373471ce70e.png","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/content-distribution/content-distribution.controller.ts","backend/src/modules/content-distribution/content-distribution.routes.ts","backend/src/modules/content-distribution/content-distribution.schema.ts","docs/contract-governance-3.0.md","docs/reports/governance-experience-2026-03-07.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/results.json","e2e/tests/crud/module-catalog.overrides.ts","frontend/src/api/modules/community-messages.ts"]}],"total_commits":0,"head_commit":{"id":"8a1f5fc17b0e1692e9da7c94fc0fd769eff89926","message":"sync: 同步治理文档与获客/内容/增长中心治理回放产物\n\n- 同步四份统一文档(AGENTS/CLAUDE/GEMINI/README)\n- 更新治理经验报告与契约治理 3.0 文档\n- 更新 admin.json 认证夹具\n- 后端修复 content-distribution 模块(controller/routes/schema)\n- 前端修复 community-messages API 模块\n- 新增获客中心治理回放产物 (acquisition-governance-v1~v5)\n - 覆盖归因/渠道/线索/二维码/UTM 等 probes\n- 新增内容中心治理回放产物:\n - content-social-content-v1~v4: 社交内容/内容库\n - content-templates-v1~v2: 内容模板\n- 新增增长中心治理回放产物:\n - growth-community-messages-v1: 社区消息\n - growth-governance-tail-v1~v6: 社区等级/营销工具/细分\n - growth-groupbuy-pricing-v1: 团购定价\n - growth-segments-v1~v2: 用户细分\n- 更新可见菜单写动作配置 (module-catalog.overrides.ts)\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8a1f5fc17b0e1692e9da7c94fc0fd769eff89926","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-17T20:36:51+08:00","added":["e2e/output/playwright/acquisition-governance-v1/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v1/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v1/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v1/probes/-attribution-1773750248508.json","e2e/output/playwright/acquisition-governance-v1/probes/-attribution-models-1773750244916.json","e2e/output/playwright/acquisition-governance-v1/probes/-channel-integrations-1773750228269.json","e2e/output/playwright/acquisition-governance-v1/probes/-channels-1773750225676.json","e2e/output/playwright/acquisition-governance-v1/probes/-lead-pools-1773750223182.json","e2e/output/playwright/acquisition-governance-v1/probes/-lead-qualification-1773750218697.json","e2e/output/playwright/acquisition-governance-v1/probes/-lead-scoring-1773750220904.json","e2e/output/playwright/acquisition-governance-v1/probes/-leads-1773750216441.json","e2e/output/playwright/acquisition-governance-v1/probes/-qr-codes-1773750229812.json","e2e/output/playwright/acquisition-governance-v1/probes/-utm-tracking-1773750231196.json","e2e/output/playwright/acquisition-governance-v1/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v2/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v2/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v2/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v2/probes/-channel-integrations-1773750273145.json","e2e/output/playwright/acquisition-governance-v2/probes/-channels-1773750270510.json","e2e/output/playwright/acquisition-governance-v2/probes/-lead-pools-1773750268034.json","e2e/output/playwright/acquisition-governance-v2/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v3/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v3/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v3/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v3/probes/-channel-integrations-1773750292253.json","e2e/output/playwright/acquisition-governance-v3/probes/-channels-1773750289713.json","e2e/output/playwright/acquisition-governance-v3/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v4/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v4/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v4/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v4/probes/-qr-codes-1773750355274.json","e2e/output/playwright/acquisition-governance-v4/probes/-utm-tracking-1773750356685.json","e2e/output/playwright/acquisition-governance-v4/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v5/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v5/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v5/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v5/probes/-attribution-1773750386093.json","e2e/output/playwright/acquisition-governance-v5/probes/-attribution-models-1773750382566.json","e2e/output/playwright/acquisition-governance-v5/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v1/action-coverage-report.json","e2e/output/playwright/content-social-content-v1/probes/-content-library-1773750524004.json","e2e/output/playwright/content-social-content-v1/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v2/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v3/action-coverage-report.json","e2e/output/playwright/content-social-content-v3/action-coverage-report.md","e2e/output/playwright/content-social-content-v3/blocked-unmapped-pages.json","e2e/output/playwright/content-social-content-v3/failure-1.html","e2e/output/playwright/content-social-content-v3/failure-1.png","e2e/output/playwright/content-social-content-v3/failure-2.html","e2e/output/playwright/content-social-content-v3/failure-2.png","e2e/output/playwright/content-social-content-v3/failure-3.html","e2e/output/playwright/content-social-content-v3/failure-3.png","e2e/output/playwright/content-social-content-v3/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v4/action-coverage-report.json","e2e/output/playwright/content-social-content-v4/action-coverage-report.md","e2e/output/playwright/content-social-content-v4/blocked-unmapped-pages.json","e2e/output/playwright/content-social-content-v4/failure-1.html","e2e/output/playwright/content-social-content-v4/failure-1.png","e2e/output/playwright/content-social-content-v4/failure-2.html","e2e/output/playwright/content-social-content-v4/failure-2.png","e2e/output/playwright/content-social-content-v4/probes/-content-creation-1773750936440.json","e2e/output/playwright/content-social-content-v4/probes/-content-distribution-1773750940988.json","e2e/output/playwright/content-social-content-v4/probes/-email-marketing-1773750939178.json","e2e/output/playwright/content-social-content-v4/visible-menu-snapshot.json","e2e/output/playwright/content-templates-v1/visible-menu-snapshot.json","e2e/output/playwright/content-templates-v2/action-coverage-report.json","e2e/output/playwright/content-templates-v2/action-coverage-report.md","e2e/output/playwright/content-templates-v2/blocked-unmapped-pages.json","e2e/output/playwright/content-templates-v2/probes/-content-templates-1773750715239.json","e2e/output/playwright/content-templates-v2/visible-menu-snapshot.json","e2e/output/playwright/growth-community-messages-v1/action-coverage-report.json","e2e/output/playwright/growth-community-messages-v1/action-coverage-report.md","e2e/output/playwright/growth-community-messages-v1/blocked-unmapped-pages.json","e2e/output/playwright/growth-community-messages-v1/probes/-community-messages-1773749886865.json","e2e/output/playwright/growth-community-messages-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v2/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v2/failure-1.html","e2e/output/playwright/growth-governance-tail-v2/failure-1.png","e2e/output/playwright/growth-governance-tail-v2/failure-2.html","e2e/output/playwright/growth-governance-tail-v2/failure-2.png","e2e/output/playwright/growth-governance-tail-v2/probes/-community-levels-1773749472298.json","e2e/output/playwright/growth-governance-tail-v2/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v3/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v3/failure-1.html","e2e/output/playwright/growth-governance-tail-v3/failure-1.png","e2e/output/playwright/growth-governance-tail-v3/probes/-community-levels-1773749696995.json","e2e/output/playwright/growth-governance-tail-v3/probes/-marketing-tools-1773749700362.json","e2e/output/playwright/growth-governance-tail-v3/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v4/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v4/failure-1.html","e2e/output/playwright/growth-governance-tail-v4/failure-1.png","e2e/output/playwright/growth-governance-tail-v4/probes/-community-levels-1773749913824.json","e2e/output/playwright/growth-governance-tail-v4/probes/-community-messages-1773749916334.json","e2e/output/playwright/growth-governance-tail-v4/probes/-marketing-tools-1773749918891.json","e2e/output/playwright/growth-governance-tail-v4/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v5/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v6/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v6/action-coverage-report.md","e2e/output/playwright/growth-governance-tail-v6/blocked-unmapped-pages.json","e2e/output/playwright/growth-governance-tail-v6/probes/-community-levels-1773750123745.json","e2e/output/playwright/growth-governance-tail-v6/probes/-community-messages-1773750126280.json","e2e/output/playwright/growth-governance-tail-v6/probes/-marketing-tools-1773750128787.json","e2e/output/playwright/growth-governance-tail-v6/probes/-segments-1773750131379.json","e2e/output/playwright/growth-governance-tail-v6/visible-menu-snapshot.json","e2e/output/playwright/growth-groupbuy-pricing-v1/action-coverage-report.json","e2e/output/playwright/growth-groupbuy-pricing-v1/action-coverage-report.md","e2e/output/playwright/growth-groupbuy-pricing-v1/blocked-unmapped-pages.json","e2e/output/playwright/growth-groupbuy-pricing-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-segments-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-segments-v2/action-coverage-report.json","e2e/output/playwright/growth-segments-v2/action-coverage-report.md","e2e/output/playwright/growth-segments-v2/blocked-unmapped-pages.json","e2e/output/playwright/growth-segments-v2/probes/-segments-1773750075276.json","e2e/output/playwright/growth-segments-v2/visible-menu-snapshot.json","e2e/playwright-report/data/01283c1528362c00e12351f7e0f8db5f816037e7.md","e2e/playwright-report/data/324ffedd11b224a0791a44b2b2e43373471ce70e.png","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/content-distribution/content-distribution.controller.ts","backend/src/modules/content-distribution/content-distribution.routes.ts","backend/src/modules/content-distribution/content-distribution.schema.ts","docs/contract-governance-3.0.md","docs/reports/governance-experience-2026-03-07.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/results.json","e2e/tests/crud/module-catalog.overrides.ts","frontend/src/api/modules/community-messages.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/avatars/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,"parent":null,"mirror":false,"size":1839621,"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,"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-17T20:35:34+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":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,"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","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/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":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1773751233
|
1773751233
|
0
|
1773751232
|
1773751233
|
NULL
|
|
0
|
Edit
Delete
|
|
6432
|
sync: 同步治理文档与获客/内容/增长中心治理回放产物
|
6
|
5
|
health-check.yml
|
6360
|
-2
|
64
|
refs/heads/main
|
8a1f5fc17b0e1692e9da7c94fc0fd769eff89926
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2732364ba177bf3cf8029788b582f34689d5d9a9","after":"8a1f5fc17b0e1692e9da7c94fc0fd769eff89926","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2732364ba177bf3cf8029788b582f34689d5d9a9...8a1f5fc17b0e1692e9da7c94fc0fd769eff89926","commits":[{"id":"8a1f5fc17b0e1692e9da7c94fc0fd769eff89926","message":"sync: 同步治理文档与获客/内容/增长中心治理回放产物\n\n- 同步四份统一文档(AGENTS/CLAUDE/GEMINI/README)\n- 更新治理经验报告与契约治理 3.0 文档\n- 更新 admin.json 认证夹具\n- 后端修复 content-distribution 模块(controller/routes/schema)\n- 前端修复 community-messages API 模块\n- 新增获客中心治理回放产物 (acquisition-governance-v1~v5)\n - 覆盖归因/渠道/线索/二维码/UTM 等 probes\n- 新增内容中心治理回放产物:\n - content-social-content-v1~v4: 社交内容/内容库\n - content-templates-v1~v2: 内容模板\n- 新增增长中心治理回放产物:\n - growth-community-messages-v1: 社区消息\n - growth-governance-tail-v1~v6: 社区等级/营销工具/细分\n - growth-groupbuy-pricing-v1: 团购定价\n - growth-segments-v1~v2: 用户细分\n- 更新可见菜单写动作配置 (module-catalog.overrides.ts)\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8a1f5fc17b0e1692e9da7c94fc0fd769eff89926","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-17T20:36:51+08:00","added":["e2e/output/playwright/acquisition-governance-v1/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v1/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v1/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v1/probes/-attribution-1773750248508.json","e2e/output/playwright/acquisition-governance-v1/probes/-attribution-models-1773750244916.json","e2e/output/playwright/acquisition-governance-v1/probes/-channel-integrations-1773750228269.json","e2e/output/playwright/acquisition-governance-v1/probes/-channels-1773750225676.json","e2e/output/playwright/acquisition-governance-v1/probes/-lead-pools-1773750223182.json","e2e/output/playwright/acquisition-governance-v1/probes/-lead-qualification-1773750218697.json","e2e/output/playwright/acquisition-governance-v1/probes/-lead-scoring-1773750220904.json","e2e/output/playwright/acquisition-governance-v1/probes/-leads-1773750216441.json","e2e/output/playwright/acquisition-governance-v1/probes/-qr-codes-1773750229812.json","e2e/output/playwright/acquisition-governance-v1/probes/-utm-tracking-1773750231196.json","e2e/output/playwright/acquisition-governance-v1/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v2/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v2/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v2/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v2/probes/-channel-integrations-1773750273145.json","e2e/output/playwright/acquisition-governance-v2/probes/-channels-1773750270510.json","e2e/output/playwright/acquisition-governance-v2/probes/-lead-pools-1773750268034.json","e2e/output/playwright/acquisition-governance-v2/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v3/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v3/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v3/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v3/probes/-channel-integrations-1773750292253.json","e2e/output/playwright/acquisition-governance-v3/probes/-channels-1773750289713.json","e2e/output/playwright/acquisition-governance-v3/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v4/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v4/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v4/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v4/probes/-qr-codes-1773750355274.json","e2e/output/playwright/acquisition-governance-v4/probes/-utm-tracking-1773750356685.json","e2e/output/playwright/acquisition-governance-v4/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v5/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v5/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v5/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v5/probes/-attribution-1773750386093.json","e2e/output/playwright/acquisition-governance-v5/probes/-attribution-models-1773750382566.json","e2e/output/playwright/acquisition-governance-v5/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v1/action-coverage-report.json","e2e/output/playwright/content-social-content-v1/probes/-content-library-1773750524004.json","e2e/output/playwright/content-social-content-v1/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v2/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v3/action-coverage-report.json","e2e/output/playwright/content-social-content-v3/action-coverage-report.md","e2e/output/playwright/content-social-content-v3/blocked-unmapped-pages.json","e2e/output/playwright/content-social-content-v3/failure-1.html","e2e/output/playwright/content-social-content-v3/failure-1.png","e2e/output/playwright/content-social-content-v3/failure-2.html","e2e/output/playwright/content-social-content-v3/failure-2.png","e2e/output/playwright/content-social-content-v3/failure-3.html","e2e/output/playwright/content-social-content-v3/failure-3.png","e2e/output/playwright/content-social-content-v3/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v4/action-coverage-report.json","e2e/output/playwright/content-social-content-v4/action-coverage-report.md","e2e/output/playwright/content-social-content-v4/blocked-unmapped-pages.json","e2e/output/playwright/content-social-content-v4/failure-1.html","e2e/output/playwright/content-social-content-v4/failure-1.png","e2e/output/playwright/content-social-content-v4/failure-2.html","e2e/output/playwright/content-social-content-v4/failure-2.png","e2e/output/playwright/content-social-content-v4/probes/-content-creation-1773750936440.json","e2e/output/playwright/content-social-content-v4/probes/-content-distribution-1773750940988.json","e2e/output/playwright/content-social-content-v4/probes/-email-marketing-1773750939178.json","e2e/output/playwright/content-social-content-v4/visible-menu-snapshot.json","e2e/output/playwright/content-templates-v1/visible-menu-snapshot.json","e2e/output/playwright/content-templates-v2/action-coverage-report.json","e2e/output/playwright/content-templates-v2/action-coverage-report.md","e2e/output/playwright/content-templates-v2/blocked-unmapped-pages.json","e2e/output/playwright/content-templates-v2/probes/-content-templates-1773750715239.json","e2e/output/playwright/content-templates-v2/visible-menu-snapshot.json","e2e/output/playwright/growth-community-messages-v1/action-coverage-report.json","e2e/output/playwright/growth-community-messages-v1/action-coverage-report.md","e2e/output/playwright/growth-community-messages-v1/blocked-unmapped-pages.json","e2e/output/playwright/growth-community-messages-v1/probes/-community-messages-1773749886865.json","e2e/output/playwright/growth-community-messages-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v2/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v2/failure-1.html","e2e/output/playwright/growth-governance-tail-v2/failure-1.png","e2e/output/playwright/growth-governance-tail-v2/failure-2.html","e2e/output/playwright/growth-governance-tail-v2/failure-2.png","e2e/output/playwright/growth-governance-tail-v2/probes/-community-levels-1773749472298.json","e2e/output/playwright/growth-governance-tail-v2/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v3/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v3/failure-1.html","e2e/output/playwright/growth-governance-tail-v3/failure-1.png","e2e/output/playwright/growth-governance-tail-v3/probes/-community-levels-1773749696995.json","e2e/output/playwright/growth-governance-tail-v3/probes/-marketing-tools-1773749700362.json","e2e/output/playwright/growth-governance-tail-v3/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v4/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v4/failure-1.html","e2e/output/playwright/growth-governance-tail-v4/failure-1.png","e2e/output/playwright/growth-governance-tail-v4/probes/-community-levels-1773749913824.json","e2e/output/playwright/growth-governance-tail-v4/probes/-community-messages-1773749916334.json","e2e/output/playwright/growth-governance-tail-v4/probes/-marketing-tools-1773749918891.json","e2e/output/playwright/growth-governance-tail-v4/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v5/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v6/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v6/action-coverage-report.md","e2e/output/playwright/growth-governance-tail-v6/blocked-unmapped-pages.json","e2e/output/playwright/growth-governance-tail-v6/probes/-community-levels-1773750123745.json","e2e/output/playwright/growth-governance-tail-v6/probes/-community-messages-1773750126280.json","e2e/output/playwright/growth-governance-tail-v6/probes/-marketing-tools-1773750128787.json","e2e/output/playwright/growth-governance-tail-v6/probes/-segments-1773750131379.json","e2e/output/playwright/growth-governance-tail-v6/visible-menu-snapshot.json","e2e/output/playwright/growth-groupbuy-pricing-v1/action-coverage-report.json","e2e/output/playwright/growth-groupbuy-pricing-v1/action-coverage-report.md","e2e/output/playwright/growth-groupbuy-pricing-v1/blocked-unmapped-pages.json","e2e/output/playwright/growth-groupbuy-pricing-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-segments-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-segments-v2/action-coverage-report.json","e2e/output/playwright/growth-segments-v2/action-coverage-report.md","e2e/output/playwright/growth-segments-v2/blocked-unmapped-pages.json","e2e/output/playwright/growth-segments-v2/probes/-segments-1773750075276.json","e2e/output/playwright/growth-segments-v2/visible-menu-snapshot.json","e2e/playwright-report/data/01283c1528362c00e12351f7e0f8db5f816037e7.md","e2e/playwright-report/data/324ffedd11b224a0791a44b2b2e43373471ce70e.png","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/content-distribution/content-distribution.controller.ts","backend/src/modules/content-distribution/content-distribution.routes.ts","backend/src/modules/content-distribution/content-distribution.schema.ts","docs/contract-governance-3.0.md","docs/reports/governance-experience-2026-03-07.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/results.json","e2e/tests/crud/module-catalog.overrides.ts","frontend/src/api/modules/community-messages.ts"]}],"total_commits":0,"head_commit":{"id":"8a1f5fc17b0e1692e9da7c94fc0fd769eff89926","message":"sync: 同步治理文档与获客/内容/增长中心治理回放产物\n\n- 同步四份统一文档(AGENTS/CLAUDE/GEMINI/README)\n- 更新治理经验报告与契约治理 3.0 文档\n- 更新 admin.json 认证夹具\n- 后端修复 content-distribution 模块(controller/routes/schema)\n- 前端修复 community-messages API 模块\n- 新增获客中心治理回放产物 (acquisition-governance-v1~v5)\n - 覆盖归因/渠道/线索/二维码/UTM 等 probes\n- 新增内容中心治理回放产物:\n - content-social-content-v1~v4: 社交内容/内容库\n - content-templates-v1~v2: 内容模板\n- 新增增长中心治理回放产物:\n - growth-community-messages-v1: 社区消息\n - growth-governance-tail-v1~v6: 社区等级/营销工具/细分\n - growth-groupbuy-pricing-v1: 团购定价\n - growth-segments-v1~v2: 用户细分\n- 更新可见菜单写动作配置 (module-catalog.overrides.ts)\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8a1f5fc17b0e1692e9da7c94fc0fd769eff89926","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-17T20:36:51+08:00","added":["e2e/output/playwright/acquisition-governance-v1/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v1/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v1/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v1/probes/-attribution-1773750248508.json","e2e/output/playwright/acquisition-governance-v1/probes/-attribution-models-1773750244916.json","e2e/output/playwright/acquisition-governance-v1/probes/-channel-integrations-1773750228269.json","e2e/output/playwright/acquisition-governance-v1/probes/-channels-1773750225676.json","e2e/output/playwright/acquisition-governance-v1/probes/-lead-pools-1773750223182.json","e2e/output/playwright/acquisition-governance-v1/probes/-lead-qualification-1773750218697.json","e2e/output/playwright/acquisition-governance-v1/probes/-lead-scoring-1773750220904.json","e2e/output/playwright/acquisition-governance-v1/probes/-leads-1773750216441.json","e2e/output/playwright/acquisition-governance-v1/probes/-qr-codes-1773750229812.json","e2e/output/playwright/acquisition-governance-v1/probes/-utm-tracking-1773750231196.json","e2e/output/playwright/acquisition-governance-v1/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v2/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v2/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v2/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v2/probes/-channel-integrations-1773750273145.json","e2e/output/playwright/acquisition-governance-v2/probes/-channels-1773750270510.json","e2e/output/playwright/acquisition-governance-v2/probes/-lead-pools-1773750268034.json","e2e/output/playwright/acquisition-governance-v2/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v3/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v3/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v3/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v3/probes/-channel-integrations-1773750292253.json","e2e/output/playwright/acquisition-governance-v3/probes/-channels-1773750289713.json","e2e/output/playwright/acquisition-governance-v3/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v4/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v4/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v4/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v4/probes/-qr-codes-1773750355274.json","e2e/output/playwright/acquisition-governance-v4/probes/-utm-tracking-1773750356685.json","e2e/output/playwright/acquisition-governance-v4/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v5/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v5/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v5/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v5/probes/-attribution-1773750386093.json","e2e/output/playwright/acquisition-governance-v5/probes/-attribution-models-1773750382566.json","e2e/output/playwright/acquisition-governance-v5/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v1/action-coverage-report.json","e2e/output/playwright/content-social-content-v1/probes/-content-library-1773750524004.json","e2e/output/playwright/content-social-content-v1/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v2/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v3/action-coverage-report.json","e2e/output/playwright/content-social-content-v3/action-coverage-report.md","e2e/output/playwright/content-social-content-v3/blocked-unmapped-pages.json","e2e/output/playwright/content-social-content-v3/failure-1.html","e2e/output/playwright/content-social-content-v3/failure-1.png","e2e/output/playwright/content-social-content-v3/failure-2.html","e2e/output/playwright/content-social-content-v3/failure-2.png","e2e/output/playwright/content-social-content-v3/failure-3.html","e2e/output/playwright/content-social-content-v3/failure-3.png","e2e/output/playwright/content-social-content-v3/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v4/action-coverage-report.json","e2e/output/playwright/content-social-content-v4/action-coverage-report.md","e2e/output/playwright/content-social-content-v4/blocked-unmapped-pages.json","e2e/output/playwright/content-social-content-v4/failure-1.html","e2e/output/playwright/content-social-content-v4/failure-1.png","e2e/output/playwright/content-social-content-v4/failure-2.html","e2e/output/playwright/content-social-content-v4/failure-2.png","e2e/output/playwright/content-social-content-v4/probes/-content-creation-1773750936440.json","e2e/output/playwright/content-social-content-v4/probes/-content-distribution-1773750940988.json","e2e/output/playwright/content-social-content-v4/probes/-email-marketing-1773750939178.json","e2e/output/playwright/content-social-content-v4/visible-menu-snapshot.json","e2e/output/playwright/content-templates-v1/visible-menu-snapshot.json","e2e/output/playwright/content-templates-v2/action-coverage-report.json","e2e/output/playwright/content-templates-v2/action-coverage-report.md","e2e/output/playwright/content-templates-v2/blocked-unmapped-pages.json","e2e/output/playwright/content-templates-v2/probes/-content-templates-1773750715239.json","e2e/output/playwright/content-templates-v2/visible-menu-snapshot.json","e2e/output/playwright/growth-community-messages-v1/action-coverage-report.json","e2e/output/playwright/growth-community-messages-v1/action-coverage-report.md","e2e/output/playwright/growth-community-messages-v1/blocked-unmapped-pages.json","e2e/output/playwright/growth-community-messages-v1/probes/-community-messages-1773749886865.json","e2e/output/playwright/growth-community-messages-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v2/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v2/failure-1.html","e2e/output/playwright/growth-governance-tail-v2/failure-1.png","e2e/output/playwright/growth-governance-tail-v2/failure-2.html","e2e/output/playwright/growth-governance-tail-v2/failure-2.png","e2e/output/playwright/growth-governance-tail-v2/probes/-community-levels-1773749472298.json","e2e/output/playwright/growth-governance-tail-v2/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v3/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v3/failure-1.html","e2e/output/playwright/growth-governance-tail-v3/failure-1.png","e2e/output/playwright/growth-governance-tail-v3/probes/-community-levels-1773749696995.json","e2e/output/playwright/growth-governance-tail-v3/probes/-marketing-tools-1773749700362.json","e2e/output/playwright/growth-governance-tail-v3/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v4/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v4/failure-1.html","e2e/output/playwright/growth-governance-tail-v4/failure-1.png","e2e/output/playwright/growth-governance-tail-v4/probes/-community-levels-1773749913824.json","e2e/output/playwright/growth-governance-tail-v4/probes/-community-messages-1773749916334.json","e2e/output/playwright/growth-governance-tail-v4/probes/-marketing-tools-1773749918891.json","e2e/output/playwright/growth-governance-tail-v4/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v5/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v6/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v6/action-coverage-report.md","e2e/output/playwright/growth-governance-tail-v6/blocked-unmapped-pages.json","e2e/output/playwright/growth-governance-tail-v6/probes/-community-levels-1773750123745.json","e2e/output/playwright/growth-governance-tail-v6/probes/-community-messages-1773750126280.json","e2e/output/playwright/growth-governance-tail-v6/probes/-marketing-tools-1773750128787.json","e2e/output/playwright/growth-governance-tail-v6/probes/-segments-1773750131379.json","e2e/output/playwright/growth-governance-tail-v6/visible-menu-snapshot.json","e2e/output/playwright/growth-groupbuy-pricing-v1/action-coverage-report.json","e2e/output/playwright/growth-groupbuy-pricing-v1/action-coverage-report.md","e2e/output/playwright/growth-groupbuy-pricing-v1/blocked-unmapped-pages.json","e2e/output/playwright/growth-groupbuy-pricing-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-segments-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-segments-v2/action-coverage-report.json","e2e/output/playwright/growth-segments-v2/action-coverage-report.md","e2e/output/playwright/growth-segments-v2/blocked-unmapped-pages.json","e2e/output/playwright/growth-segments-v2/probes/-segments-1773750075276.json","e2e/output/playwright/growth-segments-v2/visible-menu-snapshot.json","e2e/playwright-report/data/01283c1528362c00e12351f7e0f8db5f816037e7.md","e2e/playwright-report/data/324ffedd11b224a0791a44b2b2e43373471ce70e.png","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/content-distribution/content-distribution.controller.ts","backend/src/modules/content-distribution/content-distribution.routes.ts","backend/src/modules/content-distribution/content-distribution.schema.ts","docs/contract-governance-3.0.md","docs/reports/governance-experience-2026-03-07.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/results.json","e2e/tests/crud/module-catalog.overrides.ts","frontend/src/api/modules/community-messages.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/avatars/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,"parent":null,"mirror":false,"size":1839621,"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,"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-17T20:35:34+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":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,"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","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/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":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1773751533
|
1773751533
|
0
|
1773751532
|
1773751533
|
NULL
|
|
0
|
Edit
Delete
|
|
6433
|
sync: 同步治理文档与获客/内容/增长中心治理回放产物
|
6
|
5
|
health-check.yml
|
6361
|
-2
|
64
|
refs/heads/main
|
8a1f5fc17b0e1692e9da7c94fc0fd769eff89926
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2732364ba177bf3cf8029788b582f34689d5d9a9","after":"8a1f5fc17b0e1692e9da7c94fc0fd769eff89926","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2732364ba177bf3cf8029788b582f34689d5d9a9...8a1f5fc17b0e1692e9da7c94fc0fd769eff89926","commits":[{"id":"8a1f5fc17b0e1692e9da7c94fc0fd769eff89926","message":"sync: 同步治理文档与获客/内容/增长中心治理回放产物\n\n- 同步四份统一文档(AGENTS/CLAUDE/GEMINI/README)\n- 更新治理经验报告与契约治理 3.0 文档\n- 更新 admin.json 认证夹具\n- 后端修复 content-distribution 模块(controller/routes/schema)\n- 前端修复 community-messages API 模块\n- 新增获客中心治理回放产物 (acquisition-governance-v1~v5)\n - 覆盖归因/渠道/线索/二维码/UTM 等 probes\n- 新增内容中心治理回放产物:\n - content-social-content-v1~v4: 社交内容/内容库\n - content-templates-v1~v2: 内容模板\n- 新增增长中心治理回放产物:\n - growth-community-messages-v1: 社区消息\n - growth-governance-tail-v1~v6: 社区等级/营销工具/细分\n - growth-groupbuy-pricing-v1: 团购定价\n - growth-segments-v1~v2: 用户细分\n- 更新可见菜单写动作配置 (module-catalog.overrides.ts)\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8a1f5fc17b0e1692e9da7c94fc0fd769eff89926","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-17T20:36:51+08:00","added":["e2e/output/playwright/acquisition-governance-v1/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v1/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v1/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v1/probes/-attribution-1773750248508.json","e2e/output/playwright/acquisition-governance-v1/probes/-attribution-models-1773750244916.json","e2e/output/playwright/acquisition-governance-v1/probes/-channel-integrations-1773750228269.json","e2e/output/playwright/acquisition-governance-v1/probes/-channels-1773750225676.json","e2e/output/playwright/acquisition-governance-v1/probes/-lead-pools-1773750223182.json","e2e/output/playwright/acquisition-governance-v1/probes/-lead-qualification-1773750218697.json","e2e/output/playwright/acquisition-governance-v1/probes/-lead-scoring-1773750220904.json","e2e/output/playwright/acquisition-governance-v1/probes/-leads-1773750216441.json","e2e/output/playwright/acquisition-governance-v1/probes/-qr-codes-1773750229812.json","e2e/output/playwright/acquisition-governance-v1/probes/-utm-tracking-1773750231196.json","e2e/output/playwright/acquisition-governance-v1/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v2/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v2/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v2/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v2/probes/-channel-integrations-1773750273145.json","e2e/output/playwright/acquisition-governance-v2/probes/-channels-1773750270510.json","e2e/output/playwright/acquisition-governance-v2/probes/-lead-pools-1773750268034.json","e2e/output/playwright/acquisition-governance-v2/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v3/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v3/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v3/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v3/probes/-channel-integrations-1773750292253.json","e2e/output/playwright/acquisition-governance-v3/probes/-channels-1773750289713.json","e2e/output/playwright/acquisition-governance-v3/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v4/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v4/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v4/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v4/probes/-qr-codes-1773750355274.json","e2e/output/playwright/acquisition-governance-v4/probes/-utm-tracking-1773750356685.json","e2e/output/playwright/acquisition-governance-v4/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v5/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v5/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v5/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v5/probes/-attribution-1773750386093.json","e2e/output/playwright/acquisition-governance-v5/probes/-attribution-models-1773750382566.json","e2e/output/playwright/acquisition-governance-v5/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v1/action-coverage-report.json","e2e/output/playwright/content-social-content-v1/probes/-content-library-1773750524004.json","e2e/output/playwright/content-social-content-v1/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v2/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v3/action-coverage-report.json","e2e/output/playwright/content-social-content-v3/action-coverage-report.md","e2e/output/playwright/content-social-content-v3/blocked-unmapped-pages.json","e2e/output/playwright/content-social-content-v3/failure-1.html","e2e/output/playwright/content-social-content-v3/failure-1.png","e2e/output/playwright/content-social-content-v3/failure-2.html","e2e/output/playwright/content-social-content-v3/failure-2.png","e2e/output/playwright/content-social-content-v3/failure-3.html","e2e/output/playwright/content-social-content-v3/failure-3.png","e2e/output/playwright/content-social-content-v3/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v4/action-coverage-report.json","e2e/output/playwright/content-social-content-v4/action-coverage-report.md","e2e/output/playwright/content-social-content-v4/blocked-unmapped-pages.json","e2e/output/playwright/content-social-content-v4/failure-1.html","e2e/output/playwright/content-social-content-v4/failure-1.png","e2e/output/playwright/content-social-content-v4/failure-2.html","e2e/output/playwright/content-social-content-v4/failure-2.png","e2e/output/playwright/content-social-content-v4/probes/-content-creation-1773750936440.json","e2e/output/playwright/content-social-content-v4/probes/-content-distribution-1773750940988.json","e2e/output/playwright/content-social-content-v4/probes/-email-marketing-1773750939178.json","e2e/output/playwright/content-social-content-v4/visible-menu-snapshot.json","e2e/output/playwright/content-templates-v1/visible-menu-snapshot.json","e2e/output/playwright/content-templates-v2/action-coverage-report.json","e2e/output/playwright/content-templates-v2/action-coverage-report.md","e2e/output/playwright/content-templates-v2/blocked-unmapped-pages.json","e2e/output/playwright/content-templates-v2/probes/-content-templates-1773750715239.json","e2e/output/playwright/content-templates-v2/visible-menu-snapshot.json","e2e/output/playwright/growth-community-messages-v1/action-coverage-report.json","e2e/output/playwright/growth-community-messages-v1/action-coverage-report.md","e2e/output/playwright/growth-community-messages-v1/blocked-unmapped-pages.json","e2e/output/playwright/growth-community-messages-v1/probes/-community-messages-1773749886865.json","e2e/output/playwright/growth-community-messages-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v2/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v2/failure-1.html","e2e/output/playwright/growth-governance-tail-v2/failure-1.png","e2e/output/playwright/growth-governance-tail-v2/failure-2.html","e2e/output/playwright/growth-governance-tail-v2/failure-2.png","e2e/output/playwright/growth-governance-tail-v2/probes/-community-levels-1773749472298.json","e2e/output/playwright/growth-governance-tail-v2/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v3/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v3/failure-1.html","e2e/output/playwright/growth-governance-tail-v3/failure-1.png","e2e/output/playwright/growth-governance-tail-v3/probes/-community-levels-1773749696995.json","e2e/output/playwright/growth-governance-tail-v3/probes/-marketing-tools-1773749700362.json","e2e/output/playwright/growth-governance-tail-v3/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v4/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v4/failure-1.html","e2e/output/playwright/growth-governance-tail-v4/failure-1.png","e2e/output/playwright/growth-governance-tail-v4/probes/-community-levels-1773749913824.json","e2e/output/playwright/growth-governance-tail-v4/probes/-community-messages-1773749916334.json","e2e/output/playwright/growth-governance-tail-v4/probes/-marketing-tools-1773749918891.json","e2e/output/playwright/growth-governance-tail-v4/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v5/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v6/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v6/action-coverage-report.md","e2e/output/playwright/growth-governance-tail-v6/blocked-unmapped-pages.json","e2e/output/playwright/growth-governance-tail-v6/probes/-community-levels-1773750123745.json","e2e/output/playwright/growth-governance-tail-v6/probes/-community-messages-1773750126280.json","e2e/output/playwright/growth-governance-tail-v6/probes/-marketing-tools-1773750128787.json","e2e/output/playwright/growth-governance-tail-v6/probes/-segments-1773750131379.json","e2e/output/playwright/growth-governance-tail-v6/visible-menu-snapshot.json","e2e/output/playwright/growth-groupbuy-pricing-v1/action-coverage-report.json","e2e/output/playwright/growth-groupbuy-pricing-v1/action-coverage-report.md","e2e/output/playwright/growth-groupbuy-pricing-v1/blocked-unmapped-pages.json","e2e/output/playwright/growth-groupbuy-pricing-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-segments-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-segments-v2/action-coverage-report.json","e2e/output/playwright/growth-segments-v2/action-coverage-report.md","e2e/output/playwright/growth-segments-v2/blocked-unmapped-pages.json","e2e/output/playwright/growth-segments-v2/probes/-segments-1773750075276.json","e2e/output/playwright/growth-segments-v2/visible-menu-snapshot.json","e2e/playwright-report/data/01283c1528362c00e12351f7e0f8db5f816037e7.md","e2e/playwright-report/data/324ffedd11b224a0791a44b2b2e43373471ce70e.png","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/content-distribution/content-distribution.controller.ts","backend/src/modules/content-distribution/content-distribution.routes.ts","backend/src/modules/content-distribution/content-distribution.schema.ts","docs/contract-governance-3.0.md","docs/reports/governance-experience-2026-03-07.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/results.json","e2e/tests/crud/module-catalog.overrides.ts","frontend/src/api/modules/community-messages.ts"]}],"total_commits":0,"head_commit":{"id":"8a1f5fc17b0e1692e9da7c94fc0fd769eff89926","message":"sync: 同步治理文档与获客/内容/增长中心治理回放产物\n\n- 同步四份统一文档(AGENTS/CLAUDE/GEMINI/README)\n- 更新治理经验报告与契约治理 3.0 文档\n- 更新 admin.json 认证夹具\n- 后端修复 content-distribution 模块(controller/routes/schema)\n- 前端修复 community-messages API 模块\n- 新增获客中心治理回放产物 (acquisition-governance-v1~v5)\n - 覆盖归因/渠道/线索/二维码/UTM 等 probes\n- 新增内容中心治理回放产物:\n - content-social-content-v1~v4: 社交内容/内容库\n - content-templates-v1~v2: 内容模板\n- 新增增长中心治理回放产物:\n - growth-community-messages-v1: 社区消息\n - growth-governance-tail-v1~v6: 社区等级/营销工具/细分\n - growth-groupbuy-pricing-v1: 团购定价\n - growth-segments-v1~v2: 用户细分\n- 更新可见菜单写动作配置 (module-catalog.overrides.ts)\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8a1f5fc17b0e1692e9da7c94fc0fd769eff89926","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-17T20:36:51+08:00","added":["e2e/output/playwright/acquisition-governance-v1/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v1/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v1/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v1/probes/-attribution-1773750248508.json","e2e/output/playwright/acquisition-governance-v1/probes/-attribution-models-1773750244916.json","e2e/output/playwright/acquisition-governance-v1/probes/-channel-integrations-1773750228269.json","e2e/output/playwright/acquisition-governance-v1/probes/-channels-1773750225676.json","e2e/output/playwright/acquisition-governance-v1/probes/-lead-pools-1773750223182.json","e2e/output/playwright/acquisition-governance-v1/probes/-lead-qualification-1773750218697.json","e2e/output/playwright/acquisition-governance-v1/probes/-lead-scoring-1773750220904.json","e2e/output/playwright/acquisition-governance-v1/probes/-leads-1773750216441.json","e2e/output/playwright/acquisition-governance-v1/probes/-qr-codes-1773750229812.json","e2e/output/playwright/acquisition-governance-v1/probes/-utm-tracking-1773750231196.json","e2e/output/playwright/acquisition-governance-v1/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v2/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v2/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v2/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v2/probes/-channel-integrations-1773750273145.json","e2e/output/playwright/acquisition-governance-v2/probes/-channels-1773750270510.json","e2e/output/playwright/acquisition-governance-v2/probes/-lead-pools-1773750268034.json","e2e/output/playwright/acquisition-governance-v2/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v3/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v3/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v3/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v3/probes/-channel-integrations-1773750292253.json","e2e/output/playwright/acquisition-governance-v3/probes/-channels-1773750289713.json","e2e/output/playwright/acquisition-governance-v3/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v4/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v4/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v4/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v4/probes/-qr-codes-1773750355274.json","e2e/output/playwright/acquisition-governance-v4/probes/-utm-tracking-1773750356685.json","e2e/output/playwright/acquisition-governance-v4/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v5/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v5/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v5/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v5/probes/-attribution-1773750386093.json","e2e/output/playwright/acquisition-governance-v5/probes/-attribution-models-1773750382566.json","e2e/output/playwright/acquisition-governance-v5/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v1/action-coverage-report.json","e2e/output/playwright/content-social-content-v1/probes/-content-library-1773750524004.json","e2e/output/playwright/content-social-content-v1/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v2/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v3/action-coverage-report.json","e2e/output/playwright/content-social-content-v3/action-coverage-report.md","e2e/output/playwright/content-social-content-v3/blocked-unmapped-pages.json","e2e/output/playwright/content-social-content-v3/failure-1.html","e2e/output/playwright/content-social-content-v3/failure-1.png","e2e/output/playwright/content-social-content-v3/failure-2.html","e2e/output/playwright/content-social-content-v3/failure-2.png","e2e/output/playwright/content-social-content-v3/failure-3.html","e2e/output/playwright/content-social-content-v3/failure-3.png","e2e/output/playwright/content-social-content-v3/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v4/action-coverage-report.json","e2e/output/playwright/content-social-content-v4/action-coverage-report.md","e2e/output/playwright/content-social-content-v4/blocked-unmapped-pages.json","e2e/output/playwright/content-social-content-v4/failure-1.html","e2e/output/playwright/content-social-content-v4/failure-1.png","e2e/output/playwright/content-social-content-v4/failure-2.html","e2e/output/playwright/content-social-content-v4/failure-2.png","e2e/output/playwright/content-social-content-v4/probes/-content-creation-1773750936440.json","e2e/output/playwright/content-social-content-v4/probes/-content-distribution-1773750940988.json","e2e/output/playwright/content-social-content-v4/probes/-email-marketing-1773750939178.json","e2e/output/playwright/content-social-content-v4/visible-menu-snapshot.json","e2e/output/playwright/content-templates-v1/visible-menu-snapshot.json","e2e/output/playwright/content-templates-v2/action-coverage-report.json","e2e/output/playwright/content-templates-v2/action-coverage-report.md","e2e/output/playwright/content-templates-v2/blocked-unmapped-pages.json","e2e/output/playwright/content-templates-v2/probes/-content-templates-1773750715239.json","e2e/output/playwright/content-templates-v2/visible-menu-snapshot.json","e2e/output/playwright/growth-community-messages-v1/action-coverage-report.json","e2e/output/playwright/growth-community-messages-v1/action-coverage-report.md","e2e/output/playwright/growth-community-messages-v1/blocked-unmapped-pages.json","e2e/output/playwright/growth-community-messages-v1/probes/-community-messages-1773749886865.json","e2e/output/playwright/growth-community-messages-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v2/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v2/failure-1.html","e2e/output/playwright/growth-governance-tail-v2/failure-1.png","e2e/output/playwright/growth-governance-tail-v2/failure-2.html","e2e/output/playwright/growth-governance-tail-v2/failure-2.png","e2e/output/playwright/growth-governance-tail-v2/probes/-community-levels-1773749472298.json","e2e/output/playwright/growth-governance-tail-v2/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v3/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v3/failure-1.html","e2e/output/playwright/growth-governance-tail-v3/failure-1.png","e2e/output/playwright/growth-governance-tail-v3/probes/-community-levels-1773749696995.json","e2e/output/playwright/growth-governance-tail-v3/probes/-marketing-tools-1773749700362.json","e2e/output/playwright/growth-governance-tail-v3/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v4/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v4/failure-1.html","e2e/output/playwright/growth-governance-tail-v4/failure-1.png","e2e/output/playwright/growth-governance-tail-v4/probes/-community-levels-1773749913824.json","e2e/output/playwright/growth-governance-tail-v4/probes/-community-messages-1773749916334.json","e2e/output/playwright/growth-governance-tail-v4/probes/-marketing-tools-1773749918891.json","e2e/output/playwright/growth-governance-tail-v4/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v5/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v6/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v6/action-coverage-report.md","e2e/output/playwright/growth-governance-tail-v6/blocked-unmapped-pages.json","e2e/output/playwright/growth-governance-tail-v6/probes/-community-levels-1773750123745.json","e2e/output/playwright/growth-governance-tail-v6/probes/-community-messages-1773750126280.json","e2e/output/playwright/growth-governance-tail-v6/probes/-marketing-tools-1773750128787.json","e2e/output/playwright/growth-governance-tail-v6/probes/-segments-1773750131379.json","e2e/output/playwright/growth-governance-tail-v6/visible-menu-snapshot.json","e2e/output/playwright/growth-groupbuy-pricing-v1/action-coverage-report.json","e2e/output/playwright/growth-groupbuy-pricing-v1/action-coverage-report.md","e2e/output/playwright/growth-groupbuy-pricing-v1/blocked-unmapped-pages.json","e2e/output/playwright/growth-groupbuy-pricing-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-segments-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-segments-v2/action-coverage-report.json","e2e/output/playwright/growth-segments-v2/action-coverage-report.md","e2e/output/playwright/growth-segments-v2/blocked-unmapped-pages.json","e2e/output/playwright/growth-segments-v2/probes/-segments-1773750075276.json","e2e/output/playwright/growth-segments-v2/visible-menu-snapshot.json","e2e/playwright-report/data/01283c1528362c00e12351f7e0f8db5f816037e7.md","e2e/playwright-report/data/324ffedd11b224a0791a44b2b2e43373471ce70e.png","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/content-distribution/content-distribution.controller.ts","backend/src/modules/content-distribution/content-distribution.routes.ts","backend/src/modules/content-distribution/content-distribution.schema.ts","docs/contract-governance-3.0.md","docs/reports/governance-experience-2026-03-07.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/results.json","e2e/tests/crud/module-catalog.overrides.ts","frontend/src/api/modules/community-messages.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/avatars/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,"parent":null,"mirror":false,"size":1839621,"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,"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-17T20:35:34+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":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,"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","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/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":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1773751833
|
1773751833
|
0
|
1773751832
|
1773751833
|
NULL
|
|
0
|
Edit
Delete
|
|
6434
|
sync: 同步治理文档与获客/内容/增长中心治理回放产物
|
6
|
5
|
health-check.yml
|
6362
|
-2
|
64
|
refs/heads/main
|
8a1f5fc17b0e1692e9da7c94fc0fd769eff89926
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2732364ba177bf3cf8029788b582f34689d5d9a9","after":"8a1f5fc17b0e1692e9da7c94fc0fd769eff89926","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2732364ba177bf3cf8029788b582f34689d5d9a9...8a1f5fc17b0e1692e9da7c94fc0fd769eff89926","commits":[{"id":"8a1f5fc17b0e1692e9da7c94fc0fd769eff89926","message":"sync: 同步治理文档与获客/内容/增长中心治理回放产物\n\n- 同步四份统一文档(AGENTS/CLAUDE/GEMINI/README)\n- 更新治理经验报告与契约治理 3.0 文档\n- 更新 admin.json 认证夹具\n- 后端修复 content-distribution 模块(controller/routes/schema)\n- 前端修复 community-messages API 模块\n- 新增获客中心治理回放产物 (acquisition-governance-v1~v5)\n - 覆盖归因/渠道/线索/二维码/UTM 等 probes\n- 新增内容中心治理回放产物:\n - content-social-content-v1~v4: 社交内容/内容库\n - content-templates-v1~v2: 内容模板\n- 新增增长中心治理回放产物:\n - growth-community-messages-v1: 社区消息\n - growth-governance-tail-v1~v6: 社区等级/营销工具/细分\n - growth-groupbuy-pricing-v1: 团购定价\n - growth-segments-v1~v2: 用户细分\n- 更新可见菜单写动作配置 (module-catalog.overrides.ts)\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8a1f5fc17b0e1692e9da7c94fc0fd769eff89926","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-17T20:36:51+08:00","added":["e2e/output/playwright/acquisition-governance-v1/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v1/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v1/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v1/probes/-attribution-1773750248508.json","e2e/output/playwright/acquisition-governance-v1/probes/-attribution-models-1773750244916.json","e2e/output/playwright/acquisition-governance-v1/probes/-channel-integrations-1773750228269.json","e2e/output/playwright/acquisition-governance-v1/probes/-channels-1773750225676.json","e2e/output/playwright/acquisition-governance-v1/probes/-lead-pools-1773750223182.json","e2e/output/playwright/acquisition-governance-v1/probes/-lead-qualification-1773750218697.json","e2e/output/playwright/acquisition-governance-v1/probes/-lead-scoring-1773750220904.json","e2e/output/playwright/acquisition-governance-v1/probes/-leads-1773750216441.json","e2e/output/playwright/acquisition-governance-v1/probes/-qr-codes-1773750229812.json","e2e/output/playwright/acquisition-governance-v1/probes/-utm-tracking-1773750231196.json","e2e/output/playwright/acquisition-governance-v1/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v2/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v2/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v2/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v2/probes/-channel-integrations-1773750273145.json","e2e/output/playwright/acquisition-governance-v2/probes/-channels-1773750270510.json","e2e/output/playwright/acquisition-governance-v2/probes/-lead-pools-1773750268034.json","e2e/output/playwright/acquisition-governance-v2/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v3/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v3/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v3/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v3/probes/-channel-integrations-1773750292253.json","e2e/output/playwright/acquisition-governance-v3/probes/-channels-1773750289713.json","e2e/output/playwright/acquisition-governance-v3/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v4/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v4/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v4/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v4/probes/-qr-codes-1773750355274.json","e2e/output/playwright/acquisition-governance-v4/probes/-utm-tracking-1773750356685.json","e2e/output/playwright/acquisition-governance-v4/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v5/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v5/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v5/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v5/probes/-attribution-1773750386093.json","e2e/output/playwright/acquisition-governance-v5/probes/-attribution-models-1773750382566.json","e2e/output/playwright/acquisition-governance-v5/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v1/action-coverage-report.json","e2e/output/playwright/content-social-content-v1/probes/-content-library-1773750524004.json","e2e/output/playwright/content-social-content-v1/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v2/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v3/action-coverage-report.json","e2e/output/playwright/content-social-content-v3/action-coverage-report.md","e2e/output/playwright/content-social-content-v3/blocked-unmapped-pages.json","e2e/output/playwright/content-social-content-v3/failure-1.html","e2e/output/playwright/content-social-content-v3/failure-1.png","e2e/output/playwright/content-social-content-v3/failure-2.html","e2e/output/playwright/content-social-content-v3/failure-2.png","e2e/output/playwright/content-social-content-v3/failure-3.html","e2e/output/playwright/content-social-content-v3/failure-3.png","e2e/output/playwright/content-social-content-v3/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v4/action-coverage-report.json","e2e/output/playwright/content-social-content-v4/action-coverage-report.md","e2e/output/playwright/content-social-content-v4/blocked-unmapped-pages.json","e2e/output/playwright/content-social-content-v4/failure-1.html","e2e/output/playwright/content-social-content-v4/failure-1.png","e2e/output/playwright/content-social-content-v4/failure-2.html","e2e/output/playwright/content-social-content-v4/failure-2.png","e2e/output/playwright/content-social-content-v4/probes/-content-creation-1773750936440.json","e2e/output/playwright/content-social-content-v4/probes/-content-distribution-1773750940988.json","e2e/output/playwright/content-social-content-v4/probes/-email-marketing-1773750939178.json","e2e/output/playwright/content-social-content-v4/visible-menu-snapshot.json","e2e/output/playwright/content-templates-v1/visible-menu-snapshot.json","e2e/output/playwright/content-templates-v2/action-coverage-report.json","e2e/output/playwright/content-templates-v2/action-coverage-report.md","e2e/output/playwright/content-templates-v2/blocked-unmapped-pages.json","e2e/output/playwright/content-templates-v2/probes/-content-templates-1773750715239.json","e2e/output/playwright/content-templates-v2/visible-menu-snapshot.json","e2e/output/playwright/growth-community-messages-v1/action-coverage-report.json","e2e/output/playwright/growth-community-messages-v1/action-coverage-report.md","e2e/output/playwright/growth-community-messages-v1/blocked-unmapped-pages.json","e2e/output/playwright/growth-community-messages-v1/probes/-community-messages-1773749886865.json","e2e/output/playwright/growth-community-messages-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v2/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v2/failure-1.html","e2e/output/playwright/growth-governance-tail-v2/failure-1.png","e2e/output/playwright/growth-governance-tail-v2/failure-2.html","e2e/output/playwright/growth-governance-tail-v2/failure-2.png","e2e/output/playwright/growth-governance-tail-v2/probes/-community-levels-1773749472298.json","e2e/output/playwright/growth-governance-tail-v2/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v3/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v3/failure-1.html","e2e/output/playwright/growth-governance-tail-v3/failure-1.png","e2e/output/playwright/growth-governance-tail-v3/probes/-community-levels-1773749696995.json","e2e/output/playwright/growth-governance-tail-v3/probes/-marketing-tools-1773749700362.json","e2e/output/playwright/growth-governance-tail-v3/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v4/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v4/failure-1.html","e2e/output/playwright/growth-governance-tail-v4/failure-1.png","e2e/output/playwright/growth-governance-tail-v4/probes/-community-levels-1773749913824.json","e2e/output/playwright/growth-governance-tail-v4/probes/-community-messages-1773749916334.json","e2e/output/playwright/growth-governance-tail-v4/probes/-marketing-tools-1773749918891.json","e2e/output/playwright/growth-governance-tail-v4/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v5/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v6/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v6/action-coverage-report.md","e2e/output/playwright/growth-governance-tail-v6/blocked-unmapped-pages.json","e2e/output/playwright/growth-governance-tail-v6/probes/-community-levels-1773750123745.json","e2e/output/playwright/growth-governance-tail-v6/probes/-community-messages-1773750126280.json","e2e/output/playwright/growth-governance-tail-v6/probes/-marketing-tools-1773750128787.json","e2e/output/playwright/growth-governance-tail-v6/probes/-segments-1773750131379.json","e2e/output/playwright/growth-governance-tail-v6/visible-menu-snapshot.json","e2e/output/playwright/growth-groupbuy-pricing-v1/action-coverage-report.json","e2e/output/playwright/growth-groupbuy-pricing-v1/action-coverage-report.md","e2e/output/playwright/growth-groupbuy-pricing-v1/blocked-unmapped-pages.json","e2e/output/playwright/growth-groupbuy-pricing-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-segments-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-segments-v2/action-coverage-report.json","e2e/output/playwright/growth-segments-v2/action-coverage-report.md","e2e/output/playwright/growth-segments-v2/blocked-unmapped-pages.json","e2e/output/playwright/growth-segments-v2/probes/-segments-1773750075276.json","e2e/output/playwright/growth-segments-v2/visible-menu-snapshot.json","e2e/playwright-report/data/01283c1528362c00e12351f7e0f8db5f816037e7.md","e2e/playwright-report/data/324ffedd11b224a0791a44b2b2e43373471ce70e.png","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/content-distribution/content-distribution.controller.ts","backend/src/modules/content-distribution/content-distribution.routes.ts","backend/src/modules/content-distribution/content-distribution.schema.ts","docs/contract-governance-3.0.md","docs/reports/governance-experience-2026-03-07.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/results.json","e2e/tests/crud/module-catalog.overrides.ts","frontend/src/api/modules/community-messages.ts"]}],"total_commits":0,"head_commit":{"id":"8a1f5fc17b0e1692e9da7c94fc0fd769eff89926","message":"sync: 同步治理文档与获客/内容/增长中心治理回放产物\n\n- 同步四份统一文档(AGENTS/CLAUDE/GEMINI/README)\n- 更新治理经验报告与契约治理 3.0 文档\n- 更新 admin.json 认证夹具\n- 后端修复 content-distribution 模块(controller/routes/schema)\n- 前端修复 community-messages API 模块\n- 新增获客中心治理回放产物 (acquisition-governance-v1~v5)\n - 覆盖归因/渠道/线索/二维码/UTM 等 probes\n- 新增内容中心治理回放产物:\n - content-social-content-v1~v4: 社交内容/内容库\n - content-templates-v1~v2: 内容模板\n- 新增增长中心治理回放产物:\n - growth-community-messages-v1: 社区消息\n - growth-governance-tail-v1~v6: 社区等级/营销工具/细分\n - growth-groupbuy-pricing-v1: 团购定价\n - growth-segments-v1~v2: 用户细分\n- 更新可见菜单写动作配置 (module-catalog.overrides.ts)\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8a1f5fc17b0e1692e9da7c94fc0fd769eff89926","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-17T20:36:51+08:00","added":["e2e/output/playwright/acquisition-governance-v1/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v1/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v1/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v1/probes/-attribution-1773750248508.json","e2e/output/playwright/acquisition-governance-v1/probes/-attribution-models-1773750244916.json","e2e/output/playwright/acquisition-governance-v1/probes/-channel-integrations-1773750228269.json","e2e/output/playwright/acquisition-governance-v1/probes/-channels-1773750225676.json","e2e/output/playwright/acquisition-governance-v1/probes/-lead-pools-1773750223182.json","e2e/output/playwright/acquisition-governance-v1/probes/-lead-qualification-1773750218697.json","e2e/output/playwright/acquisition-governance-v1/probes/-lead-scoring-1773750220904.json","e2e/output/playwright/acquisition-governance-v1/probes/-leads-1773750216441.json","e2e/output/playwright/acquisition-governance-v1/probes/-qr-codes-1773750229812.json","e2e/output/playwright/acquisition-governance-v1/probes/-utm-tracking-1773750231196.json","e2e/output/playwright/acquisition-governance-v1/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v2/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v2/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v2/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v2/probes/-channel-integrations-1773750273145.json","e2e/output/playwright/acquisition-governance-v2/probes/-channels-1773750270510.json","e2e/output/playwright/acquisition-governance-v2/probes/-lead-pools-1773750268034.json","e2e/output/playwright/acquisition-governance-v2/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v3/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v3/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v3/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v3/probes/-channel-integrations-1773750292253.json","e2e/output/playwright/acquisition-governance-v3/probes/-channels-1773750289713.json","e2e/output/playwright/acquisition-governance-v3/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v4/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v4/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v4/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v4/probes/-qr-codes-1773750355274.json","e2e/output/playwright/acquisition-governance-v4/probes/-utm-tracking-1773750356685.json","e2e/output/playwright/acquisition-governance-v4/visible-menu-snapshot.json","e2e/output/playwright/acquisition-governance-v5/action-coverage-report.json","e2e/output/playwright/acquisition-governance-v5/action-coverage-report.md","e2e/output/playwright/acquisition-governance-v5/blocked-unmapped-pages.json","e2e/output/playwright/acquisition-governance-v5/probes/-attribution-1773750386093.json","e2e/output/playwright/acquisition-governance-v5/probes/-attribution-models-1773750382566.json","e2e/output/playwright/acquisition-governance-v5/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v1/action-coverage-report.json","e2e/output/playwright/content-social-content-v1/probes/-content-library-1773750524004.json","e2e/output/playwright/content-social-content-v1/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v2/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v3/action-coverage-report.json","e2e/output/playwright/content-social-content-v3/action-coverage-report.md","e2e/output/playwright/content-social-content-v3/blocked-unmapped-pages.json","e2e/output/playwright/content-social-content-v3/failure-1.html","e2e/output/playwright/content-social-content-v3/failure-1.png","e2e/output/playwright/content-social-content-v3/failure-2.html","e2e/output/playwright/content-social-content-v3/failure-2.png","e2e/output/playwright/content-social-content-v3/failure-3.html","e2e/output/playwright/content-social-content-v3/failure-3.png","e2e/output/playwright/content-social-content-v3/visible-menu-snapshot.json","e2e/output/playwright/content-social-content-v4/action-coverage-report.json","e2e/output/playwright/content-social-content-v4/action-coverage-report.md","e2e/output/playwright/content-social-content-v4/blocked-unmapped-pages.json","e2e/output/playwright/content-social-content-v4/failure-1.html","e2e/output/playwright/content-social-content-v4/failure-1.png","e2e/output/playwright/content-social-content-v4/failure-2.html","e2e/output/playwright/content-social-content-v4/failure-2.png","e2e/output/playwright/content-social-content-v4/probes/-content-creation-1773750936440.json","e2e/output/playwright/content-social-content-v4/probes/-content-distribution-1773750940988.json","e2e/output/playwright/content-social-content-v4/probes/-email-marketing-1773750939178.json","e2e/output/playwright/content-social-content-v4/visible-menu-snapshot.json","e2e/output/playwright/content-templates-v1/visible-menu-snapshot.json","e2e/output/playwright/content-templates-v2/action-coverage-report.json","e2e/output/playwright/content-templates-v2/action-coverage-report.md","e2e/output/playwright/content-templates-v2/blocked-unmapped-pages.json","e2e/output/playwright/content-templates-v2/probes/-content-templates-1773750715239.json","e2e/output/playwright/content-templates-v2/visible-menu-snapshot.json","e2e/output/playwright/growth-community-messages-v1/action-coverage-report.json","e2e/output/playwright/growth-community-messages-v1/action-coverage-report.md","e2e/output/playwright/growth-community-messages-v1/blocked-unmapped-pages.json","e2e/output/playwright/growth-community-messages-v1/probes/-community-messages-1773749886865.json","e2e/output/playwright/growth-community-messages-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v2/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v2/failure-1.html","e2e/output/playwright/growth-governance-tail-v2/failure-1.png","e2e/output/playwright/growth-governance-tail-v2/failure-2.html","e2e/output/playwright/growth-governance-tail-v2/failure-2.png","e2e/output/playwright/growth-governance-tail-v2/probes/-community-levels-1773749472298.json","e2e/output/playwright/growth-governance-tail-v2/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v3/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v3/failure-1.html","e2e/output/playwright/growth-governance-tail-v3/failure-1.png","e2e/output/playwright/growth-governance-tail-v3/probes/-community-levels-1773749696995.json","e2e/output/playwright/growth-governance-tail-v3/probes/-marketing-tools-1773749700362.json","e2e/output/playwright/growth-governance-tail-v3/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v4/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v4/failure-1.html","e2e/output/playwright/growth-governance-tail-v4/failure-1.png","e2e/output/playwright/growth-governance-tail-v4/probes/-community-levels-1773749913824.json","e2e/output/playwright/growth-governance-tail-v4/probes/-community-messages-1773749916334.json","e2e/output/playwright/growth-governance-tail-v4/probes/-marketing-tools-1773749918891.json","e2e/output/playwright/growth-governance-tail-v4/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v5/visible-menu-snapshot.json","e2e/output/playwright/growth-governance-tail-v6/action-coverage-report.json","e2e/output/playwright/growth-governance-tail-v6/action-coverage-report.md","e2e/output/playwright/growth-governance-tail-v6/blocked-unmapped-pages.json","e2e/output/playwright/growth-governance-tail-v6/probes/-community-levels-1773750123745.json","e2e/output/playwright/growth-governance-tail-v6/probes/-community-messages-1773750126280.json","e2e/output/playwright/growth-governance-tail-v6/probes/-marketing-tools-1773750128787.json","e2e/output/playwright/growth-governance-tail-v6/probes/-segments-1773750131379.json","e2e/output/playwright/growth-governance-tail-v6/visible-menu-snapshot.json","e2e/output/playwright/growth-groupbuy-pricing-v1/action-coverage-report.json","e2e/output/playwright/growth-groupbuy-pricing-v1/action-coverage-report.md","e2e/output/playwright/growth-groupbuy-pricing-v1/blocked-unmapped-pages.json","e2e/output/playwright/growth-groupbuy-pricing-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-segments-v1/visible-menu-snapshot.json","e2e/output/playwright/growth-segments-v2/action-coverage-report.json","e2e/output/playwright/growth-segments-v2/action-coverage-report.md","e2e/output/playwright/growth-segments-v2/blocked-unmapped-pages.json","e2e/output/playwright/growth-segments-v2/probes/-segments-1773750075276.json","e2e/output/playwright/growth-segments-v2/visible-menu-snapshot.json","e2e/playwright-report/data/01283c1528362c00e12351f7e0f8db5f816037e7.md","e2e/playwright-report/data/324ffedd11b224a0791a44b2b2e43373471ce70e.png","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/content-distribution/content-distribution.controller.ts","backend/src/modules/content-distribution/content-distribution.routes.ts","backend/src/modules/content-distribution/content-distribution.schema.ts","docs/contract-governance-3.0.md","docs/reports/governance-experience-2026-03-07.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/results.json","e2e/tests/crud/module-catalog.overrides.ts","frontend/src/api/modules/community-messages.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/avatars/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,"parent":null,"mirror":false,"size":1839621,"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,"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-17T20:35:34+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":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,"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","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/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":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1773752133
|
1773752133
|
0
|
1773752132
|
1773752133
|
NULL
|
|
0
|
Edit
Delete
|
|
6286
|
测试提交内容
|
2
|
2
|
hello-world.yaml
|
41
|
1
|
0
|
refs/heads/main
|
e8a92e1ba30259f2607d811af202d67a1e14c6f6
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"29b5655925cbfa8c56c5447ee5bb8dc020b74c5b","after":"e8a92e1ba30259f2607d811af202d67a1e14c6f6","compare_url":"https://gitea.g-hi.com/juhai/testpc/compare/29b5655925cbfa8c56c5447ee5bb8dc020b74c5b...e8a92e1ba30259f2607d811af202d67a1e14c6f6","commits":[{"id":"e8a92e1ba30259f2607d811af202d67a1e14c6f6","message":"测试提交内容\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/e8a92e1ba30259f2607d811af202d67a1e14c6f6","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-03-17T10:16:14+08:00","added":[],"removed":[],"modified":["pc/index.php"]}],"total_commits":0,"head_commit":{"id":"e8a92e1ba30259f2607d811af202d67a1e14c6f6","message":"测试提交内容\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/e8a92e1ba30259f2607d811af202d67a1e14c6f6","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-03-17T10:16:14+08:00","added":[],"removed":[],"modified":["pc/index.php"]},"repository":{"id":2,"owner":{"id":2,"login":"juhai","login_name":"","source_id":0,"full_name":"","email":"","avatar_url":"https://gitea.g-hi.com/avatars/8edeea9a6ada1d3d48db9231e9328f15","html_url":"https://gitea.g-hi.com/juhai","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T15:37:00+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"private","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"juhai"},"name":"testpc","full_name":"juhai/testpc","description":"pc测试环境","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":17780,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/juhai/testpc/languages","html_url":"https://gitea.g-hi.com/juhai/testpc","url":"https://gitea.g-hi.com/api/v1/repos/juhai/testpc","link":"","ssh_url":"git@gitea.g-hi.com:juhai/testpc.git","clone_url":"https://gitea.g-hi.com/juhai/testpc.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":2,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-06T13:52:11+08:00","updated_at":"2026-03-16T20:25:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":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,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":true,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":1,"login":"zhangjunnan","login_name":"","source_id":0,"full_name":"","email":"zhangjunnan@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/db7dcb12d6f370df9341167b55583f8b","html_url":"https://gitea.g-hi.com/zhangjunnan","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T15:36:25+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":"zhangjunnan"},"sender":{"id":1,"login":"zhangjunnan","login_name":"","source_id":0,"full_name":"","email":"zhangjunnan@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/db7dcb12d6f370df9341167b55583f8b","html_url":"https://gitea.g-hi.com/zhangjunnan","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T15:36:25+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":"zhangjunnan"}}...
|
push
|
1
|
3
|
1773713784
|
1773713787
|
0
|
1773713783
|
1773713787
|
NULL
|
|
0
|
Edit
Delete
|
|
24
|
test111888899s
|
2
|
2
|
hello-world.yaml
|
23
|
1
|
0
|
refs/heads/main
|
f98b8cb65887cd9ea97ec74d24dca6f43e8f15ff
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2ac24ff0484bc4a60c5bfed9495a83a4e337f27b","after":"f98b8cb65887cd9ea97ec74d24dca6f43e8f15ff","compare_url":"https://gitea.g-hi.com/juhai/testpc/compare/2ac24ff0484bc4a60c5bfed9495a83a4e337f27b...f98b8cb65887cd9ea97ec74d24dca6f43e8f15ff","commits":[{"id":"f98b8cb65887cd9ea97ec74d24dca6f43e8f15ff","message":"test111888899s\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/f98b8cb65887cd9ea97ec74d24dca6f43e8f15ff","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-12T16:37:48+08:00","added":[],"removed":[],"modified":["pc/kg.php"]}],"total_commits":0,"head_commit":{"id":"f98b8cb65887cd9ea97ec74d24dca6f43e8f15ff","message":"test111888899s\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/f98b8cb65887cd9ea97ec74d24dca6f43e8f15ff","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-12T16:37:48+08:00","added":[],"removed":[],"modified":["pc/kg.php"]},"repository":{"id":2,"owner":{"id":2,"login":"juhai","login_name":"","source_id":0,"full_name":"","email":"","avatar_url":"https://gitea.g-hi.com/avatars/8edeea9a6ada1d3d48db9231e9328f15","html_url":"https://gitea.g-hi.com/juhai","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T15:37:00+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"private","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"juhai"},"name":"testpc","full_name":"juhai/testpc","description":"pc测试环境","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":17730,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/juhai/testpc/languages","html_url":"https://gitea.g-hi.com/juhai/testpc","url":"https://gitea.g-hi.com/api/v1/repos/juhai/testpc","link":"","ssh_url":"git@gitea.g-hi.com:juhai/testpc.git","clone_url":"https://gitea.g-hi.com/juhai/testpc.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-06T13:52:11+08:00","updated_at":"2026-02-12T16:23:50+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":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,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":true,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":1,"login":"zhangjunnan","login_name":"","source_id":0,"full_name":"","email":"zhangjunnan@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/db7dcb12d6f370df9341167b55583f8b","html_url":"https://gitea.g-hi.com/zhangjunnan","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T15:36:25+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":"zhangjunnan"},"sender":{"id":1,"login":"zhangjunnan","login_name":"","source_id":0,"full_name":"","email":"zhangjunnan@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/db7dcb12d6f370df9341167b55583f8b","html_url":"https://gitea.g-hi.com/zhangjunnan","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T15:36:25+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":"zhangjunnan"}}...
|
push
|
2
|
3
|
1770885475
|
1770885478
|
0
|
1770885473
|
1770885478
|
NULL
|
|
0
|
Edit
Delete
|
|
9696
|
Improve startup and deployment tooling
|
6
|
5
|
e2e-tests.yml
|
9620
|
5
|
0
|
refs/heads/main
|
a255ed13fa907f9a1c0dc03afaa0038c6c432749
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","after":"a255ed13fa907f9a1c0dc03afaa0038c6c432749","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8...a255ed13fa907f9a1c0dc03afaa0038c6c432749","commits":[{"id":"a255ed13fa907f9a1c0dc03afaa0038c6c432749","message":"Improve startup and deployment tooling\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a255ed13fa907f9a1c0dc03afaa0038c6c432749","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T19:04:55+08:00","added":["docs/plans/channels-governance-3.0-progress-2026-03-30.md","docs/plans/community-messages-governance-3.0-progress-2026-03-30.md","docs/plans/customer-health-governance-3.0-progress-2026-03-30.md","docs/plans/financial-reports-governance-3.0-progress-2026-03-30.md","docs/plans/knowledge-feedback-governance-3.0-progress-2026-03-30.md","docs/plans/reconciliation-governance-3.0-progress-2026-03-30.md","docs/plans/scheduled-jobs-governance-3.0-progress-2026-03-30.md","docs/plans/stage-knowledge-governance-3.0-progress-2026-03-30.md","docs/plans/targets-governance-3.0-progress-2026-03-30.md","docs/reports/channels-acceptance-card-2026-03-30.md","docs/reports/channels-runner-evidence-bundle-2026-03-30.md","docs/reports/community-messages-acceptance-card-2026-03-30.md","docs/reports/community-messages-runner-evidence-bundle-2026-03-30.md","docs/reports/customer-health-acceptance-card-2026-03-30.md","docs/reports/customer-health-runner-evidence-bundle-2026-03-30.md","docs/reports/financial-reports-acceptance-card-2026-03-30.md","docs/reports/financial-reports-runner-evidence-bundle-2026-03-30.md","docs/reports/knowledge-feedback-acceptance-card-2026-03-30.md","docs/reports/knowledge-feedback-runner-evidence-bundle-2026-03-30.md","docs/reports/reconciliation-acceptance-card-2026-03-30.md","docs/reports/reconciliation-runner-evidence-bundle-2026-03-30.md","docs/reports/scheduled-jobs-acceptance-card-2026-03-30.md","docs/reports/scheduled-jobs-runner-evidence-bundle-2026-03-30.md","docs/reports/stage-knowledge-acceptance-card-2026-03-30.md","docs/reports/stage-knowledge-runner-evidence-bundle-2026-03-30.md","docs/reports/targets-acceptance-card-2026-03-30.md","docs/reports/targets-runner-evidence-bundle-2026-03-30.md"],"removed":[],"modified":["frontend/src/views/__tests__/scheduled-jobs-g4.smoke.test.ts","frontend/src/views/stage-knowledge/__tests__/stage-knowledge-index.smoke.test.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","scripts/lib/docker-compose-helpers.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/start-all.sh"]}],"total_commits":0,"head_commit":{"id":"a255ed13fa907f9a1c0dc03afaa0038c6c432749","message":"Improve startup and deployment tooling\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a255ed13fa907f9a1c0dc03afaa0038c6c432749","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T19:04:55+08:00","added":["docs/plans/channels-governance-3.0-progress-2026-03-30.md","docs/plans/community-messages-governance-3.0-progress-2026-03-30.md","docs/plans/customer-health-governance-3.0-progress-2026-03-30.md","docs/plans/financial-reports-governance-3.0-progress-2026-03-30.md","docs/plans/knowledge-feedback-governance-3.0-progress-2026-03-30.md","docs/plans/reconciliation-governance-3.0-progress-2026-03-30.md","docs/plans/scheduled-jobs-governance-3.0-progress-2026-03-30.md","docs/plans/stage-knowledge-governance-3.0-progress-2026-03-30.md","docs/plans/targets-governance-3.0-progress-2026-03-30.md","docs/reports/channels-acceptance-card-2026-03-30.md","docs/reports/channels-runner-evidence-bundle-2026-03-30.md","docs/reports/community-messages-acceptance-card-2026-03-30.md","docs/reports/community-messages-runner-evidence-bundle-2026-03-30.md","docs/reports/customer-health-acceptance-card-2026-03-30.md","docs/reports/customer-health-runner-evidence-bundle-2026-03-30.md","docs/reports/financial-reports-acceptance-card-2026-03-30.md","docs/reports/financial-reports-runner-evidence-bundle-2026-03-30.md","docs/reports/knowledge-feedback-acceptance-card-2026-03-30.md","docs/reports/knowledge-feedback-runner-evidence-bundle-2026-03-30.md","docs/reports/reconciliation-acceptance-card-2026-03-30.md","docs/reports/reconciliation-runner-evidence-bundle-2026-03-30.md","docs/reports/scheduled-jobs-acceptance-card-2026-03-30.md","docs/reports/scheduled-jobs-runner-evidence-bundle-2026-03-30.md","docs/reports/stage-knowledge-acceptance-card-2026-03-30.md","docs/reports/stage-knowledge-runner-evidence-bundle-2026-03-30.md","docs/reports/targets-acceptance-card-2026-03-30.md","docs/reports/targets-runner-evidence-bundle-2026-03-30.md"],"removed":[],"modified":["frontend/src/views/__tests__/scheduled-jobs-g4.smoke.test.ts","frontend/src/views/stage-knowledge/__tests__/stage-knowledge-index.smoke.test.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","scripts/lib/docker-compose-helpers.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.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":1904978,"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":2,"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-30T18:48:13+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":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
|
1774868831
|
1774869434
|
0
|
1774868830
|
1774870499
|
|
|
0
|
Edit
Delete
|
|
9697
|
Improve startup and deployment tooling
|
6
|
5
|
test-pipeline.yml
|
9621
|
5
|
0
|
refs/heads/main
|
a255ed13fa907f9a1c0dc03afaa0038c6c432749
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","after":"a255ed13fa907f9a1c0dc03afaa0038c6c432749","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8...a255ed13fa907f9a1c0dc03afaa0038c6c432749","commits":[{"id":"a255ed13fa907f9a1c0dc03afaa0038c6c432749","message":"Improve startup and deployment tooling\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a255ed13fa907f9a1c0dc03afaa0038c6c432749","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T19:04:55+08:00","added":["docs/plans/channels-governance-3.0-progress-2026-03-30.md","docs/plans/community-messages-governance-3.0-progress-2026-03-30.md","docs/plans/customer-health-governance-3.0-progress-2026-03-30.md","docs/plans/financial-reports-governance-3.0-progress-2026-03-30.md","docs/plans/knowledge-feedback-governance-3.0-progress-2026-03-30.md","docs/plans/reconciliation-governance-3.0-progress-2026-03-30.md","docs/plans/scheduled-jobs-governance-3.0-progress-2026-03-30.md","docs/plans/stage-knowledge-governance-3.0-progress-2026-03-30.md","docs/plans/targets-governance-3.0-progress-2026-03-30.md","docs/reports/channels-acceptance-card-2026-03-30.md","docs/reports/channels-runner-evidence-bundle-2026-03-30.md","docs/reports/community-messages-acceptance-card-2026-03-30.md","docs/reports/community-messages-runner-evidence-bundle-2026-03-30.md","docs/reports/customer-health-acceptance-card-2026-03-30.md","docs/reports/customer-health-runner-evidence-bundle-2026-03-30.md","docs/reports/financial-reports-acceptance-card-2026-03-30.md","docs/reports/financial-reports-runner-evidence-bundle-2026-03-30.md","docs/reports/knowledge-feedback-acceptance-card-2026-03-30.md","docs/reports/knowledge-feedback-runner-evidence-bundle-2026-03-30.md","docs/reports/reconciliation-acceptance-card-2026-03-30.md","docs/reports/reconciliation-runner-evidence-bundle-2026-03-30.md","docs/reports/scheduled-jobs-acceptance-card-2026-03-30.md","docs/reports/scheduled-jobs-runner-evidence-bundle-2026-03-30.md","docs/reports/stage-knowledge-acceptance-card-2026-03-30.md","docs/reports/stage-knowledge-runner-evidence-bundle-2026-03-30.md","docs/reports/targets-acceptance-card-2026-03-30.md","docs/reports/targets-runner-evidence-bundle-2026-03-30.md"],"removed":[],"modified":["frontend/src/views/__tests__/scheduled-jobs-g4.smoke.test.ts","frontend/src/views/stage-knowledge/__tests__/stage-knowledge-index.smoke.test.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","scripts/lib/docker-compose-helpers.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/start-all.sh"]}],"total_commits":0,"head_commit":{"id":"a255ed13fa907f9a1c0dc03afaa0038c6c432749","message":"Improve startup and deployment tooling\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a255ed13fa907f9a1c0dc03afaa0038c6c432749","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T19:04:55+08:00","added":["docs/plans/channels-governance-3.0-progress-2026-03-30.md","docs/plans/community-messages-governance-3.0-progress-2026-03-30.md","docs/plans/customer-health-governance-3.0-progress-2026-03-30.md","docs/plans/financial-reports-governance-3.0-progress-2026-03-30.md","docs/plans/knowledge-feedback-governance-3.0-progress-2026-03-30.md","docs/plans/reconciliation-governance-3.0-progress-2026-03-30.md","docs/plans/scheduled-jobs-governance-3.0-progress-2026-03-30.md","docs/plans/stage-knowledge-governance-3.0-progress-2026-03-30.md","docs/plans/targets-governance-3.0-progress-2026-03-30.md","docs/reports/channels-acceptance-card-2026-03-30.md","docs/reports/channels-runner-evidence-bundle-2026-03-30.md","docs/reports/community-messages-acceptance-card-2026-03-30.md","docs/reports/community-messages-runner-evidence-bundle-2026-03-30.md","docs/reports/customer-health-acceptance-card-2026-03-30.md","docs/reports/customer-health-runner-evidence-bundle-2026-03-30.md","docs/reports/financial-reports-acceptance-card-2026-03-30.md","docs/reports/financial-reports-runner-evidence-bundle-2026-03-30.md","docs/reports/knowledge-feedback-acceptance-card-2026-03-30.md","docs/reports/knowledge-feedback-runner-evidence-bundle-2026-03-30.md","docs/reports/reconciliation-acceptance-card-2026-03-30.md","docs/reports/reconciliation-runner-evidence-bundle-2026-03-30.md","docs/reports/scheduled-jobs-acceptance-card-2026-03-30.md","docs/reports/scheduled-jobs-runner-evidence-bundle-2026-03-30.md","docs/reports/stage-knowledge-acceptance-card-2026-03-30.md","docs/reports/stage-knowledge-runner-evidence-bundle-2026-03-30.md","docs/reports/targets-acceptance-card-2026-03-30.md","docs/reports/targets-runner-evidence-bundle-2026-03-30.md"],"removed":[],"modified":["frontend/src/views/__tests__/scheduled-jobs-g4.smoke.test.ts","frontend/src/views/stage-knowledge/__tests__/stage-knowledge-index.smoke.test.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","scripts/lib/docker-compose-helpers.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.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":1904978,"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":2,"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-30T18:48:13+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":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
|
26
|
1774869435
|
1774869698
|
0
|
1774868831
|
1774869700
|
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
|
|
9698
|
Improve startup and deployment tooling
|
6
|
5
|
health-check.yml
|
9622
|
-2
|
223
|
refs/heads/main
|
a255ed13fa907f9a1c0dc03afaa0038c6c432749
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","after":"a255ed13fa907f9a1c0dc03afaa0038c6c432749","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8...a255ed13fa907f9a1c0dc03afaa0038c6c432749","commits":[{"id":"a255ed13fa907f9a1c0dc03afaa0038c6c432749","message":"Improve startup and deployment tooling\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a255ed13fa907f9a1c0dc03afaa0038c6c432749","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T19:04:55+08:00","added":["docs/plans/channels-governance-3.0-progress-2026-03-30.md","docs/plans/community-messages-governance-3.0-progress-2026-03-30.md","docs/plans/customer-health-governance-3.0-progress-2026-03-30.md","docs/plans/financial-reports-governance-3.0-progress-2026-03-30.md","docs/plans/knowledge-feedback-governance-3.0-progress-2026-03-30.md","docs/plans/reconciliation-governance-3.0-progress-2026-03-30.md","docs/plans/scheduled-jobs-governance-3.0-progress-2026-03-30.md","docs/plans/stage-knowledge-governance-3.0-progress-2026-03-30.md","docs/plans/targets-governance-3.0-progress-2026-03-30.md","docs/reports/channels-acceptance-card-2026-03-30.md","docs/reports/channels-runner-evidence-bundle-2026-03-30.md","docs/reports/community-messages-acceptance-card-2026-03-30.md","docs/reports/community-messages-runner-evidence-bundle-2026-03-30.md","docs/reports/customer-health-acceptance-card-2026-03-30.md","docs/reports/customer-health-runner-evidence-bundle-2026-03-30.md","docs/reports/financial-reports-acceptance-card-2026-03-30.md","docs/reports/financial-reports-runner-evidence-bundle-2026-03-30.md","docs/reports/knowledge-feedback-acceptance-card-2026-03-30.md","docs/reports/knowledge-feedback-runner-evidence-bundle-2026-03-30.md","docs/reports/reconciliation-acceptance-card-2026-03-30.md","docs/reports/reconciliation-runner-evidence-bundle-2026-03-30.md","docs/reports/scheduled-jobs-acceptance-card-2026-03-30.md","docs/reports/scheduled-jobs-runner-evidence-bundle-2026-03-30.md","docs/reports/stage-knowledge-acceptance-card-2026-03-30.md","docs/reports/stage-knowledge-runner-evidence-bundle-2026-03-30.md","docs/reports/targets-acceptance-card-2026-03-30.md","docs/reports/targets-runner-evidence-bundle-2026-03-30.md"],"removed":[],"modified":["frontend/src/views/__tests__/scheduled-jobs-g4.smoke.test.ts","frontend/src/views/stage-knowledge/__tests__/stage-knowledge-index.smoke.test.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","scripts/lib/docker-compose-helpers.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/start-all.sh"]}],"total_commits":0,"head_commit":{"id":"a255ed13fa907f9a1c0dc03afaa0038c6c432749","message":"Improve startup and deployment tooling\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a255ed13fa907f9a1c0dc03afaa0038c6c432749","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T19:04:55+08:00","added":["docs/plans/channels-governance-3.0-progress-2026-03-30.md","docs/plans/community-messages-governance-3.0-progress-2026-03-30.md","docs/plans/customer-health-governance-3.0-progress-2026-03-30.md","docs/plans/financial-reports-governance-3.0-progress-2026-03-30.md","docs/plans/knowledge-feedback-governance-3.0-progress-2026-03-30.md","docs/plans/reconciliation-governance-3.0-progress-2026-03-30.md","docs/plans/scheduled-jobs-governance-3.0-progress-2026-03-30.md","docs/plans/stage-knowledge-governance-3.0-progress-2026-03-30.md","docs/plans/targets-governance-3.0-progress-2026-03-30.md","docs/reports/channels-acceptance-card-2026-03-30.md","docs/reports/channels-runner-evidence-bundle-2026-03-30.md","docs/reports/community-messages-acceptance-card-2026-03-30.md","docs/reports/community-messages-runner-evidence-bundle-2026-03-30.md","docs/reports/customer-health-acceptance-card-2026-03-30.md","docs/reports/customer-health-runner-evidence-bundle-2026-03-30.md","docs/reports/financial-reports-acceptance-card-2026-03-30.md","docs/reports/financial-reports-runner-evidence-bundle-2026-03-30.md","docs/reports/knowledge-feedback-acceptance-card-2026-03-30.md","docs/reports/knowledge-feedback-runner-evidence-bundle-2026-03-30.md","docs/reports/reconciliation-acceptance-card-2026-03-30.md","docs/reports/reconciliation-runner-evidence-bundle-2026-03-30.md","docs/reports/scheduled-jobs-acceptance-card-2026-03-30.md","docs/reports/scheduled-jobs-runner-evidence-bundle-2026-03-30.md","docs/reports/stage-knowledge-acceptance-card-2026-03-30.md","docs/reports/stage-knowledge-runner-evidence-bundle-2026-03-30.md","docs/reports/targets-acceptance-card-2026-03-30.md","docs/reports/targets-runner-evidence-bundle-2026-03-30.md"],"removed":[],"modified":["frontend/src/views/__tests__/scheduled-jobs-g4.smoke.test.ts","frontend/src/views/stage-knowledge/__tests__/stage-knowledge-index.smoke.test.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","scripts/lib/docker-compose-helpers.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.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":1904978,"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":2,"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-30T18:48:13+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774870492
|
1774870493
|
0
|
1774869018
|
1774870493
|
|
|
0
|
Edit
Delete
|
|
9699
|
Improve startup and deployment tooling
|
6
|
5
|
health-check.yml
|
9623
|
-2
|
223
|
refs/heads/main
|
a255ed13fa907f9a1c0dc03afaa0038c6c432749
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","after":"a255ed13fa907f9a1c0dc03afaa0038c6c432749","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8...a255ed13fa907f9a1c0dc03afaa0038c6c432749","commits":[{"id":"a255ed13fa907f9a1c0dc03afaa0038c6c432749","message":"Improve startup and deployment tooling\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a255ed13fa907f9a1c0dc03afaa0038c6c432749","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T19:04:55+08:00","added":["docs/plans/channels-governance-3.0-progress-2026-03-30.md","docs/plans/community-messages-governance-3.0-progress-2026-03-30.md","docs/plans/customer-health-governance-3.0-progress-2026-03-30.md","docs/plans/financial-reports-governance-3.0-progress-2026-03-30.md","docs/plans/knowledge-feedback-governance-3.0-progress-2026-03-30.md","docs/plans/reconciliation-governance-3.0-progress-2026-03-30.md","docs/plans/scheduled-jobs-governance-3.0-progress-2026-03-30.md","docs/plans/stage-knowledge-governance-3.0-progress-2026-03-30.md","docs/plans/targets-governance-3.0-progress-2026-03-30.md","docs/reports/channels-acceptance-card-2026-03-30.md","docs/reports/channels-runner-evidence-bundle-2026-03-30.md","docs/reports/community-messages-acceptance-card-2026-03-30.md","docs/reports/community-messages-runner-evidence-bundle-2026-03-30.md","docs/reports/customer-health-acceptance-card-2026-03-30.md","docs/reports/customer-health-runner-evidence-bundle-2026-03-30.md","docs/reports/financial-reports-acceptance-card-2026-03-30.md","docs/reports/financial-reports-runner-evidence-bundle-2026-03-30.md","docs/reports/knowledge-feedback-acceptance-card-2026-03-30.md","docs/reports/knowledge-feedback-runner-evidence-bundle-2026-03-30.md","docs/reports/reconciliation-acceptance-card-2026-03-30.md","docs/reports/reconciliation-runner-evidence-bundle-2026-03-30.md","docs/reports/scheduled-jobs-acceptance-card-2026-03-30.md","docs/reports/scheduled-jobs-runner-evidence-bundle-2026-03-30.md","docs/reports/stage-knowledge-acceptance-card-2026-03-30.md","docs/reports/stage-knowledge-runner-evidence-bundle-2026-03-30.md","docs/reports/targets-acceptance-card-2026-03-30.md","docs/reports/targets-runner-evidence-bundle-2026-03-30.md"],"removed":[],"modified":["frontend/src/views/__tests__/scheduled-jobs-g4.smoke.test.ts","frontend/src/views/stage-knowledge/__tests__/stage-knowledge-index.smoke.test.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","scripts/lib/docker-compose-helpers.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/start-all.sh"]}],"total_commits":0,"head_commit":{"id":"a255ed13fa907f9a1c0dc03afaa0038c6c432749","message":"Improve startup and deployment tooling\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a255ed13fa907f9a1c0dc03afaa0038c6c432749","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T19:04:55+08:00","added":["docs/plans/channels-governance-3.0-progress-2026-03-30.md","docs/plans/community-messages-governance-3.0-progress-2026-03-30.md","docs/plans/customer-health-governance-3.0-progress-2026-03-30.md","docs/plans/financial-reports-governance-3.0-progress-2026-03-30.md","docs/plans/knowledge-feedback-governance-3.0-progress-2026-03-30.md","docs/plans/reconciliation-governance-3.0-progress-2026-03-30.md","docs/plans/scheduled-jobs-governance-3.0-progress-2026-03-30.md","docs/plans/stage-knowledge-governance-3.0-progress-2026-03-30.md","docs/plans/targets-governance-3.0-progress-2026-03-30.md","docs/reports/channels-acceptance-card-2026-03-30.md","docs/reports/channels-runner-evidence-bundle-2026-03-30.md","docs/reports/community-messages-acceptance-card-2026-03-30.md","docs/reports/community-messages-runner-evidence-bundle-2026-03-30.md","docs/reports/customer-health-acceptance-card-2026-03-30.md","docs/reports/customer-health-runner-evidence-bundle-2026-03-30.md","docs/reports/financial-reports-acceptance-card-2026-03-30.md","docs/reports/financial-reports-runner-evidence-bundle-2026-03-30.md","docs/reports/knowledge-feedback-acceptance-card-2026-03-30.md","docs/reports/knowledge-feedback-runner-evidence-bundle-2026-03-30.md","docs/reports/reconciliation-acceptance-card-2026-03-30.md","docs/reports/reconciliation-runner-evidence-bundle-2026-03-30.md","docs/reports/scheduled-jobs-acceptance-card-2026-03-30.md","docs/reports/scheduled-jobs-runner-evidence-bundle-2026-03-30.md","docs/reports/stage-knowledge-acceptance-card-2026-03-30.md","docs/reports/stage-knowledge-runner-evidence-bundle-2026-03-30.md","docs/reports/targets-acceptance-card-2026-03-30.md","docs/reports/targets-runner-evidence-bundle-2026-03-30.md"],"removed":[],"modified":["frontend/src/views/__tests__/scheduled-jobs-g4.smoke.test.ts","frontend/src/views/stage-knowledge/__tests__/stage-knowledge-index.smoke.test.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","scripts/lib/docker-compose-helpers.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.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":1904978,"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":2,"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-30T18:48:13+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774870494
|
1774870495
|
0
|
1774869318
|
1774870495
|
|
|
0
|
Edit
Delete
|
|
9701
|
Improve startup and deployment tooling
|
6
|
5
|
health-check.yml
|
9625
|
-2
|
223
|
refs/heads/main
|
a255ed13fa907f9a1c0dc03afaa0038c6c432749
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","after":"a255ed13fa907f9a1c0dc03afaa0038c6c432749","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8...a255ed13fa907f9a1c0dc03afaa0038c6c432749","commits":[{"id":"a255ed13fa907f9a1c0dc03afaa0038c6c432749","message":"Improve startup and deployment tooling\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a255ed13fa907f9a1c0dc03afaa0038c6c432749","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T19:04:55+08:00","added":["docs/plans/channels-governance-3.0-progress-2026-03-30.md","docs/plans/community-messages-governance-3.0-progress-2026-03-30.md","docs/plans/customer-health-governance-3.0-progress-2026-03-30.md","docs/plans/financial-reports-governance-3.0-progress-2026-03-30.md","docs/plans/knowledge-feedback-governance-3.0-progress-2026-03-30.md","docs/plans/reconciliation-governance-3.0-progress-2026-03-30.md","docs/plans/scheduled-jobs-governance-3.0-progress-2026-03-30.md","docs/plans/stage-knowledge-governance-3.0-progress-2026-03-30.md","docs/plans/targets-governance-3.0-progress-2026-03-30.md","docs/reports/channels-acceptance-card-2026-03-30.md","docs/reports/channels-runner-evidence-bundle-2026-03-30.md","docs/reports/community-messages-acceptance-card-2026-03-30.md","docs/reports/community-messages-runner-evidence-bundle-2026-03-30.md","docs/reports/customer-health-acceptance-card-2026-03-30.md","docs/reports/customer-health-runner-evidence-bundle-2026-03-30.md","docs/reports/financial-reports-acceptance-card-2026-03-30.md","docs/reports/financial-reports-runner-evidence-bundle-2026-03-30.md","docs/reports/knowledge-feedback-acceptance-card-2026-03-30.md","docs/reports/knowledge-feedback-runner-evidence-bundle-2026-03-30.md","docs/reports/reconciliation-acceptance-card-2026-03-30.md","docs/reports/reconciliation-runner-evidence-bundle-2026-03-30.md","docs/reports/scheduled-jobs-acceptance-card-2026-03-30.md","docs/reports/scheduled-jobs-runner-evidence-bundle-2026-03-30.md","docs/reports/stage-knowledge-acceptance-card-2026-03-30.md","docs/reports/stage-knowledge-runner-evidence-bundle-2026-03-30.md","docs/reports/targets-acceptance-card-2026-03-30.md","docs/reports/targets-runner-evidence-bundle-2026-03-30.md"],"removed":[],"modified":["frontend/src/views/__tests__/scheduled-jobs-g4.smoke.test.ts","frontend/src/views/stage-knowledge/__tests__/stage-knowledge-index.smoke.test.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","scripts/lib/docker-compose-helpers.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/start-all.sh"]}],"total_commits":0,"head_commit":{"id":"a255ed13fa907f9a1c0dc03afaa0038c6c432749","message":"Improve startup and deployment tooling\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a255ed13fa907f9a1c0dc03afaa0038c6c432749","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T19:04:55+08:00","added":["docs/plans/channels-governance-3.0-progress-2026-03-30.md","docs/plans/community-messages-governance-3.0-progress-2026-03-30.md","docs/plans/customer-health-governance-3.0-progress-2026-03-30.md","docs/plans/financial-reports-governance-3.0-progress-2026-03-30.md","docs/plans/knowledge-feedback-governance-3.0-progress-2026-03-30.md","docs/plans/reconciliation-governance-3.0-progress-2026-03-30.md","docs/plans/scheduled-jobs-governance-3.0-progress-2026-03-30.md","docs/plans/stage-knowledge-governance-3.0-progress-2026-03-30.md","docs/plans/targets-governance-3.0-progress-2026-03-30.md","docs/reports/channels-acceptance-card-2026-03-30.md","docs/reports/channels-runner-evidence-bundle-2026-03-30.md","docs/reports/community-messages-acceptance-card-2026-03-30.md","docs/reports/community-messages-runner-evidence-bundle-2026-03-30.md","docs/reports/customer-health-acceptance-card-2026-03-30.md","docs/reports/customer-health-runner-evidence-bundle-2026-03-30.md","docs/reports/financial-reports-acceptance-card-2026-03-30.md","docs/reports/financial-reports-runner-evidence-bundle-2026-03-30.md","docs/reports/knowledge-feedback-acceptance-card-2026-03-30.md","docs/reports/knowledge-feedback-runner-evidence-bundle-2026-03-30.md","docs/reports/reconciliation-acceptance-card-2026-03-30.md","docs/reports/reconciliation-runner-evidence-bundle-2026-03-30.md","docs/reports/scheduled-jobs-acceptance-card-2026-03-30.md","docs/reports/scheduled-jobs-runner-evidence-bundle-2026-03-30.md","docs/reports/stage-knowledge-acceptance-card-2026-03-30.md","docs/reports/stage-knowledge-runner-evidence-bundle-2026-03-30.md","docs/reports/targets-acceptance-card-2026-03-30.md","docs/reports/targets-runner-evidence-bundle-2026-03-30.md"],"removed":[],"modified":["frontend/src/views/__tests__/scheduled-jobs-g4.smoke.test.ts","frontend/src/views/stage-knowledge/__tests__/stage-knowledge-index.smoke.test.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","scripts/lib/docker-compose-helpers.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.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":1904978,"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":2,"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-30T18:48:13+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774870560
|
1774870560
|
0
|
1774869618
|
1774870560
|
|
|
0
|
Edit
Delete
|
|
9683
|
Add AI autopilot test run artifacts
|
6
|
5
|
e2e-tests.yml
|
9607
|
5
|
0
|
refs/heads/main
|
2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2cf3567367105da23ab10795975e05379e764f31","after":"2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2cf3567367105da23ab10795975e05379e764f31...2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","commits":[{"id":"2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","message":"Add AI autopilot test run artifacts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T18:48:02+08:00","added":["e2e/output/autopilot/ai_test_1774865857590/prepare-ok.json","e2e/output/autopilot/ai_test_1774865857590/result.json"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","message":"Add AI autopilot test run artifacts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T18:48:02+08:00","added":["e2e/output/autopilot/ai_test_1774865857590/prepare-ok.json","e2e/output/autopilot/ai_test_1774865857590/result.json"],"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":1904973,"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":2,"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-30T18:16: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
|
20
|
1774867728
|
1774867880
|
0
|
1774867689
|
1774867988
|
|
|
0
|
Edit
Delete
|
|
9685
|
Add AI autopilot test run artifacts
|
6
|
5
|
test-pipeline.yml
|
9608
|
5
|
0
|
refs/heads/main
|
2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2cf3567367105da23ab10795975e05379e764f31","after":"2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2cf3567367105da23ab10795975e05379e764f31...2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","commits":[{"id":"2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","message":"Add AI autopilot test run artifacts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T18:48:02+08:00","added":["e2e/output/autopilot/ai_test_1774865857590/prepare-ok.json","e2e/output/autopilot/ai_test_1774865857590/result.json"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","message":"Add AI autopilot test run artifacts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T18:48:02+08:00","added":["e2e/output/autopilot/ai_test_1774865857590/prepare-ok.json","e2e/output/autopilot/ai_test_1774865857590/result.json"],"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":1904973,"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":2,"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-30T18:16: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
|
68
|
1774867883
|
1774867944
|
0
|
1774867692
|
1774868200
|
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
|
|
9687
|
Add AI autopilot test run artifacts
|
6
|
5
|
health-check.yml
|
9611
|
-2
|
220
|
refs/heads/main
|
2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2cf3567367105da23ab10795975e05379e764f31","after":"2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2cf3567367105da23ab10795975e05379e764f31...2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","commits":[{"id":"2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","message":"Add AI autopilot test run artifacts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T18:48:02+08:00","added":["e2e/output/autopilot/ai_test_1774865857590/prepare-ok.json","e2e/output/autopilot/ai_test_1774865857590/result.json"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","message":"Add AI autopilot test run artifacts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T18:48:02+08:00","added":["e2e/output/autopilot/ai_test_1774865857590/prepare-ok.json","e2e/output/autopilot/ai_test_1774865857590/result.json"],"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":1904973,"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":2,"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-30T18:16: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"}}...
|
schedule
|
4
|
4
|
1774867981
|
1774867981
|
0
|
1774867818
|
1774867981
|
|
|
0
|
Edit
Delete
|
|
9691
|
Add AI autopilot test run artifacts
|
6
|
5
|
health-check.yml
|
9615
|
-2
|
220
|
refs/heads/main
|
2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2cf3567367105da23ab10795975e05379e764f31","after":"2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2cf3567367105da23ab10795975e05379e764f31...2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","commits":[{"id":"2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","message":"Add AI autopilot test run artifacts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T18:48:02+08:00","added":["e2e/output/autopilot/ai_test_1774865857590/prepare-ok.json","e2e/output/autopilot/ai_test_1774865857590/result.json"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","message":"Add AI autopilot test run artifacts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T18:48:02+08:00","added":["e2e/output/autopilot/ai_test_1774865857590/prepare-ok.json","e2e/output/autopilot/ai_test_1774865857590/result.json"],"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":1904973,"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":2,"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-30T18:16: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"}}...
|
schedule
|
4
|
4
|
1774868196
|
1774868197
|
0
|
1774868118
|
1774868197
|
|
|
0
|
Edit
Delete
|
|
9694
|
Add AI autopilot test run artifacts
|
6
|
5
|
health-check.yml
|
9618
|
-2
|
220
|
refs/heads/main
|
2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2cf3567367105da23ab10795975e05379e764f31","after":"2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2cf3567367105da23ab10795975e05379e764f31...2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","commits":[{"id":"2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","message":"Add AI autopilot test run artifacts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T18:48:02+08:00","added":["e2e/output/autopilot/ai_test_1774865857590/prepare-ok.json","e2e/output/autopilot/ai_test_1774865857590/result.json"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","message":"Add AI autopilot test run artifacts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T18:48:02+08:00","added":["e2e/output/autopilot/ai_test_1774865857590/prepare-ok.json","e2e/output/autopilot/ai_test_1774865857590/result.json"],"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":1904973,"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":2,"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-30T18:16: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"}}...
|
schedule
|
4
|
4
|
1774868419
|
1774868420
|
0
|
1774868418
|
1774868420
|
|
|
0
|
Edit
Delete
|
|
9695
|
Add AI autopilot test run artifacts
|
6
|
5
|
health-check.yml
|
9619
|
-2
|
220
|
refs/heads/main
|
2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2cf3567367105da23ab10795975e05379e764f31","after":"2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2cf3567367105da23ab10795975e05379e764f31...2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","commits":[{"id":"2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","message":"Add AI autopilot test run artifacts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T18:48:02+08:00","added":["e2e/output/autopilot/ai_test_1774865857590/prepare-ok.json","e2e/output/autopilot/ai_test_1774865857590/result.json"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","message":"Add AI autopilot test run artifacts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2aeab72a37f15a2a4572f7cf32d2c5e4f430a2e8","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T18:48:02+08:00","added":["e2e/output/autopilot/ai_test_1774865857590/prepare-ok.json","e2e/output/autopilot/ai_test_1774865857590/result.json"],"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":1904973,"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":2,"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-30T18:16: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"}}...
|
schedule
|
4
|
4
|
1774868719
|
1774868720
|
0
|
1774868718
|
1774868720
|
|
|
0
|
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
|
|
13618
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13541
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776011735
|
1776011736
|
0
|
1776011150
|
1776011736
|
|
|
0
|
Edit
Delete
|
|
13619
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13542
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776011737
|
1776011738
|
0
|
1776011450
|
1776011738
|
|
|
0
|
Edit
Delete
|
|
13622
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13545
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776011813
|
1776011814
|
0
|
1776011750
|
1776011814
|
|
|
0
|
Edit
Delete
|
|
13626
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13549
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776012050
|
1776012051
|
0
|
1776012050
|
1776012051
|
|
|
0
|
Edit
Delete
|
|
13627
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13550
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776012350
|
1776012351
|
0
|
1776012350
|
1776012351
|
|
|
0
|
Edit
Delete
|
|
13628
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13551
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776012650
|
1776012651
|
0
|
1776012650
|
1776012651
|
|
|
0
|
Edit
Delete
|
|
13629
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13552
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776012950
|
1776012951
|
0
|
1776012950
|
1776012951
|
|
|
0
|
Edit
Delete
|
|
13630
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13553
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776013250
|
1776013251
|
0
|
1776013250
|
1776013251
|
|
|
0
|
Edit
Delete
|
|
13631
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13554
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776013550
|
1776013551
|
0
|
1776013550
|
1776013551
|
|
|
0
|
Edit
Delete
|
|
13632
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13555
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776013852
|
1776013853
|
0
|
1776013850
|
1776013853
|
|
|
0
|
Edit
Delete
|
|
13633
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13556
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776014150
|
1776014151
|
0
|
1776014150
|
1776014151
|
|
|
0
|
Edit
Delete
|
|
13634
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13557
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776014450
|
1776014451
|
0
|
1776014450
|
1776014451
|
|
|
0
|
Edit
Delete
|
|
13635
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13558
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776014750
|
1776014751
|
0
|
1776014750
|
1776014751
|
|
|
0
|
Edit
Delete
|
|
13636
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13559
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776015050
|
1776015051
|
0
|
1776015050
|
1776015051
|
|
|
0
|
Edit
Delete
|
|
13637
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13560
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776015350
|
1776015351
|
0
|
1776015350
|
1776015351
|
|
|
0
|
Edit
Delete
|
|
13638
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13561
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776015650
|
1776015651
|
0
|
1776015650
|
1776015651
|
|
|
0
|
Edit
Delete
|
|
13639
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13562
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1776015950
|
1776015951
|
0
|
1776015950
|
1776015951
|
|
|
0
|
Edit
Delete
|