|
23
|
test111888899
|
2
|
2
|
hello-world.yaml
|
22
|
1
|
0
|
refs/heads/main
|
2ac24ff0484bc4a60c5bfed9495a83a4e337f27b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9bbc92b4f9f21e5efef46a53f1d89fd7e752d327","after":"2ac24ff0484bc4a60c5bfed9495a83a4e337f27b","compare_url":"https://gitea.g-hi.com/juhai/testpc/compare/9bbc92b4f9f21e5efef46a53f1d89fd7e752d327...2ac24ff0484bc4a60c5bfed9495a83a4e337f27b","commits":[{"id":"2ac24ff0484bc4a60c5bfed9495a83a4e337f27b","message":"test111888899\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/2ac24ff0484bc4a60c5bfed9495a83a4e337f27b","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-12T15:49:13+08:00","added":[],"removed":[],"modified":[".gitea/workflows/hello-world.yaml"]}],"total_commits":0,"head_commit":{"id":"2ac24ff0484bc4a60c5bfed9495a83a4e337f27b","message":"test111888899\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/2ac24ff0484bc4a60c5bfed9495a83a4e337f27b","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-12T15:49:13+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":17728,"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-12T15:45:03+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
|
2
|
0
|
1770884630
|
0
|
1770882563
|
1770884630
|
NULL
|
|
0
|
Edit
Delete
|
|
60
|
Fix contract signing flow timeout
|
6
|
5
|
ci.yml
|
21
|
5
|
0
|
refs/heads/main
|
f8a1588d13917a22d3710214cee7468768c4490e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18a5bb9c67c571fc2cad6ffe61e70633bcec36a8","after":"f8a1588d13917a22d3710214cee7468768c4490e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/18a5bb9c67c571fc2cad6ffe61e70633bcec36a8...f8a1588d13917a22d3710214cee7468768c4490e","commits":[{"id":"f8a1588d13917a22d3710214cee7468768c4490e","message":"Fix contract signing flow timeout\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f8a1588d13917a22d3710214cee7468768c4490e","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-12T08:48:12+08:00","added":["e2e/playwright-report/data/7495e89db6a75c9157bb7d7ebe12c173bf7cf402.md","e2e/playwright-report/data/9955ede029d83bb442cc81af41cfb4bb49536999.png","e2e/test-results/.last-run.json","e2e/test-results/business-flows-contract-si-109b0--测试-标准流程:法务审批-→-电子签章-→-合同激活-chromium/error-context.md","e2e/test-results/business-flows-contract-si-109b0--测试-标准流程:法务审批-→-电子签章-→-合同激活-chromium/test-failed-1.png","e2e/test-results/business-flows-ticket-proc-381df-→-分配-→-处理-→-解决-→-关闭-→-满意度调查-chromium/error-context.md","e2e/test-results/business-flows-ticket-proc-381df-→-分配-→-处理-→-解决-→-关闭-→-满意度调查-chromium/test-failed-1.png","e2e/test-results/business-flows-ticket-proc-efb99-试-升级流程:一线无法处理-→-升级二线-→-升级经理-chromium/error-context.md","e2e/test-results/business-flows-ticket-proc-efb99-试-升级流程:一线无法处理-→-升级二线-→-升级经理-chromium/test-failed-1.png","e2e/test-results/results.json"],"removed":["e2e/playwright-report/data/f5b5616a741a6e192f9dde421573c184c01dc922.png","e2e/playwright-report/data/fa5b2d3aebf662f01601745c5ac245445aa644d4.md","e2e/test-results/business-flows-quote-appro-46c9f-流程:大额折扣触发审批-→-经理审批通过-→-发送客户-chromium/error-context.md","e2e/test-results/business-flows-quote-appro-46c9f-流程:大额折扣触发审批-→-经理审批通过-→-发送客户-chromium/test-failed-1.png"],"modified":["e2e/.auth/admin.json","e2e/helpers/test-data-factory.ts","e2e/pages/LeadListPage.ts","e2e/playwright-report/index.html"]},{"id":"8b4fec9e55a27c0fc0081fee973dae0b4c3556be","message":"修复合同签署流程超时失败问题 (0)\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8b4fec9e55a27c0fc0081fee973dae0b4c3556be","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-12T08:45:30+08:00","added":["e2e/playwright-report/data/f5b5616a741a6e192f9dde421573c184c01dc922.png","e2e/playwright-report/data/fa5b2d3aebf662f01601745c5ac245445aa644d4.md","e2e/test-results/business-flows-quote-appro-46c9f-流程:大额折扣触发审批-→-经理审批通过-→-发送客户-chromium/error-context.md","e2e/test-results/business-flows-quote-appro-46c9f-流程:大额折扣触发审批-→-经理审批通过-→-发送客户-chromium/test-failed-1.png"],"removed":["e2e/playwright-report/data/0203d8fc34a56fe18a7a3cee2b84d8a25a4adc4a.json","e2e/playwright-report/data/69c5d27cf9d87924d82d96f9762994ab8b91e838.json","e2e/playwright-report/data/762aac4ae66cdb2d0f4d68ec71d8696c77c0853f.md","e2e/playwright-report/data/8a94721710f7e320fea427b562903076f0fdd441.png","e2e/playwright-report/data/b767d09961095f342da8d3d0b8c98650b1c92efb.json","e2e/playwright-report/data/e3eac4f1869ff1813a671f8ee6ce0cc6b1b4b957.json","e2e/test-results/business-flows-order-fulfi-453ac-订单履约流程-E2E-测试-SLA-测试:超期交付预警-chromium/error-context.md","e2e/test-results/business-flows-order-fulfi-453ac-订单履约流程-E2E-测试-SLA-测试:超期交付预警-chromium/test-failed-1.png","e2e/test-results/business-flows-order-fulfi-cefd5-订单完成触发链路:资产登记-→-保修激活-→-权益生效-chromium/error-context.md","e2e/test-results/business-flows-order-fulfi-cefd5-订单完成触发链路:资产登记-→-保修激活-→-权益生效-chromium/test-failed-1.png"],"modified":["e2e/.auth/admin.json","e2e/pages/BasePage.ts","e2e/playwright-report/index.html"]},{"id":"6ed3a911ae382b8fd5c190cfe0919e2367a7097b","message":"修复contract-signing-flow超时失败\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6ed3a911ae382b8fd5c190cfe0919e2367a7097b","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-12T08:44:32+08:00","added":["e2e/test-results/business-flows-order-fulfi-cefd5-订单完成触发链路:资产登记-→-保修激活-→-权益生效-chromium/error-context.md","e2e/test-results/business-flows-order-fulfi-cefd5-订单完成触发链路:资产登记-→-保修激活-→-权益生效-chromium/test-failed-1.png"],"removed":[],"modified":[]},{"id":"9f9b2c96d3714de38f0d27e7c5fc66e23cf496b4","message":"Fix contract signing timeout\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f9b2c96d3714de38f0d27e7c5fc66e23cf496b4","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-12T08:42:28+08:00","added":["e2e/test-results/business-flows-order-fulfi-453ac-订单履约流程-E2E-测试-SLA-测试:超期交付预警-chromium/error-context.md","e2e/test-results/business-flows-order-fulfi-453ac-订单履约流程-E2E-测试-SLA-测试:超期交付预警-chromium/test-failed-1.png"],"removed":["e2e/test-results/business-flows-contract-si-109b0--测试-标准流程:法务审批-→-电子签章-→-合同激活-chromium/error-context.md","e2e/test-results/business-flows-contract-si-109b0--测试-标准流程:法务审批-→-电子签章-→-合同激活-chromium/test-failed-1.png","e2e/test-results/business-flows-contract-si-28626-签署流程-E2E-测试-权限测试:销售专员无法审批合同-chromium/error-context.md","e2e/test-results/business-flows-contract-si-28626-签署流程-E2E-测试-权限测试:销售专员无法审批合同-chromium/test-failed-1.png","e2e/test-results/business-flows-contract-si-51110--合同签署流程-E2E-测试-合同续签流程:到期前续签-chromium/error-context.md","e2e/test-results/business-flows-contract-si-51110--合同签署流程-E2E-测试-合同续签流程:到期前续签-chromium/test-failed-1.png","e2e/test-results/business-flows-contract-si-66eea-试-审批拒绝流程:法务拒绝-→-销售修改-→-重新提交-chromium/error-context.md","e2e/test-results/business-flows-contract-si-66eea-试-审批拒绝流程:法务拒绝-→-销售修改-→-重新提交-chromium/test-failed-1.png","e2e/test-results/business-flows-contract-si-90e82-合同签署流程-E2E-测试-签署拒绝流程:客户拒绝签署-chromium/error-context.md","e2e/test-results/business-flows-contract-si-90e82-合同签署流程-E2E-测试-签署拒绝流程:客户拒绝签署-chromium/test-failed-1.png","e2e/test-results/business-flows-contract-si-a11ed-签署流程-E2E-测试-合同终止流程:生效中-→-终止-chromium/error-context.md","e2e/test-results/business-flows-contract-si-a11ed-签署流程-E2E-测试-合同终止流程:生效中-→-终止-chromium/test-failed-1.png","e2e/test-results/business-flows-contract-si-bed52-E-测试-合同激活-→-订单生成-→-权益激活完整链路-chromium/error-context.md","e2e/test-results/business-flows-contract-si-bed52-E-测试-合同激活-→-订单生成-→-权益激活完整链路-chromium/test-failed-1.png","e2e/test-results/business-flows-contract-si-e6f49-合同签署流程-E2E-测试-双审批流程:法务-财务审批-chromium/error-context.md","e2e/test-results/business-flows-contract-si-e6f49-合同签署流程-E2E-测试-双审批流程:法务-财务审批-chromium/test-failed-1.png"],"modified":["e2e/.auth/admin.json"]},{"id":"9503f4d0db1e5309d3d5fe57141c1804825a6a31","message":"Fix contract signing flow timeout\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9503f4d0db1e5309d3d5fe57141c1804825a6a31","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-12T08:40:10+08:00","added":["e2e/test-results/business-flows-contract-si-109b0--测试-标准流程:法务审批-→-电子签章-→-合同激活-chromium/error-context.md","e2e/test-results/business-flows-contract-si-109b0--测试-标准流程:法务审批-→-电子签章-→-合同激活-chromium/test-failed-1.png","e2e/test-results/business-flows-contract-si-28626-签署流程-E2E-测试-权限测试:销售专员无法审批合同-chromium/error-context.md","e2e/test-results/business-flows-contract-si-28626-签署流程-E2E-测试-权限测试:销售专员无法审批合同-chromium/test-failed-1.png","e2e/test-results/business-flows-contract-si-51110--合同签署流程-E2E-测试-合同续签流程:到期前续签-chromium/error-context.md","e2e/test-results/business-flows-contract-si-51110--合同签署流程-E2E-测试-合同续签流程:到期前续签-chromium/test-failed-1.png","e2e/test-results/business-flows-contract-si-66eea-试-审批拒绝流程:法务拒绝-→-销售修改-→-重新提交-chromium/error-context.md","e2e/test-results/business-flows-contract-si-66eea-试-审批拒绝流程:法务拒绝-→-销售修改-→-重新提交-chromium/test-failed-1.png","e2e/test-results/business-flows-contract-si-90e82-合同签署流程-E2E-测试-签署拒绝流程:客户拒绝签署-chromium/error-context.md","e2e/test-results/business-flows-contract-si-90e82-合同签署流程-E2E-测试-签署拒绝流程:客户拒绝签署-chromium/test-failed-1.png","e2e/test-results/business-flows-contract-si-a11ed-签署流程-E2E-测试-合同终止流程:生效中-→-终止-chromium/error-context.md","e2e/test-results/business-flows-contract-si-a11ed-签署流程-E2E-测试-合同终止流程:生效中-→-终止-chromium/test-failed-1.png","e2e/test-results/business-flows-contract-si-bed52-E-测试-合同激活-→-订单生成-→-权益激活完整链路-chromium/error-context.md","e2e/test-results/business-flows-contract-si-bed52-E-测试-合同激活-→-订单生成-→-权益激活完整链路-chromium/test-failed-1.png","e2e/test-results/business-flows-contract-si-e6f49-合同签署流程-E2E-测试-双审批流程:法务-财务审批-chromium/error-context.md","e2e/test-results/business-flows-contract-si-e6f49-合同签署流程-E2E-测试-双审批流程:法务-财务审批-chromium/test-failed-1.png"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"f8a1588d13917a22d3710214cee7468768c4490e","message":"Fix contract signing flow timeout\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f8a1588d13917a22d3710214cee7468768c4490e","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-12T08:48:12+08:00","added":["e2e/playwright-report/data/7495e89db6a75c9157bb7d7ebe12c173bf7cf402.md","e2e/playwright-report/data/9955ede029d83bb442cc81af41cfb4bb49536999.png","e2e/test-results/.last-run.json","e2e/test-results/business-flows-contract-si-109b0--测试-标准流程:法务审批-→-电子签章-→-合同激活-chromium/error-context.md","e2e/test-results/business-flows-contract-si-109b0--测试-标准流程:法务审批-→-电子签章-→-合同激活-chromium/test-failed-1.png","e2e/test-results/business-flows-ticket-proc-381df-→-分配-→-处理-→-解决-→-关闭-→-满意度调查-chromium/error-context.md","e2e/test-results/business-flows-ticket-proc-381df-→-分配-→-处理-→-解决-→-关闭-→-满意度调查-chromium/test-failed-1.png","e2e/test-results/business-flows-ticket-proc-efb99-试-升级流程:一线无法处理-→-升级二线-→-升级经理-chromium/error-context.md","e2e/test-results/business-flows-ticket-proc-efb99-试-升级流程:一线无法处理-→-升级二线-→-升级经理-chromium/test-failed-1.png","e2e/test-results/results.json"],"removed":["e2e/playwright-report/data/f5b5616a741a6e192f9dde421573c184c01dc922.png","e2e/playwright-report/data/fa5b2d3aebf662f01601745c5ac245445aa644d4.md","e2e/test-results/business-flows-quote-appro-46c9f-流程:大额折扣触发审批-→-经理审批通过-→-发送客户-chromium/error-context.md","e2e/test-results/business-flows-quote-appro-46c9f-流程:大额折扣触发审批-→-经理审批通过-→-发送客户-chromium/test-failed-1.png"],"modified":["e2e/.auth/admin.json","e2e/helpers/test-data-factory.ts","e2e/pages/LeadListPage.ts","e2e/playwright-report/index.html"]},"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":true,"fork":false,"template":false,"parent":null,"mirror":false,"size":169883,"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-24T00:07:29+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
|
19
|
1771862915
|
1771862930
|
0
|
1771862907
|
1771862930
|
NULL
|
|
0
|
Edit
Delete
|
|
22
|
test11188889
|
2
|
2
|
hello-world.yaml
|
21
|
1
|
0
|
refs/heads/main
|
9bbc92b4f9f21e5efef46a53f1d89fd7e752d327
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ac9571bc40f603c832247b982b1f4181e6a3e297","after":"9bbc92b4f9f21e5efef46a53f1d89fd7e752d327","compare_url":"https://gitea.g-hi.com/juhai/testpc/compare/ac9571bc40f603c832247b982b1f4181e6a3e297...9bbc92b4f9f21e5efef46a53f1d89fd7e752d327","commits":[{"id":"9bbc92b4f9f21e5efef46a53f1d89fd7e752d327","message":"test11188889\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/9bbc92b4f9f21e5efef46a53f1d89fd7e752d327","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-12T15:42:27+08:00","added":[],"removed":[],"modified":["pc/kg.php"]}],"total_commits":0,"head_commit":{"id":"9bbc92b4f9f21e5efef46a53f1d89fd7e752d327","message":"test11188889\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/9bbc92b4f9f21e5efef46a53f1d89fd7e752d327","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-12T15:42:27+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":17727,"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:40:07+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
|
1770882286
|
1770882303
|
0
|
1770882162
|
1770882303
|
NULL
|
|
0
|
Edit
Delete
|
|
59
|
Fix frontend and backend type-check
|
6
|
5
|
test-comprehensive.yml
|
20
|
5
|
0
|
refs/heads/main
|
18a5bb9c67c571fc2cad6ffe61e70633bcec36a8
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"343b38f6bfbbd7d44a1387e1351700df68013555","after":"18a5bb9c67c571fc2cad6ffe61e70633bcec36a8","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/343b38f6bfbbd7d44a1387e1351700df68013555...18a5bb9c67c571fc2cad6ffe61e70633bcec36a8","commits":[{"id":"18a5bb9c67c571fc2cad6ffe61e70633bcec36a8","message":"Fix frontend and backend type-check\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/18a5bb9c67c571fc2cad6ffe61e70633bcec36a8","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-12T07:46:55+08:00","added":["e2e/test-results/ui-modules-00-test-runner--04485--域-合同模板-contract-templates--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--04485--域-合同模板-contract-templates--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--0e44b-uy-域-团购评价-groupbuy-reviews--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--0e44b-uy-域-团购评价-groupbuy-reviews--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--0fd08--域-联盟推荐-alliance-referrals--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--0fd08--域-联盟推荐-alliance-referrals--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--1208f-finance-域-佣金管理-commissions--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--1208f-finance-域-佣金管理-commissions--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--20ca9-ertising-域-广告报表-ad-reports--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--20ca9-ertising-域-广告报表-ad-reports--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--24315-sing-域-ROI分析-analytics-roi--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--24315-sing-域-ROI分析-analytics-roi--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--2498a-旅程编排-journey-orchestration--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--2498a-旅程编排-journey-orchestration--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--27705-ion-域-邮件营销-email-marketing--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--27705-ion-域-邮件营销-email-marketing--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--27a9e-ty-域-社区积分-community-points--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--27a9e-ty-域-社区积分-community-points--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--37103--联盟结算-alliance-settlements--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--37103--联盟结算-alliance-settlements--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--3ce92-试-geo-域-地理关键词-geo-keywords--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--3ce92-试-geo-域-地理关键词-geo-keywords--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--3da07-ales-core-域-客户管理-customers--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--3da07-ales-core-域-客户管理-customers--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--44465-nance-域-出款管理-disbursements--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--44465-nance-域-出款管理-disbursements--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--460c3-ition-域-短信营销-sms-marketing--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--460c3-ition-域-短信营销-sms-marketing--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--4b1f0-e-域-知识捕获-knowledge-capture--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--4b1f0-e-域-知识捕获-knowledge-capture--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--4c180--域-服务仪表盘-service-dashboard--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--4c180--域-服务仪表盘-service-dashboard--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--50e4f--团购结算-groupbuy-settlements--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--50e4f--团购结算-groupbuy-settlements--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--54f09--知识候选-knowledge-candidates--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--54f09--知识候选-knowledge-candidates--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--56806-ales-core-域-合同管理-contracts--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--56806-ales-core-域-合同管理-contracts--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--58ef8-rtising-域-广告账户-ad-accounts--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--58ef8-rtising-域-广告账户-ad-accounts--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--5aa7e-试-sales-core-域-订单管理-orders--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--5aa7e-试-sales-core-域-订单管理-orders--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--603a1-n-域-实时触发器-realtime-trigger--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--603a1-n-域-实时触发器-realtime-trigger--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--69311-tising-域-广告受众-ad-audiences--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--69311-tising-域-广告受众-ad-audiences--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--69360--域-客户营销-customer-marketing--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--69360--域-客户营销-customer-marketing--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--6c2b8--域-知识反馈-knowledge-feedback--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--6c2b8--域-知识反馈-knowledge-feedback--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--7a4a5--营销聊天机器人-marketing-chatbot--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--7a4a5--营销聊天机器人-marketing-chatbot--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--860e7-tising-域-广告投放-ad-placement--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--860e7-tising-域-广告投放-ad-placement--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--8800d-y-域-社区成员-community-members--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--8800d-y-域-社区成员-community-members--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--9c744-tising-域-广告活动-ad-campaigns--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--9c744-tising-域-广告活动-ad-campaigns--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--9ef29-ty-域-社区群组-community-groups--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--9ef29-ty-域-社区群组-community-groups--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--b03a6-dge-域-阶段知识-stage-knowledge--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--b03a6-dge-域-阶段知识-stage-knowledge--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--b69df-测试-finance-域-付款管理-payments--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--b69df-测试-finance-域-付款管理-payments--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--be12e-e-域-付款分析-payment-analytics--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--be12e-e-域-付款分析-payment-analytics--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--be735-geo-域-地理分析报表-geo-analytics--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--be735-geo-域-地理分析报表-geo-analytics--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--bf88b-ice-域-服务监控-service-monitor--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--bf88b-ice-域-服务监控-service-monitor--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--d4a62-rtising-域-广告出价-ad-biddings--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--d4a62-rtising-域-广告出价-ad-biddings--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--daa02-service-域-维护管理-maintenance--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--daa02-service-域-维护管理-maintenance--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--dc5a1-analytics-域-分析概览-analytics--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--dc5a1-analytics-域-分析概览-analytics--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--e29d5--域-联盟分析-alliance-analytics--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--e29d5--域-联盟分析-alliance-analytics--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--e488b--团购佣金-groupbuy-commissions--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--e488b--团购佣金-groupbuy-commissions--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--ec329-社交自动回复-social-auto-replies--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--ec329-社交自动回复-social-auto-replies--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--f09ee--knowledge-域-知识库-knowledge--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--f09ee--knowledge-域-知识库-knowledge--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--f90d3-tising-域-广告创意-ad-creatives--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--f90d3-tising-域-广告创意-ad-creatives--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-analytics-域-报表-reports--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-analytics-域-报表-reports--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-geo-域-地理POI-geo-pois--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-geo-域-地理POI-geo-pois--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-geo-域-地理围栏-geo-fences--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-geo-域-地理围栏-geo-fences--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-geo-域-地理评价-geo-reviews--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-geo-域-地理评价-geo-reviews--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-service-域-故障记录-faults--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-service-域-故障记录-faults--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-service-域-设备管理-devices--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-service-域-设备管理-devices--chromium/test-failed-1.png","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-Dashboard-首页-chromium/error-context.md","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-Dashboard-首页-chromium/test-failed-1.png","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-合同详情页-chromium/error-context.md","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-合同详情页-chromium/test-failed-1.png","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-商机详情页-chromium/error-context.md","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-商机详情页-chromium/test-failed-1.png","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-报价详情页-chromium/error-context.md","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-报价详情页-chromium/test-failed-1.png","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-线索列表页-chromium/error-context.md","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-线索列表页-chromium/test-failed-1.png"],"removed":[],"modified":["e2e/test-results/ui-modules-report.txt"]},{"id":"7967b5d3535c5bb9b9e26e4418376bc2b6927aea","message":"Document groupbuy service analysis\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7967b5d3535c5bb9b9e26e4418376bc2b6927aea","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-12T07:45:43+08:00","added":["e2e/test-results/ui-modules-00-test-runner--0f033-域-联盟协议-alliance-agreements--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--0f033-域-联盟协议-alliance-agreements--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--1d2a0-测试-finance-域-发票管理-invoices--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--1d2a0-测试-finance-域-发票管理-invoices--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--25c80-on-域-营销矩阵-marketing-matrix--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--25c80-on-域-营销矩阵-marketing-matrix--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--33046-试-sales-core-域-报价管理-quotes--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--33046-试-sales-core-域-报价管理-quotes--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--3bf0e-al-域-社交粉丝-social-followers--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--3bf0e-al-域-社交粉丝-social-followers--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--49ee3-t-域-资源请求-resource-requests--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--49ee3-t-域-资源请求-resource-requests--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--5599f-机看板-opportunities-pipeline--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--5599f-机看板-opportunities-pipeline--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--5ef24-service-域-备件管理-spare-parts--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--5ef24-service-域-备件管理-spare-parts--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--607c0--团购核销-groupbuy-redemptions--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--607c0--团购核销-groupbuy-redemptions--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--67c67-试-finance-域-应收账款-ar-ledger--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--67c67-试-finance-域-应收账款-ar-ledger--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--778dd-试-service-域-故障诊断-diagnosis--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--778dd-试-service-域-故障诊断-diagnosis--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--7906c--域-联盟活动-alliance-campaigns--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--7906c--域-联盟活动-alliance-campaigns--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--83eaf-rvice-域-满意度调查-satisfaction--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--83eaf-rvice-域-满意度调查-satisfaction--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--848a9-营销北极星-marketing-north-star--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--848a9-营销北极星-marketing-north-star--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--85a34-al-域-社交分析-social-analytics--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--85a34-al-域-社交分析-social-analytics--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--983f6--域-团购库存-groupbuy-inventory--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--983f6--域-团购库存-groupbuy-inventory--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--99d7e-e-域-联盟套餐-alliance-packages--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--99d7e-e-域-联盟套餐-alliance-packages--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--a3e5e-购参与者-groupbuy-participants--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--a3e5e-购参与者-groupbuy-participants--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--a40f6--域-社交竞品-social-competitors--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--a40f6--域-社交竞品-social-competitors--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--a4b96-ore-域-报价审批-quotes-approval--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--a4b96-ore-域-报价审批-quotes-approval--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--bdf16--core-域-商机管理-opportunities--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--bdf16--core-域-商机管理-opportunities--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--d1e3d-域-营销时段-marketing-timeslots--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--d1e3d-域-营销时段-marketing-timeslots--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--dfc39-e-域-联盟优惠券-alliance-coupons--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--dfc39-e-域-联盟优惠券-alliance-coupons--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--e3bd1-l-域-社交热点-social-hot-topics--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--e3bd1-l-域-社交热点-social-hot-topics--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--e9484-域-团购促销-groupbuy-promotions--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--e9484-域-团购促销-groupbuy-promotions--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-finance-域-财务概览-finance--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-finance-域-财务概览-finance--chromium/test-failed-1.png"],"removed":[],"modified":["e2e/test-results/ui-modules-report.txt"]},{"id":"6a301fa26efd7ac1cfefc96cbd912a1d9d3db9da","message":"Investigate groupbuy integration\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6a301fa26efd7ac1cfefc96cbd912a1d9d3db9da","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-12T07:45:20+08:00","added":["e2e/test-results/state-machines-lead-state--a2434--状态机---状态转换副作用-状态转换时应记录操作日志-chromium/error-context.md","e2e/test-results/state-machines-lead-state--a2434--状态机---状态转换副作用-状态转换时应记录操作日志-chromium/test-failed-1.png","e2e/test-results/state-machines-lead-state--befc8--状态机---状态转换副作用-状态转换时应发送事件通知-chromium/error-context.md","e2e/test-results/state-machines-lead-state--befc8--状态机---状态转换副作用-状态转换时应发送事件通知-chromium/test-failed-1.png","e2e/test-results/tickets-ticket-service-工单管理-应该能创建工单-chromium/error-context.md","e2e/test-results/tickets-ticket-service-工单管理-应该能创建工单-chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--00039--预测分析-predictive-analytics--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--00039--预测分析-predictive-analytics--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--01dfb-域-工作流设计器-workflow-designer--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--01dfb-域-工作流设计器-workflow-designer--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--0506f--选址评估-location-assessments--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--0506f--选址评估-location-assessments--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--0f5df--sales-core-域-销售目标-targets--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--0f5df--sales-core-域-销售目标-targets--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--1371d-应商管理中心-supplier-management--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--1371d-应商管理中心-supplier-management--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--14b3a-营销自动化-marketing-automation--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--14b3a-营销自动化-marketing-automation--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--191ae-on-域-活动目标-campaign-targets--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--191ae-on-域-活动目标-campaign-targets--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--1968a-stem-域-定时任务-scheduled-jobs--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--1968a-stem-域-定时任务-scheduled-jobs--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--1a152-newal-域-续费任务-renewal-tasks--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--1a152-newal-域-续费任务-renewal-tasks--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--1bfbc-e-域-财务报表-financial-reports--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--1bfbc-e-域-财务报表-financial-reports--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--1c870-线索评分规则-leads-scoring-rules--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--1c870-线索评分规则-leads-scoring-rules--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--1ff43-n-域-AI线索评分-lead-scoring-ai--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--1ff43-n-域-AI线索评分-lead-scoring-ai--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--209bb-y-域-团购商品-groupbuy-products--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--209bb-y-域-团购商品-groupbuy-products--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--233af-ce-域-客户余额-customer-balance--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--233af-ce-域-客户余额-customer-balance--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--23a4f-ent-域-组装工单-assembly-orders--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--23a4f-ent-域-组装工单-assembly-orders--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--23e6a-service-域-维护日历-pm-calendar--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--23e6a-service-域-维护日历-pm-calendar--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--2791a--社区活动-community-activities--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--2791a--社区活动-community-activities--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--29260-测试-system-域-审批管理-approvals--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--29260-测试-system-域-审批管理-approvals--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--2c0a1-vice-域-工单甘特图-tickets-gantt--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--2c0a1-vice-域-工单甘特图-tickets-gantt--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--2ca30--域-团购分析-groupbuy-analytics--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--2ca30--域-团购分析-groupbuy-analytics--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--328a9-lfillment-域-库存管理-inventory--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--328a9-lfillment-域-库存管理-inventory--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--346b4-lment-域-组装BOM-assembly-bom--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--346b4-lment-域-组装BOM-assembly-bom--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--3939e-ent-域-样品申请-sample-requests--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--3939e-ent-域-样品申请-sample-requests--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--3e1ed-t-域-项目日历-projects-calendar--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--3e1ed-t-域-项目日历-projects-calendar--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--3f934-social-域-社交帖子-social-posts--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--3f934-social-域-社交帖子-social-posts--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--42862-测试-sales-core-域-线索管理-leads--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--42862-测试-sales-core-域-线索管理-leads--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--4641e--直播分析-livestream-analytics--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--4641e--直播分析-livestream-analytics--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--46a3e-ion-域-营销表单-marketing-forms--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--46a3e-ion-域-营销表单-marketing-forms--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--4bafb-ance-域-对账管理-reconciliation--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--4bafb-ance-域-对账管理-reconciliation--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--4d664-测试-renewal-域-续费管理-renewals--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--4d664-测试-renewal-域-续费管理-renewals--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--524b0--直播排期-livestream-schedules--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--524b0--直播排期-livestream-schedules--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--5d843-ore-域-SWOT分析-swot-analyses--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--5d843-ore-域-SWOT分析-swot-analyses--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--624d7-isition-域-获客概览-acquisition--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--624d7-isition-域-获客概览-acquisition--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--6405c--域-后端管理-backend-management--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--6405c--域-后端管理-backend-management--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--67a66-ice-域-SLA仪表盘-sla-dashboard--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--67a66-ice-域-SLA仪表盘-sla-dashboard--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--69dd0-stem-域-租户配置-tenant-configs--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--69dd0-stem-域-租户配置-tenant-configs--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--707c7-域-社区素材-community-materials--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--707c7-域-社区素材-community-materials--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--72827-ore-域-客户利润-customer-profit--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--72827-ore-域-客户利润-customer-profit--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--72aad--域-客户分析-customer-analytics--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--72aad--域-客户分析-customer-analytics--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--754c0-y-域-社区裂变-community-fission--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--754c0-y-域-社区裂变-community-fission--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--76f19-t-域-内容分析-content-analytics--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--76f19-t-域-内容分析-content-analytics--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--7a009-ion-域-活动库-campaign-library--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--7a009-ion-域-活动库-campaign-library--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--7a9c8-tent-域-内容库-content-library--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--7a9c8-tent-域-内容库-content-library--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--7aeac-lfillment-域-发货管理-shipments--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--7aeac-lfillment-域-发货管理-shipments--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--7cc62-isition-域-归因分析-attribution--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--7cc62-isition-域-归因分析-attribution--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--7dc12-域-联盟促销-alliance-promotions--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--7dc12-域-联盟促销-alliance-promotions--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--83e2c-e-域-工单工作流-ticket-workflows--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--83e2c-e-域-工单工作流-ticket-workflows--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--85422-e-域-联盟伙伴-alliance-partners--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--85422-e-域-联盟伙伴-alliance-partners--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--8a0ac-测试-finance-域-现金流-cash-flow--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--8a0ac-测试-finance-域-现金流-cash-flow--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--8b273-illment-域-履约管理-fulfillment--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--8b273-illment-域-履约管理-fulfillment--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--8ed66--fulfillment-域-资产管理-assets--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--8ed66--fulfillment-域-资产管理-assets--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--91069-t-域-内容版权-content-copyright--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--91069-t-域-内容版权-content-copyright--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--9697b-ial-域-社交账号-social-accounts--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--9697b-ial-域-社交账号-social-accounts--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--9b6f4-试-system-域-事件日志-event-logs--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--9b6f4-试-system-域-事件日志-event-logs--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--9bf8a-ore-域-CRM活动-crm-activities--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--9bf8a-ore-域-CRM活动-crm-activities--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--9dbeb-ity-域-社区任务-community-tasks--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--9dbeb-ity-域-社区任务-community-tasks--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--9e382-ition-域-Web追踪-web-tracking--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--9e382-ition-域-Web追踪-web-tracking--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--9ebf0-uisition-域-直播入口-livestream--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--9ebf0-uisition-域-直播入口-livestream--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--9edb1-ent-域-项目甘特图-projects-gantt--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--9edb1-ent-域-项目甘特图-projects-gantt--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--a5cb4-域-事件订阅-event-subscriptions--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--a5cb4-域-事件订阅-event-subscriptions--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--a6d70-ystem-域-通知管理-notifications--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--a6d70-ystem-域-通知管理-notifications--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--a7d06-am-域-直播礼物-livestream-gifts--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--a7d06-am-域-直播礼物-livestream-gifts--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--abcff--域-直播脚本-livestream-scripts--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--abcff--域-直播脚本-livestream-scripts--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--ac0ee-nt-域-内容创作-content-creation--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--ac0ee-nt-域-内容创作-content-creation--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--addd5-re-域-销售仪表盘-sales-dashboard--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--addd5-re-域-销售仪表盘-sales-dashboard--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--aee1e--域-内容分类-content-categories--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--aee1e--域-内容分类-content-categories--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--b10ed--域-联盟商户-alliance-merchants--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--b10ed--域-联盟商户-alliance-merchants--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--b1947-域-直播商品-livestream-products--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--b1947-域-直播商品-livestream-products--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--b48b3-fillment-域-供应商管理-suppliers--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--b48b3-fillment-域-供应商管理-suppliers--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--b54f6--域-团购活动-groupbuy-campaigns--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--b54f6--域-团购活动-groupbuy-campaigns--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--b6fcc--域-产品分类-product-categories--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--b6fcc--域-产品分类-product-categories--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--b9121-eam-域-直播间-livestream-rooms--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--b9121-eam-域-直播间-livestream-rooms--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--ba412-oducts-pricing-域-CPQ配置-cpq--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--ba412-oducts-pricing-域-CPQ配置-cpq--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--bd89f--域-线索验证-lead-qualification--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--bd89f--域-线索验证-lead-qualification--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--c67f2-e-域-联盟产品-alliance-products--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--c67f2-e-域-联盟产品-alliance-products--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--c7aca-ulfillment-域-组装管理-assembly--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--c7aca-ulfillment-域-组装管理-assembly--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--c84f7-n-域-营销内容-marketing-content--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--c84f7-n-域-营销内容-marketing-content--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--c85ea-域-社区分析-community-analytics--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--c85ea-域-社区分析-community-analytics--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--c860f-ent-域-序列号管理-serial-numbers--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--c860f-ent-域-序列号管理-serial-numbers--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--cbc18--团购达人-groupbuy-influencers--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--cbc18--团购达人-groupbuy-influencers--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--cbff6-re-域-线索分配-leads-assignment--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--cbff6-re-域-线索分配-leads-assignment--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--cd815-illment-域-供应链-supply-chain--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--cd815-illment-域-供应链-supply-chain--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--cffd1-t-域-内容模板-content-templates--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--cffd1-t-域-内容模板-content-templates--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--d2a8a-域-社交互动-social-interactions--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--d2a8a-域-社交互动-social-interactions--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--d78c3-ty-域-社区等级-community-levels--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--d78c3-ty-域-社区等级-community-levels--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--d83de-ulfillment-域-项目管理-projects--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--d83de-ulfillment-域-项目管理-projects--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--d876b-re-域-客户健康度-customer-health--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--d876b-re-域-客户健康度-customer-health--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--dc411--域-团购平台-groupbuy-platforms--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--dc411--域-团购平台-groupbuy-platforms--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--e3a5b--system-域-部门管理-departments--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--e3a5b--system-域-部门管理-departments--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--e5730-cquisition-域-渠道管理-channels--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--e5730-cquisition-域-渠道管理-channels--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--e6328-tent-域-内容审核-content-review--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--e6328-tent-域-内容审核-content-review--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--e6944-quisition-域-活动管理-campaigns--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--e6944-quisition-域-活动管理-campaigns--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--ed409--域-营销日历-marketing-calendar--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--ed409--域-营销日历-marketing-calendar--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--ede2e-sition-域-着陆页-landing-pages--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--ede2e-sition-域-着陆页-landing-pages--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--ef9f2--内容分发-content-distribution--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--ef9f2--内容分发-content-distribution--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--f4ed3-ts-pricing-域-产品管理-products--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--f4ed3-ts-pricing-域-产品管理-products--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--f7411-互动-livestream-interactions--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--f7411-互动-livestream-interactions--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--f8c53-ity-域-社区机器人-community-bots--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--f8c53-ity-域-社区机器人-community-bots--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--f920b-buy-域-团购订单-groupbuy-orders--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--f920b-buy-域-团购订单-groupbuy-orders--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--fbc1a--域-社区消息-community-messages--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--fbc1a--域-社区消息-community-messages--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--fd89f--pricing-域-价格本-price-books--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--fd89f--pricing-域-价格本-price-books--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-service-域-RMA管理-rma--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-service-域-RMA管理-rma--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-service-域-SLA管理-sla--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-service-域-SLA管理-sla--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-service-域-工单管理-tickets--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-service-域-工单管理-tickets--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-service-域-预防性维护-pm--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-service-域-预防性维护-pm--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-stores-域-门店管理-stores--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-stores-域-门店管理-stores--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-system-域-仪表盘-dashboard--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-system-域-仪表盘-dashboard--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-system-域-搜索-search--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-system-域-搜索-search--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-system-域-用户管理-users--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-system-域-用户管理-users--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-system-域-系统设置-settings--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-system-域-系统设置-settings--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-system-域-角色管理-roles--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-system-域-角色管理-roles--chromium/test-failed-1.png","e2e/test-results/ui-modules-report.txt"],"removed":["e2e/test-results/.playwright-artifacts-1241/446e4211d563debfc69ec69973714b69.png"],"modified":[]},{"id":"58998e1babe1d0f9b82889482a3710073e638f36","message":"Add groupbuy external integrations\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/58998e1babe1d0f9b82889482a3710073e638f36","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-12T07:43:33+08:00","added":["e2e/test-results/.playwright-artifacts-1241/446e4211d563debfc69ec69973714b69.png","e2e/test-results/permissions-role-based-acc-d3b3c-PI-级别拦截-无权限用户-API-调用应返回-403-chromium/error-context.md","e2e/test-results/permissions-role-based-acc-d3b3c-PI-级别拦截-无权限用户-API-调用应返回-403-chromium/test-failed-1.png","e2e/test-results/permissions-role-based-acc-ebe16----API-级别拦截-有权限用户-API-调用应成功-chromium/error-context.md","e2e/test-results/permissions-role-based-acc-ebe16----API-级别拦截-有权限用户-API-调用应成功-chromium/test-failed-1.png","e2e/test-results/permissions-role-based-access-权限控制---商机模块-客服---无法访问商机模块-chromium/error-context.md","e2e/test-results/permissions-role-based-access-权限控制---商机模块-客服---无法访问商机模块-chromium/test-failed-1.png","e2e/test-results/permissions-role-based-access-权限控制---商机模块-超级管理员---可赢单-输单-chromium/error-context.md","e2e/test-results/permissions-role-based-access-权限控制---商机模块-超级管理员---可赢单-输单-chromium/test-failed-1.png","e2e/test-results/permissions-role-based-access-权限控制---商机模块-销售专员---只能看自己的商机-chromium/error-context.md","e2e/test-results/permissions-role-based-access-权限控制---商机模块-销售专员---只能看自己的商机-chromium/test-failed-1.png","e2e/test-results/permissions-role-based-access-权限控制---报价模块-财务---可查看但不能编辑报价-chromium/error-context.md","e2e/test-results/permissions-role-based-access-权限控制---报价模块-财务---可查看但不能编辑报价-chromium/test-failed-1.png","e2e/test-results/permissions-role-based-access-权限控制---报价模块-销售经理---不能审批报价-chromium/error-context.md","e2e/test-results/permissions-role-based-access-权限控制---报价模块-销售经理---不能审批报价-chromium/test-failed-1.png","e2e/test-results/permissions-role-based-access-权限控制---线索模块-客服---线索列表权限验证-chromium/error-context.md","e2e/test-results/permissions-role-based-access-权限控制---线索模块-客服---线索列表权限验证-chromium/test-failed-1.png","e2e/test-results/permissions-role-based-access-权限控制---线索模块-客服---线索创建权限验证-chromium/error-context.md","e2e/test-results/permissions-role-based-access-权限控制---线索模块-客服---线索创建权限验证-chromium/test-failed-1.png","e2e/test-results/permissions-role-based-access-权限控制---线索模块-财务---线索列表权限验证-chromium/error-context.md","e2e/test-results/permissions-role-based-access-权限控制---线索模块-财务---线索列表权限验证-chromium/test-failed-1.png","e2e/test-results/permissions-role-based-access-权限控制---线索模块-财务---线索创建权限验证-chromium/error-context.md","e2e/test-results/permissions-role-based-access-权限控制---线索模块-财务---线索创建权限验证-chromium/test-failed-1.png","e2e/test-results/permissions-role-based-access-权限控制---线索模块-超级管理员---线索创建权限验证-chromium/error-context.md","e2e/test-results/permissions-role-based-access-权限控制---线索模块-超级管理员---线索创建权限验证-chromium/test-failed-1.png","e2e/test-results/permissions-role-based-access-权限控制---线索模块-销售专员---线索列表权限验证-chromium/error-context.md","e2e/test-results/permissions-role-based-access-权限控制---线索模块-销售专员---线索列表权限验证-chromium/test-failed-1.png","e2e/test-results/permissions-role-based-access-权限控制---线索模块-销售专员---线索创建权限验证-chromium/error-context.md","e2e/test-results/permissions-role-based-access-权限控制---线索模块-销售专员---线索创建权限验证-chromium/test-failed-1.png","e2e/test-results/permissions-role-based-access-权限控制---线索模块-销售经理---线索列表权限验证-chromium/error-context.md","e2e/test-results/permissions-role-based-access-权限控制---线索模块-销售经理---线索列表权限验证-chromium/test-failed-1.png","e2e/test-results/permissions-role-based-access-权限控制---线索模块-销售经理---线索创建权限验证-chromium/error-context.md","e2e/test-results/permissions-role-based-access-权限控制---线索模块-销售经理---线索创建权限验证-chromium/test-failed-1.png","e2e/test-results/permissions-role-based-access-权限控制---菜单可见性-各角色菜单可见性验证-chromium/error-context.md","e2e/test-results/permissions-role-based-access-权限控制---菜单可见性-各角色菜单可见性验证-chromium/test-failed-1.png","e2e/test-results/quotes-quote-workflow-报价管理-应该能创建报价-chromium/error-context.md","e2e/test-results/quotes-quote-workflow-报价管理-应该能创建报价-chromium/test-failed-1.png","e2e/test-results/quotes-quote-workflow-报价管理-应该能筛选报价状态-chromium/error-context.md","e2e/test-results/quotes-quote-workflow-报价管理-应该能筛选报价状态-chromium/test-failed-1.png","e2e/test-results/state-machines-lead-state--004f3----合法转换-合法转换:new-→-released-chromium/error-context.md","e2e/test-results/state-machines-lead-state--004f3----合法转换-合法转换:new-→-released-chromium/test-failed-1.png","e2e/test-results/state-machines-lead-state--0163e-副作用-转化商机时应创建关联的-Opportunity-chromium/error-context.md","e2e/test-results/state-machines-lead-state--0163e-副作用-转化商机时应创建关联的-Opportunity-chromium/test-failed-1.png","e2e/test-results/state-machines-lead-state--22a1c---合法转换-合法转换:new-→-contacted-chromium/error-context.md","e2e/test-results/state-machines-lead-state--22a1c---合法转换-合法转换:new-→-contacted-chromium/test-failed-1.png","e2e/test-results/state-machines-lead-state--23780--合法转换:contacted-→-qualified-chromium/error-context.md","e2e/test-results/state-machines-lead-state--23780--合法转换:contacted-→-qualified-chromium/test-failed-1.png","e2e/test-results/state-machines-lead-state--3d246-合法转换-合法转换:new-→-unqualified-chromium/error-context.md","e2e/test-results/state-machines-lead-state--3d246-合法转换-合法转换:new-→-unqualified-chromium/test-failed-1.png","e2e/test-results/state-machines-lead-state--61c93-合法转换:unqualified-→-released-chromium/error-context.md","e2e/test-results/state-machines-lead-state--61c93-合法转换:unqualified-→-released-chromium/test-failed-1.png","e2e/test-results/state-machines-lead-state--72166-new-→-converted(应无-转化商机-按钮)-chromium/error-context.md","e2e/test-results/state-machines-lead-state--72166-new-→-converted(应无-转化商机-按钮)-chromium/test-failed-1.png","e2e/test-results/state-machines-lead-state--77c9b-转换:converted-→-任何状态(终态不可变更)-chromium/error-context.md","e2e/test-results/state-machines-lead-state--77c9b-转换:converted-→-任何状态(终态不可变更)-chromium/test-failed-1.png","e2e/test-results/state-machines-lead-state--829a1-法转换:released-→-任何状态(终态不可变更)-chromium/error-context.md","e2e/test-results/state-machines-lead-state--829a1-法转换:released-→-任何状态(终态不可变更)-chromium/test-failed-1.png","e2e/test-results/state-machines-lead-state--9b2a7-换-合法转换:contacted-→-released-chromium/error-context.md","e2e/test-results/state-machines-lead-state--9b2a7-换-合法转换:contacted-→-released-chromium/test-failed-1.png","e2e/test-results/state-machines-lead-state--afb72-→-qualified(应无直接-标记为已验证-按钮)-chromium/error-context.md","e2e/test-results/state-machines-lead-state--afb72-→-qualified(应无直接-标记为已验证-按钮)-chromium/test-failed-1.png","e2e/test-results/state-machines-lead-state--e8f6d-qualified-→-converted(转化商机)-chromium/error-context.md","e2e/test-results/state-machines-lead-state--e8f6d-qualified-→-converted(转化商机)-chromium/test-failed-1.png"],"removed":["e2e/test-results/.playwright-artifacts-1206/12e79e75293e088de16f8fc9b50bba6f.png","e2e/test-results/.playwright-artifacts-1206/49feedd74771bb5cdc4a5b6a3b52d1b2.png","e2e/test-results/.playwright-artifacts-1206/968a1d810b34b54c6ac72289e352bbd4.png","e2e/test-results/.playwright-artifacts-1207/6112a0e9c3b703f19153f694d2c6aaed.png","e2e/test-results/.playwright-artifacts-1207/61c5b21f81ed2dd7a2d999167c7b758a.png","e2e/test-results/.playwright-artifacts-1207/b3271152fb0b306de0b147cba786d0ae.png","e2e/test-results/.playwright-artifacts-1207/d5f4fa33efb001d26ec72032630e71b6.png","e2e/test-results/.playwright-artifacts-1209/3b9e3d765d459fbccaf44fc725f8f862.png","e2e/test-results/.playwright-artifacts-1209/ad1f66edbcd6c0afde30187248c85f98.png","e2e/test-results/.playwright-artifacts-1211/84650a9816bb110cab7bf5a01995491a.png","e2e/test-results/.playwright-artifacts-1212/f202c9b5ad19fa920dcdd4a6d6223d1f.png"],"modified":[]},{"id":"4e8869bcc54627e1f20c00de7ad2ad5469fa3446","message":"Add groupbuy service integrations\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/4e8869bcc54627e1f20c00de7ad2ad5469fa3446","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-12T07:41:44+08:00","added":["e2e/test-results/.playwright-artifacts-1206/12e79e75293e088de16f8fc9b50bba6f.png","e2e/test-results/.playwright-artifacts-1206/49feedd74771bb5cdc4a5b6a3b52d1b2.png","e2e/test-results/.playwright-artifacts-1206/968a1d810b34b54c6ac72289e352bbd4.png","e2e/test-results/.playwright-artifacts-1207/6112a0e9c3b703f19153f694d2c6aaed.png","e2e/test-results/.playwright-artifacts-1207/61c5b21f81ed2dd7a2d999167c7b758a.png","e2e/test-results/.playwright-artifacts-1207/b3271152fb0b306de0b147cba786d0ae.png","e2e/test-results/.playwright-artifacts-1207/d5f4fa33efb001d26ec72032630e71b6.png","e2e/test-results/.playwright-artifacts-1209/3b9e3d765d459fbccaf44fc725f8f862.png","e2e/test-results/.playwright-artifacts-1209/ad1f66edbcd6c0afde30187248c85f98.png","e2e/test-results/.playwright-artifacts-1211/84650a9816bb110cab7bf5a01995491a.png","e2e/test-results/.playwright-artifacts-1212/f202c9b5ad19fa920dcdd4a6d6223d1f.png","e2e/test-results/ktv-full-test-KTV-和门店相关模块完整测试-chromium/error-context.md","e2e/test-results/ktv-full-test-KTV-和门店相关模块完整测试-chromium/test-failed-1.png","e2e/test-results/ktv-stores-门店和-KTV-相关模块测试-1-登录系统-chromium/error-context.md","e2e/test-results/ktv-stores-门店和-KTV-相关模块测试-1-登录系统-chromium/test-failed-1.png","e2e/test-results/multi-tenant-data-isolatio-145a0-关联数据-租户-A-创建商机时无法关联租户-B-的客户-chromium/error-context.md","e2e/test-results/multi-tenant-data-isolatio-145a0-关联数据-租户-A-创建商机时无法关联租户-B-的客户-chromium/test-failed-1.png","e2e/test-results/multi-tenant-data-isolatio-89708--级别-租户-A-API-请求无法修改租户-B-的数据-chromium/error-context.md","e2e/test-results/multi-tenant-data-isolatio-89708--级别-租户-A-API-请求无法修改租户-B-的数据-chromium/test-failed-1.png","e2e/test-results/multi-tenant-data-isolatio-97857--级别-租户-A-API-请求无法删除租户-B-的数据-chromium/error-context.md","e2e/test-results/multi-tenant-data-isolatio-97857--级别-租户-A-API-请求无法删除租户-B-的数据-chromium/test-failed-1.png","e2e/test-results/multi-tenant-data-isolatio-fe7e2--级别-租户-A-API-请求无法获取租户-B-的数据-chromium/error-context.md","e2e/test-results/multi-tenant-data-isolatio-fe7e2--级别-租户-A-API-请求无法获取租户-B-的数据-chromium/test-failed-1.png","e2e/test-results/opportunities-opportunity-management-商机管理-应该能创建商机-chromium/error-context.md","e2e/test-results/opportunities-opportunity-management-商机管理-应该能创建商机-chromium/test-failed-1.png","e2e/test-results/permissions-role-based-access-权限控制---线索模块-超级管理员---线索列表权限验证-chromium/error-context.md","e2e/test-results/permissions-role-based-access-权限控制---线索模块-超级管理员---线索列表权限验证-chromium/test-failed-1.png"],"removed":["e2e/test-results/.playwright-artifacts-1185/02dfb8ed8955f2ff225ae927920f373b.png","e2e/test-results/.playwright-artifacts-1185/cdbaf54b58d19a5c09202189de2cca6d.png","e2e/test-results/.playwright-artifacts-1192/9e8e0b97de463c1400ff38cc3ffc02cb.png"],"modified":["frontend/src/views/settings/IntegrationServices.vue"]}],"total_commits":0,"head_commit":{"id":"18a5bb9c67c571fc2cad6ffe61e70633bcec36a8","message":"Fix frontend and backend type-check\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/18a5bb9c67c571fc2cad6ffe61e70633bcec36a8","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-12T07:46:55+08:00","added":["e2e/test-results/ui-modules-00-test-runner--04485--域-合同模板-contract-templates--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--04485--域-合同模板-contract-templates--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--0e44b-uy-域-团购评价-groupbuy-reviews--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--0e44b-uy-域-团购评价-groupbuy-reviews--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--0fd08--域-联盟推荐-alliance-referrals--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--0fd08--域-联盟推荐-alliance-referrals--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--1208f-finance-域-佣金管理-commissions--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--1208f-finance-域-佣金管理-commissions--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--20ca9-ertising-域-广告报表-ad-reports--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--20ca9-ertising-域-广告报表-ad-reports--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--24315-sing-域-ROI分析-analytics-roi--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--24315-sing-域-ROI分析-analytics-roi--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--2498a-旅程编排-journey-orchestration--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--2498a-旅程编排-journey-orchestration--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--27705-ion-域-邮件营销-email-marketing--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--27705-ion-域-邮件营销-email-marketing--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--27a9e-ty-域-社区积分-community-points--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--27a9e-ty-域-社区积分-community-points--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--37103--联盟结算-alliance-settlements--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--37103--联盟结算-alliance-settlements--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--3ce92-试-geo-域-地理关键词-geo-keywords--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--3ce92-试-geo-域-地理关键词-geo-keywords--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--3da07-ales-core-域-客户管理-customers--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--3da07-ales-core-域-客户管理-customers--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--44465-nance-域-出款管理-disbursements--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--44465-nance-域-出款管理-disbursements--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--460c3-ition-域-短信营销-sms-marketing--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--460c3-ition-域-短信营销-sms-marketing--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--4b1f0-e-域-知识捕获-knowledge-capture--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--4b1f0-e-域-知识捕获-knowledge-capture--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--4c180--域-服务仪表盘-service-dashboard--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--4c180--域-服务仪表盘-service-dashboard--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--50e4f--团购结算-groupbuy-settlements--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--50e4f--团购结算-groupbuy-settlements--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--54f09--知识候选-knowledge-candidates--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--54f09--知识候选-knowledge-candidates--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--56806-ales-core-域-合同管理-contracts--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--56806-ales-core-域-合同管理-contracts--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--58ef8-rtising-域-广告账户-ad-accounts--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--58ef8-rtising-域-广告账户-ad-accounts--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--5aa7e-试-sales-core-域-订单管理-orders--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--5aa7e-试-sales-core-域-订单管理-orders--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--603a1-n-域-实时触发器-realtime-trigger--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--603a1-n-域-实时触发器-realtime-trigger--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--69311-tising-域-广告受众-ad-audiences--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--69311-tising-域-广告受众-ad-audiences--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--69360--域-客户营销-customer-marketing--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--69360--域-客户营销-customer-marketing--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--6c2b8--域-知识反馈-knowledge-feedback--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--6c2b8--域-知识反馈-knowledge-feedback--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--7a4a5--营销聊天机器人-marketing-chatbot--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--7a4a5--营销聊天机器人-marketing-chatbot--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--860e7-tising-域-广告投放-ad-placement--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--860e7-tising-域-广告投放-ad-placement--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--8800d-y-域-社区成员-community-members--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--8800d-y-域-社区成员-community-members--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--9c744-tising-域-广告活动-ad-campaigns--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--9c744-tising-域-广告活动-ad-campaigns--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--9ef29-ty-域-社区群组-community-groups--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--9ef29-ty-域-社区群组-community-groups--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--b03a6-dge-域-阶段知识-stage-knowledge--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--b03a6-dge-域-阶段知识-stage-knowledge--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--b69df-测试-finance-域-付款管理-payments--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--b69df-测试-finance-域-付款管理-payments--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--be12e-e-域-付款分析-payment-analytics--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--be12e-e-域-付款分析-payment-analytics--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--be735-geo-域-地理分析报表-geo-analytics--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--be735-geo-域-地理分析报表-geo-analytics--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--bf88b-ice-域-服务监控-service-monitor--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--bf88b-ice-域-服务监控-service-monitor--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--d4a62-rtising-域-广告出价-ad-biddings--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--d4a62-rtising-域-广告出价-ad-biddings--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--daa02-service-域-维护管理-maintenance--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--daa02-service-域-维护管理-maintenance--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--dc5a1-analytics-域-分析概览-analytics--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--dc5a1-analytics-域-分析概览-analytics--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--e29d5--域-联盟分析-alliance-analytics--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--e29d5--域-联盟分析-alliance-analytics--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--e488b--团购佣金-groupbuy-commissions--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--e488b--团购佣金-groupbuy-commissions--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--ec329-社交自动回复-social-auto-replies--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--ec329-社交自动回复-social-auto-replies--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--f09ee--knowledge-域-知识库-knowledge--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--f09ee--knowledge-域-知识库-knowledge--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--f90d3-tising-域-广告创意-ad-creatives--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--f90d3-tising-域-广告创意-ad-creatives--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-analytics-域-报表-reports--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-analytics-域-报表-reports--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-geo-域-地理POI-geo-pois--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-geo-域-地理POI-geo-pois--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-geo-域-地理围栏-geo-fences--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-geo-域-地理围栏-geo-fences--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-geo-域-地理评价-geo-reviews--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-geo-域-地理评价-geo-reviews--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-service-域-故障记录-faults--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-service-域-故障记录-faults--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-service-域-设备管理-devices--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-service-域-设备管理-devices--chromium/test-failed-1.png","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-Dashboard-首页-chromium/error-context.md","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-Dashboard-首页-chromium/test-failed-1.png","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-合同详情页-chromium/error-context.md","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-合同详情页-chromium/test-failed-1.png","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-商机详情页-chromium/error-context.md","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-商机详情页-chromium/test-failed-1.png","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-报价详情页-chromium/error-context.md","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-报价详情页-chromium/test-failed-1.png","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-线索列表页-chromium/error-context.md","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-线索列表页-chromium/test-failed-1.png"],"removed":[],"modified":["e2e/test-results/ui-modules-report.txt"]},"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":true,"fork":false,"template":false,"parent":null,"mirror":false,"size":69230,"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-24T00:06:08+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
|
18
|
1771862907
|
1771862907
|
0
|
1771862814
|
1771862907
|
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
|
|
58
|
Fix frontend and backend type-check
|
6
|
5
|
ci.yml
|
19
|
5
|
0
|
refs/heads/main
|
18a5bb9c67c571fc2cad6ffe61e70633bcec36a8
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"343b38f6bfbbd7d44a1387e1351700df68013555","after":"18a5bb9c67c571fc2cad6ffe61e70633bcec36a8","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/343b38f6bfbbd7d44a1387e1351700df68013555...18a5bb9c67c571fc2cad6ffe61e70633bcec36a8","commits":[{"id":"18a5bb9c67c571fc2cad6ffe61e70633bcec36a8","message":"Fix frontend and backend type-check\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/18a5bb9c67c571fc2cad6ffe61e70633bcec36a8","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-12T07:46:55+08:00","added":["e2e/test-results/ui-modules-00-test-runner--04485--域-合同模板-contract-templates--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--04485--域-合同模板-contract-templates--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--0e44b-uy-域-团购评价-groupbuy-reviews--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--0e44b-uy-域-团购评价-groupbuy-reviews--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--0fd08--域-联盟推荐-alliance-referrals--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--0fd08--域-联盟推荐-alliance-referrals--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--1208f-finance-域-佣金管理-commissions--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--1208f-finance-域-佣金管理-commissions--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--20ca9-ertising-域-广告报表-ad-reports--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--20ca9-ertising-域-广告报表-ad-reports--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--24315-sing-域-ROI分析-analytics-roi--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--24315-sing-域-ROI分析-analytics-roi--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--2498a-旅程编排-journey-orchestration--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--2498a-旅程编排-journey-orchestration--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--27705-ion-域-邮件营销-email-marketing--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--27705-ion-域-邮件营销-email-marketing--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--27a9e-ty-域-社区积分-community-points--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--27a9e-ty-域-社区积分-community-points--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--37103--联盟结算-alliance-settlements--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--37103--联盟结算-alliance-settlements--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--3ce92-试-geo-域-地理关键词-geo-keywords--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--3ce92-试-geo-域-地理关键词-geo-keywords--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--3da07-ales-core-域-客户管理-customers--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--3da07-ales-core-域-客户管理-customers--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--44465-nance-域-出款管理-disbursements--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--44465-nance-域-出款管理-disbursements--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--460c3-ition-域-短信营销-sms-marketing--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--460c3-ition-域-短信营销-sms-marketing--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--4b1f0-e-域-知识捕获-knowledge-capture--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--4b1f0-e-域-知识捕获-knowledge-capture--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--4c180--域-服务仪表盘-service-dashboard--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--4c180--域-服务仪表盘-service-dashboard--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--50e4f--团购结算-groupbuy-settlements--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--50e4f--团购结算-groupbuy-settlements--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--54f09--知识候选-knowledge-candidates--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--54f09--知识候选-knowledge-candidates--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--56806-ales-core-域-合同管理-contracts--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--56806-ales-core-域-合同管理-contracts--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--58ef8-rtising-域-广告账户-ad-accounts--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--58ef8-rtising-域-广告账户-ad-accounts--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--5aa7e-试-sales-core-域-订单管理-orders--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--5aa7e-试-sales-core-域-订单管理-orders--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--603a1-n-域-实时触发器-realtime-trigger--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--603a1-n-域-实时触发器-realtime-trigger--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--69311-tising-域-广告受众-ad-audiences--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--69311-tising-域-广告受众-ad-audiences--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--69360--域-客户营销-customer-marketing--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--69360--域-客户营销-customer-marketing--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--6c2b8--域-知识反馈-knowledge-feedback--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--6c2b8--域-知识反馈-knowledge-feedback--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--7a4a5--营销聊天机器人-marketing-chatbot--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--7a4a5--营销聊天机器人-marketing-chatbot--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--860e7-tising-域-广告投放-ad-placement--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--860e7-tising-域-广告投放-ad-placement--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--8800d-y-域-社区成员-community-members--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--8800d-y-域-社区成员-community-members--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--9c744-tising-域-广告活动-ad-campaigns--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--9c744-tising-域-广告活动-ad-campaigns--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--9ef29-ty-域-社区群组-community-groups--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--9ef29-ty-域-社区群组-community-groups--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--b03a6-dge-域-阶段知识-stage-knowledge--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--b03a6-dge-域-阶段知识-stage-knowledge--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--b69df-测试-finance-域-付款管理-payments--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--b69df-测试-finance-域-付款管理-payments--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--be12e-e-域-付款分析-payment-analytics--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--be12e-e-域-付款分析-payment-analytics--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--be735-geo-域-地理分析报表-geo-analytics--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--be735-geo-域-地理分析报表-geo-analytics--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--bf88b-ice-域-服务监控-service-monitor--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--bf88b-ice-域-服务监控-service-monitor--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--d4a62-rtising-域-广告出价-ad-biddings--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--d4a62-rtising-域-广告出价-ad-biddings--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--daa02-service-域-维护管理-maintenance--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--daa02-service-域-维护管理-maintenance--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--dc5a1-analytics-域-分析概览-analytics--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--dc5a1-analytics-域-分析概览-analytics--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--e29d5--域-联盟分析-alliance-analytics--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--e29d5--域-联盟分析-alliance-analytics--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--e488b--团购佣金-groupbuy-commissions--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--e488b--团购佣金-groupbuy-commissions--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--ec329-社交自动回复-social-auto-replies--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--ec329-社交自动回复-social-auto-replies--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--f09ee--knowledge-域-知识库-knowledge--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--f09ee--knowledge-域-知识库-knowledge--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--f90d3-tising-域-广告创意-ad-creatives--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--f90d3-tising-域-广告创意-ad-creatives--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-analytics-域-报表-reports--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-analytics-域-报表-reports--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-geo-域-地理POI-geo-pois--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-geo-域-地理POI-geo-pois--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-geo-域-地理围栏-geo-fences--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-geo-域-地理围栏-geo-fences--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-geo-域-地理评价-geo-reviews--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-geo-域-地理评价-geo-reviews--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-service-域-故障记录-faults--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-service-域-故障记录-faults--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-service-域-设备管理-devices--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-service-域-设备管理-devices--chromium/test-failed-1.png","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-Dashboard-首页-chromium/error-context.md","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-Dashboard-首页-chromium/test-failed-1.png","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-合同详情页-chromium/error-context.md","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-合同详情页-chromium/test-failed-1.png","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-商机详情页-chromium/error-context.md","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-商机详情页-chromium/test-failed-1.png","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-报价详情页-chromium/error-context.md","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-报价详情页-chromium/test-failed-1.png","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-线索列表页-chromium/error-context.md","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-线索列表页-chromium/test-failed-1.png"],"removed":[],"modified":["e2e/test-results/ui-modules-report.txt"]},{"id":"7967b5d3535c5bb9b9e26e4418376bc2b6927aea","message":"Document groupbuy service analysis\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7967b5d3535c5bb9b9e26e4418376bc2b6927aea","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-12T07:45:43+08:00","added":["e2e/test-results/ui-modules-00-test-runner--0f033-域-联盟协议-alliance-agreements--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--0f033-域-联盟协议-alliance-agreements--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--1d2a0-测试-finance-域-发票管理-invoices--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--1d2a0-测试-finance-域-发票管理-invoices--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--25c80-on-域-营销矩阵-marketing-matrix--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--25c80-on-域-营销矩阵-marketing-matrix--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--33046-试-sales-core-域-报价管理-quotes--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--33046-试-sales-core-域-报价管理-quotes--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--3bf0e-al-域-社交粉丝-social-followers--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--3bf0e-al-域-社交粉丝-social-followers--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--49ee3-t-域-资源请求-resource-requests--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--49ee3-t-域-资源请求-resource-requests--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--5599f-机看板-opportunities-pipeline--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--5599f-机看板-opportunities-pipeline--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--5ef24-service-域-备件管理-spare-parts--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--5ef24-service-域-备件管理-spare-parts--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--607c0--团购核销-groupbuy-redemptions--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--607c0--团购核销-groupbuy-redemptions--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--67c67-试-finance-域-应收账款-ar-ledger--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--67c67-试-finance-域-应收账款-ar-ledger--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--778dd-试-service-域-故障诊断-diagnosis--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--778dd-试-service-域-故障诊断-diagnosis--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--7906c--域-联盟活动-alliance-campaigns--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--7906c--域-联盟活动-alliance-campaigns--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--83eaf-rvice-域-满意度调查-satisfaction--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--83eaf-rvice-域-满意度调查-satisfaction--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--848a9-营销北极星-marketing-north-star--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--848a9-营销北极星-marketing-north-star--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--85a34-al-域-社交分析-social-analytics--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--85a34-al-域-社交分析-social-analytics--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--983f6--域-团购库存-groupbuy-inventory--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--983f6--域-团购库存-groupbuy-inventory--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--99d7e-e-域-联盟套餐-alliance-packages--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--99d7e-e-域-联盟套餐-alliance-packages--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--a3e5e-购参与者-groupbuy-participants--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--a3e5e-购参与者-groupbuy-participants--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--a40f6--域-社交竞品-social-competitors--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--a40f6--域-社交竞品-social-competitors--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--a4b96-ore-域-报价审批-quotes-approval--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--a4b96-ore-域-报价审批-quotes-approval--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--bdf16--core-域-商机管理-opportunities--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--bdf16--core-域-商机管理-opportunities--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--d1e3d-域-营销时段-marketing-timeslots--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--d1e3d-域-营销时段-marketing-timeslots--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--dfc39-e-域-联盟优惠券-alliance-coupons--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--dfc39-e-域-联盟优惠券-alliance-coupons--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--e3bd1-l-域-社交热点-social-hot-topics--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--e3bd1-l-域-社交热点-social-hot-topics--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--e9484-域-团购促销-groupbuy-promotions--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--e9484-域-团购促销-groupbuy-promotions--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-finance-域-财务概览-finance--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-finance-域-财务概览-finance--chromium/test-failed-1.png"],"removed":[],"modified":["e2e/test-results/ui-modules-report.txt"]},{"id":"6a301fa26efd7ac1cfefc96cbd912a1d9d3db9da","message":"Investigate groupbuy integration\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6a301fa26efd7ac1cfefc96cbd912a1d9d3db9da","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-12T07:45:20+08:00","added":["e2e/test-results/state-machines-lead-state--a2434--状态机---状态转换副作用-状态转换时应记录操作日志-chromium/error-context.md","e2e/test-results/state-machines-lead-state--a2434--状态机---状态转换副作用-状态转换时应记录操作日志-chromium/test-failed-1.png","e2e/test-results/state-machines-lead-state--befc8--状态机---状态转换副作用-状态转换时应发送事件通知-chromium/error-context.md","e2e/test-results/state-machines-lead-state--befc8--状态机---状态转换副作用-状态转换时应发送事件通知-chromium/test-failed-1.png","e2e/test-results/tickets-ticket-service-工单管理-应该能创建工单-chromium/error-context.md","e2e/test-results/tickets-ticket-service-工单管理-应该能创建工单-chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--00039--预测分析-predictive-analytics--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--00039--预测分析-predictive-analytics--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--01dfb-域-工作流设计器-workflow-designer--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--01dfb-域-工作流设计器-workflow-designer--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--0506f--选址评估-location-assessments--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--0506f--选址评估-location-assessments--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--0f5df--sales-core-域-销售目标-targets--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--0f5df--sales-core-域-销售目标-targets--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--1371d-应商管理中心-supplier-management--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--1371d-应商管理中心-supplier-management--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--14b3a-营销自动化-marketing-automation--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--14b3a-营销自动化-marketing-automation--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--191ae-on-域-活动目标-campaign-targets--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--191ae-on-域-活动目标-campaign-targets--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--1968a-stem-域-定时任务-scheduled-jobs--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--1968a-stem-域-定时任务-scheduled-jobs--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--1a152-newal-域-续费任务-renewal-tasks--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--1a152-newal-域-续费任务-renewal-tasks--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--1bfbc-e-域-财务报表-financial-reports--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--1bfbc-e-域-财务报表-financial-reports--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--1c870-线索评分规则-leads-scoring-rules--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--1c870-线索评分规则-leads-scoring-rules--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--1ff43-n-域-AI线索评分-lead-scoring-ai--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--1ff43-n-域-AI线索评分-lead-scoring-ai--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--209bb-y-域-团购商品-groupbuy-products--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--209bb-y-域-团购商品-groupbuy-products--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--233af-ce-域-客户余额-customer-balance--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--233af-ce-域-客户余额-customer-balance--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--23a4f-ent-域-组装工单-assembly-orders--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--23a4f-ent-域-组装工单-assembly-orders--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--23e6a-service-域-维护日历-pm-calendar--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--23e6a-service-域-维护日历-pm-calendar--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--2791a--社区活动-community-activities--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--2791a--社区活动-community-activities--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--29260-测试-system-域-审批管理-approvals--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--29260-测试-system-域-审批管理-approvals--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--2c0a1-vice-域-工单甘特图-tickets-gantt--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--2c0a1-vice-域-工单甘特图-tickets-gantt--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--2ca30--域-团购分析-groupbuy-analytics--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--2ca30--域-团购分析-groupbuy-analytics--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--328a9-lfillment-域-库存管理-inventory--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--328a9-lfillment-域-库存管理-inventory--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--346b4-lment-域-组装BOM-assembly-bom--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--346b4-lment-域-组装BOM-assembly-bom--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--3939e-ent-域-样品申请-sample-requests--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--3939e-ent-域-样品申请-sample-requests--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--3e1ed-t-域-项目日历-projects-calendar--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--3e1ed-t-域-项目日历-projects-calendar--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--3f934-social-域-社交帖子-social-posts--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--3f934-social-域-社交帖子-social-posts--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--42862-测试-sales-core-域-线索管理-leads--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--42862-测试-sales-core-域-线索管理-leads--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--4641e--直播分析-livestream-analytics--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--4641e--直播分析-livestream-analytics--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--46a3e-ion-域-营销表单-marketing-forms--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--46a3e-ion-域-营销表单-marketing-forms--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--4bafb-ance-域-对账管理-reconciliation--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--4bafb-ance-域-对账管理-reconciliation--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--4d664-测试-renewal-域-续费管理-renewals--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--4d664-测试-renewal-域-续费管理-renewals--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--524b0--直播排期-livestream-schedules--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--524b0--直播排期-livestream-schedules--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--5d843-ore-域-SWOT分析-swot-analyses--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--5d843-ore-域-SWOT分析-swot-analyses--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--624d7-isition-域-获客概览-acquisition--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--624d7-isition-域-获客概览-acquisition--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--6405c--域-后端管理-backend-management--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--6405c--域-后端管理-backend-management--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--67a66-ice-域-SLA仪表盘-sla-dashboard--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--67a66-ice-域-SLA仪表盘-sla-dashboard--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--69dd0-stem-域-租户配置-tenant-configs--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--69dd0-stem-域-租户配置-tenant-configs--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--707c7-域-社区素材-community-materials--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--707c7-域-社区素材-community-materials--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--72827-ore-域-客户利润-customer-profit--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--72827-ore-域-客户利润-customer-profit--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--72aad--域-客户分析-customer-analytics--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--72aad--域-客户分析-customer-analytics--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--754c0-y-域-社区裂变-community-fission--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--754c0-y-域-社区裂变-community-fission--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--76f19-t-域-内容分析-content-analytics--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--76f19-t-域-内容分析-content-analytics--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--7a009-ion-域-活动库-campaign-library--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--7a009-ion-域-活动库-campaign-library--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--7a9c8-tent-域-内容库-content-library--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--7a9c8-tent-域-内容库-content-library--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--7aeac-lfillment-域-发货管理-shipments--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--7aeac-lfillment-域-发货管理-shipments--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--7cc62-isition-域-归因分析-attribution--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--7cc62-isition-域-归因分析-attribution--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--7dc12-域-联盟促销-alliance-promotions--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--7dc12-域-联盟促销-alliance-promotions--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--83e2c-e-域-工单工作流-ticket-workflows--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--83e2c-e-域-工单工作流-ticket-workflows--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--85422-e-域-联盟伙伴-alliance-partners--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--85422-e-域-联盟伙伴-alliance-partners--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--8a0ac-测试-finance-域-现金流-cash-flow--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--8a0ac-测试-finance-域-现金流-cash-flow--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--8b273-illment-域-履约管理-fulfillment--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--8b273-illment-域-履约管理-fulfillment--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--8ed66--fulfillment-域-资产管理-assets--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--8ed66--fulfillment-域-资产管理-assets--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--91069-t-域-内容版权-content-copyright--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--91069-t-域-内容版权-content-copyright--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--9697b-ial-域-社交账号-social-accounts--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--9697b-ial-域-社交账号-social-accounts--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--9b6f4-试-system-域-事件日志-event-logs--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--9b6f4-试-system-域-事件日志-event-logs--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--9bf8a-ore-域-CRM活动-crm-activities--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--9bf8a-ore-域-CRM活动-crm-activities--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--9dbeb-ity-域-社区任务-community-tasks--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--9dbeb-ity-域-社区任务-community-tasks--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--9e382-ition-域-Web追踪-web-tracking--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--9e382-ition-域-Web追踪-web-tracking--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--9ebf0-uisition-域-直播入口-livestream--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--9ebf0-uisition-域-直播入口-livestream--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--9edb1-ent-域-项目甘特图-projects-gantt--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--9edb1-ent-域-项目甘特图-projects-gantt--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--a5cb4-域-事件订阅-event-subscriptions--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--a5cb4-域-事件订阅-event-subscriptions--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--a6d70-ystem-域-通知管理-notifications--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--a6d70-ystem-域-通知管理-notifications--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--a7d06-am-域-直播礼物-livestream-gifts--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--a7d06-am-域-直播礼物-livestream-gifts--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--abcff--域-直播脚本-livestream-scripts--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--abcff--域-直播脚本-livestream-scripts--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--ac0ee-nt-域-内容创作-content-creation--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--ac0ee-nt-域-内容创作-content-creation--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--addd5-re-域-销售仪表盘-sales-dashboard--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--addd5-re-域-销售仪表盘-sales-dashboard--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--aee1e--域-内容分类-content-categories--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--aee1e--域-内容分类-content-categories--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--b10ed--域-联盟商户-alliance-merchants--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--b10ed--域-联盟商户-alliance-merchants--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--b1947-域-直播商品-livestream-products--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--b1947-域-直播商品-livestream-products--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--b48b3-fillment-域-供应商管理-suppliers--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--b48b3-fillment-域-供应商管理-suppliers--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--b54f6--域-团购活动-groupbuy-campaigns--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--b54f6--域-团购活动-groupbuy-campaigns--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--b6fcc--域-产品分类-product-categories--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--b6fcc--域-产品分类-product-categories--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--b9121-eam-域-直播间-livestream-rooms--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--b9121-eam-域-直播间-livestream-rooms--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--ba412-oducts-pricing-域-CPQ配置-cpq--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--ba412-oducts-pricing-域-CPQ配置-cpq--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--bd89f--域-线索验证-lead-qualification--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--bd89f--域-线索验证-lead-qualification--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--c67f2-e-域-联盟产品-alliance-products--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--c67f2-e-域-联盟产品-alliance-products--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--c7aca-ulfillment-域-组装管理-assembly--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--c7aca-ulfillment-域-组装管理-assembly--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--c84f7-n-域-营销内容-marketing-content--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--c84f7-n-域-营销内容-marketing-content--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--c85ea-域-社区分析-community-analytics--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--c85ea-域-社区分析-community-analytics--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--c860f-ent-域-序列号管理-serial-numbers--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--c860f-ent-域-序列号管理-serial-numbers--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--cbc18--团购达人-groupbuy-influencers--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--cbc18--团购达人-groupbuy-influencers--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--cbff6-re-域-线索分配-leads-assignment--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--cbff6-re-域-线索分配-leads-assignment--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--cd815-illment-域-供应链-supply-chain--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--cd815-illment-域-供应链-supply-chain--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--cffd1-t-域-内容模板-content-templates--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--cffd1-t-域-内容模板-content-templates--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--d2a8a-域-社交互动-social-interactions--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--d2a8a-域-社交互动-social-interactions--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--d78c3-ty-域-社区等级-community-levels--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--d78c3-ty-域-社区等级-community-levels--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--d83de-ulfillment-域-项目管理-projects--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--d83de-ulfillment-域-项目管理-projects--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--d876b-re-域-客户健康度-customer-health--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--d876b-re-域-客户健康度-customer-health--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--dc411--域-团购平台-groupbuy-platforms--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--dc411--域-团购平台-groupbuy-platforms--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--e3a5b--system-域-部门管理-departments--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--e3a5b--system-域-部门管理-departments--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--e5730-cquisition-域-渠道管理-channels--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--e5730-cquisition-域-渠道管理-channels--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--e6328-tent-域-内容审核-content-review--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--e6328-tent-域-内容审核-content-review--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--e6944-quisition-域-活动管理-campaigns--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--e6944-quisition-域-活动管理-campaigns--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--ed409--域-营销日历-marketing-calendar--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--ed409--域-营销日历-marketing-calendar--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--ede2e-sition-域-着陆页-landing-pages--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--ede2e-sition-域-着陆页-landing-pages--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--ef9f2--内容分发-content-distribution--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--ef9f2--内容分发-content-distribution--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--f4ed3-ts-pricing-域-产品管理-products--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--f4ed3-ts-pricing-域-产品管理-products--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--f7411-互动-livestream-interactions--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--f7411-互动-livestream-interactions--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--f8c53-ity-域-社区机器人-community-bots--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--f8c53-ity-域-社区机器人-community-bots--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--f920b-buy-域-团购订单-groupbuy-orders--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--f920b-buy-域-团购订单-groupbuy-orders--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--fbc1a--域-社区消息-community-messages--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--fbc1a--域-社区消息-community-messages--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--fd89f--pricing-域-价格本-price-books--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--fd89f--pricing-域-价格本-price-books--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-service-域-RMA管理-rma--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-service-域-RMA管理-rma--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-service-域-SLA管理-sla--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-service-域-SLA管理-sla--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-service-域-工单管理-tickets--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-service-域-工单管理-tickets--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-service-域-预防性维护-pm--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-service-域-预防性维护-pm--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-stores-域-门店管理-stores--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-stores-域-门店管理-stores--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-system-域-仪表盘-dashboard--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-system-域-仪表盘-dashboard--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-system-域-搜索-search--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-system-域-搜索-search--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-system-域-用户管理-users--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-system-域-用户管理-users--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-system-域-系统设置-settings--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-system-域-系统设置-settings--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-system-域-角色管理-roles--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-system-域-角色管理-roles--chromium/test-failed-1.png","e2e/test-results/ui-modules-report.txt"],"removed":["e2e/test-results/.playwright-artifacts-1241/446e4211d563debfc69ec69973714b69.png"],"modified":[]},{"id":"58998e1babe1d0f9b82889482a3710073e638f36","message":"Add groupbuy external integrations\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/58998e1babe1d0f9b82889482a3710073e638f36","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-12T07:43:33+08:00","added":["e2e/test-results/.playwright-artifacts-1241/446e4211d563debfc69ec69973714b69.png","e2e/test-results/permissions-role-based-acc-d3b3c-PI-级别拦截-无权限用户-API-调用应返回-403-chromium/error-context.md","e2e/test-results/permissions-role-based-acc-d3b3c-PI-级别拦截-无权限用户-API-调用应返回-403-chromium/test-failed-1.png","e2e/test-results/permissions-role-based-acc-ebe16----API-级别拦截-有权限用户-API-调用应成功-chromium/error-context.md","e2e/test-results/permissions-role-based-acc-ebe16----API-级别拦截-有权限用户-API-调用应成功-chromium/test-failed-1.png","e2e/test-results/permissions-role-based-access-权限控制---商机模块-客服---无法访问商机模块-chromium/error-context.md","e2e/test-results/permissions-role-based-access-权限控制---商机模块-客服---无法访问商机模块-chromium/test-failed-1.png","e2e/test-results/permissions-role-based-access-权限控制---商机模块-超级管理员---可赢单-输单-chromium/error-context.md","e2e/test-results/permissions-role-based-access-权限控制---商机模块-超级管理员---可赢单-输单-chromium/test-failed-1.png","e2e/test-results/permissions-role-based-access-权限控制---商机模块-销售专员---只能看自己的商机-chromium/error-context.md","e2e/test-results/permissions-role-based-access-权限控制---商机模块-销售专员---只能看自己的商机-chromium/test-failed-1.png","e2e/test-results/permissions-role-based-access-权限控制---报价模块-财务---可查看但不能编辑报价-chromium/error-context.md","e2e/test-results/permissions-role-based-access-权限控制---报价模块-财务---可查看但不能编辑报价-chromium/test-failed-1.png","e2e/test-results/permissions-role-based-access-权限控制---报价模块-销售经理---不能审批报价-chromium/error-context.md","e2e/test-results/permissions-role-based-access-权限控制---报价模块-销售经理---不能审批报价-chromium/test-failed-1.png","e2e/test-results/permissions-role-based-access-权限控制---线索模块-客服---线索列表权限验证-chromium/error-context.md","e2e/test-results/permissions-role-based-access-权限控制---线索模块-客服---线索列表权限验证-chromium/test-failed-1.png","e2e/test-results/permissions-role-based-access-权限控制---线索模块-客服---线索创建权限验证-chromium/error-context.md","e2e/test-results/permissions-role-based-access-权限控制---线索模块-客服---线索创建权限验证-chromium/test-failed-1.png","e2e/test-results/permissions-role-based-access-权限控制---线索模块-财务---线索列表权限验证-chromium/error-context.md","e2e/test-results/permissions-role-based-access-权限控制---线索模块-财务---线索列表权限验证-chromium/test-failed-1.png","e2e/test-results/permissions-role-based-access-权限控制---线索模块-财务---线索创建权限验证-chromium/error-context.md","e2e/test-results/permissions-role-based-access-权限控制---线索模块-财务---线索创建权限验证-chromium/test-failed-1.png","e2e/test-results/permissions-role-based-access-权限控制---线索模块-超级管理员---线索创建权限验证-chromium/error-context.md","e2e/test-results/permissions-role-based-access-权限控制---线索模块-超级管理员---线索创建权限验证-chromium/test-failed-1.png","e2e/test-results/permissions-role-based-access-权限控制---线索模块-销售专员---线索列表权限验证-chromium/error-context.md","e2e/test-results/permissions-role-based-access-权限控制---线索模块-销售专员---线索列表权限验证-chromium/test-failed-1.png","e2e/test-results/permissions-role-based-access-权限控制---线索模块-销售专员---线索创建权限验证-chromium/error-context.md","e2e/test-results/permissions-role-based-access-权限控制---线索模块-销售专员---线索创建权限验证-chromium/test-failed-1.png","e2e/test-results/permissions-role-based-access-权限控制---线索模块-销售经理---线索列表权限验证-chromium/error-context.md","e2e/test-results/permissions-role-based-access-权限控制---线索模块-销售经理---线索列表权限验证-chromium/test-failed-1.png","e2e/test-results/permissions-role-based-access-权限控制---线索模块-销售经理---线索创建权限验证-chromium/error-context.md","e2e/test-results/permissions-role-based-access-权限控制---线索模块-销售经理---线索创建权限验证-chromium/test-failed-1.png","e2e/test-results/permissions-role-based-access-权限控制---菜单可见性-各角色菜单可见性验证-chromium/error-context.md","e2e/test-results/permissions-role-based-access-权限控制---菜单可见性-各角色菜单可见性验证-chromium/test-failed-1.png","e2e/test-results/quotes-quote-workflow-报价管理-应该能创建报价-chromium/error-context.md","e2e/test-results/quotes-quote-workflow-报价管理-应该能创建报价-chromium/test-failed-1.png","e2e/test-results/quotes-quote-workflow-报价管理-应该能筛选报价状态-chromium/error-context.md","e2e/test-results/quotes-quote-workflow-报价管理-应该能筛选报价状态-chromium/test-failed-1.png","e2e/test-results/state-machines-lead-state--004f3----合法转换-合法转换:new-→-released-chromium/error-context.md","e2e/test-results/state-machines-lead-state--004f3----合法转换-合法转换:new-→-released-chromium/test-failed-1.png","e2e/test-results/state-machines-lead-state--0163e-副作用-转化商机时应创建关联的-Opportunity-chromium/error-context.md","e2e/test-results/state-machines-lead-state--0163e-副作用-转化商机时应创建关联的-Opportunity-chromium/test-failed-1.png","e2e/test-results/state-machines-lead-state--22a1c---合法转换-合法转换:new-→-contacted-chromium/error-context.md","e2e/test-results/state-machines-lead-state--22a1c---合法转换-合法转换:new-→-contacted-chromium/test-failed-1.png","e2e/test-results/state-machines-lead-state--23780--合法转换:contacted-→-qualified-chromium/error-context.md","e2e/test-results/state-machines-lead-state--23780--合法转换:contacted-→-qualified-chromium/test-failed-1.png","e2e/test-results/state-machines-lead-state--3d246-合法转换-合法转换:new-→-unqualified-chromium/error-context.md","e2e/test-results/state-machines-lead-state--3d246-合法转换-合法转换:new-→-unqualified-chromium/test-failed-1.png","e2e/test-results/state-machines-lead-state--61c93-合法转换:unqualified-→-released-chromium/error-context.md","e2e/test-results/state-machines-lead-state--61c93-合法转换:unqualified-→-released-chromium/test-failed-1.png","e2e/test-results/state-machines-lead-state--72166-new-→-converted(应无-转化商机-按钮)-chromium/error-context.md","e2e/test-results/state-machines-lead-state--72166-new-→-converted(应无-转化商机-按钮)-chromium/test-failed-1.png","e2e/test-results/state-machines-lead-state--77c9b-转换:converted-→-任何状态(终态不可变更)-chromium/error-context.md","e2e/test-results/state-machines-lead-state--77c9b-转换:converted-→-任何状态(终态不可变更)-chromium/test-failed-1.png","e2e/test-results/state-machines-lead-state--829a1-法转换:released-→-任何状态(终态不可变更)-chromium/error-context.md","e2e/test-results/state-machines-lead-state--829a1-法转换:released-→-任何状态(终态不可变更)-chromium/test-failed-1.png","e2e/test-results/state-machines-lead-state--9b2a7-换-合法转换:contacted-→-released-chromium/error-context.md","e2e/test-results/state-machines-lead-state--9b2a7-换-合法转换:contacted-→-released-chromium/test-failed-1.png","e2e/test-results/state-machines-lead-state--afb72-→-qualified(应无直接-标记为已验证-按钮)-chromium/error-context.md","e2e/test-results/state-machines-lead-state--afb72-→-qualified(应无直接-标记为已验证-按钮)-chromium/test-failed-1.png","e2e/test-results/state-machines-lead-state--e8f6d-qualified-→-converted(转化商机)-chromium/error-context.md","e2e/test-results/state-machines-lead-state--e8f6d-qualified-→-converted(转化商机)-chromium/test-failed-1.png"],"removed":["e2e/test-results/.playwright-artifacts-1206/12e79e75293e088de16f8fc9b50bba6f.png","e2e/test-results/.playwright-artifacts-1206/49feedd74771bb5cdc4a5b6a3b52d1b2.png","e2e/test-results/.playwright-artifacts-1206/968a1d810b34b54c6ac72289e352bbd4.png","e2e/test-results/.playwright-artifacts-1207/6112a0e9c3b703f19153f694d2c6aaed.png","e2e/test-results/.playwright-artifacts-1207/61c5b21f81ed2dd7a2d999167c7b758a.png","e2e/test-results/.playwright-artifacts-1207/b3271152fb0b306de0b147cba786d0ae.png","e2e/test-results/.playwright-artifacts-1207/d5f4fa33efb001d26ec72032630e71b6.png","e2e/test-results/.playwright-artifacts-1209/3b9e3d765d459fbccaf44fc725f8f862.png","e2e/test-results/.playwright-artifacts-1209/ad1f66edbcd6c0afde30187248c85f98.png","e2e/test-results/.playwright-artifacts-1211/84650a9816bb110cab7bf5a01995491a.png","e2e/test-results/.playwright-artifacts-1212/f202c9b5ad19fa920dcdd4a6d6223d1f.png"],"modified":[]},{"id":"4e8869bcc54627e1f20c00de7ad2ad5469fa3446","message":"Add groupbuy service integrations\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/4e8869bcc54627e1f20c00de7ad2ad5469fa3446","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-12T07:41:44+08:00","added":["e2e/test-results/.playwright-artifacts-1206/12e79e75293e088de16f8fc9b50bba6f.png","e2e/test-results/.playwright-artifacts-1206/49feedd74771bb5cdc4a5b6a3b52d1b2.png","e2e/test-results/.playwright-artifacts-1206/968a1d810b34b54c6ac72289e352bbd4.png","e2e/test-results/.playwright-artifacts-1207/6112a0e9c3b703f19153f694d2c6aaed.png","e2e/test-results/.playwright-artifacts-1207/61c5b21f81ed2dd7a2d999167c7b758a.png","e2e/test-results/.playwright-artifacts-1207/b3271152fb0b306de0b147cba786d0ae.png","e2e/test-results/.playwright-artifacts-1207/d5f4fa33efb001d26ec72032630e71b6.png","e2e/test-results/.playwright-artifacts-1209/3b9e3d765d459fbccaf44fc725f8f862.png","e2e/test-results/.playwright-artifacts-1209/ad1f66edbcd6c0afde30187248c85f98.png","e2e/test-results/.playwright-artifacts-1211/84650a9816bb110cab7bf5a01995491a.png","e2e/test-results/.playwright-artifacts-1212/f202c9b5ad19fa920dcdd4a6d6223d1f.png","e2e/test-results/ktv-full-test-KTV-和门店相关模块完整测试-chromium/error-context.md","e2e/test-results/ktv-full-test-KTV-和门店相关模块完整测试-chromium/test-failed-1.png","e2e/test-results/ktv-stores-门店和-KTV-相关模块测试-1-登录系统-chromium/error-context.md","e2e/test-results/ktv-stores-门店和-KTV-相关模块测试-1-登录系统-chromium/test-failed-1.png","e2e/test-results/multi-tenant-data-isolatio-145a0-关联数据-租户-A-创建商机时无法关联租户-B-的客户-chromium/error-context.md","e2e/test-results/multi-tenant-data-isolatio-145a0-关联数据-租户-A-创建商机时无法关联租户-B-的客户-chromium/test-failed-1.png","e2e/test-results/multi-tenant-data-isolatio-89708--级别-租户-A-API-请求无法修改租户-B-的数据-chromium/error-context.md","e2e/test-results/multi-tenant-data-isolatio-89708--级别-租户-A-API-请求无法修改租户-B-的数据-chromium/test-failed-1.png","e2e/test-results/multi-tenant-data-isolatio-97857--级别-租户-A-API-请求无法删除租户-B-的数据-chromium/error-context.md","e2e/test-results/multi-tenant-data-isolatio-97857--级别-租户-A-API-请求无法删除租户-B-的数据-chromium/test-failed-1.png","e2e/test-results/multi-tenant-data-isolatio-fe7e2--级别-租户-A-API-请求无法获取租户-B-的数据-chromium/error-context.md","e2e/test-results/multi-tenant-data-isolatio-fe7e2--级别-租户-A-API-请求无法获取租户-B-的数据-chromium/test-failed-1.png","e2e/test-results/opportunities-opportunity-management-商机管理-应该能创建商机-chromium/error-context.md","e2e/test-results/opportunities-opportunity-management-商机管理-应该能创建商机-chromium/test-failed-1.png","e2e/test-results/permissions-role-based-access-权限控制---线索模块-超级管理员---线索列表权限验证-chromium/error-context.md","e2e/test-results/permissions-role-based-access-权限控制---线索模块-超级管理员---线索列表权限验证-chromium/test-failed-1.png"],"removed":["e2e/test-results/.playwright-artifacts-1185/02dfb8ed8955f2ff225ae927920f373b.png","e2e/test-results/.playwright-artifacts-1185/cdbaf54b58d19a5c09202189de2cca6d.png","e2e/test-results/.playwright-artifacts-1192/9e8e0b97de463c1400ff38cc3ffc02cb.png"],"modified":["frontend/src/views/settings/IntegrationServices.vue"]}],"total_commits":0,"head_commit":{"id":"18a5bb9c67c571fc2cad6ffe61e70633bcec36a8","message":"Fix frontend and backend type-check\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/18a5bb9c67c571fc2cad6ffe61e70633bcec36a8","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-12T07:46:55+08:00","added":["e2e/test-results/ui-modules-00-test-runner--04485--域-合同模板-contract-templates--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--04485--域-合同模板-contract-templates--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--0e44b-uy-域-团购评价-groupbuy-reviews--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--0e44b-uy-域-团购评价-groupbuy-reviews--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--0fd08--域-联盟推荐-alliance-referrals--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--0fd08--域-联盟推荐-alliance-referrals--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--1208f-finance-域-佣金管理-commissions--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--1208f-finance-域-佣金管理-commissions--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--20ca9-ertising-域-广告报表-ad-reports--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--20ca9-ertising-域-广告报表-ad-reports--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--24315-sing-域-ROI分析-analytics-roi--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--24315-sing-域-ROI分析-analytics-roi--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--2498a-旅程编排-journey-orchestration--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--2498a-旅程编排-journey-orchestration--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--27705-ion-域-邮件营销-email-marketing--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--27705-ion-域-邮件营销-email-marketing--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--27a9e-ty-域-社区积分-community-points--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--27a9e-ty-域-社区积分-community-points--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--37103--联盟结算-alliance-settlements--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--37103--联盟结算-alliance-settlements--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--3ce92-试-geo-域-地理关键词-geo-keywords--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--3ce92-试-geo-域-地理关键词-geo-keywords--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--3da07-ales-core-域-客户管理-customers--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--3da07-ales-core-域-客户管理-customers--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--44465-nance-域-出款管理-disbursements--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--44465-nance-域-出款管理-disbursements--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--460c3-ition-域-短信营销-sms-marketing--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--460c3-ition-域-短信营销-sms-marketing--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--4b1f0-e-域-知识捕获-knowledge-capture--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--4b1f0-e-域-知识捕获-knowledge-capture--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--4c180--域-服务仪表盘-service-dashboard--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--4c180--域-服务仪表盘-service-dashboard--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--50e4f--团购结算-groupbuy-settlements--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--50e4f--团购结算-groupbuy-settlements--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--54f09--知识候选-knowledge-candidates--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--54f09--知识候选-knowledge-candidates--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--56806-ales-core-域-合同管理-contracts--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--56806-ales-core-域-合同管理-contracts--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--58ef8-rtising-域-广告账户-ad-accounts--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--58ef8-rtising-域-广告账户-ad-accounts--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--5aa7e-试-sales-core-域-订单管理-orders--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--5aa7e-试-sales-core-域-订单管理-orders--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--603a1-n-域-实时触发器-realtime-trigger--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--603a1-n-域-实时触发器-realtime-trigger--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--69311-tising-域-广告受众-ad-audiences--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--69311-tising-域-广告受众-ad-audiences--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--69360--域-客户营销-customer-marketing--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--69360--域-客户营销-customer-marketing--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--6c2b8--域-知识反馈-knowledge-feedback--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--6c2b8--域-知识反馈-knowledge-feedback--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--7a4a5--营销聊天机器人-marketing-chatbot--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--7a4a5--营销聊天机器人-marketing-chatbot--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--860e7-tising-域-广告投放-ad-placement--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--860e7-tising-域-广告投放-ad-placement--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--8800d-y-域-社区成员-community-members--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--8800d-y-域-社区成员-community-members--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--9c744-tising-域-广告活动-ad-campaigns--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--9c744-tising-域-广告活动-ad-campaigns--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--9ef29-ty-域-社区群组-community-groups--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--9ef29-ty-域-社区群组-community-groups--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--b03a6-dge-域-阶段知识-stage-knowledge--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--b03a6-dge-域-阶段知识-stage-knowledge--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--b69df-测试-finance-域-付款管理-payments--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--b69df-测试-finance-域-付款管理-payments--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--be12e-e-域-付款分析-payment-analytics--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--be12e-e-域-付款分析-payment-analytics--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--be735-geo-域-地理分析报表-geo-analytics--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--be735-geo-域-地理分析报表-geo-analytics--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--bf88b-ice-域-服务监控-service-monitor--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--bf88b-ice-域-服务监控-service-monitor--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--d4a62-rtising-域-广告出价-ad-biddings--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--d4a62-rtising-域-广告出价-ad-biddings--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--daa02-service-域-维护管理-maintenance--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--daa02-service-域-维护管理-maintenance--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--dc5a1-analytics-域-分析概览-analytics--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--dc5a1-analytics-域-分析概览-analytics--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--e29d5--域-联盟分析-alliance-analytics--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--e29d5--域-联盟分析-alliance-analytics--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--e488b--团购佣金-groupbuy-commissions--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--e488b--团购佣金-groupbuy-commissions--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--ec329-社交自动回复-social-auto-replies--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--ec329-社交自动回复-social-auto-replies--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--f09ee--knowledge-域-知识库-knowledge--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--f09ee--knowledge-域-知识库-knowledge--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner--f90d3-tising-域-广告创意-ad-creatives--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner--f90d3-tising-域-广告创意-ad-creatives--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-analytics-域-报表-reports--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-analytics-域-报表-reports--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-geo-域-地理POI-geo-pois--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-geo-域-地理POI-geo-pois--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-geo-域-地理围栏-geo-fences--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-geo-域-地理围栏-geo-fences--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-geo-域-地理评价-geo-reviews--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-geo-域-地理评价-geo-reviews--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-service-域-故障记录-faults--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-service-域-故障记录-faults--chromium/test-failed-1.png","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-service-域-设备管理-devices--chromium/error-context.md","e2e/test-results/ui-modules-00-test-runner-UI-模块完整性测试-service-域-设备管理-devices--chromium/test-failed-1.png","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-Dashboard-首页-chromium/error-context.md","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-Dashboard-首页-chromium/test-failed-1.png","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-合同详情页-chromium/error-context.md","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-合同详情页-chromium/test-failed-1.png","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-商机详情页-chromium/error-context.md","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-商机详情页-chromium/test-failed-1.png","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-报价详情页-chromium/error-context.md","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-报价详情页-chromium/test-failed-1.png","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-线索列表页-chromium/error-context.md","e2e/test-results/visual-regression-ui-screenshots-视觉回归测试---核心页面-线索列表页-chromium/test-failed-1.png"],"removed":[],"modified":["e2e/test-results/ui-modules-report.txt"]},"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":true,"fork":false,"template":false,"parent":null,"mirror":false,"size":69230,"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-24T00:06:08+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
|
20
|
1771862815
|
1771862907
|
0
|
1771862813
|
1771862907
|
NULL
|
|
0
|
Edit
Delete
|
|
20
|
test11188889
|
2
|
2
|
hello-world.yaml
|
19
|
1
|
0
|
refs/heads/main
|
22ffb09cf279f85db485e386b24c7d3a1cdda4e6
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"b277cb95b0e9e11aded5a72555e5bfe6066bd7b5","after":"22ffb09cf279f85db485e386b24c7d3a1cdda4e6","compare_url":"https://gitea.g-hi.com/juhai/testpc/compare/b277cb95b0e9e11aded5a72555e5bfe6066bd7b5...22ffb09cf279f85db485e386b24c7d3a1cdda4e6","commits":[{"id":"22ffb09cf279f85db485e386b24c7d3a1cdda4e6","message":"test11188889\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/22ffb09cf279f85db485e386b24c7d3a1cdda4e6","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-12T14:38:45+08:00","added":[],"removed":[],"modified":[".gitea/workflows/hello-world.yaml"]}],"total_commits":0,"head_commit":{"id":"22ffb09cf279f85db485e386b24c7d3a1cdda4e6","message":"test11188889\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/22ffb09cf279f85db485e386b24c7d3a1cdda4e6","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-12T14:38:45+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":17724,"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:38: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":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
|
2
|
0
|
1770878361
|
0
|
1770878332
|
1770878361
|
NULL
|
|
0
|
Edit
Delete
|
|
57
|
Add external group-buy integrations
|
6
|
5
|
test-comprehensive.yml
|
18
|
5
|
0
|
refs/heads/main
|
343b38f6bfbbd7d44a1387e1351700df68013555
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7145a8553a880d8a94356baf7bcb4e2df4631e61","after":"343b38f6bfbbd7d44a1387e1351700df68013555","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/7145a8553a880d8a94356baf7bcb4e2df4631e61...343b38f6bfbbd7d44a1387e1351700df68013555","commits":[{"id":"343b38f6bfbbd7d44a1387e1351700df68013555","message":"Add external group-buy integrations\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/343b38f6bfbbd7d44a1387e1351700df68013555","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-12T00:24:50+08:00","added":["e2e/test-results/.playwright-artifacts-123/0036a3ea004cf5faa825c1a3f8a6073f.png","e2e/test-results/.playwright-artifacts-123/113c7ba0c2ff6d2fe8d1527940153460.png","e2e/test-results/.playwright-artifacts-123/79e885472a3e6aeefe2c645e91e0299c.png","e2e/test-results/.playwright-artifacts-123/8960e110a7a16b8d1fda875c99115fc8.png","e2e/test-results/.playwright-artifacts-123/9340a7c7d25713d09068ef16ece6dc17.png","e2e/test-results/.playwright-artifacts-123/acbb71e1c6eb56a4bdc6daca62edb201.png","e2e/test-results/.playwright-artifacts-123/fffee32e8dbcea21ff4e74025022ba51.png","e2e/test-results/.playwright-artifacts-129/11476567fd09fa05f8fee058cae86686.png","e2e/test-results/.playwright-artifacts-129/1739c18fdfafcd1ddb89789bed64540f.png","e2e/test-results/.playwright-artifacts-129/6d8a6e59007dd53762caa0b90533996b.png","e2e/test-results/.playwright-artifacts-129/8b1c460ee4c9236a3443d2d6cbd185e2.png","e2e/test-results/.playwright-artifacts-129/99bfeadb7dd5f26df1f6f56a4eccdedc.png","e2e/test-results/.playwright-artifacts-129/baeada42716032c6f3c422664341717f.png","e2e/test-results/.playwright-artifacts-129/d56c024ed6abd9c9901c2834e695bbf6.png","e2e/test-results/.playwright-artifacts-135/040ea31135b74f973651b4df66ad2872.png","e2e/test-results/.playwright-artifacts-135/56a94c2d172c4e9f05cd349393c6efac.png","e2e/test-results/.playwright-artifacts-135/831b35c9c049da732306796db028c9fb.png","e2e/test-results/.playwright-artifacts-135/968ceefc530d18fcdcfb9f0c5bc464a8.png","e2e/test-results/.playwright-artifacts-135/a1f02a9f178b7c97da9b0fa17e8b907e.png","e2e/test-results/.playwright-artifacts-135/a51d824fd19bcea1380614157b07958d.png","e2e/test-results/.playwright-artifacts-135/acd5d4da1e1bf25b6b5ace1ba7565dcc.png","e2e/test-results/.playwright-artifacts-135/b6dffd33a245a7b80fc4770f9bf06b08.png","e2e/test-results/.playwright-artifacts-146/14a59910d516bd6aa293c0a85981621c.png","e2e/test-results/.playwright-artifacts-146/1ab95bcae962e4830101cd0b9ea979a3.png","e2e/test-results/.playwright-artifacts-146/44b3dc06fdbc5b50b55bd9aa93f58aea.png","e2e/test-results/.playwright-artifacts-146/6f7d208511930d83631f4778b38c2fd9.png","e2e/test-results/.playwright-artifacts-146/97845a6a9a0f01c67b88cf2e0a069af4.png","e2e/test-results/.playwright-artifacts-146/ada9e1a053fa71334be267e07c61d562.png","e2e/test-results/.playwright-artifacts-146/bce7da974abf178509043c149789fa5d.png","e2e/test-results/.playwright-artifacts-150/1f063d21022a6ca57b555291a7e9e13a.png","e2e/test-results/.playwright-artifacts-150/2278e0d8acc1279c6e4500e704f09267.png","e2e/test-results/.playwright-artifacts-150/74185d4e92c0ba9276af41bed4ea6ae1.png","e2e/test-results/.playwright-artifacts-150/8cf6870d845b0c9efb5e60ca58d96ec9.png","e2e/test-results/.playwright-artifacts-150/a15e8586f78be7229b2c525ab74eb46b.png","e2e/test-results/.playwright-artifacts-150/a39845c8368269f22e26985c61b4dbf6.png","e2e/test-results/.playwright-artifacts-150/bbeb940e2abb81bd33fb4f813dc81a74.png","e2e/test-results/.playwright-artifacts-153/20bab9c3b5a6a6c8f3c6e3493f0e1ba9.png","e2e/test-results/.playwright-artifacts-153/371fe221a15aeaa717f886876620d921.png","e2e/test-results/.playwright-artifacts-153/76cd4918f2304339ec1fe76ddcd7b55b.png","e2e/test-results/.playwright-artifacts-153/ae0376b9adb95505eb51e02ee90bbc8e.png","e2e/test-results/.playwright-artifacts-153/b531974f77e5e32e41ba7cca555f0bb7.png","e2e/test-results/.playwright-artifacts-153/b53ba76429c317199a14cb4364752825.png","e2e/test-results/.playwright-artifacts-153/ee392b3970023ccb139385de481abd72.png","e2e/test-results/.playwright-artifacts-154/0c13079a018ac9c13c4ba8db3ff4e094.png","e2e/test-results/.playwright-artifacts-154/118916b3102656818305cb217b588269.png","e2e/test-results/.playwright-artifacts-154/2e6e287d0dcdc0856c9362de8d6398aa.png","e2e/test-results/.playwright-artifacts-154/3a5f657bb84a41d032a0343df35d41a9.png","e2e/test-results/.playwright-artifacts-154/58301d1a07921edeb74d3a3483b1817a.png","e2e/test-results/.playwright-artifacts-154/ac3bf05aa40dd328f8ff94ea57b593d3.png","e2e/test-results/.playwright-artifacts-155/0f3785e074c2013fdb503ad2fbdb493e.png","e2e/test-results/.playwright-artifacts-155/a1bd8ce117a14b6e0de18cac5664ccaf.png","e2e/test-results/.playwright-artifacts-155/d6a52e76b890f02659819011f04fe8ec.png","e2e/test-results/crud-00-crud-runner-CRUD-严-045cc--删除-软-硬-可用-module-customers-chromium/attachments/probe-D01-8c7f456f302d2e70a2b7284d5b766d718e3352ae.json","e2e/test-results/crud-00-crud-runner-CRUD-严-06138-理-P01-权限矩阵-module-customers-chromium/attachments/probe-P01-dbc1e84cd0231cc2cd28fc2664348f332afc7d30.json","e2e/test-results/crud-00-crud-runner-CRUD-严-0cce6-02-更新权限-冲突-module-customers-chromium/attachments/probe-U02-43119af1727a79f6180e1f9cf4994cb26ec3b6cc.json","e2e/test-results/crud-00-crud-runner-CRUD-严-11522-软-硬-可用-module-opportunities-chromium/attachments/probe-D01-e43feac88c283a8bb5cfc28a3f54d6b0f07aca96.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1c969-D01-删除-软-硬-可用-module-orders-chromium/attachments/probe-D01-9b1d50362ea9770713b1fbf3d7858f876467484a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-3ac20-可用-module-partner-customers-chromium/attachments/probe-D01-1a6ebd5c788589fd1a39652a71d3716ded7fbed0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-41a40--线索管理-P01-权限矩阵-module-leads-chromium/attachments/probe-P01-a6cb822f15dde41179f2e984eeabc9c44494dacf.json","e2e/test-results/crud-00-crud-runner-CRUD-严-44a59--D01-删除-软-硬-可用-module-leads-chromium/attachments/probe-D01-807a2917507571c15e8ab96b895ae35f3ebfe663.json","e2e/test-results/crud-00-crud-runner-CRUD-严-53621-失败-module-partner-customers-chromium/attachments/probe-C02-3b1bb444202d36da2be56db4b6fc48d299f7b5b6.json","e2e/test-results/crud-00-crud-runner-CRUD-严-5b1fe-新权限-冲突-module-opportunities-chromium/attachments/probe-U02-083960f4995b4d35de257a738ac9dfb13c4851a5.json","e2e/test-results/crud-00-crud-runner-CRUD-严-5ba96-C02-创建校验失败-module-customers-chromium/attachments/probe-C02-bb26fd85550a6ff2937da16907cc5e695d7d68a7.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6affb-管理-U02-更新权限-冲突-module-leads-chromium/attachments/probe-U02-8c2d36fc8db97332aec6e4fccabb72db860b27c7.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6fb80-订单管理-E01-异常恢复-module-orders-chromium/attachments/probe-E01-b7bd7a53de90a9de565e895635d1d916a2ac4c13.json","e2e/test-results/crud-00-crud-runner-CRUD-严-75e9b-创建校验失败-module-opportunities-chromium/attachments/probe-C02-56114da1e981cd353811b030b54cf2825c2cf1c4.json","e2e/test-results/crud-00-crud-runner-CRUD-严-775a5-冲突-module-partner-customers-chromium/attachments/probe-U02-d35eb131ff22ad3ad71ff6f6152a0fc5d1c5ba9a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-81cdf-1-异常恢复-module-opportunities-chromium/attachments/probe-E01-67e5658a9eb109a3d2dc9a03f36d6a7be6147f7d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-86911-理-U02-更新权限-冲突-module-orders-chromium/attachments/probe-U02-dc281a7ac7950837e6cfff0372d360e0182818af.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8eb54-管理-C02-创建校验失败-module-orders-chromium/attachments/probe-C02-c486ba5d7bc3cac3fcc6ab9b2e879e894470751c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-91ddf-1-权限矩阵-module-opportunities-chromium/attachments/probe-P01-b59a575c564d37f5393d644761feff2783626088.json","e2e/test-results/crud-00-crud-runner-CRUD-严-9f610-索管理-C02-创建校验失败-module-leads-chromium/attachments/probe-C02-cb8baf848c0834fc939518ccbf58fab8672a7530.json","e2e/test-results/crud-00-crud-runner-CRUD-严-9fcf5-矩阵-module-partner-customers-chromium/attachments/probe-P01-8a41816eb5d2c8c56a744690a1576dadd630160a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a3731-订单管理-P01-权限矩阵-module-orders-chromium/attachments/probe-P01-30b94b8b9207fb726901bcab1127fe15c1b18c98.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c06c1-理-E01-异常恢复-module-customers-chromium/attachments/probe-E01-22e23e43ab9713d764572d8b3491179fd9889297.json","e2e/test-results/crud-00-crud-runner-CRUD-严-dca3a--线索管理-E01-异常恢复-module-leads-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-dca3a--线索管理-E01-异常恢复-module-leads-chromium/test-failed-1.png","e2e/test-results/crud/probes/customers-C02-1770827050956.json","e2e/test-results/crud/probes/customers-D01-1770827053886.json","e2e/test-results/crud/probes/customers-E01-1770827058974.json","e2e/test-results/crud/probes/customers-P01-1770827056383.json","e2e/test-results/crud/probes/customers-U02-1770827054979.json","e2e/test-results/crud/probes/leads-C02-1770827058659.json","e2e/test-results/crud/probes/leads-D01-1770827063025.json","e2e/test-results/crud/probes/leads-P01-1770827063720.json","e2e/test-results/crud/probes/leads-U02-1770827062828.json","e2e/test-results/crud/probes/opportunities-C02-1770827067673.json","e2e/test-results/crud/probes/opportunities-D01-1770827070647.json","e2e/test-results/crud/probes/opportunities-E01-1770827075636.json","e2e/test-results/crud/probes/opportunities-P01-1770827073400.json","e2e/test-results/crud/probes/opportunities-U02-1770827068171.json","e2e/test-results/crud/probes/orders-C02-1770827075123.json","e2e/test-results/crud/probes/orders-D01-1770827079459.json","e2e/test-results/crud/probes/orders-E01-1770827081598.json","e2e/test-results/crud/probes/orders-P01-1770827081447.json","e2e/test-results/crud/probes/orders-U02-1770827077941.json","e2e/test-results/crud/probes/partner-customers-C02-1770827083996.json","e2e/test-results/crud/probes/partner-customers-D01-1770827089066.json","e2e/test-results/crud/probes/partner-customers-P01-1770827089474.json","e2e/test-results/crud/probes/partner-customers-U02-1770827089055.json"],"removed":["e2e/test-results/.playwright-artifacts-149/3b50413d871f92fc7e7d32b34beb742f.png","e2e/test-results/.playwright-artifacts-149/88414d18ef67d6fa7fdd124986d691c7.png","e2e/test-results/.playwright-artifacts-149/f668a9d7fc16b945b8cd9dcf61cf03b3.png"],"modified":[]},{"id":"1f279b5dfe76404d425c390ba104d9820a7862f9","message":"Expand integration services for ad平台\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1f279b5dfe76404d425c390ba104d9820a7862f9","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-12T00:24:09+08:00","added":["e2e/test-results/.playwright-artifacts-123/0366d1c318fb54a84f9618f25149b178.png","e2e/test-results/.playwright-artifacts-123/03913ff8db5e425b1c7f19e213ce9557.png","e2e/test-results/.playwright-artifacts-123/0f1139cb77111ebc5e9490594b8eba27.png","e2e/test-results/.playwright-artifacts-123/13a6278921b416958463ef19f4616cb5.png","e2e/test-results/.playwright-artifacts-123/1414aecbbf8bc644a33431beb8a2d6e9.png","e2e/test-results/.playwright-artifacts-123/14943c4b13e989c8b3ff0809dfeac130.png","e2e/test-results/.playwright-artifacts-123/1ca524e2188a82ed3a81d5d379c67aef.png","e2e/test-results/.playwright-artifacts-123/21db441dd9ae0be2d2b321b230bb3349.png","e2e/test-results/.playwright-artifacts-123/2be970c2845772cb340810cefe6edec6.png","e2e/test-results/.playwright-artifacts-123/308af3b6d4fdb21656f5ed225f1f70c2.png","e2e/test-results/.playwright-artifacts-123/3ca055bbca2ee6f857231edc9f5748f0.png","e2e/test-results/.playwright-artifacts-123/4415c462ca8ac230f0b71418693db2c8.png","e2e/test-results/.playwright-artifacts-123/492a506caac899020995cdd0b10b4e07.png","e2e/test-results/.playwright-artifacts-123/4c72c5e8ced397c3b2700722938d6220.png","e2e/test-results/.playwright-artifacts-123/549aceff7cf4000c56c5c160e6558467.png","e2e/test-results/.playwright-artifacts-123/56b20bf3ad30afde2b786ab2af0a8eab.png","e2e/test-results/.playwright-artifacts-123/5e9bdf8a61b69cca21e458a4e212d345.png","e2e/test-results/.playwright-artifacts-123/622308cf5e0beb03c6f25acb90bfdd7f.png","e2e/test-results/.playwright-artifacts-123/632d35e44c4a54ba58e2985c3de7673a.png","e2e/test-results/.playwright-artifacts-123/633a4fd25a088a84883694111c5c8fe3.png","e2e/test-results/.playwright-artifacts-123/6adad1dc77985402d73210cef1274db5.png","e2e/test-results/.playwright-artifacts-123/70351f2b91ede454fbb073f54b023d53.png","e2e/test-results/.playwright-artifacts-123/865f38766c2dd8f20c903a9cfc0d0692.png","e2e/test-results/.playwright-artifacts-123/8e23e0573ea4cdd75c74fbd4b7d1887b.png","e2e/test-results/.playwright-artifacts-123/92066653d9d45e353c7e2f2e7869d1f5.png","e2e/test-results/.playwright-artifacts-123/a01076803ef1239a011d0ae8fc3afb90.png","e2e/test-results/.playwright-artifacts-123/a288996a3810c4a687e7af66b7087918.png","e2e/test-results/.playwright-artifacts-123/a94be80a260cdbc50fbb4f1d1ffe6a9e.png","e2e/test-results/.playwright-artifacts-123/c1ccda835c24f9e23f33addc5b6987c0.png","e2e/test-results/.playwright-artifacts-123/c8759111f25f4940e4f0653773ed86c5.png","e2e/test-results/.playwright-artifacts-123/d9c0f601b57675be4124ac3c4d221626.png","e2e/test-results/.playwright-artifacts-123/e3a0272799892be41b2e80c5e69eb6fe.png","e2e/test-results/.playwright-artifacts-123/f3166cdf4217caca7053a3d398fee52e.png","e2e/test-results/.playwright-artifacts-123/f71b4bc5c87937ddd97cc1044b51484d.png","e2e/test-results/.playwright-artifacts-129/2e1076cd5a44b83bfe50c45f06d469d3.png","e2e/test-results/.playwright-artifacts-129/347f24d4200bcf8c0fe4caf85a30c228.png","e2e/test-results/.playwright-artifacts-129/384bd3f41dd865550e5dd16a56bd9614.png","e2e/test-results/.playwright-artifacts-129/3e90a8868a2ddb02bdfea0f6fadf4aee.png","e2e/test-results/.playwright-artifacts-129/5150b4cf94d6f1e3f986668b7da90028.png","e2e/test-results/.playwright-artifacts-129/5749906ecf9049dcdaae47acd067aa35.png","e2e/test-results/.playwright-artifacts-129/604bf67330c8506dcd1bb8f38088086b.png","e2e/test-results/.playwright-artifacts-129/6551408d48e29cc86c6512aebf101105.png","e2e/test-results/.playwright-artifacts-129/65b491d93117a04db933ae66c95b902a.png","e2e/test-results/.playwright-artifacts-129/9239e7b425f30578c9f9baea3245d8e0.png","e2e/test-results/.playwright-artifacts-129/aa2327de947339681753d2e118b83782.png","e2e/test-results/.playwright-artifacts-129/ac15e20db9c1cfecc03b90d6103d683e.png","e2e/test-results/.playwright-artifacts-129/ac9d9689547b7e0cfc29dd8aa6940f30.png","e2e/test-results/.playwright-artifacts-129/aecff53208e33a676e58e31413e449b5.png","e2e/test-results/.playwright-artifacts-129/b8efd9ba74b3863756daee735695e14c.png","e2e/test-results/.playwright-artifacts-129/ba78d529a40ec41d950755a1dd2b7f07.png","e2e/test-results/.playwright-artifacts-129/be9c67d6ea3397a4c1f72a318d15a6fa.png","e2e/test-results/.playwright-artifacts-129/c024477a63154dcb6dc268d18380ac97.png","e2e/test-results/.playwright-artifacts-129/cadc0727a6d07011beee262dbc2983cd.png","e2e/test-results/.playwright-artifacts-129/e8f04fba447e96bdaadf7d35bd08a8df.png","e2e/test-results/.playwright-artifacts-129/ebe68ab4b37caf3539349cace178a124.png","e2e/test-results/.playwright-artifacts-129/f09fbf7ba21ab27e837f2bec62bed63e.png","e2e/test-results/.playwright-artifacts-129/f8a73b78c4753eb04d0ed1f234ba55a1.png","e2e/test-results/.playwright-artifacts-129/fa436d3d83990c2c8caa318510a3dffa.png","e2e/test-results/.playwright-artifacts-135/09d2c595eea34530febe559d8243f95a.png","e2e/test-results/.playwright-artifacts-135/1e8c839d01896f1d8f27b97ea3302746.png","e2e/test-results/.playwright-artifacts-135/49505ebd713cc96616c8f97eecdbeb17.png","e2e/test-results/.playwright-artifacts-135/4eaadd7824505d164a5fa7b8c1076ccb.png","e2e/test-results/.playwright-artifacts-135/57eebfe55859feea9dc2104879b200ef.png","e2e/test-results/.playwright-artifacts-135/5f9565e6144f1f17f24677d182f0e51b.png","e2e/test-results/.playwright-artifacts-135/7779832854db29d852eef4df22463950.png","e2e/test-results/.playwright-artifacts-135/7c47ecba32583eb892d9d6629585eb0f.png","e2e/test-results/.playwright-artifacts-135/86095ca7f1fd956b4db89d28f3383c5f.png","e2e/test-results/.playwright-artifacts-135/87f6b496390c2e40e0b88d54b4b365ba.png","e2e/test-results/.playwright-artifacts-135/89c13faa40bdd2960646c0e2458a7880.png","e2e/test-results/.playwright-artifacts-135/ab947187fe8df045a5e5b93778cce066.png","e2e/test-results/.playwright-artifacts-135/b1cb2d17e61194e19e14d49a28b483b1.png","e2e/test-results/.playwright-artifacts-135/c2ad515e97c23096c2dd0294249daf78.png","e2e/test-results/.playwright-artifacts-135/cdd40b11302990407ff076a10318e2b7.png","e2e/test-results/.playwright-artifacts-135/dde338cbd7736afb248dd818e662fc66.png","e2e/test-results/.playwright-artifacts-135/e4a6744bd02bdcccdc5485b4368a7a3d.png","e2e/test-results/.playwright-artifacts-135/f3e019b966fb4c1608229f02e2db732e.png","e2e/test-results/.playwright-artifacts-135/fd33dbbc9849437ed9aa4b164f75f866.png","e2e/test-results/.playwright-artifacts-146/27b87d9c7671dc0af86ec6cbc96f5976.png","e2e/test-results/.playwright-artifacts-146/37aabb6752349fae13a0e4bfd54fe68f.png","e2e/test-results/.playwright-artifacts-146/9e2f215eeeb67a057e397d62057e7a3a.png","e2e/test-results/.playwright-artifacts-146/a0f643784b173faeed685fafb9263f03.png","e2e/test-results/.playwright-artifacts-146/c7739d182a688fd48274bc89ce9e8145.png","e2e/test-results/.playwright-artifacts-149/3b50413d871f92fc7e7d32b34beb742f.png","e2e/test-results/.playwright-artifacts-149/88414d18ef67d6fa7fdd124986d691c7.png","e2e/test-results/.playwright-artifacts-149/f668a9d7fc16b945b8cd9dcf61cf03b3.png","e2e/test-results/.playwright-artifacts-150/16419be62cbf2f681f5650b3b6694637.png","e2e/test-results/.playwright-artifacts-150/fdad56ff5cc65cf9da384c15ab4fb08e.png","e2e/test-results/business-flows-order-fulfi-173b2-程-E2E-测试-非法状态转换测试:已完成订单不能取消-chromium/error-context.md","e2e/test-results/business-flows-order-fulfi-173b2-程-E2E-测试-非法状态转换测试:已完成订单不能取消-chromium/test-failed-1.png","e2e/test-results/business-flows-order-fulfi-c1ba0-程-E2E-测试-下载订单-PDF:生成并下载订单文档-chromium/error-context.md","e2e/test-results/business-flows-order-fulfi-c1ba0-程-E2E-测试-下载订单-PDF:生成并下载订单文档-chromium/test-failed-1.png","e2e/test-results/business-flows-order-fulfi-cefd5-订单完成触发链路:资产登记-→-保修激活-→-权益生效-chromium/error-context.md","e2e/test-results/business-flows-order-fulfi-cefd5-订单完成触发链路:资产登记-→-保修激活-→-权益生效-chromium/test-failed-1.png","e2e/test-results/business-flows-order-fulfi-d4f9b-已支付-→-处理中-→-已发货-→-已送达-→-已完成-chromium/error-context.md","e2e/test-results/business-flows-order-fulfi-d4f9b-已支付-→-处理中-→-已发货-→-已送达-→-已完成-chromium/test-failed-1.png","e2e/test-results/business-flows-quote-appro-2194d-E-测试-正常流程:小额折扣无需审批-→-直接发送客户-chromium/error-context.md","e2e/test-results/business-flows-quote-appro-2194d-E-测试-正常流程:小额折扣无需审批-→-直接发送客户-chromium/test-failed-1.png","e2e/test-results/business-flows-quote-appro-37b89-程-E2E-测试-完整流程:报价接受-→-自动生成合同-chromium/error-context.md","e2e/test-results/business-flows-quote-appro-37b89-程-E2E-测试-完整流程:报价接受-→-自动生成合同-chromium/test-failed-1.png","e2e/test-results/business-flows-quote-appro-46c9f-流程:大额折扣触发审批-→-经理审批通过-→-发送客户-chromium/error-context.md","e2e/test-results/business-flows-quote-appro-46c9f-流程:大额折扣触发审批-→-经理审批通过-→-发送客户-chromium/test-failed-1.png","e2e/test-results/business-flows-quote-appro-61785-批流程-E2E-测试-SLA-测试:报价有效期到期提醒-chromium/error-context.md","e2e/test-results/business-flows-quote-appro-61785-批流程-E2E-测试-SLA-测试:报价有效期到期提醒-chromium/test-failed-1.png","e2e/test-results/business-flows-quote-appro-6a563-价审批流程-E2E-测试-权限测试:销售专员无审批权限-chromium/error-context.md","e2e/test-results/business-flows-quote-appro-6a563-价审批流程-E2E-测试-权限测试:销售专员无审批权限-chromium/test-failed-1.png","e2e/test-results/business-flows-quote-appro-6bb4a--报价审批流程-E2E-测试-报价克隆功能:创建新版本-chromium/error-context.md","e2e/test-results/business-flows-quote-appro-6bb4a--报价审批流程-E2E-测试-报价克隆功能:创建新版本-chromium/test-failed-1.png","e2e/test-results/business-flows-quote-appro-ff7ad-试-审批拒绝流程:经理拒绝-→-销售修改-→-重新提交-chromium/error-context.md","e2e/test-results/business-flows-quote-appro-ff7ad-试-审批拒绝流程:经理拒绝-→-销售修改-→-重新提交-chromium/test-failed-1.png","e2e/test-results/business-flows-ticket-proc-03d35-理流程-E2E-测试-重新打开流程:已关闭工单重新打开-chromium/error-context.md","e2e/test-results/business-flows-ticket-proc-03d35-理流程-E2E-测试-重新打开流程:已关闭工单重新打开-chromium/test-failed-1.png","e2e/test-results/business-flows-ticket-proc-03dd5-w-工单处理流程-E2E-测试-打印工单:生成打印版本-chromium/error-context.md","e2e/test-results/business-flows-ticket-proc-03dd5-w-工单处理流程-E2E-测试-打印工单:生成打印版本-chromium/test-failed-1.png","e2e/test-results/business-flows-ticket-proc-05bbd-:新建-→-已分配-→-处理中-→-已解决-→-已关闭-chromium/error-context.md","e2e/test-results/business-flows-ticket-proc-05bbd-:新建-→-已分配-→-处理中-→-已解决-→-已关闭-chromium/test-failed-1.png","e2e/test-results/business-flows-ticket-proc-1cdf9-处理流程-E2E-测试-权限测试:一线客服不能删除工单-chromium/error-context.md","e2e/test-results/business-flows-ticket-proc-1cdf9-处理流程-E2E-测试-权限测试:一线客服不能删除工单-chromium/test-failed-1.png","e2e/test-results/business-flows-ticket-proc-3474b-E-测试-SLA-超时预警:首次响应超时-解决时间超时-chromium/error-context.md","e2e/test-results/business-flows-ticket-proc-3474b-E-测试-SLA-超时预警:首次响应超时-解决时间超时-chromium/test-failed-1.png","e2e/test-results/business-flows-ticket-proc-381df-→-分配-→-处理-→-解决-→-关闭-→-满意度调查-chromium/error-context.md","e2e/test-results/business-flows-ticket-proc-381df-→-分配-→-处理-→-解决-→-关闭-→-满意度调查-chromium/test-failed-1.png","e2e/test-results/business-flows-ticket-proc-555cf--E2E-测试-非法状态转换测试:新建工单不能直接关闭-chromium/error-context.md","e2e/test-results/business-flows-ticket-proc-555cf--E2E-测试-非法状态转换测试:新建工单不能直接关闭-chromium/test-failed-1.png","e2e/test-results/business-flows-ticket-proc-a4b93-流程-E2E-测试-权限测试:只有客服经理可以删除工单-chromium/error-context.md","e2e/test-results/business-flows-ticket-proc-a4b93-流程-E2E-测试-权限测试:只有客服经理可以删除工单-chromium/test-failed-1.png","e2e/test-results/business-flows-ticket-proc-e0988-2E-测试-关联订单流程:从订单创建工单-→-关联资产-chromium/error-context.md","e2e/test-results/business-flows-ticket-proc-e0988-2E-测试-关联订单流程:从订单创建工单-→-关联资产-chromium/test-failed-1.png","e2e/test-results/business-flows-ticket-proc-ef546-理流程-E2E-测试-权限测试:客户只能查看自己的工单-chromium/error-context.md","e2e/test-results/business-flows-ticket-proc-ef546-理流程-E2E-测试-权限测试:客户只能查看自己的工单-chromium/test-failed-1.png","e2e/test-results/business-flows-ticket-proc-efb99-试-升级流程:一线无法处理-→-升级二线-→-升级经理-chromium/error-context.md","e2e/test-results/business-flows-ticket-proc-efb99-试-升级流程:一线无法处理-→-升级二线-→-升级经理-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-018da-ule-livestream-interactions-chromium/attachments/probe-C02-49460ef089758bcf7ce55b05661f8372c8923908.json","e2e/test-results/crud-00-crud-runner-CRUD-严-01958-module-livestream-schedules-chromium/attachments/probe-U02-680bdd0b70581371e45d0e53130df24b19877daa.json","e2e/test-results/crud-00-crud-runner-CRUD-严-01a82-复-module-customer-analytics-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-01a82-复-module-customer-analytics-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-01c65-常恢复-module-community-levels-chromium/attachments/probe-E01-1c09721949e3fd0516cc9260cf13afc1ad254c07.json","e2e/test-results/crud-00-crud-runner-CRUD-严-029eb--module-community-analytics-chromium/attachments/probe-P01-3d91129971cc01edd3aefa3099345611448fe7af.json","e2e/test-results/crud-00-crud-runner-CRUD-严-05173-验失败-module-livestream-gifts-chromium/attachments/probe-C02-0df53ac20d3f78124d1bba403d7e88b4adc90c55.json","e2e/test-results/crud-00-crud-runner-CRUD-严-058ab--可用-module-community-levels-chromium/attachments/probe-D01-de87d439d2e31710873d001ca9211892d827c75f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-06c2c-常恢复-module-community-groups-chromium/attachments/probe-E01-43377c821e4affb800b5100a8da0b5c056fbcd8d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-07cf8-P01-权限矩阵-module-geo-reviews-chromium/attachments/probe-P01-4ce60590afe4a172267f57254ed3f881a778dad4.json","e2e/test-results/crud-00-crud-runner-CRUD-严-09122--冲突-module-community-groups-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-09122--冲突-module-community-groups-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-0a59f--module-livestream-products-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-0a59f--module-livestream-products-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-0b0c7--更新权限-冲突-module-attribution-chromium/attachments/probe-U02-92a536f943b43fd5bb4b8b48a11adfe8148173fb.json","e2e/test-results/crud-00-crud-runner-CRUD-严-0b386-常恢复-module-social-followers-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-0b386-常恢复-module-social-followers-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-0c51b-权限矩阵-module-customer-profit-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-0c51b-权限矩阵-module-customer-profit-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-0cb7f--软-硬-可用-module-ad-placement-chromium/attachments/probe-D01-308f4f7f61c5eb5b142889eaf25109ff8b7016c8.json","e2e/test-results/crud-00-crud-runner-CRUD-严-0d69f-更新权限-冲突-module-web-tracking-chromium/attachments/probe-U02-be3f0a49c65e254f7ae610d2bd89ddb1c7561e45.json","e2e/test-results/crud-00-crud-runner-CRUD-严-0eff8-限矩阵-module-community-levels-chromium/attachments/probe-P01-9eb82e6e0478399eda0d215beaafcf678f3a4d21.json","e2e/test-results/crud-00-crud-runner-CRUD-严-0f435-突-module-marketing-calendar-chromium/attachments/probe-U02-ec0b17e6638d49de6bca47b535ec0e8db84d0361.json","e2e/test-results/crud-00-crud-runner-CRUD-严-0fa13--删除-软-硬-可用-module-campaigns-chromium/attachments/probe-D01-a165c27a19ed527ca12a0aa99a466adbcfdab4a4.json","e2e/test-results/crud-00-crud-runner-CRUD-严-0fb7f-理-E01-异常恢复-module-contracts-chromium/attachments/probe-E01-ea86e7fa6f78024c16bf41404b0d4fa3b51bc16a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-0ff8e-恢复-module-marketing-content-chromium/attachments/probe-E01-37b9c81217feeb77a69e723b78eb502cc3072d37.json","e2e/test-results/crud-00-crud-runner-CRUD-严-10e2d-module-community-activities-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-10e2d-module-community-activities-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-111d5-权限-冲突-module-community-bots-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-111d5-权限-冲突-module-community-bots-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-1148f--可用-module-marketing-matrix-chromium/attachments/probe-D01-d87cc923da74715eefd3df9e620823a6f3c41403.json","e2e/test-results/crud-00-crud-runner-CRUD-严-11ec2-复-module-livestream-scripts-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-11ec2-复-module-livestream-scripts-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-12209-验失败-module-content-creation-chromium/attachments/probe-C02-c4578629302531a25ece685bb98ef057bae6a261.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1256a-module-marketing-automation-chromium/attachments/probe-C02-63aed13256ad6ebe6b3069e137a34b36546c1938.json","e2e/test-results/crud-00-crud-runner-CRUD-严-14e04--权限矩阵-module-community-bots-chromium/attachments/probe-P01-d698e68a8b9c7b7cbae9cce54694d38e2cd2616d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-15615--异常恢复-module-community-bots-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-15615--异常恢复-module-community-bots-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-1597a--冲突-module-livestream-gifts-chromium/attachments/probe-U02-0b661219fc84201a64dafaa0ada17c489a753f4d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-16244-校验失败-module-content-library-chromium/attachments/probe-C02-66a36200aed6297756a00431585f8fd8ce0bcf43.json","e2e/test-results/crud-00-crud-runner-CRUD-严-16412-更新权限-冲突-module-social-posts-chromium/attachments/probe-U02-74e13fcb41e47031b69de10f4fd74394c3d5cbbb.json","e2e/test-results/crud-00-crud-runner-CRUD-严-16a62-恢复-module-community-fission-chromium/attachments/probe-E01-f59890ce7c2f52d50fee22e9b1c4fdea6a201c6c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-17816-验失败-module-community-groups-chromium/attachments/probe-C02-d7bf5316d99be4a2459a1602d27a2bcbc4920a1c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-17a63-异常恢复-module-customer-profit-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-17a63-异常恢复-module-customer-profit-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-198b4-阵-module-customer-marketing-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-198b4-阵-module-customer-marketing-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-1a0d0-删除-软-硬-可用-module-ad-reports-chromium/attachments/probe-D01-b4150a58d6e02d6ecf869ae0bc6fcb639ac0a68e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1b71e-module-content-distribution-chromium/attachments/probe-U02-dc2ea5dd4db98131a22eecc24206c19ba64ba5d7.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1bf87--可用-module-social-followers-chromium/attachments/probe-D01-8d20be449f667b5dfdf6b7ff0287f178ac076b98.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1d799-module-marketing-north-star-chromium/attachments/probe-C02-028170f2fd38f2ff9cf62f7da83566b78f08dd17.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1f078-module-marketing-automation-chromium/attachments/probe-D01-7f9705c53a86542e492ed4ccbfcd74088355d25d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1fc37--创建校验失败-module-geo-keywords-chromium/attachments/probe-C02-35bda4864e412f5ac1fb467ffa877b981e2c81cf.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1ff13-U02-更新权限-冲突-module-geo-pois-chromium/attachments/probe-U02-4fffb5f74550912c4019ff57ebbe2ff7873bad73.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1ffee-1-异常恢复-module-geo-analytics-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-1ffee-1-异常恢复-module-geo-analytics-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-201b8-矩阵-module-marketing-content-chromium/attachments/probe-P01-44aae02bd1e4b8d10d9f87b47cc3025f3ced4d4d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-21091-可用-module-community-fission-chromium/attachments/probe-D01-f4ea2b505bfb0f2646c5bded38d88b8662e37eab.json","e2e/test-results/crud-00-crud-runner-CRUD-严-22fdb--module-community-materials-chromium/attachments/probe-C02-8c5dfc19747ae88864a83c511546c619b4ffecf8.json","e2e/test-results/crud-00-crud-runner-CRUD-严-23c26--创建校验失败-module-ad-placement-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-23c26--创建校验失败-module-ad-placement-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-23c2a--更新权限-冲突-module-ad-accounts-chromium/attachments/probe-U02-a4d2d960b87f4b432fb73310c5269a3a78d584ae.json","e2e/test-results/crud-00-crud-runner-CRUD-严-254f0-矩阵-module-social-hot-topics-chromium/attachments/probe-P01-25cdb79fd88b0a1f38cc58e798f70747da53cf75.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2650f-理-E01-异常恢复-module-ai-agents-chromium/attachments/probe-E01-1a9ef28a9d7ca58aa9fbe59c703fc948e65d8a0f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-26d6e-module-content-distribution-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-26d6e-module-content-distribution-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-26fed-更新权限-冲突-module-ad-campaigns-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-26fed-更新权限-冲突-module-ad-campaigns-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-275d5-建校验失败-module-crm-activities-chromium/attachments/probe-C02-e2040c6302df7c01b7845053ac0908f556237b64.json","e2e/test-results/crud-00-crud-runner-CRUD-严-28266-ule-livestream-interactions-chromium/attachments/probe-D01-7cf92558a5455e36dc1613abf30df8bf66c4cf12.json","e2e/test-results/crud-00-crud-runner-CRUD-严-293e8-E01-异常恢复-module-geo-reviews-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-293e8-E01-异常恢复-module-geo-reviews-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-294ee-2-更新权限-冲突-module-geo-fences-chromium/attachments/probe-U02-88fd2d883a040b956b4fc7d018d93e895308fa0d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2a3db-建校验失败-module-content-review-chromium/attachments/probe-C02-9110de6d97a6972da82cc904e5eed2ea870ca8de.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2b121-心-E01-异常恢复-module-marketing-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-2b121-心-E01-异常恢复-module-marketing-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-2c061-用-module-social-competitors-chromium/attachments/probe-D01-bf6b2e8256767ad0cd3d28f33df5be62434316d6.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2c6f5-新权限-冲突-module-geo-analytics-chromium/attachments/probe-U02-dc6df2c899b0557f282edbb7b1b6dac9bfa10679.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2cecf-1-删除-软-硬-可用-module-geo-pois-chromium/attachments/probe-D01-249d20f2e8cd0122d2a9cf1075781020fc7fca3e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2cf49-限矩阵-module-livestream-rooms-chromium/attachments/probe-P01-7cc8468b56cf7add8fe8b727269b88ff3aea4b55.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2d441--可用-module-livestream-rooms-chromium/attachments/probe-D01-819453ea29de0388a9aeb87dd14b5834a65aa89b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2e15f--冲突-module-campaign-targets-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-2e15f--冲突-module-campaign-targets-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-2eb8f--软-硬-可用-module-web-tracking-chromium/attachments/probe-D01-410bfd224ddd38d2208118aaa3a2a9d9cc6f0dd2.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2ebb5-可用-module-marketing-chatbot-chromium/attachments/probe-D01-af08327a7f09972aae157e3351e65d8c70966326.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2f408-除-软-硬-可用-module-ad-accounts-chromium/attachments/probe-D01-708cab7a67580cc569ac4f83caba748ac321f25f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2f838-验失败-module-social-followers-chromium/attachments/probe-C02-d2b63147d86eb57b669dc22cab437441b8ddfaf3.json","e2e/test-results/crud-00-crud-runner-CRUD-严-3034f-权限矩阵-module-email-marketing-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-3034f-权限矩阵-module-email-marketing-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-30bd3-阵-module-customer-analytics-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-30bd3-阵-module-customer-analytics-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-31260-限矩阵-module-livestream-gifts-chromium/attachments/probe-P01-262967e175096713ebd8c6168cfa6b97a9821c45.json","e2e/test-results/crud-00-crud-runner-CRUD-严-32032-常恢复-module-community-points-chromium/attachments/probe-E01-3b05d5ee57552fd9ce671d92acf50c68163a1c52.json","e2e/test-results/crud-00-crud-runner-CRUD-严-32e19-突-module-livestream-scripts-chromium/attachments/probe-U02-3f6d3aa8127a8468f859699b2948600e4968d8ac.json","e2e/test-results/crud-00-crud-runner-CRUD-严-332c5-P01-权限矩阵-module-attribution-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-332c5-P01-权限矩阵-module-attribution-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-33430-module-marketing-north-star-chromium/attachments/probe-D01-bd2ee415ea85464afd668d22835bd534f4ef798e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-33cab--E01-异常恢复-module-ad-reports-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-33cab--E01-异常恢复-module-ad-reports-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-344d5-module-community-activities-chromium/attachments/probe-D01-107349d244455879d6d9de33f3356a67264d7797.json","e2e/test-results/crud-00-crud-runner-CRUD-严-36719-2-更新权限-冲突-module-ad-reports-chromium/attachments/probe-U02-871dae1638040d69d0fdd0a3be51655567e9573b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-3672f--module-social-interactions-chromium/attachments/probe-C02-e9f6b260c4040d0539b782c00e92b734319449ff.json","e2e/test-results/crud-00-crud-runner-CRUD-严-37227-常恢复-module-campaign-library-chromium/attachments/probe-E01-51b7e14e352456937dddc1e7463c3875d6b9f23b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-37557-权限-冲突-module-crm-activities-chromium/attachments/probe-U02-4fcb9d181ef82fbfac6d291566b2466de2f8dc0b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-38703--冲突-module-community-points-chromium/attachments/probe-U02-ec3bc84f7e1520c2407ee164d11f12baa703ea5c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-38e78-软-硬-可用-module-geo-analytics-chromium/attachments/probe-D01-931c79e637af7c8cc38ba4c7a5d0a98e76e7d89e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-398d6-失败-module-community-members-chromium/attachments/probe-C02-dff3bae897760b40c0802e6c0348aa2281e51086.json","e2e/test-results/crud-00-crud-runner-CRUD-严-3a681-02-更新权限-冲突-module-contracts-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-3a681-02-更新权限-冲突-module-contracts-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-3b156-成功-module-content-templates-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-3b156-成功-module-content-templates-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-3b17b-P01-权限矩阵-module-ad-biddings-chromium/attachments/probe-P01-9dffba566ace2e927f868ef68bf94bdb9c923194.json","e2e/test-results/crud-00-crud-runner-CRUD-严-3b307-限-冲突-module-lead-scoring-ai-chromium/attachments/probe-U02-47e41c42c30666ee9b99cce3a175b875badcf75e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-3c63a-硬-可用-module-customer-health-chromium/attachments/probe-D01-58baea0e694aed0a246837c9314b4eac81cf0806.json","e2e/test-results/crud-00-crud-runner-CRUD-严-3c6b5-C02-创建校验失败-module-contracts-chromium/attachments/probe-C02-6baed7d0ef0d47dd5653c2eb4c1944262cb1baa7.json","e2e/test-results/crud-00-crud-runner-CRUD-严-3ce4c-页-module-customer-marketing-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-3ce4c-页-module-customer-marketing-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-3d71d--module-social-auto-replies-chromium/attachments/probe-P01-ee0f0ea0a268cdff191ff4c80c5556f9f93b4309.json","e2e/test-results/crud-00-crud-runner-CRUD-严-3e175-02-创建校验失败-module-geo-fences-chromium/attachments/probe-C02-f03cab568adf876bacc955c537598a6e48719e0f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-3ef31-异常恢复-module-marketing-forms-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-3ef31-异常恢复-module-marketing-forms-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-3f443-2-更新权限-冲突-module-livestream-chromium/attachments/probe-U02-c928b5810a89ae46c7ab4d9e2c449a8805ba473b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-3f709-module-marketing-north-star-chromium/attachments/probe-E01-454a71dce23f2a85cc37b653683c642d82c90088.json","e2e/test-results/crud-00-crud-runner-CRUD-严-40aa2--module-livestream-products-chromium/attachments/probe-D01-b06a96778c96071176cf812619694233cb7a241f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-40d51-1-权限矩阵-module-landing-pages-chromium/attachments/probe-P01-b9bc8709b88b6fc9c690753756cb2f4ff3b1e285.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4204b-败-module-marketing-calendar-chromium/attachments/probe-C02-bc4470c99f30c0dc92630440b1f6bc29e6f92b58.json","e2e/test-results/crud-00-crud-runner-CRUD-严-42361-01-异常恢复-module-geo-keywords-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-42361-01-异常恢复-module-geo-keywords-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-4287b-矩阵-module-community-fission-chromium/attachments/probe-P01-4f1ab3d03625309e605a579ba73a05576da8bab2.json","e2e/test-results/crud-00-crud-runner-CRUD-严-42988--创建校验失败-module-ad-creatives-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-42988--创建校验失败-module-ad-creatives-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-43816-2-创建校验失败-module-ad-accounts-chromium/attachments/probe-C02-39e0ee5d17102575b1d9514d181b567791ee4637.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4495e--冲突-module-campaign-library-chromium/attachments/probe-U02-c47044b48f3ed44fdafaad0b990b999942a50a60.json","e2e/test-results/crud-00-crud-runner-CRUD-严-45054-权限矩阵-module-marketing-forms-chromium/attachments/probe-P01-dcd042d323c6fc017a2c65c680a4d8ea95795f47.json","e2e/test-results/crud-00-crud-runner-CRUD-严-456d0-验失败-module-community-levels-chromium/attachments/probe-C02-8c76aa251db0ba1cf9144d30808ae70c5a370fd1.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4744d-module-livestream-analytics-chromium/attachments/probe-E01-fe766f2a09eb135384767ebedb471425087799b4.json","e2e/test-results/crud-00-crud-runner-CRUD-严-47591-可用-module-marketing-content-chromium/attachments/probe-D01-cccb0db0e6bcecc8acadef24bd8e9bb9ae9de797.json","e2e/test-results/crud-00-crud-runner-CRUD-严-49432-module-marketing-automation-chromium/attachments/probe-U02-ef7ad0cd92cc780e0e05c080fd406f3f7803f253.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4a11c-module-community-activities-chromium/attachments/probe-P01-45cd02225f9136073867d401e9227f1f1ca30aae.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4ae99-限矩阵-module-community-groups-chromium/attachments/probe-P01-d0abc405b079635a5e8e4c58e8cdcbe7d0992742.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4b0f5-限矩阵-module-content-creation-chromium/attachments/probe-P01-531a48945f3d61e10bdad08f4e2a5634d686b4ba.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4b4aa-失败-module-community-fission-chromium/attachments/probe-C02-2144c7b46f56de73913ba38b408126040f8b1582.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4bba7-01-异常恢复-module-ad-placement-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-4bba7-01-异常恢复-module-ad-placement-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-4c78c-可用-module-social-hot-topics-chromium/attachments/probe-D01-e51d543d6b7655a954b2f6bd118064f27ef79661.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4c7df-更新权限-冲突-module-ad-placement-chromium/attachments/probe-U02-f767f5e79fd926184d34bc07f5cd6ec4f7339cc5.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4db84-建校验失败-module-community-bots-chromium/attachments/probe-C02-5c664a6cf9f8e6621ed12311ff589ae33e7d1231.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4de98-01-权限矩阵-module-social-posts-chromium/attachments/probe-P01-4dce123edcd5541b125d937883d0c7227f0da017.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4ef1d-复-module-social-competitors-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-4ef1d-复-module-social-competitors-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-51fcf-限矩阵-module-realtime-trigger-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-51fcf-限矩阵-module-realtime-trigger-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-52288-U02-更新权限-冲突-module-channels-chromium/attachments/probe-U02-17613b5af7092950626ddf6b00d8e16edb0c0eea.json","e2e/test-results/crud-00-crud-runner-CRUD-严-524dd--可用-module-content-creation-chromium/attachments/probe-D01-9bbf7d8dd8211b2486df0b2a32a4113f998e6c2a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-52c31-限矩阵-module-social-followers-chromium/attachments/probe-P01-e3b70d891a5e54d1d6e4d6d62217cdc380a004fe.json","e2e/test-results/crud-00-crud-runner-CRUD-严-536c8--module-community-materials-chromium/attachments/probe-P01-319a2ad4c69f91dd15dc51f74105c16e2bdc4c8a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-53ed7-限-冲突-module-customer-health-chromium/attachments/probe-U02-f607447ce6adda48e8e374fb83fc26659c095eab.json","e2e/test-results/crud-00-crud-runner-CRUD-严-5561c-矩阵-module-marketing-chatbot-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-5561c-矩阵-module-marketing-chatbot-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-561da-校验失败-module-community-tasks-chromium/attachments/probe-C02-83fa62991552b4b0959afaa9aa2ccd20432fb2cd.json","e2e/test-results/crud-00-crud-runner-CRUD-严-56329-冲突-module-community-members-chromium/attachments/probe-U02-ff9c0133aa323dcf3bd4dbe1cd7d6f9e03096161.json","e2e/test-results/crud-00-crud-runner-CRUD-严-5a1dc--可用-module-livestream-gifts-chromium/attachments/probe-D01-06dbbd22fb589cc3c686a53c3455168cc316faa8.json","e2e/test-results/crud-00-crud-runner-CRUD-严-5a21c-冲突-module-marketing-chatbot-chromium/attachments/probe-U02-a14ad6fbb001ad1c6310b46271e1fe0f5ca97c89.json","e2e/test-results/crud-00-crud-runner-CRUD-严-5a6f4--权限矩阵-module-crm-activities-chromium/attachments/probe-P01-fe40e4e33b2599950b8ee65492106d7af9fd7263.json","e2e/test-results/crud-00-crud-runner-CRUD-严-5aca2-败-module-contract-templates-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-5aca2-败-module-contract-templates-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-5b1e1-限矩阵-module-social-analytics-chromium/attachments/probe-P01-1ead161e5a4165aef03d8cbf8cbcc52f7f9eaa7d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-5c0b5--创建校验失败-module-ad-campaigns-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-5c0b5--创建校验失败-module-ad-campaigns-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-5c142--冲突-module-social-followers-chromium/attachments/probe-U02-ce6bff8df92686091f07a457bf01da01836a9411.json","e2e/test-results/crud-00-crud-runner-CRUD-严-5c736-2-创建校验失败-module-geo-reviews-chromium/attachments/probe-C02-18e64c7bc1b8bc6c08d98a50ff5d7e42e121194c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-5d3a5-除-软-硬-可用-module-attribution-chromium/attachments/probe-D01-cd9c28e14ed7b8ef8adcf35da604a967a1ab0d03.json","e2e/test-results/crud-00-crud-runner-CRUD-严-5dafb-1-异常恢复-module-landing-pages-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-5dafb-1-异常恢复-module-landing-pages-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-5db7a--module-marketing-timeslots-chromium/attachments/probe-C02-73951df4ee2293c59c10298b65f4778251a983d6.json","e2e/test-results/crud-00-crud-runner-CRUD-严-5ee69-1-异常恢复-module-sms-marketing-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-5ee69-1-异常恢复-module-sms-marketing-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-5ef0b--删除-软-硬-可用-module-ai-agents-chromium/attachments/probe-D01-82bdf74761a253e9ae7c9ed5cdcb1d08e6de7f5b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-5f17a-复-module-content-categories-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-5f17a-复-module-content-categories-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-5f6cd-异常恢复-module-customer-health-chromium/attachments/probe-E01-bf57951ccdf44354ff37647958552228dcfc68c5.json","e2e/test-results/crud-00-crud-runner-CRUD-严-609d6-02-更新权限-冲突-module-marketing-chromium/attachments/probe-U02-47d507ea2cb266b882b82c6759f608af04027b54.json","e2e/test-results/crud-00-crud-runner-CRUD-严-63c54-限-冲突-module-content-library-chromium/attachments/probe-U02-f0a3e74acb6884ac784e6960260f74876ebf4637.json","e2e/test-results/crud-00-crud-runner-CRUD-严-64606-E01-异常恢复-module-ad-accounts-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-64606-E01-异常恢复-module-ad-accounts-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-650c5--E01-异常恢复-module-geo-fences-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-650c5--E01-异常恢复-module-geo-fences-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-651ba-01-异常恢复-module-ad-audiences-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-651ba-01-异常恢复-module-ad-audiences-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-65981-失败-module-content-templates-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-65981-失败-module-content-templates-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-65aaa-阵-module-community-messages-chromium/attachments/probe-P01-58a1dbaef217ee0b92d4713f8aa07919c56cc85e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-666d3-可用-module-community-members-chromium/attachments/probe-D01-2e2f1343aa6139699e1f85c06abd35dc18c00c6e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-680cb-更新权限-冲突-module-geo-keywords-chromium/attachments/probe-U02-d27e2432c77d4e8cb9f90ff8e2a306f2e9845555.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6ad31-module-content-distribution-chromium/attachments/probe-D01-44fd838724130126c71f4f582c272198a497dcc1.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6b2ab--module-community-materials-chromium/attachments/probe-U02-c790875817800c461c837457c507242584b1ecfe.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6b353--冲突-module-community-levels-chromium/attachments/probe-U02-559f37fc27eac1c77850baa919fe5238a5b9ec83.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6bd75--可用-module-community-points-chromium/attachments/probe-D01-b3514759b5456e0ae2f85db9f61a1128cd3b0afd.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6c0fc--创建校验失败-module-ad-audiences-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-6c0fc--创建校验失败-module-ad-audiences-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-6c3ff-E01-异常恢复-module-ad-biddings-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-6c3ff-E01-异常恢复-module-ad-biddings-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-6c781-恢复-module-content-copyright-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-6c781-恢复-module-content-copyright-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-6c923--冲突-module-content-creation-chromium/attachments/probe-U02-5623dff71793f0cb5531b21e4e255d1a7fb6fa90.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6e529-02-更新权限-冲突-module-ai-agents-chromium/attachments/probe-U02-df3495aa6ba5394448dcf9de245a138ee33a44d7.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6ee1f-校验失败-module-marketing-forms-chromium/attachments/probe-C02-49eca8e487ad0de5e0d562deecfa894cb28209a2.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6eed8-01-异常恢复-module-ad-creatives-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-6eed8-01-异常恢复-module-ad-creatives-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-71415-P01-权限矩阵-module-ad-accounts-chromium/attachments/probe-P01-70dd2636acc3b8cc0d8e67eae49939eddd02e0ef.json","e2e/test-results/crud-00-crud-runner-CRUD-严-71d99-更新权限-冲突-module-ad-audiences-chromium/attachments/probe-U02-a5e9c25efc28ceb7217ebf13a6535a122f6166ab.json","e2e/test-results/crud-00-crud-runner-CRUD-严-71fcc-E01-异常恢复-module-attribution-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-71fcc-E01-异常恢复-module-attribution-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-72ac2-常恢复-module-marketing-matrix-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-72ac2-常恢复-module-marketing-matrix-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-73216-创建校验失败-module-landing-pages-chromium/attachments/probe-C02-3ff5369fac13a7c93889deef36f218a9e6683038.json","e2e/test-results/crud-00-crud-runner-CRUD-严-73517--P01-权限矩阵-module-geo-fences-chromium/attachments/probe-P01-bff45c02816c02b38b903994cf5764a930e9d1fd.json","e2e/test-results/crud-00-crud-runner-CRUD-严-74597-校验失败-module-lead-scoring-ai-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-74597-校验失败-module-lead-scoring-ai-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-745a5-module-livestream-schedules-chromium/attachments/probe-P01-f4e81170923b250397fa3a8fb2a7da44ddb457bb.json","e2e/test-results/crud-00-crud-runner-CRUD-严-74f4a-用-module-contract-templates-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-74f4a-用-module-contract-templates-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-75af0-限矩阵-module-campaign-targets-chromium/attachments/probe-P01-a34760106bad0d8282c77b78fbfce5190c7742ce.json","e2e/test-results/crud-00-crud-runner-CRUD-严-76074-阵-module-social-competitors-chromium/attachments/probe-P01-64198575d1a824b516eb570639e5132b5b217466.json","e2e/test-results/crud-00-crud-runner-CRUD-严-797bb-module-content-distribution-chromium/attachments/probe-P01-4e4ad66b4fd33b82a822b972c17b69782812f964.json","e2e/test-results/crud-00-crud-runner-CRUD-严-79a64--软-硬-可用-module-ad-campaigns-chromium/attachments/probe-D01-ff729e299e962f19eb1dec0160f84af4e3b41fe4.json","e2e/test-results/crud-00-crud-runner-CRUD-严-7a232-软-硬-可用-module-landing-pages-chromium/attachments/probe-D01-1493d48f9b2a3862df5deb2cfc0d86f05b168443.json","e2e/test-results/crud-00-crud-runner-CRUD-严-7bf8a-01-权限矩阵-module-geo-keywords-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-7bf8a-01-权限矩阵-module-geo-keywords-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-7dd41--创建校验失败-module-social-posts-chromium/attachments/probe-C02-e5c428ecd86c16adaa0fa7ae79b1498f09a0b54c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-7e531-复-module-customer-marketing-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-7e531-复-module-customer-marketing-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-7f877-冲突-module-content-copyright-chromium/attachments/probe-U02-16914465dc85df6d09e287bd25ad4c8b3fbff986.json","e2e/test-results/crud-00-crud-runner-CRUD-严-7f973-校验失败-module-social-accounts-chromium/attachments/probe-C02-b8ceaca02943585458f168379cc71e8febecfbf7.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8202e-异常恢复-module-lead-scoring-ai-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-8202e-异常恢复-module-lead-scoring-ai-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-827de-异常恢复-module-email-marketing-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-827de-异常恢复-module-email-marketing-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-82c08-module-marketing-north-star-chromium/attachments/probe-U02-230e2a9ebc88caf63430d6ee5733fbb179abf94d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-83691--可用-module-campaign-library-chromium/attachments/probe-D01-f910dfc5f2456c3722246fd102797315b1a7ad8c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-83815-恢复-module-community-members-chromium/attachments/probe-E01-a401d3caed53058e09ffaad3e4ac9ab95666eb32.json","e2e/test-results/crud-00-crud-runner-CRUD-严-84ce1-限矩阵-module-community-points-chromium/attachments/probe-P01-670b1b41762175ea9511cb393cda6a955b707dc8.json","e2e/test-results/crud-00-crud-runner-CRUD-严-85da0--可用-module-community-groups-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-85da0--可用-module-community-groups-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-87390-module-livestream-schedules-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-87390-module-livestream-schedules-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-885ec-验失败-module-campaign-library-chromium/attachments/probe-C02-67cf0b80d7502a7c64d4b2010ea68f882fe12db9.json","e2e/test-results/crud-00-crud-runner-CRUD-严-887a4-硬-可用-module-social-accounts-chromium/attachments/probe-D01-b4d1d651b44f010d49698e913330274286a7f40e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-89e46-删除-软-硬-可用-module-geo-fences-chromium/attachments/probe-D01-c35f3666b72a23fab22be3ca8854ff948c19e189.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8a536-权限矩阵-module-content-library-chromium/attachments/probe-P01-67f68d462298613ac6a63fae537b5c68f04cc2a0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8a62a-失败-module-social-hot-topics-chromium/attachments/probe-C02-6fe9bae60f06f587b1fd608820f7947ce7d3bd32.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8c285-突-module-contract-templates-chromium/attachments/probe-U02-8200eaff4a57c96c1748a6767abe9f6fdadae60d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8d372-module-livestream-analytics-chromium/attachments/probe-P01-6fde8fba9cdc02edfe74d25001afdc65dd914372.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8f381-除-软-硬-可用-module-ad-biddings-chromium/attachments/probe-D01-b80588478758f4e55515a9c10ecbc2eb6f145e69.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8f45a-OI-E01-异常恢复-module-geo-pois-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-8f45a-OI-E01-异常恢复-module-geo-pois-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-92296-失败-module-marketing-content-chromium/attachments/probe-C02-7ea9e315921783c0cb98da5f82665cb3928b07c1.json","e2e/test-results/crud-00-crud-runner-CRUD-严-925a1-硬-可用-module-marketing-forms-chromium/attachments/probe-D01-923684e4d49e0c212fbc090020bca15ec2acc1d3.json","e2e/test-results/crud-00-crud-runner-CRUD-严-92e80-阵-module-livestream-scripts-chromium/attachments/probe-P01-210e24b98fc7ebee490373045582f5e8e2e90a35.json","e2e/test-results/crud-00-crud-runner-CRUD-严-92ec8--可用-module-campaign-targets-chromium/attachments/probe-D01-ab531cbb1f034f88d14082d17ee9e88166554855.json","e2e/test-results/crud-00-crud-runner-CRUD-严-939e8--module-marketing-timeslots-chromium/attachments/probe-P01-8f7e0400709701667c48d346754cc68efa671064.json","e2e/test-results/crud-00-crud-runner-CRUD-严-93d1f-module-marketing-automation-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-93d1f-module-marketing-automation-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-94768-理-P01-权限矩阵-module-contracts-chromium/attachments/probe-P01-6fae44b60adfb4f1d64c7384185ddf0bcd62898b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-94f60-常恢复-module-livestream-rooms-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-94f60-常恢复-module-livestream-rooms-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-95c5d-软-硬-可用-module-sms-marketing-chromium/attachments/probe-D01-44f9562bbdaa1e092f1bcb1637047772b7b54326.json","e2e/test-results/crud-00-crud-runner-CRUD-严-95e56--module-social-interactions-chromium/attachments/probe-U02-8ac528140f5772ca1590d8b10bba4fa3ed8e7735.json","e2e/test-results/crud-00-crud-runner-CRUD-严-96524-01-权限矩阵-module-ad-campaigns-chromium/attachments/probe-P01-f241784e5667e01dcb54c8d17bb452941d44ae45.json","e2e/test-results/crud-00-crud-runner-CRUD-严-96889-1-权限矩阵-module-geo-analytics-chromium/attachments/probe-P01-89137eb39494124787e38982d87b0072653f19ac.json","e2e/test-results/crud-00-crud-runner-CRUD-严-98775-突-module-social-competitors-chromium/attachments/probe-U02-524be45c7c6be548eed5dfa4f5f2c2f13414181c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-99703-复-module-lead-qualification-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-99703-复-module-lead-qualification-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-99a97-管理-P01-权限矩阵-module-channels-chromium/attachments/probe-P01-efda2f5bf789a2b8d7f4d39fc6e9e7530bec2a8e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-9ae58-C02-创建校验失败-module-ai-agents-chromium/attachments/probe-C02-e1ee22846673d3b608e75691cc48080248fbc5fc.json","e2e/test-results/crud-00-crud-runner-CRUD-严-9af02-限矩阵-module-campaign-library-chromium/attachments/probe-P01-9186c04b4ced0f9c10330ece9df58c7af5b9d200.json","e2e/test-results/crud-00-crud-runner-CRUD-严-9b8b7-限矩阵-module-marketing-matrix-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-9b8b7-限矩阵-module-marketing-matrix-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-9beb6--软-硬-可用-module-geo-keywords-chromium/attachments/probe-D01-98b81566db6ae9691f0c2809fd40b47b5ccfcc9e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-9ca9c--module-marketing-timeslots-chromium/attachments/probe-D01-127494c06881501865491c7fc30e6e8444af0309.json","e2e/test-results/crud-00-crud-runner-CRUD-严-9ee78-用-module-marketing-calendar-chromium/attachments/probe-D01-f465c3a42201d1875dad53cad0dcc7b098899502.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a1549-读-module-customer-marketing-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-a1549-读-module-customer-marketing-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-a2981-复-module-marketing-calendar-chromium/attachments/probe-E01-e3d790bfdc9c463275ae3f37ce0144a749b75ef1.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a3eee-硬-可用-module-lead-scoring-ai-chromium/attachments/probe-D01-66bb80e90d450fa1c972f063a0ae1a191d4a2a3c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a3f91--module-social-auto-replies-chromium/attachments/probe-D01-7e52546747de9073b9ad581141fbbcb985592db1.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a409f--权限矩阵-module-content-review-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-a409f--权限矩阵-module-content-review-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-a4338--module-social-interactions-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-a4338--module-social-interactions-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-a4688--冲突-module-marketing-matrix-chromium/attachments/probe-U02-0e24e373ab0634e718c28b8672a4337da713cbfd.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a4a6f-01-异常恢复-module-web-tracking-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-a4a6f-01-异常恢复-module-web-tracking-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-a4d8b-1-权限矩阵-module-sms-marketing-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-a4d8b-1-权限矩阵-module-sms-marketing-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-a56f6--module-community-analytics-chromium/attachments/probe-E01-3f1517fe51bbbeb5a37959a07c63c981d99ab74a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a5c27-复-module-contract-templates-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-a5c27-复-module-contract-templates-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-a5e6c--硬-可用-module-community-bots-chromium/attachments/probe-D01-fcb74b0b26b56d7f5f052e6b8978de1d61cacc2a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a5f30-权限矩阵-module-social-accounts-chromium/attachments/probe-P01-b9ce04ab59dce01f3b475de085559bf5e464e19d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a6c69-C02-创建校验失败-module-campaigns-chromium/attachments/probe-C02-79a64615a406285fcf402faad507c84144c91ed8.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a76b8-验失败-module-campaign-targets-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-a76b8-验失败-module-campaign-targets-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-a862b-限-冲突-module-community-tasks-chromium/attachments/probe-U02-ed5c8e6504b8c7e9ee94874bf9bae93478ecaa40.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a8f20--module-social-interactions-chromium/attachments/probe-D01-b113a41324d5e513758d6332060165551c89b319.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a9774-矩阵-module-content-templates-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-a9774-矩阵-module-content-templates-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-a97da-ule-livestream-interactions-chromium/attachments/probe-P01-c6dbc5a7f972ca1edcbfd08af25a9545af7475b3.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a9892--module-marketing-timeslots-chromium/attachments/probe-E01-0e4390f2782ed9a723f7e3d086937483c1af6b0a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a9b70-module-marketing-north-star-chromium/attachments/probe-P01-4a2ebb66f3c1c6bf47930da2e49eb991f456428e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a9cdb-限-冲突-module-social-accounts-chromium/attachments/probe-U02-289d7d1aaa44443930907eab045ecc5f42ba0080.json","e2e/test-results/crud-00-crud-runner-CRUD-严-aa2a2-module-predictive-analytics-chromium/attachments/probe-E01-a4cb5c1f44ed13aac6b86b148b4ea01f43df5cf7.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ad2fe-OI-P01-权限矩阵-module-geo-pois-chromium/attachments/probe-P01-46fc7a8e8db13adf9e9d60b1b870440de85b9071.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ad315-败-module-social-competitors-chromium/attachments/probe-C02-3affa4c01f150ec38ed2b5cd89e496bc02d01d2b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ad90f-败-module-livestream-scripts-chromium/attachments/probe-C02-6b1fc49476edaf87e95fb3bb901ffccf65f7506e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-aeff6-读-module-customer-marketing-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-aeff6-读-module-customer-marketing-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-af17c-心-P01-权限矩阵-module-marketing-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-af17c-心-P01-权限矩阵-module-marketing-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-afbc6-新权限-冲突-module-landing-pages-chromium/attachments/probe-U02-edc42dffef50a0e28c1027bd067a336532d2bf0f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-afbeb-矩阵-module-content-analytics-chromium/attachments/probe-P01-a26466d517306fc004ec31ca264ebf08c4c1a758.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b0fee-突-module-community-messages-chromium/attachments/probe-U02-853465bb0ecd64c196b292c14f10dccc558c5d7d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b13fe-常恢复-module-livestream-gifts-chromium/attachments/probe-E01-8dc63da7c905247a3994f4742387a64483ac03cb.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b1f12-阵-module-contract-templates-chromium/attachments/probe-P01-71eef5b541aab0efdeeea5b1a64b2bb18be2e395.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b2ca2-冲突-module-social-hot-topics-chromium/attachments/probe-U02-84920f91898ae81a35c1df29b8adb2f090580865.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b3a76-异常恢复-module-social-accounts-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-b3a76-异常恢复-module-social-accounts-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-b3eaf-可用-module-content-templates-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-b3eaf-可用-module-content-templates-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-b423e-01-异常恢复-module-social-posts-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-b423e-01-异常恢复-module-social-posts-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-b4aae--module-livestream-products-chromium/attachments/probe-P01-f5eaca6e6ece019d7513b09183ccff204b13160e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b4cf6--module-livestream-products-chromium/attachments/probe-C02-26eef7c698e56b80394a7836d6b23b10f3671781.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b56fc-可用-module-content-copyright-chromium/attachments/probe-D01-a31be5b68012673d51ca3aa39b1f3c71af7660e8.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b648f-2-创建校验失败-module-ad-biddings-chromium/attachments/probe-C02-65ea0afc2b0de93c9d6c126182fc1eb9a3c36ca7.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b72db-02-创建校验失败-module-ad-reports-chromium/attachments/probe-C02-e7105af3cabcd68b916fa05228d65f849409a8a7.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b9980-硬-可用-module-email-marketing-chromium/attachments/probe-D01-8a7de3c89117cb96857566f6a9bbec3ca4562a5a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-bad78-突-module-content-categories-chromium/attachments/probe-U02-9f6dada1b5b2803c3fbfba9fb5adbda43b9345e3.json","e2e/test-results/crud-00-crud-runner-CRUD-严-baff1-常恢复-module-realtime-trigger-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-baff1-常恢复-module-realtime-trigger-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-bb5da--C02-创建校验失败-module-channels-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-bb5da--C02-创建校验失败-module-channels-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-bc1ac--冲突-module-livestream-rooms-chromium/attachments/probe-U02-7c47e81045cba0de262cb9cdd495aaebfb9bbb20.json","e2e/test-results/crud-00-crud-runner-CRUD-严-bc736-矩阵-module-content-copyright-chromium/attachments/probe-P01-6ed856eb8ba81717adc1bab33f82cd139eb2f9c6.json","e2e/test-results/crud-00-crud-runner-CRUD-严-bc781-1-删除-软-硬-可用-module-channels-chromium/attachments/probe-D01-26cf0d0906149bca11264c6c4715cfa4cc98cab5.json","e2e/test-results/crud-00-crud-runner-CRUD-严-bcf4f-用-module-content-categories-chromium/attachments/probe-D01-456a281de5dc3c86fd8e03580b5672d51c10c273.json","e2e/test-results/crud-00-crud-runner-CRUD-严-bd925--module-marketing-timeslots-chromium/attachments/probe-U02-133c6d46940bee0ed7f3dc3cc5c08277861733a0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-bdfc5-冲突-module-content-templates-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-bdfc5-冲突-module-content-templates-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-c0304-异常恢复-module-community-tasks-chromium/attachments/probe-E01-bf11ae1c7c1a26681eae9b6cd7c6c86a2b32c5f9.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c0670-新权限-冲突-module-sms-marketing-chromium/attachments/probe-U02-66182afc6915811447c1ea467681b13c5c6b1c19.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c0911-module-predictive-analytics-chromium/attachments/probe-P01-c30e304e95d5a91791637e86dfb9405cccf8beba.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c165f--C02-创建校验失败-module-geo-pois-chromium/attachments/probe-C02-6fa348715f87cf072364932636815cdad624bd9d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c19e0-硬-可用-module-community-tasks-chromium/attachments/probe-D01-960aaf2953b5824690872543567954fb3cfb36b9.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c27b1--删除-软-硬-可用-module-contracts-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-c27b1--删除-软-硬-可用-module-contracts-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-c3571--硬-可用-module-crm-activities-chromium/attachments/probe-D01-e50f3cc3de532bcac85be8f2ddea02727c0faf0d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c37cb-权限矩阵-module-customer-health-chromium/attachments/probe-P01-5079636a6b3c77105f5e43efdf5a0115c2bd0dec.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c4192--硬-可用-module-content-review-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-c4192--硬-可用-module-content-review-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-c6214-删除-软-硬-可用-module-livestream-chromium/attachments/probe-D01-d0b5b05036ce5ee287f4e27089f156efd7f2ea38.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c6c6a-异常恢复-module-content-library-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-c6c6a-异常恢复-module-content-library-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-c7fd9-突-module-lead-qualification-chromium/attachments/probe-U02-79801201f9e8c213653459e1a49c4b972f3b3ab1.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c905f-常恢复-module-social-analytics-chromium/attachments/probe-E01-b69371067a94fd32306c0512b5934984a2c50b69.json","e2e/test-results/crud-00-crud-runner-CRUD-严-cb55c-恢复-module-marketing-chatbot-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-cb55c-恢复-module-marketing-chatbot-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-cc5b7-失败-module-content-copyright-chromium/attachments/probe-C02-a527ade6ba124cedd26b8c0a5d91111254414d08.json","e2e/test-results/crud-00-crud-runner-CRUD-严-cc728-阵-module-lead-qualification-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-cc728-阵-module-lead-qualification-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-cd6b2-理-P01-权限矩阵-module-campaigns-chromium/attachments/probe-P01-6968f2faf74190d9bb9c0b25f0c8bc1199058641.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ce97c-module-content-distribution-chromium/attachments/probe-C02-5484dfd45ca3a1af454caa39842b2ae0a556aeaf.json","e2e/test-results/crud-00-crud-runner-CRUD-严-cebf0-01-权限矩阵-module-web-tracking-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-cebf0-01-权限矩阵-module-web-tracking-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-cf5fe-败-module-community-messages-chromium/attachments/probe-C02-f3a02471d097ce6cf4e68841e729ab241ea4dcf2.json","e2e/test-results/crud-00-crud-runner-CRUD-严-cf9c5-矩阵-module-community-members-chromium/attachments/probe-P01-12047406b2061b911a041110b5e1601f3b3b8de6.json","e2e/test-results/crud-00-crud-runner-CRUD-严-cfa82--E01-异常恢复-module-livestream-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-cfa82--E01-异常恢复-module-livestream-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-d0036-权限矩阵-module-lead-scoring-ai-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-d0036-权限矩阵-module-lead-scoring-ai-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-d1d3c--软-硬-可用-module-ad-creatives-chromium/attachments/probe-D01-f5eb1ebdc5bd22a3cdeeb8bb8d2372c2e56692a7.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d3f15-阵-module-marketing-calendar-chromium/attachments/probe-P01-122ae80c35b03632093cf562157ec88daab5c3ff.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d4024-校验失败-module-customer-health-chromium/attachments/probe-C02-8896abb51f49b8448fbf98b5d3b3fe97498050b7.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d4d8f-常恢复-module-content-creation-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-d4d8f-常恢复-module-content-creation-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-d5aec-创建校验失败-module-geo-analytics-chromium/attachments/probe-C02-7578dafa399bf7a8c13ca3c2930aea722af06a2e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d71f4-理-P01-权限矩阵-module-ai-agents-chromium/attachments/probe-P01-5360ed0555898d5b71b3a347e05a99e1f3c53152.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d810c--软-硬-可用-module-ad-audiences-chromium/attachments/probe-D01-e4b80ce3877998cd5bc2cee0fc44dd5053ce9fd3.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d8f1d-02-更新权限-冲突-module-campaigns-chromium/attachments/probe-U02-7ca5a03e454893d7ca6ee9fca33c0eb4e907fea1.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d9cba-module-livestream-schedules-chromium/attachments/probe-D01-e70bba0448dc817d3e02d283f3bb38d1504b01e5.json","e2e/test-results/crud-00-crud-runner-CRUD-严-da5aa--异常恢复-module-content-review-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-da5aa--异常恢复-module-content-review-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-da5fa-module-marketing-automation-chromium/attachments/probe-P01-bc706032cb97d8a2341ce148b042fdc4eb41cd5f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-da84c-验失败-module-livestream-rooms-chromium/attachments/probe-C02-72d6b72817e8c150374bc5ff1f1f3389fc18b81f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-db4c1--module-community-materials-chromium/attachments/probe-E01-03d8e196427a2f394fce2f4267d12f48aad3ef77.json","e2e/test-results/crud-00-crud-runner-CRUD-严-dbab1--更新权限-冲突-module-ad-biddings-chromium/attachments/probe-U02-d6972351cc69310139780478d6b88cd2cd7843d9.json","e2e/test-results/crud-00-crud-runner-CRUD-严-dc57b--module-livestream-products-chromium/attachments/probe-U02-bead9a43b069a4caa8b37bbcb903f64728d1aad6.json","e2e/test-results/crud-00-crud-runner-CRUD-严-dc996-验失败-module-community-points-chromium/attachments/probe-C02-ec0987712a0905eecdf38a55dba59ca348ea5d15.json","e2e/test-results/crud-00-crud-runner-CRUD-严-dca95--module-community-materials-chromium/attachments/probe-D01-e45d7bdefeba6281f602aa07f67c2c04df822778.json","e2e/test-results/crud-00-crud-runner-CRUD-严-dd6e5--软-硬-可用-module-social-posts-chromium/attachments/probe-D01-c48576adb7412ca51e9955d13f8a2cc402373711.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ddfa8-用-module-community-messages-chromium/attachments/probe-D01-4989ba1cfd4ef415bafbf215f220b6ca89754aae.json","e2e/test-results/crud-00-crud-runner-CRUD-严-de5cf-01-权限矩阵-module-ad-creatives-chromium/attachments/probe-P01-a03e22c87916a2e3d07460eb4f3d16de061a85c2.json","e2e/test-results/crud-00-crud-runner-CRUD-严-df3b4--module-social-interactions-chromium/attachments/probe-P01-27cd032cb2e072bd8abad2d0669dc0825c4a0d0e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-e03ed-01-权限矩阵-module-ad-placement-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-e03ed-01-权限矩阵-module-ad-placement-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-e19a3--更新权限-冲突-module-geo-reviews-chromium/attachments/probe-U02-58d28317178c0b0d0de178960aeaeb51f1f292ea.json","e2e/test-results/crud-00-crud-runner-CRUD-严-e217f-管理-E01-异常恢复-module-channels-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-e217f-管理-E01-异常恢复-module-channels-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-e2741-01-权限矩阵-module-ad-audiences-chromium/attachments/probe-P01-88f9313bb479eb447503e45c4120bcb48bcde046.json","e2e/test-results/crud-00-crud-runner-CRUD-严-e3bd5--module-social-auto-replies-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-e3bd5--module-social-auto-replies-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-e464a-冲突-module-marketing-content-chromium/attachments/probe-U02-c0c27adf36b9c132381e98369d279258dac6ff09.json","e2e/test-results/crud-00-crud-runner-CRUD-严-e697e-恢复-module-content-templates-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-e697e-恢复-module-content-templates-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-e7190-常恢复-module-campaign-targets-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-e7190-常恢复-module-campaign-targets-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-e8bec-module-community-activities-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-e8bec-module-community-activities-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-e9638-ule-livestream-interactions-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-e9638-ule-livestream-interactions-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-eac37-更新权限-冲突-module-ad-creatives-chromium/attachments/probe-U02-a7fa194194354fcd6385b94943ef86d40f4acc85.json","e2e/test-results/crud-00-crud-runner-CRUD-严-eb057-权限矩阵-module-community-tasks-chromium/attachments/probe-P01-620242f8127ff229b1be0e3d9fbaacd843080c56.json","e2e/test-results/crud-00-crud-runner-CRUD-严-eb2f8-module-community-activities-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-eb2f8-module-community-activities-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-eb677-恢复-module-social-hot-topics-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-eb677-恢复-module-social-hot-topics-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-ebf9e-硬-可用-module-content-library-chromium/attachments/probe-D01-a9f9e728491df33327ba779ffcdb4de05c653a11.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ec545-用-module-livestream-scripts-chromium/attachments/probe-D01-74ea3c09b4319d952fbe144258c1efad461ed373.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ed2d6-01-异常恢复-module-ad-campaigns-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-ed2d6-01-异常恢复-module-ad-campaigns-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-ed934-限-冲突-module-email-marketing-chromium/attachments/probe-U02-9822e1b2cdc4b768568f1e25e8623e153c618a0d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ee6cc-除-软-硬-可用-module-geo-reviews-chromium/attachments/probe-D01-df56d1586681d17eed8d40d3fe1138cc0ab7253f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ef642--删除-软-硬-可用-module-marketing-chromium/attachments/probe-D01-cd595fdd0df46c6eb4debf99ce6131dfbf04b541.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f13fd-台-P01-权限矩阵-module-dashboard-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-f13fd-台-P01-权限矩阵-module-dashboard-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-f29c6-限-冲突-module-marketing-forms-chromium/attachments/probe-U02-d3531a1adf0a8b2a065b803b77c9fde923c1533a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f397e-理-E01-异常恢复-module-campaigns-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-f397e-理-E01-异常恢复-module-campaigns-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-f4194-module-livestream-schedules-chromium/attachments/probe-C02-1412f84c04e3d66104199b5720a1bd9cccd4556c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f44f9-用-module-lead-qualification-chromium/attachments/probe-D01-637e52b2a10c739d6af6375bcf9b3ebe5d6bd503.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f46eb-恢复-module-content-analytics-chromium/attachments/probe-E01-b45667616c5a6d09691ae50d20979d2ba4a508cf.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f4e2d-复-module-community-messages-chromium/attachments/probe-E01-a4748893d744bc727e95b50efe6fbc032c2d59ff.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f4f38--异常恢复-module-crm-activities-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-f4f38--异常恢复-module-crm-activities-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-f5463--P01-权限矩阵-module-ad-reports-chromium/attachments/probe-P01-7d85fd01e257f7aee26bd619d0ec91990254f1b5.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f5806--module-social-auto-replies-chromium/attachments/probe-U02-b1b44fbf53cdaeb638f18afab14b2b01ac8ae003.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f6533--module-social-auto-replies-chromium/attachments/probe-C02-86fd379b4d10134aaf6f84239758affe2f018da2.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f6886--P01-权限矩阵-module-livestream-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-f6886--P01-权限矩阵-module-livestream-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-f91d9-台-E01-异常恢复-module-dashboard-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-f91d9-台-E01-异常恢复-module-dashboard-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-fca24-冲突-module-community-fission-chromium/attachments/probe-U02-421c521da69a48d170639e461e50d48a0fd3581a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-fccb5-败-module-content-categories-chromium/attachments/probe-C02-28ed0cc8dce33b3158de5d3ac94867b0f7fd5f20.json","e2e/test-results/crud-00-crud-runner-CRUD-严-fcd50-阵-module-content-categories-chromium/attachments/probe-P01-31c677238ae8dd339f6fc657201190ada6d60cde.json","e2e/test-results/crud-00-crud-runner-CRUD-严-fe9ad-不可见校验-module-content-review-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-fe9ad-不可见校验-module-content-review-chromium/test-failed-1.png","e2e/test-results/crud/probes/ad-accounts-C02-1770826473775.json","e2e/test-results/crud/probes/ad-accounts-D01-1770826477786.json","e2e/test-results/crud/probes/ad-accounts-P01-1770826479019.json","e2e/test-results/crud/probes/ad-accounts-U02-1770826477867.json","e2e/test-results/crud/probes/ad-audiences-D01-1770826486358.json","e2e/test-results/crud/probes/ad-audiences-P01-1770826487445.json","e2e/test-results/crud/probes/ad-audiences-U02-1770826485892.json","e2e/test-results/crud/probes/ad-biddings-C02-1770826490178.json","e2e/test-results/crud/probes/ad-biddings-D01-1770826494331.json","e2e/test-results/crud/probes/ad-biddings-P01-1770826495516.json","e2e/test-results/crud/probes/ad-biddings-U02-1770826493313.json","e2e/test-results/crud/probes/ad-campaigns-D01-1770826502672.json","e2e/test-results/crud/probes/ad-campaigns-P01-1770826503744.json","e2e/test-results/crud/probes/ad-creatives-D01-1770826510859.json","e2e/test-results/crud/probes/ad-creatives-P01-1770826511930.json","e2e/test-results/crud/probes/ad-creatives-U02-1770826510344.json","e2e/test-results/crud/probes/ad-placement-D01-1770826517104.json","e2e/test-results/crud/probes/ad-placement-U02-1770826517580.json","e2e/test-results/crud/probes/ad-reports-C02-1770826519787.json","e2e/test-results/crud/probes/ad-reports-D01-1770826522965.json","e2e/test-results/crud/probes/ad-reports-P01-1770826522603.json","e2e/test-results/crud/probes/ad-reports-U02-1770826521328.json","e2e/test-results/crud/probes/ai-agents-C02-1770826465096.json","e2e/test-results/crud/probes/ai-agents-D01-1770826469864.json","e2e/test-results/crud/probes/ai-agents-E01-1770826472538.json","e2e/test-results/crud/probes/ai-agents-P01-1770826471358.json","e2e/test-results/crud/probes/ai-agents-U02-1770826470163.json","e2e/test-results/crud/probes/attribution-D01-1770826526931.json","e2e/test-results/crud/probes/attribution-U02-1770826526317.json","e2e/test-results/crud/probes/campaign-library-C02-1770826528421.json","e2e/test-results/crud/probes/campaign-library-D01-1770826531415.json","e2e/test-results/crud/probes/campaign-library-E01-1770826532711.json","e2e/test-results/crud/probes/campaign-library-P01-1770826531407.json","e2e/test-results/crud/probes/campaign-library-U02-1770826530212.json","e2e/test-results/crud/probes/campaign-targets-D01-1770826535932.json","e2e/test-results/crud/probes/campaign-targets-P01-1770826535939.json","e2e/test-results/crud/probes/campaigns-C02-1770826537370.json","e2e/test-results/crud/probes/campaigns-D01-1770826540406.json","e2e/test-results/crud/probes/campaigns-P01-1770826540299.json","e2e/test-results/crud/probes/campaigns-U02-1770826538931.json","e2e/test-results/crud/probes/channels-D01-1770826544333.json","e2e/test-results/crud/probes/channels-P01-1770826544892.json","e2e/test-results/crud/probes/channels-U02-1770826544870.json","e2e/test-results/crud/probes/community-activities-D01-1770826548496.json","e2e/test-results/crud/probes/community-activities-P01-1770826550186.json","e2e/test-results/crud/probes/community-analytics-E01-1770826552758.json","e2e/test-results/crud/probes/community-analytics-P01-1770826553251.json","e2e/test-results/crud/probes/community-bots-C02-1770826552953.json","e2e/test-results/crud/probes/community-bots-D01-1770826555935.json","e2e/test-results/crud/probes/community-bots-P01-1770826557535.json","e2e/test-results/crud/probes/community-fission-C02-1770826557294.json","e2e/test-results/crud/probes/community-fission-D01-1770826560779.json","e2e/test-results/crud/probes/community-fission-E01-1770826561803.json","e2e/test-results/crud/probes/community-fission-P01-1770826561780.json","e2e/test-results/crud/probes/community-fission-U02-1770826559342.json","e2e/test-results/crud/probes/community-groups-C02-1770826562410.json","e2e/test-results/crud/probes/community-groups-E01-1770826576667.json","e2e/test-results/crud/probes/community-groups-P01-1770826569079.json","e2e/test-results/crud/probes/community-levels-C02-1770826576901.json","e2e/test-results/crud/probes/community-levels-D01-1770826580324.json","e2e/test-results/crud/probes/community-levels-E01-1770826584129.json","e2e/test-results/crud/probes/community-levels-P01-1770826583750.json","e2e/test-results/crud/probes/community-levels-U02-1770826580331.json","e2e/test-results/crud/probes/community-materials-C02-1770826586974.json","e2e/test-results/crud/probes/community-materials-D01-1770826590620.json","e2e/test-results/crud/probes/community-materials-E01-1770826592484.json","e2e/test-results/crud/probes/community-materials-P01-1770826591807.json","e2e/test-results/crud/probes/community-materials-U02-1770826587994.json","e2e/test-results/crud/probes/community-members-C02-1770826592620.json","e2e/test-results/crud/probes/community-members-D01-1770826596245.json","e2e/test-results/crud/probes/community-members-E01-1770826600042.json","e2e/test-results/crud/probes/community-members-P01-1770826600032.json","e2e/test-results/crud/probes/community-members-U02-1770826596404.json","e2e/test-results/crud/probes/community-messages-C02-1770826601037.json","e2e/test-results/crud/probes/community-messages-D01-1770826605587.json","e2e/test-results/crud/probes/community-messages-E01-1770826611225.json","e2e/test-results/crud/probes/community-messages-P01-1770826610272.json","e2e/test-results/crud/probes/community-messages-U02-1770826606089.json","e2e/test-results/crud/probes/community-points-C02-1770826610249.json","e2e/test-results/crud/probes/community-points-D01-1770826615902.json","e2e/test-results/crud/probes/community-points-E01-1770826620252.json","e2e/test-results/crud/probes/community-points-P01-1770826616875.json","e2e/test-results/crud/probes/community-points-U02-1770826616037.json","e2e/test-results/crud/probes/community-tasks-C02-1770826620262.json","e2e/test-results/crud/probes/community-tasks-D01-1770826626292.json","e2e/test-results/crud/probes/community-tasks-E01-1770826627745.json","e2e/test-results/crud/probes/community-tasks-P01-1770826627734.json","e2e/test-results/crud/probes/community-tasks-U02-1770826626621.json","e2e/test-results/crud/probes/content-analytics-E01-1770826632233.json","e2e/test-results/crud/probes/content-analytics-P01-1770826632233.json","e2e/test-results/crud/probes/content-categories-C02-1770826636354.json","e2e/test-results/crud/probes/content-categories-D01-1770826640369.json","e2e/test-results/crud/probes/content-categories-P01-1770826641175.json","e2e/test-results/crud/probes/content-categories-U02-1770826639367.json","e2e/test-results/crud/probes/content-copyright-C02-1770826644197.json","e2e/test-results/crud/probes/content-copyright-D01-1770826646841.json","e2e/test-results/crud/probes/content-copyright-P01-1770826649715.json","e2e/test-results/crud/probes/content-copyright-U02-1770826645882.json","e2e/test-results/crud/probes/content-creation-C02-1770826650726.json","e2e/test-results/crud/probes/content-creation-D01-1770826655604.json","e2e/test-results/crud/probes/content-creation-P01-1770826656219.json","e2e/test-results/crud/probes/content-creation-U02-1770826654752.json","e2e/test-results/crud/probes/content-distribution-C02-1770826658461.json","e2e/test-results/crud/probes/content-distribution-D01-1770826663506.json","e2e/test-results/crud/probes/content-distribution-P01-1770826663403.json","e2e/test-results/crud/probes/content-distribution-U02-1770826661752.json","e2e/test-results/crud/probes/content-library-C02-1770826665502.json","e2e/test-results/crud/probes/content-library-D01-1770826670593.json","e2e/test-results/crud/probes/content-library-P01-1770826670063.json","e2e/test-results/crud/probes/content-library-U02-1770826668408.json","e2e/test-results/crud/probes/content-review-C02-1770826672653.json","e2e/test-results/crud/probes/contract-templates-P01-1770827014110.json","e2e/test-results/crud/probes/contract-templates-U02-1770827007406.json","e2e/test-results/crud/probes/contracts-C02-1770827013715.json","e2e/test-results/crud/probes/contracts-E01-1770827019963.json","e2e/test-results/crud/probes/contracts-P01-1770827019820.json","e2e/test-results/crud/probes/crm-activities-C02-1770827023410.json","e2e/test-results/crud/probes/crm-activities-D01-1770827026424.json","e2e/test-results/crud/probes/crm-activities-P01-1770827028890.json","e2e/test-results/crud/probes/crm-activities-U02-1770827023971.json","e2e/test-results/crud/probes/customer-health-C02-1770827038613.json","e2e/test-results/crud/probes/customer-health-D01-1770827039621.json","e2e/test-results/crud/probes/customer-health-E01-1770827042796.json","e2e/test-results/crud/probes/customer-health-P01-1770827041442.json","e2e/test-results/crud/probes/customer-health-U02-1770827040816.json","e2e/test-results/crud/probes/email-marketing-D01-1770826693917.json","e2e/test-results/crud/probes/email-marketing-U02-1770826693967.json","e2e/test-results/crud/probes/geo-analytics-C02-1770826698910.json","e2e/test-results/crud/probes/geo-analytics-D01-1770826703040.json","e2e/test-results/crud/probes/geo-analytics-P01-1770826703537.json","e2e/test-results/crud/probes/geo-analytics-U02-1770826701597.json","e2e/test-results/crud/probes/geo-fences-C02-1770826705866.json","e2e/test-results/crud/probes/geo-fences-D01-1770826709237.json","e2e/test-results/crud/probes/geo-fences-P01-1770826710628.json","e2e/test-results/crud/probes/geo-fences-U02-1770826708885.json","e2e/test-results/crud/probes/geo-keywords-C02-1770826713455.json","e2e/test-results/crud/probes/geo-keywords-D01-1770826719203.json","e2e/test-results/crud/probes/geo-keywords-U02-1770826717907.json","e2e/test-results/crud/probes/geo-pois-C02-1770826721591.json","e2e/test-results/crud/probes/geo-pois-D01-1770826727117.json","e2e/test-results/crud/probes/geo-pois-P01-1770826730816.json","e2e/test-results/crud/probes/geo-pois-U02-1770826725488.json","e2e/test-results/crud/probes/geo-reviews-C02-1770826730596.json","e2e/test-results/crud/probes/geo-reviews-D01-1770826736890.json","e2e/test-results/crud/probes/geo-reviews-P01-1770826737087.json","e2e/test-results/crud/probes/geo-reviews-U02-1770826734138.json","e2e/test-results/crud/probes/landing-pages-C02-1770826737950.json","e2e/test-results/crud/probes/landing-pages-D01-1770826742665.json","e2e/test-results/crud/probes/landing-pages-P01-1770826743466.json","e2e/test-results/crud/probes/landing-pages-U02-1770826742733.json","e2e/test-results/crud/probes/lead-qualification-D01-1770826752857.json","e2e/test-results/crud/probes/lead-qualification-U02-1770826751683.json","e2e/test-results/crud/probes/lead-scoring-ai-D01-1770826763457.json","e2e/test-results/crud/probes/lead-scoring-ai-U02-1770826763471.json","e2e/test-results/crud/probes/livestream-D01-1770826773645.json","e2e/test-results/crud/probes/livestream-U02-1770826773778.json","e2e/test-results/crud/probes/livestream-analytics-E01-1770826781569.json","e2e/test-results/crud/probes/livestream-analytics-P01-1770826780200.json","e2e/test-results/crud/probes/livestream-gifts-C02-1770826781516.json","e2e/test-results/crud/probes/livestream-gifts-D01-1770826786062.json","e2e/test-results/crud/probes/livestream-gifts-E01-1770826790472.json","e2e/test-results/crud/probes/livestream-gifts-P01-1770826787562.json","e2e/test-results/crud/probes/livestream-gifts-U02-1770826785739.json","e2e/test-results/crud/probes/livestream-interactions-C02-1770826793943.json","e2e/test-results/crud/probes/livestream-interactions-D01-1770826795436.json","e2e/test-results/crud/probes/livestream-interactions-P01-1770826801138.json","e2e/test-results/crud/probes/livestream-products-C02-1770826801657.json","e2e/test-results/crud/probes/livestream-products-D01-1770826807079.json","e2e/test-results/crud/probes/livestream-products-P01-1770826807091.json","e2e/test-results/crud/probes/livestream-products-U02-1770826806320.json","e2e/test-results/crud/probes/livestream-rooms-C02-1770826810486.json","e2e/test-results/crud/probes/livestream-rooms-D01-1770826815288.json","e2e/test-results/crud/probes/livestream-rooms-P01-1770826814680.json","e2e/test-results/crud/probes/livestream-rooms-U02-1770826815374.json","e2e/test-results/crud/probes/livestream-schedules-C02-1770826819439.json","e2e/test-results/crud/probes/livestream-schedules-D01-1770826824697.json","e2e/test-results/crud/probes/livestream-schedules-P01-1770826825838.json","e2e/test-results/crud/probes/livestream-schedules-U02-1770826821053.json","e2e/test-results/crud/probes/livestream-scripts-C02-1770826828265.json","e2e/test-results/crud/probes/livestream-scripts-D01-1770826835912.json","e2e/test-results/crud/probes/livestream-scripts-P01-1770826835082.json","e2e/test-results/crud/probes/livestream-scripts-U02-1770826832553.json","e2e/test-results/crud/probes/marketing-D01-1770826841252.json","e2e/test-results/crud/probes/marketing-U02-1770826840331.json","e2e/test-results/crud/probes/marketing-automation-C02-1770826848028.json","e2e/test-results/crud/probes/marketing-automation-D01-1770826850839.json","e2e/test-results/crud/probes/marketing-automation-P01-1770826853568.json","e2e/test-results/crud/probes/marketing-automation-U02-1770826850852.json","e2e/test-results/crud/probes/marketing-calendar-C02-1770826854985.json","e2e/test-results/crud/probes/marketing-calendar-D01-1770826859149.json","e2e/test-results/crud/probes/marketing-calendar-E01-1770826864148.json","e2e/test-results/crud/probes/marketing-calendar-P01-1770826860371.json","e2e/test-results/crud/probes/marketing-calendar-U02-1770826859539.json","e2e/test-results/crud/probes/marketing-chatbot-D01-1770826870795.json","e2e/test-results/crud/probes/marketing-chatbot-U02-1770826865741.json","e2e/test-results/crud/probes/marketing-content-C02-1770826873976.json","e2e/test-results/crud/probes/marketing-content-D01-1770826877583.json","e2e/test-results/crud/probes/marketing-content-E01-1770826882318.json","e2e/test-results/crud/probes/marketing-content-P01-1770826878766.json","e2e/test-results/crud/probes/marketing-content-U02-1770826876086.json","e2e/test-results/crud/probes/marketing-forms-C02-1770826880566.json","e2e/test-results/crud/probes/marketing-forms-D01-1770826885803.json","e2e/test-results/crud/probes/marketing-forms-P01-1770826887760.json","e2e/test-results/crud/probes/marketing-forms-U02-1770826885203.json","e2e/test-results/crud/probes/marketing-matrix-D01-1770826894150.json","e2e/test-results/crud/probes/marketing-matrix-U02-1770826893131.json","e2e/test-results/crud/probes/marketing-north-star-C02-1770826897842.json","e2e/test-results/crud/probes/marketing-north-star-D01-1770826903688.json","e2e/test-results/crud/probes/marketing-north-star-E01-1770826904399.json","e2e/test-results/crud/probes/marketing-north-star-P01-1770826904415.json","e2e/test-results/crud/probes/marketing-north-star-U02-1770826903705.json","e2e/test-results/crud/probes/marketing-timeslots-C02-1770826906247.json","e2e/test-results/crud/probes/marketing-timeslots-D01-1770826909566.json","e2e/test-results/crud/probes/marketing-timeslots-E01-1770826911853.json","e2e/test-results/crud/probes/marketing-timeslots-P01-1770826910126.json","e2e/test-results/crud/probes/marketing-timeslots-U02-1770826910204.json","e2e/test-results/crud/probes/predictive-analytics-E01-1770826915735.json","e2e/test-results/crud/probes/predictive-analytics-P01-1770826915732.json","e2e/test-results/crud/probes/sms-marketing-D01-1770826926726.json","e2e/test-results/crud/probes/sms-marketing-U02-1770826926749.json","e2e/test-results/crud/probes/social-accounts-C02-1770826930158.json","e2e/test-results/crud/probes/social-accounts-D01-1770826935919.json","e2e/test-results/crud/probes/social-accounts-P01-1770826936661.json","e2e/test-results/crud/probes/social-accounts-U02-1770826933060.json","e2e/test-results/crud/probes/social-analytics-E01-1770826941755.json","e2e/test-results/crud/probes/social-analytics-P01-1770826940653.json","e2e/test-results/crud/probes/social-auto-replies-C02-1770826942439.json","e2e/test-results/crud/probes/social-auto-replies-D01-1770826950363.json","e2e/test-results/crud/probes/social-auto-replies-P01-1770826950355.json","e2e/test-results/crud/probes/social-auto-replies-U02-1770826950349.json","e2e/test-results/crud/probes/social-competitors-C02-1770826955290.json","e2e/test-results/crud/probes/social-competitors-D01-1770826960511.json","e2e/test-results/crud/probes/social-competitors-P01-1770826961656.json","e2e/test-results/crud/probes/social-competitors-U02-1770826956782.json","e2e/test-results/crud/probes/social-followers-C02-1770826962969.json","e2e/test-results/crud/probes/social-followers-D01-1770826967275.json","e2e/test-results/crud/probes/social-followers-P01-1770826968585.json","e2e/test-results/crud/probes/social-followers-U02-1770826968314.json","e2e/test-results/crud/probes/social-hot-topics-C02-1770826972032.json","e2e/test-results/crud/probes/social-hot-topics-D01-1770826977693.json","e2e/test-results/crud/probes/social-hot-topics-P01-1770826978760.json","e2e/test-results/crud/probes/social-hot-topics-U02-1770826974070.json","e2e/test-results/crud/probes/social-interactions-C02-1770826979934.json","e2e/test-results/crud/probes/social-interactions-D01-1770826983403.json","e2e/test-results/crud/probes/social-interactions-P01-1770826985069.json","e2e/test-results/crud/probes/social-interactions-U02-1770826984514.json","e2e/test-results/crud/probes/social-posts-C02-1770826989040.json","e2e/test-results/crud/probes/social-posts-D01-1770826991796.json","e2e/test-results/crud/probes/social-posts-P01-1770826994425.json","e2e/test-results/crud/probes/social-posts-U02-1770826990263.json","e2e/test-results/crud/probes/web-tracking-D01-1770827002522.json","e2e/test-results/crud/probes/web-tracking-U02-1770827002768.json"],"removed":[],"modified":["backend/src/modules/groupbuy-platforms/groupbuy-platform.controller.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.schema.ts","backend/src/modules/integration-services/integration-service.docs.ts","backend/src/modules/integration-services/integration-service.schema.ts","backend/src/modules/integration-services/integration-service.service.ts","frontend/src/api/index.ts","frontend/src/api/modules/groupbuy-platforms.ts","frontend/src/api/modules/integration-services.ts","frontend/src/router/index.ts","frontend/src/router/menu.ts","frontend/src/views/integration-services/Index.vue","frontend/src/views/settings/IntegrationServices.vue"]},{"id":"3b0503c391d1606984b159d179142267f3e0de8d","message":"Add groupbuy platforms integration\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3b0503c391d1606984b159d179142267f3e0de8d","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-12T00:08:25+08:00","added":["e2e/test-results/business-flows-order-fulfi-003e1-2E-测试-订单取消流程:已确认订单取消-→-退款处理-chromium/error-context.md","e2e/test-results/business-flows-order-fulfi-003e1-2E-测试-订单取消流程:已确认订单取消-→-退款处理-chromium/test-failed-1.png","e2e/test-results/business-flows-order-fulfi-096fb-约流程-E2E-测试-权限测试:客户只能查看自己的订单-chromium/error-context.md","e2e/test-results/business-flows-order-fulfi-096fb-约流程-E2E-测试-权限测试:客户只能查看自己的订单-chromium/test-failed-1.png","e2e/test-results/business-flows-order-fulfi-0d8d1-2E-测试-权限测试:仓储只能创建发货单,不能修改订单-chromium/error-context.md","e2e/test-results/business-flows-order-fulfi-0d8d1-2E-测试-权限测试:仓储只能创建发货单,不能修改订单-chromium/test-failed-1.png","e2e/test-results/business-flows-order-fulfi-21dc8-2E-测试-分批发货流程:创建多个发货单-→-分别发货-chromium/error-context.md","e2e/test-results/business-flows-order-fulfi-21dc8-2E-测试-分批发货流程:创建多个发货单-→-分别发货-chromium/test-failed-1.png","e2e/test-results/business-flows-order-fulfi-453ac-订单履约流程-E2E-测试-SLA-测试:超期交付预警-chromium/error-context.md","e2e/test-results/business-flows-order-fulfi-453ac-订单履约流程-E2E-测试-SLA-测试:超期交付预警-chromium/test-failed-1.png","e2e/test-results/business-flows-order-fulfi-990c4-试-银行转账流程:订单确认-→-银行转账-→-财务确认-chromium/error-context.md","e2e/test-results/business-flows-order-fulfi-990c4-试-银行转账流程:订单确认-→-银行转账-→-财务确认-chromium/test-failed-1.png","e2e/test-results/business-flows-order-fulfi-d99ca-订单确认-→-支付宝支付-→-发货-→-收货-→-完成-chromium/error-context.md","e2e/test-results/business-flows-order-fulfi-d99ca-订单确认-→-支付宝支付-→-发货-→-收货-→-完成-chromium/test-failed-1.png","e2e/test-results/business-flows-order-fulfi-db8ac--测试-微信支付流程:订单确认-→-微信支付-→-发货-chromium/error-context.md","e2e/test-results/business-flows-order-fulfi-db8ac--测试-微信支付流程:订单确认-→-微信支付-→-发货-chromium/test-failed-1.png"],"removed":[],"modified":["backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.schema.ts"]},{"id":"08ac5505f53c425f6625e3f518f78ed2258dab8e","message":"Analyze failed e2e flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/08ac5505f53c425f6625e3f518f78ed2258dab8e","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-12T00:05:40+08:00","added":["e2e/test-results/business-flows-contract-si-109b0--测试-标准流程:法务审批-→-电子签章-→-合同激活-chromium/error-context.md","e2e/test-results/business-flows-contract-si-109b0--测试-标准流程:法务审批-→-电子签章-→-合同激活-chromium/test-failed-1.png","e2e/test-results/business-flows-contract-si-28626-签署流程-E2E-测试-权限测试:销售专员无法审批合同-chromium/error-context.md","e2e/test-results/business-flows-contract-si-28626-签署流程-E2E-测试-权限测试:销售专员无法审批合同-chromium/test-failed-1.png","e2e/test-results/business-flows-contract-si-51110--合同签署流程-E2E-测试-合同续签流程:到期前续签-chromium/error-context.md","e2e/test-results/business-flows-contract-si-51110--合同签署流程-E2E-测试-合同续签流程:到期前续签-chromium/test-failed-1.png","e2e/test-results/business-flows-contract-si-66eea-试-审批拒绝流程:法务拒绝-→-销售修改-→-重新提交-chromium/error-context.md","e2e/test-results/business-flows-contract-si-66eea-试-审批拒绝流程:法务拒绝-→-销售修改-→-重新提交-chromium/test-failed-1.png","e2e/test-results/business-flows-contract-si-90e82-合同签署流程-E2E-测试-签署拒绝流程:客户拒绝签署-chromium/error-context.md","e2e/test-results/business-flows-contract-si-90e82-合同签署流程-E2E-测试-签署拒绝流程:客户拒绝签署-chromium/test-failed-1.png","e2e/test-results/business-flows-contract-si-a11ed-签署流程-E2E-测试-合同终止流程:生效中-→-终止-chromium/error-context.md","e2e/test-results/business-flows-contract-si-a11ed-签署流程-E2E-测试-合同终止流程:生效中-→-终止-chromium/test-failed-1.png","e2e/test-results/business-flows-contract-si-bed52-E-测试-合同激活-→-订单生成-→-权益激活完整链路-chromium/error-context.md","e2e/test-results/business-flows-contract-si-bed52-E-测试-合同激活-→-订单生成-→-权益激活完整链路-chromium/test-failed-1.png","e2e/test-results/business-flows-contract-si-e6f49-合同签署流程-E2E-测试-双审批流程:法务-财务审批-chromium/error-context.md","e2e/test-results/business-flows-contract-si-e6f49-合同签署流程-E2E-测试-双审批流程:法务-财务审批-chromium/test-failed-1.png"],"removed":[],"modified":[]},{"id":"89c27769d608af0197dd2a5008a526946a2b3a7c","message":"Update playwright report script data\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89c27769d608af0197dd2a5008a526946a2b3a7c","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-12T00:04:04+08:00","added":[],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":["e2e/playwright-report/index.html","e2e/test-results/.auth/admin.json"]}],"total_commits":0,"head_commit":{"id":"343b38f6bfbbd7d44a1387e1351700df68013555","message":"Add external group-buy integrations\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/343b38f6bfbbd7d44a1387e1351700df68013555","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-12T00:24:50+08:00","added":["e2e/test-results/.playwright-artifacts-123/0036a3ea004cf5faa825c1a3f8a6073f.png","e2e/test-results/.playwright-artifacts-123/113c7ba0c2ff6d2fe8d1527940153460.png","e2e/test-results/.playwright-artifacts-123/79e885472a3e6aeefe2c645e91e0299c.png","e2e/test-results/.playwright-artifacts-123/8960e110a7a16b8d1fda875c99115fc8.png","e2e/test-results/.playwright-artifacts-123/9340a7c7d25713d09068ef16ece6dc17.png","e2e/test-results/.playwright-artifacts-123/acbb71e1c6eb56a4bdc6daca62edb201.png","e2e/test-results/.playwright-artifacts-123/fffee32e8dbcea21ff4e74025022ba51.png","e2e/test-results/.playwright-artifacts-129/11476567fd09fa05f8fee058cae86686.png","e2e/test-results/.playwright-artifacts-129/1739c18fdfafcd1ddb89789bed64540f.png","e2e/test-results/.playwright-artifacts-129/6d8a6e59007dd53762caa0b90533996b.png","e2e/test-results/.playwright-artifacts-129/8b1c460ee4c9236a3443d2d6cbd185e2.png","e2e/test-results/.playwright-artifacts-129/99bfeadb7dd5f26df1f6f56a4eccdedc.png","e2e/test-results/.playwright-artifacts-129/baeada42716032c6f3c422664341717f.png","e2e/test-results/.playwright-artifacts-129/d56c024ed6abd9c9901c2834e695bbf6.png","e2e/test-results/.playwright-artifacts-135/040ea31135b74f973651b4df66ad2872.png","e2e/test-results/.playwright-artifacts-135/56a94c2d172c4e9f05cd349393c6efac.png","e2e/test-results/.playwright-artifacts-135/831b35c9c049da732306796db028c9fb.png","e2e/test-results/.playwright-artifacts-135/968ceefc530d18fcdcfb9f0c5bc464a8.png","e2e/test-results/.playwright-artifacts-135/a1f02a9f178b7c97da9b0fa17e8b907e.png","e2e/test-results/.playwright-artifacts-135/a51d824fd19bcea1380614157b07958d.png","e2e/test-results/.playwright-artifacts-135/acd5d4da1e1bf25b6b5ace1ba7565dcc.png","e2e/test-results/.playwright-artifacts-135/b6dffd33a245a7b80fc4770f9bf06b08.png","e2e/test-results/.playwright-artifacts-146/14a59910d516bd6aa293c0a85981621c.png","e2e/test-results/.playwright-artifacts-146/1ab95bcae962e4830101cd0b9ea979a3.png","e2e/test-results/.playwright-artifacts-146/44b3dc06fdbc5b50b55bd9aa93f58aea.png","e2e/test-results/.playwright-artifacts-146/6f7d208511930d83631f4778b38c2fd9.png","e2e/test-results/.playwright-artifacts-146/97845a6a9a0f01c67b88cf2e0a069af4.png","e2e/test-results/.playwright-artifacts-146/ada9e1a053fa71334be267e07c61d562.png","e2e/test-results/.playwright-artifacts-146/bce7da974abf178509043c149789fa5d.png","e2e/test-results/.playwright-artifacts-150/1f063d21022a6ca57b555291a7e9e13a.png","e2e/test-results/.playwright-artifacts-150/2278e0d8acc1279c6e4500e704f09267.png","e2e/test-results/.playwright-artifacts-150/74185d4e92c0ba9276af41bed4ea6ae1.png","e2e/test-results/.playwright-artifacts-150/8cf6870d845b0c9efb5e60ca58d96ec9.png","e2e/test-results/.playwright-artifacts-150/a15e8586f78be7229b2c525ab74eb46b.png","e2e/test-results/.playwright-artifacts-150/a39845c8368269f22e26985c61b4dbf6.png","e2e/test-results/.playwright-artifacts-150/bbeb940e2abb81bd33fb4f813dc81a74.png","e2e/test-results/.playwright-artifacts-153/20bab9c3b5a6a6c8f3c6e3493f0e1ba9.png","e2e/test-results/.playwright-artifacts-153/371fe221a15aeaa717f886876620d921.png","e2e/test-results/.playwright-artifacts-153/76cd4918f2304339ec1fe76ddcd7b55b.png","e2e/test-results/.playwright-artifacts-153/ae0376b9adb95505eb51e02ee90bbc8e.png","e2e/test-results/.playwright-artifacts-153/b531974f77e5e32e41ba7cca555f0bb7.png","e2e/test-results/.playwright-artifacts-153/b53ba76429c317199a14cb4364752825.png","e2e/test-results/.playwright-artifacts-153/ee392b3970023ccb139385de481abd72.png","e2e/test-results/.playwright-artifacts-154/0c13079a018ac9c13c4ba8db3ff4e094.png","e2e/test-results/.playwright-artifacts-154/118916b3102656818305cb217b588269.png","e2e/test-results/.playwright-artifacts-154/2e6e287d0dcdc0856c9362de8d6398aa.png","e2e/test-results/.playwright-artifacts-154/3a5f657bb84a41d032a0343df35d41a9.png","e2e/test-results/.playwright-artifacts-154/58301d1a07921edeb74d3a3483b1817a.png","e2e/test-results/.playwright-artifacts-154/ac3bf05aa40dd328f8ff94ea57b593d3.png","e2e/test-results/.playwright-artifacts-155/0f3785e074c2013fdb503ad2fbdb493e.png","e2e/test-results/.playwright-artifacts-155/a1bd8ce117a14b6e0de18cac5664ccaf.png","e2e/test-results/.playwright-artifacts-155/d6a52e76b890f02659819011f04fe8ec.png","e2e/test-results/crud-00-crud-runner-CRUD-严-045cc--删除-软-硬-可用-module-customers-chromium/attachments/probe-D01-8c7f456f302d2e70a2b7284d5b766d718e3352ae.json","e2e/test-results/crud-00-crud-runner-CRUD-严-06138-理-P01-权限矩阵-module-customers-chromium/attachments/probe-P01-dbc1e84cd0231cc2cd28fc2664348f332afc7d30.json","e2e/test-results/crud-00-crud-runner-CRUD-严-0cce6-02-更新权限-冲突-module-customers-chromium/attachments/probe-U02-43119af1727a79f6180e1f9cf4994cb26ec3b6cc.json","e2e/test-results/crud-00-crud-runner-CRUD-严-11522-软-硬-可用-module-opportunities-chromium/attachments/probe-D01-e43feac88c283a8bb5cfc28a3f54d6b0f07aca96.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1c969-D01-删除-软-硬-可用-module-orders-chromium/attachments/probe-D01-9b1d50362ea9770713b1fbf3d7858f876467484a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-3ac20-可用-module-partner-customers-chromium/attachments/probe-D01-1a6ebd5c788589fd1a39652a71d3716ded7fbed0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-41a40--线索管理-P01-权限矩阵-module-leads-chromium/attachments/probe-P01-a6cb822f15dde41179f2e984eeabc9c44494dacf.json","e2e/test-results/crud-00-crud-runner-CRUD-严-44a59--D01-删除-软-硬-可用-module-leads-chromium/attachments/probe-D01-807a2917507571c15e8ab96b895ae35f3ebfe663.json","e2e/test-results/crud-00-crud-runner-CRUD-严-53621-失败-module-partner-customers-chromium/attachments/probe-C02-3b1bb444202d36da2be56db4b6fc48d299f7b5b6.json","e2e/test-results/crud-00-crud-runner-CRUD-严-5b1fe-新权限-冲突-module-opportunities-chromium/attachments/probe-U02-083960f4995b4d35de257a738ac9dfb13c4851a5.json","e2e/test-results/crud-00-crud-runner-CRUD-严-5ba96-C02-创建校验失败-module-customers-chromium/attachments/probe-C02-bb26fd85550a6ff2937da16907cc5e695d7d68a7.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6affb-管理-U02-更新权限-冲突-module-leads-chromium/attachments/probe-U02-8c2d36fc8db97332aec6e4fccabb72db860b27c7.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6fb80-订单管理-E01-异常恢复-module-orders-chromium/attachments/probe-E01-b7bd7a53de90a9de565e895635d1d916a2ac4c13.json","e2e/test-results/crud-00-crud-runner-CRUD-严-75e9b-创建校验失败-module-opportunities-chromium/attachments/probe-C02-56114da1e981cd353811b030b54cf2825c2cf1c4.json","e2e/test-results/crud-00-crud-runner-CRUD-严-775a5-冲突-module-partner-customers-chromium/attachments/probe-U02-d35eb131ff22ad3ad71ff6f6152a0fc5d1c5ba9a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-81cdf-1-异常恢复-module-opportunities-chromium/attachments/probe-E01-67e5658a9eb109a3d2dc9a03f36d6a7be6147f7d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-86911-理-U02-更新权限-冲突-module-orders-chromium/attachments/probe-U02-dc281a7ac7950837e6cfff0372d360e0182818af.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8eb54-管理-C02-创建校验失败-module-orders-chromium/attachments/probe-C02-c486ba5d7bc3cac3fcc6ab9b2e879e894470751c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-91ddf-1-权限矩阵-module-opportunities-chromium/attachments/probe-P01-b59a575c564d37f5393d644761feff2783626088.json","e2e/test-results/crud-00-crud-runner-CRUD-严-9f610-索管理-C02-创建校验失败-module-leads-chromium/attachments/probe-C02-cb8baf848c0834fc939518ccbf58fab8672a7530.json","e2e/test-results/crud-00-crud-runner-CRUD-严-9fcf5-矩阵-module-partner-customers-chromium/attachments/probe-P01-8a41816eb5d2c8c56a744690a1576dadd630160a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a3731-订单管理-P01-权限矩阵-module-orders-chromium/attachments/probe-P01-30b94b8b9207fb726901bcab1127fe15c1b18c98.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c06c1-理-E01-异常恢复-module-customers-chromium/attachments/probe-E01-22e23e43ab9713d764572d8b3491179fd9889297.json","e2e/test-results/crud-00-crud-runner-CRUD-严-dca3a--线索管理-E01-异常恢复-module-leads-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-dca3a--线索管理-E01-异常恢复-module-leads-chromium/test-failed-1.png","e2e/test-results/crud/probes/customers-C02-1770827050956.json","e2e/test-results/crud/probes/customers-D01-1770827053886.json","e2e/test-results/crud/probes/customers-E01-1770827058974.json","e2e/test-results/crud/probes/customers-P01-1770827056383.json","e2e/test-results/crud/probes/customers-U02-1770827054979.json","e2e/test-results/crud/probes/leads-C02-1770827058659.json","e2e/test-results/crud/probes/leads-D01-1770827063025.json","e2e/test-results/crud/probes/leads-P01-1770827063720.json","e2e/test-results/crud/probes/leads-U02-1770827062828.json","e2e/test-results/crud/probes/opportunities-C02-1770827067673.json","e2e/test-results/crud/probes/opportunities-D01-1770827070647.json","e2e/test-results/crud/probes/opportunities-E01-1770827075636.json","e2e/test-results/crud/probes/opportunities-P01-1770827073400.json","e2e/test-results/crud/probes/opportunities-U02-1770827068171.json","e2e/test-results/crud/probes/orders-C02-1770827075123.json","e2e/test-results/crud/probes/orders-D01-1770827079459.json","e2e/test-results/crud/probes/orders-E01-1770827081598.json","e2e/test-results/crud/probes/orders-P01-1770827081447.json","e2e/test-results/crud/probes/orders-U02-1770827077941.json","e2e/test-results/crud/probes/partner-customers-C02-1770827083996.json","e2e/test-results/crud/probes/partner-customers-D01-1770827089066.json","e2e/test-results/crud/probes/partner-customers-P01-1770827089474.json","e2e/test-results/crud/probes/partner-customers-U02-1770827089055.json"],"removed":["e2e/test-results/.playwright-artifacts-149/3b50413d871f92fc7e7d32b34beb742f.png","e2e/test-results/.playwright-artifacts-149/88414d18ef67d6fa7fdd124986d691c7.png","e2e/test-results/.playwright-artifacts-149/f668a9d7fc16b945b8cd9dcf61cf03b3.png"],"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/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":true,"fork":false,"template":false,"parent":null,"mirror":false,"size":39621,"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-24T00:05:59+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
|
19
|
1771862813
|
1771862814
|
0
|
1771862765
|
1771862814
|
NULL
|
|
0
|
Edit
Delete
|
|
19
|
test11188889
|
2
|
2
|
hello-world.yaml
|
18
|
1
|
0
|
refs/heads/main
|
b277cb95b0e9e11aded5a72555e5bfe6066bd7b5
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fbac0054c597227db514fa1c6581f5e9002a4c84","after":"b277cb95b0e9e11aded5a72555e5bfe6066bd7b5","compare_url":"https://gitea.g-hi.com/juhai/testpc/compare/fbac0054c597227db514fa1c6581f5e9002a4c84...b277cb95b0e9e11aded5a72555e5bfe6066bd7b5","commits":[{"id":"b277cb95b0e9e11aded5a72555e5bfe6066bd7b5","message":"test11188889\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/b277cb95b0e9e11aded5a72555e5bfe6066bd7b5","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-12T14:36:28+08:00","added":[],"removed":[],"modified":["pc/kg.php"]}],"total_commits":0,"head_commit":{"id":"b277cb95b0e9e11aded5a72555e5bfe6066bd7b5","message":"test11188889\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/b277cb95b0e9e11aded5a72555e5bfe6066bd7b5","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-12T14:36:28+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":17723,"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:36:13+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
|
2
|
0
|
1770878314
|
0
|
1770878195
|
1770878314
|
NULL
|
|
0
|
Edit
Delete
|
|
56
|
Add external group-buy integrations
|
6
|
5
|
ci.yml
|
17
|
5
|
0
|
refs/heads/main
|
343b38f6bfbbd7d44a1387e1351700df68013555
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7145a8553a880d8a94356baf7bcb4e2df4631e61","after":"343b38f6bfbbd7d44a1387e1351700df68013555","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/7145a8553a880d8a94356baf7bcb4e2df4631e61...343b38f6bfbbd7d44a1387e1351700df68013555","commits":[{"id":"343b38f6bfbbd7d44a1387e1351700df68013555","message":"Add external group-buy integrations\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/343b38f6bfbbd7d44a1387e1351700df68013555","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-12T00:24:50+08:00","added":["e2e/test-results/.playwright-artifacts-123/0036a3ea004cf5faa825c1a3f8a6073f.png","e2e/test-results/.playwright-artifacts-123/113c7ba0c2ff6d2fe8d1527940153460.png","e2e/test-results/.playwright-artifacts-123/79e885472a3e6aeefe2c645e91e0299c.png","e2e/test-results/.playwright-artifacts-123/8960e110a7a16b8d1fda875c99115fc8.png","e2e/test-results/.playwright-artifacts-123/9340a7c7d25713d09068ef16ece6dc17.png","e2e/test-results/.playwright-artifacts-123/acbb71e1c6eb56a4bdc6daca62edb201.png","e2e/test-results/.playwright-artifacts-123/fffee32e8dbcea21ff4e74025022ba51.png","e2e/test-results/.playwright-artifacts-129/11476567fd09fa05f8fee058cae86686.png","e2e/test-results/.playwright-artifacts-129/1739c18fdfafcd1ddb89789bed64540f.png","e2e/test-results/.playwright-artifacts-129/6d8a6e59007dd53762caa0b90533996b.png","e2e/test-results/.playwright-artifacts-129/8b1c460ee4c9236a3443d2d6cbd185e2.png","e2e/test-results/.playwright-artifacts-129/99bfeadb7dd5f26df1f6f56a4eccdedc.png","e2e/test-results/.playwright-artifacts-129/baeada42716032c6f3c422664341717f.png","e2e/test-results/.playwright-artifacts-129/d56c024ed6abd9c9901c2834e695bbf6.png","e2e/test-results/.playwright-artifacts-135/040ea31135b74f973651b4df66ad2872.png","e2e/test-results/.playwright-artifacts-135/56a94c2d172c4e9f05cd349393c6efac.png","e2e/test-results/.playwright-artifacts-135/831b35c9c049da732306796db028c9fb.png","e2e/test-results/.playwright-artifacts-135/968ceefc530d18fcdcfb9f0c5bc464a8.png","e2e/test-results/.playwright-artifacts-135/a1f02a9f178b7c97da9b0fa17e8b907e.png","e2e/test-results/.playwright-artifacts-135/a51d824fd19bcea1380614157b07958d.png","e2e/test-results/.playwright-artifacts-135/acd5d4da1e1bf25b6b5ace1ba7565dcc.png","e2e/test-results/.playwright-artifacts-135/b6dffd33a245a7b80fc4770f9bf06b08.png","e2e/test-results/.playwright-artifacts-146/14a59910d516bd6aa293c0a85981621c.png","e2e/test-results/.playwright-artifacts-146/1ab95bcae962e4830101cd0b9ea979a3.png","e2e/test-results/.playwright-artifacts-146/44b3dc06fdbc5b50b55bd9aa93f58aea.png","e2e/test-results/.playwright-artifacts-146/6f7d208511930d83631f4778b38c2fd9.png","e2e/test-results/.playwright-artifacts-146/97845a6a9a0f01c67b88cf2e0a069af4.png","e2e/test-results/.playwright-artifacts-146/ada9e1a053fa71334be267e07c61d562.png","e2e/test-results/.playwright-artifacts-146/bce7da974abf178509043c149789fa5d.png","e2e/test-results/.playwright-artifacts-150/1f063d21022a6ca57b555291a7e9e13a.png","e2e/test-results/.playwright-artifacts-150/2278e0d8acc1279c6e4500e704f09267.png","e2e/test-results/.playwright-artifacts-150/74185d4e92c0ba9276af41bed4ea6ae1.png","e2e/test-results/.playwright-artifacts-150/8cf6870d845b0c9efb5e60ca58d96ec9.png","e2e/test-results/.playwright-artifacts-150/a15e8586f78be7229b2c525ab74eb46b.png","e2e/test-results/.playwright-artifacts-150/a39845c8368269f22e26985c61b4dbf6.png","e2e/test-results/.playwright-artifacts-150/bbeb940e2abb81bd33fb4f813dc81a74.png","e2e/test-results/.playwright-artifacts-153/20bab9c3b5a6a6c8f3c6e3493f0e1ba9.png","e2e/test-results/.playwright-artifacts-153/371fe221a15aeaa717f886876620d921.png","e2e/test-results/.playwright-artifacts-153/76cd4918f2304339ec1fe76ddcd7b55b.png","e2e/test-results/.playwright-artifacts-153/ae0376b9adb95505eb51e02ee90bbc8e.png","e2e/test-results/.playwright-artifacts-153/b531974f77e5e32e41ba7cca555f0bb7.png","e2e/test-results/.playwright-artifacts-153/b53ba76429c317199a14cb4364752825.png","e2e/test-results/.playwright-artifacts-153/ee392b3970023ccb139385de481abd72.png","e2e/test-results/.playwright-artifacts-154/0c13079a018ac9c13c4ba8db3ff4e094.png","e2e/test-results/.playwright-artifacts-154/118916b3102656818305cb217b588269.png","e2e/test-results/.playwright-artifacts-154/2e6e287d0dcdc0856c9362de8d6398aa.png","e2e/test-results/.playwright-artifacts-154/3a5f657bb84a41d032a0343df35d41a9.png","e2e/test-results/.playwright-artifacts-154/58301d1a07921edeb74d3a3483b1817a.png","e2e/test-results/.playwright-artifacts-154/ac3bf05aa40dd328f8ff94ea57b593d3.png","e2e/test-results/.playwright-artifacts-155/0f3785e074c2013fdb503ad2fbdb493e.png","e2e/test-results/.playwright-artifacts-155/a1bd8ce117a14b6e0de18cac5664ccaf.png","e2e/test-results/.playwright-artifacts-155/d6a52e76b890f02659819011f04fe8ec.png","e2e/test-results/crud-00-crud-runner-CRUD-严-045cc--删除-软-硬-可用-module-customers-chromium/attachments/probe-D01-8c7f456f302d2e70a2b7284d5b766d718e3352ae.json","e2e/test-results/crud-00-crud-runner-CRUD-严-06138-理-P01-权限矩阵-module-customers-chromium/attachments/probe-P01-dbc1e84cd0231cc2cd28fc2664348f332afc7d30.json","e2e/test-results/crud-00-crud-runner-CRUD-严-0cce6-02-更新权限-冲突-module-customers-chromium/attachments/probe-U02-43119af1727a79f6180e1f9cf4994cb26ec3b6cc.json","e2e/test-results/crud-00-crud-runner-CRUD-严-11522-软-硬-可用-module-opportunities-chromium/attachments/probe-D01-e43feac88c283a8bb5cfc28a3f54d6b0f07aca96.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1c969-D01-删除-软-硬-可用-module-orders-chromium/attachments/probe-D01-9b1d50362ea9770713b1fbf3d7858f876467484a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-3ac20-可用-module-partner-customers-chromium/attachments/probe-D01-1a6ebd5c788589fd1a39652a71d3716ded7fbed0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-41a40--线索管理-P01-权限矩阵-module-leads-chromium/attachments/probe-P01-a6cb822f15dde41179f2e984eeabc9c44494dacf.json","e2e/test-results/crud-00-crud-runner-CRUD-严-44a59--D01-删除-软-硬-可用-module-leads-chromium/attachments/probe-D01-807a2917507571c15e8ab96b895ae35f3ebfe663.json","e2e/test-results/crud-00-crud-runner-CRUD-严-53621-失败-module-partner-customers-chromium/attachments/probe-C02-3b1bb444202d36da2be56db4b6fc48d299f7b5b6.json","e2e/test-results/crud-00-crud-runner-CRUD-严-5b1fe-新权限-冲突-module-opportunities-chromium/attachments/probe-U02-083960f4995b4d35de257a738ac9dfb13c4851a5.json","e2e/test-results/crud-00-crud-runner-CRUD-严-5ba96-C02-创建校验失败-module-customers-chromium/attachments/probe-C02-bb26fd85550a6ff2937da16907cc5e695d7d68a7.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6affb-管理-U02-更新权限-冲突-module-leads-chromium/attachments/probe-U02-8c2d36fc8db97332aec6e4fccabb72db860b27c7.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6fb80-订单管理-E01-异常恢复-module-orders-chromium/attachments/probe-E01-b7bd7a53de90a9de565e895635d1d916a2ac4c13.json","e2e/test-results/crud-00-crud-runner-CRUD-严-75e9b-创建校验失败-module-opportunities-chromium/attachments/probe-C02-56114da1e981cd353811b030b54cf2825c2cf1c4.json","e2e/test-results/crud-00-crud-runner-CRUD-严-775a5-冲突-module-partner-customers-chromium/attachments/probe-U02-d35eb131ff22ad3ad71ff6f6152a0fc5d1c5ba9a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-81cdf-1-异常恢复-module-opportunities-chromium/attachments/probe-E01-67e5658a9eb109a3d2dc9a03f36d6a7be6147f7d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-86911-理-U02-更新权限-冲突-module-orders-chromium/attachments/probe-U02-dc281a7ac7950837e6cfff0372d360e0182818af.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8eb54-管理-C02-创建校验失败-module-orders-chromium/attachments/probe-C02-c486ba5d7bc3cac3fcc6ab9b2e879e894470751c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-91ddf-1-权限矩阵-module-opportunities-chromium/attachments/probe-P01-b59a575c564d37f5393d644761feff2783626088.json","e2e/test-results/crud-00-crud-runner-CRUD-严-9f610-索管理-C02-创建校验失败-module-leads-chromium/attachments/probe-C02-cb8baf848c0834fc939518ccbf58fab8672a7530.json","e2e/test-results/crud-00-crud-runner-CRUD-严-9fcf5-矩阵-module-partner-customers-chromium/attachments/probe-P01-8a41816eb5d2c8c56a744690a1576dadd630160a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a3731-订单管理-P01-权限矩阵-module-orders-chromium/attachments/probe-P01-30b94b8b9207fb726901bcab1127fe15c1b18c98.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c06c1-理-E01-异常恢复-module-customers-chromium/attachments/probe-E01-22e23e43ab9713d764572d8b3491179fd9889297.json","e2e/test-results/crud-00-crud-runner-CRUD-严-dca3a--线索管理-E01-异常恢复-module-leads-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-dca3a--线索管理-E01-异常恢复-module-leads-chromium/test-failed-1.png","e2e/test-results/crud/probes/customers-C02-1770827050956.json","e2e/test-results/crud/probes/customers-D01-1770827053886.json","e2e/test-results/crud/probes/customers-E01-1770827058974.json","e2e/test-results/crud/probes/customers-P01-1770827056383.json","e2e/test-results/crud/probes/customers-U02-1770827054979.json","e2e/test-results/crud/probes/leads-C02-1770827058659.json","e2e/test-results/crud/probes/leads-D01-1770827063025.json","e2e/test-results/crud/probes/leads-P01-1770827063720.json","e2e/test-results/crud/probes/leads-U02-1770827062828.json","e2e/test-results/crud/probes/opportunities-C02-1770827067673.json","e2e/test-results/crud/probes/opportunities-D01-1770827070647.json","e2e/test-results/crud/probes/opportunities-E01-1770827075636.json","e2e/test-results/crud/probes/opportunities-P01-1770827073400.json","e2e/test-results/crud/probes/opportunities-U02-1770827068171.json","e2e/test-results/crud/probes/orders-C02-1770827075123.json","e2e/test-results/crud/probes/orders-D01-1770827079459.json","e2e/test-results/crud/probes/orders-E01-1770827081598.json","e2e/test-results/crud/probes/orders-P01-1770827081447.json","e2e/test-results/crud/probes/orders-U02-1770827077941.json","e2e/test-results/crud/probes/partner-customers-C02-1770827083996.json","e2e/test-results/crud/probes/partner-customers-D01-1770827089066.json","e2e/test-results/crud/probes/partner-customers-P01-1770827089474.json","e2e/test-results/crud/probes/partner-customers-U02-1770827089055.json"],"removed":["e2e/test-results/.playwright-artifacts-149/3b50413d871f92fc7e7d32b34beb742f.png","e2e/test-results/.playwright-artifacts-149/88414d18ef67d6fa7fdd124986d691c7.png","e2e/test-results/.playwright-artifacts-149/f668a9d7fc16b945b8cd9dcf61cf03b3.png"],"modified":[]},{"id":"1f279b5dfe76404d425c390ba104d9820a7862f9","message":"Expand integration services for ad平台\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1f279b5dfe76404d425c390ba104d9820a7862f9","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-12T00:24:09+08:00","added":["e2e/test-results/.playwright-artifacts-123/0366d1c318fb54a84f9618f25149b178.png","e2e/test-results/.playwright-artifacts-123/03913ff8db5e425b1c7f19e213ce9557.png","e2e/test-results/.playwright-artifacts-123/0f1139cb77111ebc5e9490594b8eba27.png","e2e/test-results/.playwright-artifacts-123/13a6278921b416958463ef19f4616cb5.png","e2e/test-results/.playwright-artifacts-123/1414aecbbf8bc644a33431beb8a2d6e9.png","e2e/test-results/.playwright-artifacts-123/14943c4b13e989c8b3ff0809dfeac130.png","e2e/test-results/.playwright-artifacts-123/1ca524e2188a82ed3a81d5d379c67aef.png","e2e/test-results/.playwright-artifacts-123/21db441dd9ae0be2d2b321b230bb3349.png","e2e/test-results/.playwright-artifacts-123/2be970c2845772cb340810cefe6edec6.png","e2e/test-results/.playwright-artifacts-123/308af3b6d4fdb21656f5ed225f1f70c2.png","e2e/test-results/.playwright-artifacts-123/3ca055bbca2ee6f857231edc9f5748f0.png","e2e/test-results/.playwright-artifacts-123/4415c462ca8ac230f0b71418693db2c8.png","e2e/test-results/.playwright-artifacts-123/492a506caac899020995cdd0b10b4e07.png","e2e/test-results/.playwright-artifacts-123/4c72c5e8ced397c3b2700722938d6220.png","e2e/test-results/.playwright-artifacts-123/549aceff7cf4000c56c5c160e6558467.png","e2e/test-results/.playwright-artifacts-123/56b20bf3ad30afde2b786ab2af0a8eab.png","e2e/test-results/.playwright-artifacts-123/5e9bdf8a61b69cca21e458a4e212d345.png","e2e/test-results/.playwright-artifacts-123/622308cf5e0beb03c6f25acb90bfdd7f.png","e2e/test-results/.playwright-artifacts-123/632d35e44c4a54ba58e2985c3de7673a.png","e2e/test-results/.playwright-artifacts-123/633a4fd25a088a84883694111c5c8fe3.png","e2e/test-results/.playwright-artifacts-123/6adad1dc77985402d73210cef1274db5.png","e2e/test-results/.playwright-artifacts-123/70351f2b91ede454fbb073f54b023d53.png","e2e/test-results/.playwright-artifacts-123/865f38766c2dd8f20c903a9cfc0d0692.png","e2e/test-results/.playwright-artifacts-123/8e23e0573ea4cdd75c74fbd4b7d1887b.png","e2e/test-results/.playwright-artifacts-123/92066653d9d45e353c7e2f2e7869d1f5.png","e2e/test-results/.playwright-artifacts-123/a01076803ef1239a011d0ae8fc3afb90.png","e2e/test-results/.playwright-artifacts-123/a288996a3810c4a687e7af66b7087918.png","e2e/test-results/.playwright-artifacts-123/a94be80a260cdbc50fbb4f1d1ffe6a9e.png","e2e/test-results/.playwright-artifacts-123/c1ccda835c24f9e23f33addc5b6987c0.png","e2e/test-results/.playwright-artifacts-123/c8759111f25f4940e4f0653773ed86c5.png","e2e/test-results/.playwright-artifacts-123/d9c0f601b57675be4124ac3c4d221626.png","e2e/test-results/.playwright-artifacts-123/e3a0272799892be41b2e80c5e69eb6fe.png","e2e/test-results/.playwright-artifacts-123/f3166cdf4217caca7053a3d398fee52e.png","e2e/test-results/.playwright-artifacts-123/f71b4bc5c87937ddd97cc1044b51484d.png","e2e/test-results/.playwright-artifacts-129/2e1076cd5a44b83bfe50c45f06d469d3.png","e2e/test-results/.playwright-artifacts-129/347f24d4200bcf8c0fe4caf85a30c228.png","e2e/test-results/.playwright-artifacts-129/384bd3f41dd865550e5dd16a56bd9614.png","e2e/test-results/.playwright-artifacts-129/3e90a8868a2ddb02bdfea0f6fadf4aee.png","e2e/test-results/.playwright-artifacts-129/5150b4cf94d6f1e3f986668b7da90028.png","e2e/test-results/.playwright-artifacts-129/5749906ecf9049dcdaae47acd067aa35.png","e2e/test-results/.playwright-artifacts-129/604bf67330c8506dcd1bb8f38088086b.png","e2e/test-results/.playwright-artifacts-129/6551408d48e29cc86c6512aebf101105.png","e2e/test-results/.playwright-artifacts-129/65b491d93117a04db933ae66c95b902a.png","e2e/test-results/.playwright-artifacts-129/9239e7b425f30578c9f9baea3245d8e0.png","e2e/test-results/.playwright-artifacts-129/aa2327de947339681753d2e118b83782.png","e2e/test-results/.playwright-artifacts-129/ac15e20db9c1cfecc03b90d6103d683e.png","e2e/test-results/.playwright-artifacts-129/ac9d9689547b7e0cfc29dd8aa6940f30.png","e2e/test-results/.playwright-artifacts-129/aecff53208e33a676e58e31413e449b5.png","e2e/test-results/.playwright-artifacts-129/b8efd9ba74b3863756daee735695e14c.png","e2e/test-results/.playwright-artifacts-129/ba78d529a40ec41d950755a1dd2b7f07.png","e2e/test-results/.playwright-artifacts-129/be9c67d6ea3397a4c1f72a318d15a6fa.png","e2e/test-results/.playwright-artifacts-129/c024477a63154dcb6dc268d18380ac97.png","e2e/test-results/.playwright-artifacts-129/cadc0727a6d07011beee262dbc2983cd.png","e2e/test-results/.playwright-artifacts-129/e8f04fba447e96bdaadf7d35bd08a8df.png","e2e/test-results/.playwright-artifacts-129/ebe68ab4b37caf3539349cace178a124.png","e2e/test-results/.playwright-artifacts-129/f09fbf7ba21ab27e837f2bec62bed63e.png","e2e/test-results/.playwright-artifacts-129/f8a73b78c4753eb04d0ed1f234ba55a1.png","e2e/test-results/.playwright-artifacts-129/fa436d3d83990c2c8caa318510a3dffa.png","e2e/test-results/.playwright-artifacts-135/09d2c595eea34530febe559d8243f95a.png","e2e/test-results/.playwright-artifacts-135/1e8c839d01896f1d8f27b97ea3302746.png","e2e/test-results/.playwright-artifacts-135/49505ebd713cc96616c8f97eecdbeb17.png","e2e/test-results/.playwright-artifacts-135/4eaadd7824505d164a5fa7b8c1076ccb.png","e2e/test-results/.playwright-artifacts-135/57eebfe55859feea9dc2104879b200ef.png","e2e/test-results/.playwright-artifacts-135/5f9565e6144f1f17f24677d182f0e51b.png","e2e/test-results/.playwright-artifacts-135/7779832854db29d852eef4df22463950.png","e2e/test-results/.playwright-artifacts-135/7c47ecba32583eb892d9d6629585eb0f.png","e2e/test-results/.playwright-artifacts-135/86095ca7f1fd956b4db89d28f3383c5f.png","e2e/test-results/.playwright-artifacts-135/87f6b496390c2e40e0b88d54b4b365ba.png","e2e/test-results/.playwright-artifacts-135/89c13faa40bdd2960646c0e2458a7880.png","e2e/test-results/.playwright-artifacts-135/ab947187fe8df045a5e5b93778cce066.png","e2e/test-results/.playwright-artifacts-135/b1cb2d17e61194e19e14d49a28b483b1.png","e2e/test-results/.playwright-artifacts-135/c2ad515e97c23096c2dd0294249daf78.png","e2e/test-results/.playwright-artifacts-135/cdd40b11302990407ff076a10318e2b7.png","e2e/test-results/.playwright-artifacts-135/dde338cbd7736afb248dd818e662fc66.png","e2e/test-results/.playwright-artifacts-135/e4a6744bd02bdcccdc5485b4368a7a3d.png","e2e/test-results/.playwright-artifacts-135/f3e019b966fb4c1608229f02e2db732e.png","e2e/test-results/.playwright-artifacts-135/fd33dbbc9849437ed9aa4b164f75f866.png","e2e/test-results/.playwright-artifacts-146/27b87d9c7671dc0af86ec6cbc96f5976.png","e2e/test-results/.playwright-artifacts-146/37aabb6752349fae13a0e4bfd54fe68f.png","e2e/test-results/.playwright-artifacts-146/9e2f215eeeb67a057e397d62057e7a3a.png","e2e/test-results/.playwright-artifacts-146/a0f643784b173faeed685fafb9263f03.png","e2e/test-results/.playwright-artifacts-146/c7739d182a688fd48274bc89ce9e8145.png","e2e/test-results/.playwright-artifacts-149/3b50413d871f92fc7e7d32b34beb742f.png","e2e/test-results/.playwright-artifacts-149/88414d18ef67d6fa7fdd124986d691c7.png","e2e/test-results/.playwright-artifacts-149/f668a9d7fc16b945b8cd9dcf61cf03b3.png","e2e/test-results/.playwright-artifacts-150/16419be62cbf2f681f5650b3b6694637.png","e2e/test-results/.playwright-artifacts-150/fdad56ff5cc65cf9da384c15ab4fb08e.png","e2e/test-results/business-flows-order-fulfi-173b2-程-E2E-测试-非法状态转换测试:已完成订单不能取消-chromium/error-context.md","e2e/test-results/business-flows-order-fulfi-173b2-程-E2E-测试-非法状态转换测试:已完成订单不能取消-chromium/test-failed-1.png","e2e/test-results/business-flows-order-fulfi-c1ba0-程-E2E-测试-下载订单-PDF:生成并下载订单文档-chromium/error-context.md","e2e/test-results/business-flows-order-fulfi-c1ba0-程-E2E-测试-下载订单-PDF:生成并下载订单文档-chromium/test-failed-1.png","e2e/test-results/business-flows-order-fulfi-cefd5-订单完成触发链路:资产登记-→-保修激活-→-权益生效-chromium/error-context.md","e2e/test-results/business-flows-order-fulfi-cefd5-订单完成触发链路:资产登记-→-保修激活-→-权益生效-chromium/test-failed-1.png","e2e/test-results/business-flows-order-fulfi-d4f9b-已支付-→-处理中-→-已发货-→-已送达-→-已完成-chromium/error-context.md","e2e/test-results/business-flows-order-fulfi-d4f9b-已支付-→-处理中-→-已发货-→-已送达-→-已完成-chromium/test-failed-1.png","e2e/test-results/business-flows-quote-appro-2194d-E-测试-正常流程:小额折扣无需审批-→-直接发送客户-chromium/error-context.md","e2e/test-results/business-flows-quote-appro-2194d-E-测试-正常流程:小额折扣无需审批-→-直接发送客户-chromium/test-failed-1.png","e2e/test-results/business-flows-quote-appro-37b89-程-E2E-测试-完整流程:报价接受-→-自动生成合同-chromium/error-context.md","e2e/test-results/business-flows-quote-appro-37b89-程-E2E-测试-完整流程:报价接受-→-自动生成合同-chromium/test-failed-1.png","e2e/test-results/business-flows-quote-appro-46c9f-流程:大额折扣触发审批-→-经理审批通过-→-发送客户-chromium/error-context.md","e2e/test-results/business-flows-quote-appro-46c9f-流程:大额折扣触发审批-→-经理审批通过-→-发送客户-chromium/test-failed-1.png","e2e/test-results/business-flows-quote-appro-61785-批流程-E2E-测试-SLA-测试:报价有效期到期提醒-chromium/error-context.md","e2e/test-results/business-flows-quote-appro-61785-批流程-E2E-测试-SLA-测试:报价有效期到期提醒-chromium/test-failed-1.png","e2e/test-results/business-flows-quote-appro-6a563-价审批流程-E2E-测试-权限测试:销售专员无审批权限-chromium/error-context.md","e2e/test-results/business-flows-quote-appro-6a563-价审批流程-E2E-测试-权限测试:销售专员无审批权限-chromium/test-failed-1.png","e2e/test-results/business-flows-quote-appro-6bb4a--报价审批流程-E2E-测试-报价克隆功能:创建新版本-chromium/error-context.md","e2e/test-results/business-flows-quote-appro-6bb4a--报价审批流程-E2E-测试-报价克隆功能:创建新版本-chromium/test-failed-1.png","e2e/test-results/business-flows-quote-appro-ff7ad-试-审批拒绝流程:经理拒绝-→-销售修改-→-重新提交-chromium/error-context.md","e2e/test-results/business-flows-quote-appro-ff7ad-试-审批拒绝流程:经理拒绝-→-销售修改-→-重新提交-chromium/test-failed-1.png","e2e/test-results/business-flows-ticket-proc-03d35-理流程-E2E-测试-重新打开流程:已关闭工单重新打开-chromium/error-context.md","e2e/test-results/business-flows-ticket-proc-03d35-理流程-E2E-测试-重新打开流程:已关闭工单重新打开-chromium/test-failed-1.png","e2e/test-results/business-flows-ticket-proc-03dd5-w-工单处理流程-E2E-测试-打印工单:生成打印版本-chromium/error-context.md","e2e/test-results/business-flows-ticket-proc-03dd5-w-工单处理流程-E2E-测试-打印工单:生成打印版本-chromium/test-failed-1.png","e2e/test-results/business-flows-ticket-proc-05bbd-:新建-→-已分配-→-处理中-→-已解决-→-已关闭-chromium/error-context.md","e2e/test-results/business-flows-ticket-proc-05bbd-:新建-→-已分配-→-处理中-→-已解决-→-已关闭-chromium/test-failed-1.png","e2e/test-results/business-flows-ticket-proc-1cdf9-处理流程-E2E-测试-权限测试:一线客服不能删除工单-chromium/error-context.md","e2e/test-results/business-flows-ticket-proc-1cdf9-处理流程-E2E-测试-权限测试:一线客服不能删除工单-chromium/test-failed-1.png","e2e/test-results/business-flows-ticket-proc-3474b-E-测试-SLA-超时预警:首次响应超时-解决时间超时-chromium/error-context.md","e2e/test-results/business-flows-ticket-proc-3474b-E-测试-SLA-超时预警:首次响应超时-解决时间超时-chromium/test-failed-1.png","e2e/test-results/business-flows-ticket-proc-381df-→-分配-→-处理-→-解决-→-关闭-→-满意度调查-chromium/error-context.md","e2e/test-results/business-flows-ticket-proc-381df-→-分配-→-处理-→-解决-→-关闭-→-满意度调查-chromium/test-failed-1.png","e2e/test-results/business-flows-ticket-proc-555cf--E2E-测试-非法状态转换测试:新建工单不能直接关闭-chromium/error-context.md","e2e/test-results/business-flows-ticket-proc-555cf--E2E-测试-非法状态转换测试:新建工单不能直接关闭-chromium/test-failed-1.png","e2e/test-results/business-flows-ticket-proc-a4b93-流程-E2E-测试-权限测试:只有客服经理可以删除工单-chromium/error-context.md","e2e/test-results/business-flows-ticket-proc-a4b93-流程-E2E-测试-权限测试:只有客服经理可以删除工单-chromium/test-failed-1.png","e2e/test-results/business-flows-ticket-proc-e0988-2E-测试-关联订单流程:从订单创建工单-→-关联资产-chromium/error-context.md","e2e/test-results/business-flows-ticket-proc-e0988-2E-测试-关联订单流程:从订单创建工单-→-关联资产-chromium/test-failed-1.png","e2e/test-results/business-flows-ticket-proc-ef546-理流程-E2E-测试-权限测试:客户只能查看自己的工单-chromium/error-context.md","e2e/test-results/business-flows-ticket-proc-ef546-理流程-E2E-测试-权限测试:客户只能查看自己的工单-chromium/test-failed-1.png","e2e/test-results/business-flows-ticket-proc-efb99-试-升级流程:一线无法处理-→-升级二线-→-升级经理-chromium/error-context.md","e2e/test-results/business-flows-ticket-proc-efb99-试-升级流程:一线无法处理-→-升级二线-→-升级经理-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-018da-ule-livestream-interactions-chromium/attachments/probe-C02-49460ef089758bcf7ce55b05661f8372c8923908.json","e2e/test-results/crud-00-crud-runner-CRUD-严-01958-module-livestream-schedules-chromium/attachments/probe-U02-680bdd0b70581371e45d0e53130df24b19877daa.json","e2e/test-results/crud-00-crud-runner-CRUD-严-01a82-复-module-customer-analytics-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-01a82-复-module-customer-analytics-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-01c65-常恢复-module-community-levels-chromium/attachments/probe-E01-1c09721949e3fd0516cc9260cf13afc1ad254c07.json","e2e/test-results/crud-00-crud-runner-CRUD-严-029eb--module-community-analytics-chromium/attachments/probe-P01-3d91129971cc01edd3aefa3099345611448fe7af.json","e2e/test-results/crud-00-crud-runner-CRUD-严-05173-验失败-module-livestream-gifts-chromium/attachments/probe-C02-0df53ac20d3f78124d1bba403d7e88b4adc90c55.json","e2e/test-results/crud-00-crud-runner-CRUD-严-058ab--可用-module-community-levels-chromium/attachments/probe-D01-de87d439d2e31710873d001ca9211892d827c75f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-06c2c-常恢复-module-community-groups-chromium/attachments/probe-E01-43377c821e4affb800b5100a8da0b5c056fbcd8d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-07cf8-P01-权限矩阵-module-geo-reviews-chromium/attachments/probe-P01-4ce60590afe4a172267f57254ed3f881a778dad4.json","e2e/test-results/crud-00-crud-runner-CRUD-严-09122--冲突-module-community-groups-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-09122--冲突-module-community-groups-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-0a59f--module-livestream-products-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-0a59f--module-livestream-products-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-0b0c7--更新权限-冲突-module-attribution-chromium/attachments/probe-U02-92a536f943b43fd5bb4b8b48a11adfe8148173fb.json","e2e/test-results/crud-00-crud-runner-CRUD-严-0b386-常恢复-module-social-followers-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-0b386-常恢复-module-social-followers-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-0c51b-权限矩阵-module-customer-profit-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-0c51b-权限矩阵-module-customer-profit-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-0cb7f--软-硬-可用-module-ad-placement-chromium/attachments/probe-D01-308f4f7f61c5eb5b142889eaf25109ff8b7016c8.json","e2e/test-results/crud-00-crud-runner-CRUD-严-0d69f-更新权限-冲突-module-web-tracking-chromium/attachments/probe-U02-be3f0a49c65e254f7ae610d2bd89ddb1c7561e45.json","e2e/test-results/crud-00-crud-runner-CRUD-严-0eff8-限矩阵-module-community-levels-chromium/attachments/probe-P01-9eb82e6e0478399eda0d215beaafcf678f3a4d21.json","e2e/test-results/crud-00-crud-runner-CRUD-严-0f435-突-module-marketing-calendar-chromium/attachments/probe-U02-ec0b17e6638d49de6bca47b535ec0e8db84d0361.json","e2e/test-results/crud-00-crud-runner-CRUD-严-0fa13--删除-软-硬-可用-module-campaigns-chromium/attachments/probe-D01-a165c27a19ed527ca12a0aa99a466adbcfdab4a4.json","e2e/test-results/crud-00-crud-runner-CRUD-严-0fb7f-理-E01-异常恢复-module-contracts-chromium/attachments/probe-E01-ea86e7fa6f78024c16bf41404b0d4fa3b51bc16a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-0ff8e-恢复-module-marketing-content-chromium/attachments/probe-E01-37b9c81217feeb77a69e723b78eb502cc3072d37.json","e2e/test-results/crud-00-crud-runner-CRUD-严-10e2d-module-community-activities-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-10e2d-module-community-activities-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-111d5-权限-冲突-module-community-bots-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-111d5-权限-冲突-module-community-bots-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-1148f--可用-module-marketing-matrix-chromium/attachments/probe-D01-d87cc923da74715eefd3df9e620823a6f3c41403.json","e2e/test-results/crud-00-crud-runner-CRUD-严-11ec2-复-module-livestream-scripts-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-11ec2-复-module-livestream-scripts-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-12209-验失败-module-content-creation-chromium/attachments/probe-C02-c4578629302531a25ece685bb98ef057bae6a261.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1256a-module-marketing-automation-chromium/attachments/probe-C02-63aed13256ad6ebe6b3069e137a34b36546c1938.json","e2e/test-results/crud-00-crud-runner-CRUD-严-14e04--权限矩阵-module-community-bots-chromium/attachments/probe-P01-d698e68a8b9c7b7cbae9cce54694d38e2cd2616d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-15615--异常恢复-module-community-bots-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-15615--异常恢复-module-community-bots-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-1597a--冲突-module-livestream-gifts-chromium/attachments/probe-U02-0b661219fc84201a64dafaa0ada17c489a753f4d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-16244-校验失败-module-content-library-chromium/attachments/probe-C02-66a36200aed6297756a00431585f8fd8ce0bcf43.json","e2e/test-results/crud-00-crud-runner-CRUD-严-16412-更新权限-冲突-module-social-posts-chromium/attachments/probe-U02-74e13fcb41e47031b69de10f4fd74394c3d5cbbb.json","e2e/test-results/crud-00-crud-runner-CRUD-严-16a62-恢复-module-community-fission-chromium/attachments/probe-E01-f59890ce7c2f52d50fee22e9b1c4fdea6a201c6c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-17816-验失败-module-community-groups-chromium/attachments/probe-C02-d7bf5316d99be4a2459a1602d27a2bcbc4920a1c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-17a63-异常恢复-module-customer-profit-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-17a63-异常恢复-module-customer-profit-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-198b4-阵-module-customer-marketing-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-198b4-阵-module-customer-marketing-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-1a0d0-删除-软-硬-可用-module-ad-reports-chromium/attachments/probe-D01-b4150a58d6e02d6ecf869ae0bc6fcb639ac0a68e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1b71e-module-content-distribution-chromium/attachments/probe-U02-dc2ea5dd4db98131a22eecc24206c19ba64ba5d7.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1bf87--可用-module-social-followers-chromium/attachments/probe-D01-8d20be449f667b5dfdf6b7ff0287f178ac076b98.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1d799-module-marketing-north-star-chromium/attachments/probe-C02-028170f2fd38f2ff9cf62f7da83566b78f08dd17.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1f078-module-marketing-automation-chromium/attachments/probe-D01-7f9705c53a86542e492ed4ccbfcd74088355d25d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1fc37--创建校验失败-module-geo-keywords-chromium/attachments/probe-C02-35bda4864e412f5ac1fb467ffa877b981e2c81cf.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1ff13-U02-更新权限-冲突-module-geo-pois-chromium/attachments/probe-U02-4fffb5f74550912c4019ff57ebbe2ff7873bad73.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1ffee-1-异常恢复-module-geo-analytics-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-1ffee-1-异常恢复-module-geo-analytics-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-201b8-矩阵-module-marketing-content-chromium/attachments/probe-P01-44aae02bd1e4b8d10d9f87b47cc3025f3ced4d4d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-21091-可用-module-community-fission-chromium/attachments/probe-D01-f4ea2b505bfb0f2646c5bded38d88b8662e37eab.json","e2e/test-results/crud-00-crud-runner-CRUD-严-22fdb--module-community-materials-chromium/attachments/probe-C02-8c5dfc19747ae88864a83c511546c619b4ffecf8.json","e2e/test-results/crud-00-crud-runner-CRUD-严-23c26--创建校验失败-module-ad-placement-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-23c26--创建校验失败-module-ad-placement-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-23c2a--更新权限-冲突-module-ad-accounts-chromium/attachments/probe-U02-a4d2d960b87f4b432fb73310c5269a3a78d584ae.json","e2e/test-results/crud-00-crud-runner-CRUD-严-254f0-矩阵-module-social-hot-topics-chromium/attachments/probe-P01-25cdb79fd88b0a1f38cc58e798f70747da53cf75.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2650f-理-E01-异常恢复-module-ai-agents-chromium/attachments/probe-E01-1a9ef28a9d7ca58aa9fbe59c703fc948e65d8a0f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-26d6e-module-content-distribution-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-26d6e-module-content-distribution-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-26fed-更新权限-冲突-module-ad-campaigns-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-26fed-更新权限-冲突-module-ad-campaigns-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-275d5-建校验失败-module-crm-activities-chromium/attachments/probe-C02-e2040c6302df7c01b7845053ac0908f556237b64.json","e2e/test-results/crud-00-crud-runner-CRUD-严-28266-ule-livestream-interactions-chromium/attachments/probe-D01-7cf92558a5455e36dc1613abf30df8bf66c4cf12.json","e2e/test-results/crud-00-crud-runner-CRUD-严-293e8-E01-异常恢复-module-geo-reviews-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-293e8-E01-异常恢复-module-geo-reviews-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-294ee-2-更新权限-冲突-module-geo-fences-chromium/attachments/probe-U02-88fd2d883a040b956b4fc7d018d93e895308fa0d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2a3db-建校验失败-module-content-review-chromium/attachments/probe-C02-9110de6d97a6972da82cc904e5eed2ea870ca8de.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2b121-心-E01-异常恢复-module-marketing-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-2b121-心-E01-异常恢复-module-marketing-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-2c061-用-module-social-competitors-chromium/attachments/probe-D01-bf6b2e8256767ad0cd3d28f33df5be62434316d6.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2c6f5-新权限-冲突-module-geo-analytics-chromium/attachments/probe-U02-dc6df2c899b0557f282edbb7b1b6dac9bfa10679.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2cecf-1-删除-软-硬-可用-module-geo-pois-chromium/attachments/probe-D01-249d20f2e8cd0122d2a9cf1075781020fc7fca3e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2cf49-限矩阵-module-livestream-rooms-chromium/attachments/probe-P01-7cc8468b56cf7add8fe8b727269b88ff3aea4b55.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2d441--可用-module-livestream-rooms-chromium/attachments/probe-D01-819453ea29de0388a9aeb87dd14b5834a65aa89b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2e15f--冲突-module-campaign-targets-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-2e15f--冲突-module-campaign-targets-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-2eb8f--软-硬-可用-module-web-tracking-chromium/attachments/probe-D01-410bfd224ddd38d2208118aaa3a2a9d9cc6f0dd2.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2ebb5-可用-module-marketing-chatbot-chromium/attachments/probe-D01-af08327a7f09972aae157e3351e65d8c70966326.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2f408-除-软-硬-可用-module-ad-accounts-chromium/attachments/probe-D01-708cab7a67580cc569ac4f83caba748ac321f25f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2f838-验失败-module-social-followers-chromium/attachments/probe-C02-d2b63147d86eb57b669dc22cab437441b8ddfaf3.json","e2e/test-results/crud-00-crud-runner-CRUD-严-3034f-权限矩阵-module-email-marketing-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-3034f-权限矩阵-module-email-marketing-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-30bd3-阵-module-customer-analytics-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-30bd3-阵-module-customer-analytics-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-31260-限矩阵-module-livestream-gifts-chromium/attachments/probe-P01-262967e175096713ebd8c6168cfa6b97a9821c45.json","e2e/test-results/crud-00-crud-runner-CRUD-严-32032-常恢复-module-community-points-chromium/attachments/probe-E01-3b05d5ee57552fd9ce671d92acf50c68163a1c52.json","e2e/test-results/crud-00-crud-runner-CRUD-严-32e19-突-module-livestream-scripts-chromium/attachments/probe-U02-3f6d3aa8127a8468f859699b2948600e4968d8ac.json","e2e/test-results/crud-00-crud-runner-CRUD-严-332c5-P01-权限矩阵-module-attribution-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-332c5-P01-权限矩阵-module-attribution-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-33430-module-marketing-north-star-chromium/attachments/probe-D01-bd2ee415ea85464afd668d22835bd534f4ef798e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-33cab--E01-异常恢复-module-ad-reports-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-33cab--E01-异常恢复-module-ad-reports-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-344d5-module-community-activities-chromium/attachments/probe-D01-107349d244455879d6d9de33f3356a67264d7797.json","e2e/test-results/crud-00-crud-runner-CRUD-严-36719-2-更新权限-冲突-module-ad-reports-chromium/attachments/probe-U02-871dae1638040d69d0fdd0a3be51655567e9573b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-3672f--module-social-interactions-chromium/attachments/probe-C02-e9f6b260c4040d0539b782c00e92b734319449ff.json","e2e/test-results/crud-00-crud-runner-CRUD-严-37227-常恢复-module-campaign-library-chromium/attachments/probe-E01-51b7e14e352456937dddc1e7463c3875d6b9f23b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-37557-权限-冲突-module-crm-activities-chromium/attachments/probe-U02-4fcb9d181ef82fbfac6d291566b2466de2f8dc0b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-38703--冲突-module-community-points-chromium/attachments/probe-U02-ec3bc84f7e1520c2407ee164d11f12baa703ea5c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-38e78-软-硬-可用-module-geo-analytics-chromium/attachments/probe-D01-931c79e637af7c8cc38ba4c7a5d0a98e76e7d89e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-398d6-失败-module-community-members-chromium/attachments/probe-C02-dff3bae897760b40c0802e6c0348aa2281e51086.json","e2e/test-results/crud-00-crud-runner-CRUD-严-3a681-02-更新权限-冲突-module-contracts-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-3a681-02-更新权限-冲突-module-contracts-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-3b156-成功-module-content-templates-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-3b156-成功-module-content-templates-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-3b17b-P01-权限矩阵-module-ad-biddings-chromium/attachments/probe-P01-9dffba566ace2e927f868ef68bf94bdb9c923194.json","e2e/test-results/crud-00-crud-runner-CRUD-严-3b307-限-冲突-module-lead-scoring-ai-chromium/attachments/probe-U02-47e41c42c30666ee9b99cce3a175b875badcf75e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-3c63a-硬-可用-module-customer-health-chromium/attachments/probe-D01-58baea0e694aed0a246837c9314b4eac81cf0806.json","e2e/test-results/crud-00-crud-runner-CRUD-严-3c6b5-C02-创建校验失败-module-contracts-chromium/attachments/probe-C02-6baed7d0ef0d47dd5653c2eb4c1944262cb1baa7.json","e2e/test-results/crud-00-crud-runner-CRUD-严-3ce4c-页-module-customer-marketing-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-3ce4c-页-module-customer-marketing-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-3d71d--module-social-auto-replies-chromium/attachments/probe-P01-ee0f0ea0a268cdff191ff4c80c5556f9f93b4309.json","e2e/test-results/crud-00-crud-runner-CRUD-严-3e175-02-创建校验失败-module-geo-fences-chromium/attachments/probe-C02-f03cab568adf876bacc955c537598a6e48719e0f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-3ef31-异常恢复-module-marketing-forms-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-3ef31-异常恢复-module-marketing-forms-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-3f443-2-更新权限-冲突-module-livestream-chromium/attachments/probe-U02-c928b5810a89ae46c7ab4d9e2c449a8805ba473b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-3f709-module-marketing-north-star-chromium/attachments/probe-E01-454a71dce23f2a85cc37b653683c642d82c90088.json","e2e/test-results/crud-00-crud-runner-CRUD-严-40aa2--module-livestream-products-chromium/attachments/probe-D01-b06a96778c96071176cf812619694233cb7a241f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-40d51-1-权限矩阵-module-landing-pages-chromium/attachments/probe-P01-b9bc8709b88b6fc9c690753756cb2f4ff3b1e285.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4204b-败-module-marketing-calendar-chromium/attachments/probe-C02-bc4470c99f30c0dc92630440b1f6bc29e6f92b58.json","e2e/test-results/crud-00-crud-runner-CRUD-严-42361-01-异常恢复-module-geo-keywords-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-42361-01-异常恢复-module-geo-keywords-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-4287b-矩阵-module-community-fission-chromium/attachments/probe-P01-4f1ab3d03625309e605a579ba73a05576da8bab2.json","e2e/test-results/crud-00-crud-runner-CRUD-严-42988--创建校验失败-module-ad-creatives-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-42988--创建校验失败-module-ad-creatives-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-43816-2-创建校验失败-module-ad-accounts-chromium/attachments/probe-C02-39e0ee5d17102575b1d9514d181b567791ee4637.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4495e--冲突-module-campaign-library-chromium/attachments/probe-U02-c47044b48f3ed44fdafaad0b990b999942a50a60.json","e2e/test-results/crud-00-crud-runner-CRUD-严-45054-权限矩阵-module-marketing-forms-chromium/attachments/probe-P01-dcd042d323c6fc017a2c65c680a4d8ea95795f47.json","e2e/test-results/crud-00-crud-runner-CRUD-严-456d0-验失败-module-community-levels-chromium/attachments/probe-C02-8c76aa251db0ba1cf9144d30808ae70c5a370fd1.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4744d-module-livestream-analytics-chromium/attachments/probe-E01-fe766f2a09eb135384767ebedb471425087799b4.json","e2e/test-results/crud-00-crud-runner-CRUD-严-47591-可用-module-marketing-content-chromium/attachments/probe-D01-cccb0db0e6bcecc8acadef24bd8e9bb9ae9de797.json","e2e/test-results/crud-00-crud-runner-CRUD-严-49432-module-marketing-automation-chromium/attachments/probe-U02-ef7ad0cd92cc780e0e05c080fd406f3f7803f253.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4a11c-module-community-activities-chromium/attachments/probe-P01-45cd02225f9136073867d401e9227f1f1ca30aae.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4ae99-限矩阵-module-community-groups-chromium/attachments/probe-P01-d0abc405b079635a5e8e4c58e8cdcbe7d0992742.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4b0f5-限矩阵-module-content-creation-chromium/attachments/probe-P01-531a48945f3d61e10bdad08f4e2a5634d686b4ba.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4b4aa-失败-module-community-fission-chromium/attachments/probe-C02-2144c7b46f56de73913ba38b408126040f8b1582.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4bba7-01-异常恢复-module-ad-placement-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-4bba7-01-异常恢复-module-ad-placement-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-4c78c-可用-module-social-hot-topics-chromium/attachments/probe-D01-e51d543d6b7655a954b2f6bd118064f27ef79661.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4c7df-更新权限-冲突-module-ad-placement-chromium/attachments/probe-U02-f767f5e79fd926184d34bc07f5cd6ec4f7339cc5.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4db84-建校验失败-module-community-bots-chromium/attachments/probe-C02-5c664a6cf9f8e6621ed12311ff589ae33e7d1231.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4de98-01-权限矩阵-module-social-posts-chromium/attachments/probe-P01-4dce123edcd5541b125d937883d0c7227f0da017.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4ef1d-复-module-social-competitors-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-4ef1d-复-module-social-competitors-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-51fcf-限矩阵-module-realtime-trigger-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-51fcf-限矩阵-module-realtime-trigger-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-52288-U02-更新权限-冲突-module-channels-chromium/attachments/probe-U02-17613b5af7092950626ddf6b00d8e16edb0c0eea.json","e2e/test-results/crud-00-crud-runner-CRUD-严-524dd--可用-module-content-creation-chromium/attachments/probe-D01-9bbf7d8dd8211b2486df0b2a32a4113f998e6c2a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-52c31-限矩阵-module-social-followers-chromium/attachments/probe-P01-e3b70d891a5e54d1d6e4d6d62217cdc380a004fe.json","e2e/test-results/crud-00-crud-runner-CRUD-严-536c8--module-community-materials-chromium/attachments/probe-P01-319a2ad4c69f91dd15dc51f74105c16e2bdc4c8a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-53ed7-限-冲突-module-customer-health-chromium/attachments/probe-U02-f607447ce6adda48e8e374fb83fc26659c095eab.json","e2e/test-results/crud-00-crud-runner-CRUD-严-5561c-矩阵-module-marketing-chatbot-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-5561c-矩阵-module-marketing-chatbot-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-561da-校验失败-module-community-tasks-chromium/attachments/probe-C02-83fa62991552b4b0959afaa9aa2ccd20432fb2cd.json","e2e/test-results/crud-00-crud-runner-CRUD-严-56329-冲突-module-community-members-chromium/attachments/probe-U02-ff9c0133aa323dcf3bd4dbe1cd7d6f9e03096161.json","e2e/test-results/crud-00-crud-runner-CRUD-严-5a1dc--可用-module-livestream-gifts-chromium/attachments/probe-D01-06dbbd22fb589cc3c686a53c3455168cc316faa8.json","e2e/test-results/crud-00-crud-runner-CRUD-严-5a21c-冲突-module-marketing-chatbot-chromium/attachments/probe-U02-a14ad6fbb001ad1c6310b46271e1fe0f5ca97c89.json","e2e/test-results/crud-00-crud-runner-CRUD-严-5a6f4--权限矩阵-module-crm-activities-chromium/attachments/probe-P01-fe40e4e33b2599950b8ee65492106d7af9fd7263.json","e2e/test-results/crud-00-crud-runner-CRUD-严-5aca2-败-module-contract-templates-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-5aca2-败-module-contract-templates-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-5b1e1-限矩阵-module-social-analytics-chromium/attachments/probe-P01-1ead161e5a4165aef03d8cbf8cbcc52f7f9eaa7d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-5c0b5--创建校验失败-module-ad-campaigns-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-5c0b5--创建校验失败-module-ad-campaigns-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-5c142--冲突-module-social-followers-chromium/attachments/probe-U02-ce6bff8df92686091f07a457bf01da01836a9411.json","e2e/test-results/crud-00-crud-runner-CRUD-严-5c736-2-创建校验失败-module-geo-reviews-chromium/attachments/probe-C02-18e64c7bc1b8bc6c08d98a50ff5d7e42e121194c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-5d3a5-除-软-硬-可用-module-attribution-chromium/attachments/probe-D01-cd9c28e14ed7b8ef8adcf35da604a967a1ab0d03.json","e2e/test-results/crud-00-crud-runner-CRUD-严-5dafb-1-异常恢复-module-landing-pages-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-5dafb-1-异常恢复-module-landing-pages-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-5db7a--module-marketing-timeslots-chromium/attachments/probe-C02-73951df4ee2293c59c10298b65f4778251a983d6.json","e2e/test-results/crud-00-crud-runner-CRUD-严-5ee69-1-异常恢复-module-sms-marketing-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-5ee69-1-异常恢复-module-sms-marketing-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-5ef0b--删除-软-硬-可用-module-ai-agents-chromium/attachments/probe-D01-82bdf74761a253e9ae7c9ed5cdcb1d08e6de7f5b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-5f17a-复-module-content-categories-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-5f17a-复-module-content-categories-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-5f6cd-异常恢复-module-customer-health-chromium/attachments/probe-E01-bf57951ccdf44354ff37647958552228dcfc68c5.json","e2e/test-results/crud-00-crud-runner-CRUD-严-609d6-02-更新权限-冲突-module-marketing-chromium/attachments/probe-U02-47d507ea2cb266b882b82c6759f608af04027b54.json","e2e/test-results/crud-00-crud-runner-CRUD-严-63c54-限-冲突-module-content-library-chromium/attachments/probe-U02-f0a3e74acb6884ac784e6960260f74876ebf4637.json","e2e/test-results/crud-00-crud-runner-CRUD-严-64606-E01-异常恢复-module-ad-accounts-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-64606-E01-异常恢复-module-ad-accounts-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-650c5--E01-异常恢复-module-geo-fences-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-650c5--E01-异常恢复-module-geo-fences-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-651ba-01-异常恢复-module-ad-audiences-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-651ba-01-异常恢复-module-ad-audiences-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-65981-失败-module-content-templates-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-65981-失败-module-content-templates-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-65aaa-阵-module-community-messages-chromium/attachments/probe-P01-58a1dbaef217ee0b92d4713f8aa07919c56cc85e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-666d3-可用-module-community-members-chromium/attachments/probe-D01-2e2f1343aa6139699e1f85c06abd35dc18c00c6e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-680cb-更新权限-冲突-module-geo-keywords-chromium/attachments/probe-U02-d27e2432c77d4e8cb9f90ff8e2a306f2e9845555.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6ad31-module-content-distribution-chromium/attachments/probe-D01-44fd838724130126c71f4f582c272198a497dcc1.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6b2ab--module-community-materials-chromium/attachments/probe-U02-c790875817800c461c837457c507242584b1ecfe.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6b353--冲突-module-community-levels-chromium/attachments/probe-U02-559f37fc27eac1c77850baa919fe5238a5b9ec83.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6bd75--可用-module-community-points-chromium/attachments/probe-D01-b3514759b5456e0ae2f85db9f61a1128cd3b0afd.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6c0fc--创建校验失败-module-ad-audiences-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-6c0fc--创建校验失败-module-ad-audiences-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-6c3ff-E01-异常恢复-module-ad-biddings-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-6c3ff-E01-异常恢复-module-ad-biddings-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-6c781-恢复-module-content-copyright-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-6c781-恢复-module-content-copyright-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-6c923--冲突-module-content-creation-chromium/attachments/probe-U02-5623dff71793f0cb5531b21e4e255d1a7fb6fa90.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6e529-02-更新权限-冲突-module-ai-agents-chromium/attachments/probe-U02-df3495aa6ba5394448dcf9de245a138ee33a44d7.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6ee1f-校验失败-module-marketing-forms-chromium/attachments/probe-C02-49eca8e487ad0de5e0d562deecfa894cb28209a2.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6eed8-01-异常恢复-module-ad-creatives-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-6eed8-01-异常恢复-module-ad-creatives-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-71415-P01-权限矩阵-module-ad-accounts-chromium/attachments/probe-P01-70dd2636acc3b8cc0d8e67eae49939eddd02e0ef.json","e2e/test-results/crud-00-crud-runner-CRUD-严-71d99-更新权限-冲突-module-ad-audiences-chromium/attachments/probe-U02-a5e9c25efc28ceb7217ebf13a6535a122f6166ab.json","e2e/test-results/crud-00-crud-runner-CRUD-严-71fcc-E01-异常恢复-module-attribution-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-71fcc-E01-异常恢复-module-attribution-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-72ac2-常恢复-module-marketing-matrix-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-72ac2-常恢复-module-marketing-matrix-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-73216-创建校验失败-module-landing-pages-chromium/attachments/probe-C02-3ff5369fac13a7c93889deef36f218a9e6683038.json","e2e/test-results/crud-00-crud-runner-CRUD-严-73517--P01-权限矩阵-module-geo-fences-chromium/attachments/probe-P01-bff45c02816c02b38b903994cf5764a930e9d1fd.json","e2e/test-results/crud-00-crud-runner-CRUD-严-74597-校验失败-module-lead-scoring-ai-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-74597-校验失败-module-lead-scoring-ai-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-745a5-module-livestream-schedules-chromium/attachments/probe-P01-f4e81170923b250397fa3a8fb2a7da44ddb457bb.json","e2e/test-results/crud-00-crud-runner-CRUD-严-74f4a-用-module-contract-templates-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-74f4a-用-module-contract-templates-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-75af0-限矩阵-module-campaign-targets-chromium/attachments/probe-P01-a34760106bad0d8282c77b78fbfce5190c7742ce.json","e2e/test-results/crud-00-crud-runner-CRUD-严-76074-阵-module-social-competitors-chromium/attachments/probe-P01-64198575d1a824b516eb570639e5132b5b217466.json","e2e/test-results/crud-00-crud-runner-CRUD-严-797bb-module-content-distribution-chromium/attachments/probe-P01-4e4ad66b4fd33b82a822b972c17b69782812f964.json","e2e/test-results/crud-00-crud-runner-CRUD-严-79a64--软-硬-可用-module-ad-campaigns-chromium/attachments/probe-D01-ff729e299e962f19eb1dec0160f84af4e3b41fe4.json","e2e/test-results/crud-00-crud-runner-CRUD-严-7a232-软-硬-可用-module-landing-pages-chromium/attachments/probe-D01-1493d48f9b2a3862df5deb2cfc0d86f05b168443.json","e2e/test-results/crud-00-crud-runner-CRUD-严-7bf8a-01-权限矩阵-module-geo-keywords-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-7bf8a-01-权限矩阵-module-geo-keywords-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-7dd41--创建校验失败-module-social-posts-chromium/attachments/probe-C02-e5c428ecd86c16adaa0fa7ae79b1498f09a0b54c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-7e531-复-module-customer-marketing-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-7e531-复-module-customer-marketing-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-7f877-冲突-module-content-copyright-chromium/attachments/probe-U02-16914465dc85df6d09e287bd25ad4c8b3fbff986.json","e2e/test-results/crud-00-crud-runner-CRUD-严-7f973-校验失败-module-social-accounts-chromium/attachments/probe-C02-b8ceaca02943585458f168379cc71e8febecfbf7.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8202e-异常恢复-module-lead-scoring-ai-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-8202e-异常恢复-module-lead-scoring-ai-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-827de-异常恢复-module-email-marketing-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-827de-异常恢复-module-email-marketing-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-82c08-module-marketing-north-star-chromium/attachments/probe-U02-230e2a9ebc88caf63430d6ee5733fbb179abf94d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-83691--可用-module-campaign-library-chromium/attachments/probe-D01-f910dfc5f2456c3722246fd102797315b1a7ad8c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-83815-恢复-module-community-members-chromium/attachments/probe-E01-a401d3caed53058e09ffaad3e4ac9ab95666eb32.json","e2e/test-results/crud-00-crud-runner-CRUD-严-84ce1-限矩阵-module-community-points-chromium/attachments/probe-P01-670b1b41762175ea9511cb393cda6a955b707dc8.json","e2e/test-results/crud-00-crud-runner-CRUD-严-85da0--可用-module-community-groups-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-85da0--可用-module-community-groups-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-87390-module-livestream-schedules-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-87390-module-livestream-schedules-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-885ec-验失败-module-campaign-library-chromium/attachments/probe-C02-67cf0b80d7502a7c64d4b2010ea68f882fe12db9.json","e2e/test-results/crud-00-crud-runner-CRUD-严-887a4-硬-可用-module-social-accounts-chromium/attachments/probe-D01-b4d1d651b44f010d49698e913330274286a7f40e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-89e46-删除-软-硬-可用-module-geo-fences-chromium/attachments/probe-D01-c35f3666b72a23fab22be3ca8854ff948c19e189.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8a536-权限矩阵-module-content-library-chromium/attachments/probe-P01-67f68d462298613ac6a63fae537b5c68f04cc2a0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8a62a-失败-module-social-hot-topics-chromium/attachments/probe-C02-6fe9bae60f06f587b1fd608820f7947ce7d3bd32.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8c285-突-module-contract-templates-chromium/attachments/probe-U02-8200eaff4a57c96c1748a6767abe9f6fdadae60d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8d372-module-livestream-analytics-chromium/attachments/probe-P01-6fde8fba9cdc02edfe74d25001afdc65dd914372.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8f381-除-软-硬-可用-module-ad-biddings-chromium/attachments/probe-D01-b80588478758f4e55515a9c10ecbc2eb6f145e69.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8f45a-OI-E01-异常恢复-module-geo-pois-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-8f45a-OI-E01-异常恢复-module-geo-pois-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-92296-失败-module-marketing-content-chromium/attachments/probe-C02-7ea9e315921783c0cb98da5f82665cb3928b07c1.json","e2e/test-results/crud-00-crud-runner-CRUD-严-925a1-硬-可用-module-marketing-forms-chromium/attachments/probe-D01-923684e4d49e0c212fbc090020bca15ec2acc1d3.json","e2e/test-results/crud-00-crud-runner-CRUD-严-92e80-阵-module-livestream-scripts-chromium/attachments/probe-P01-210e24b98fc7ebee490373045582f5e8e2e90a35.json","e2e/test-results/crud-00-crud-runner-CRUD-严-92ec8--可用-module-campaign-targets-chromium/attachments/probe-D01-ab531cbb1f034f88d14082d17ee9e88166554855.json","e2e/test-results/crud-00-crud-runner-CRUD-严-939e8--module-marketing-timeslots-chromium/attachments/probe-P01-8f7e0400709701667c48d346754cc68efa671064.json","e2e/test-results/crud-00-crud-runner-CRUD-严-93d1f-module-marketing-automation-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-93d1f-module-marketing-automation-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-94768-理-P01-权限矩阵-module-contracts-chromium/attachments/probe-P01-6fae44b60adfb4f1d64c7384185ddf0bcd62898b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-94f60-常恢复-module-livestream-rooms-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-94f60-常恢复-module-livestream-rooms-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-95c5d-软-硬-可用-module-sms-marketing-chromium/attachments/probe-D01-44f9562bbdaa1e092f1bcb1637047772b7b54326.json","e2e/test-results/crud-00-crud-runner-CRUD-严-95e56--module-social-interactions-chromium/attachments/probe-U02-8ac528140f5772ca1590d8b10bba4fa3ed8e7735.json","e2e/test-results/crud-00-crud-runner-CRUD-严-96524-01-权限矩阵-module-ad-campaigns-chromium/attachments/probe-P01-f241784e5667e01dcb54c8d17bb452941d44ae45.json","e2e/test-results/crud-00-crud-runner-CRUD-严-96889-1-权限矩阵-module-geo-analytics-chromium/attachments/probe-P01-89137eb39494124787e38982d87b0072653f19ac.json","e2e/test-results/crud-00-crud-runner-CRUD-严-98775-突-module-social-competitors-chromium/attachments/probe-U02-524be45c7c6be548eed5dfa4f5f2c2f13414181c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-99703-复-module-lead-qualification-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-99703-复-module-lead-qualification-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-99a97-管理-P01-权限矩阵-module-channels-chromium/attachments/probe-P01-efda2f5bf789a2b8d7f4d39fc6e9e7530bec2a8e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-9ae58-C02-创建校验失败-module-ai-agents-chromium/attachments/probe-C02-e1ee22846673d3b608e75691cc48080248fbc5fc.json","e2e/test-results/crud-00-crud-runner-CRUD-严-9af02-限矩阵-module-campaign-library-chromium/attachments/probe-P01-9186c04b4ced0f9c10330ece9df58c7af5b9d200.json","e2e/test-results/crud-00-crud-runner-CRUD-严-9b8b7-限矩阵-module-marketing-matrix-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-9b8b7-限矩阵-module-marketing-matrix-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-9beb6--软-硬-可用-module-geo-keywords-chromium/attachments/probe-D01-98b81566db6ae9691f0c2809fd40b47b5ccfcc9e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-9ca9c--module-marketing-timeslots-chromium/attachments/probe-D01-127494c06881501865491c7fc30e6e8444af0309.json","e2e/test-results/crud-00-crud-runner-CRUD-严-9ee78-用-module-marketing-calendar-chromium/attachments/probe-D01-f465c3a42201d1875dad53cad0dcc7b098899502.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a1549-读-module-customer-marketing-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-a1549-读-module-customer-marketing-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-a2981-复-module-marketing-calendar-chromium/attachments/probe-E01-e3d790bfdc9c463275ae3f37ce0144a749b75ef1.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a3eee-硬-可用-module-lead-scoring-ai-chromium/attachments/probe-D01-66bb80e90d450fa1c972f063a0ae1a191d4a2a3c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a3f91--module-social-auto-replies-chromium/attachments/probe-D01-7e52546747de9073b9ad581141fbbcb985592db1.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a409f--权限矩阵-module-content-review-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-a409f--权限矩阵-module-content-review-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-a4338--module-social-interactions-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-a4338--module-social-interactions-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-a4688--冲突-module-marketing-matrix-chromium/attachments/probe-U02-0e24e373ab0634e718c28b8672a4337da713cbfd.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a4a6f-01-异常恢复-module-web-tracking-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-a4a6f-01-异常恢复-module-web-tracking-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-a4d8b-1-权限矩阵-module-sms-marketing-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-a4d8b-1-权限矩阵-module-sms-marketing-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-a56f6--module-community-analytics-chromium/attachments/probe-E01-3f1517fe51bbbeb5a37959a07c63c981d99ab74a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a5c27-复-module-contract-templates-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-a5c27-复-module-contract-templates-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-a5e6c--硬-可用-module-community-bots-chromium/attachments/probe-D01-fcb74b0b26b56d7f5f052e6b8978de1d61cacc2a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a5f30-权限矩阵-module-social-accounts-chromium/attachments/probe-P01-b9ce04ab59dce01f3b475de085559bf5e464e19d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a6c69-C02-创建校验失败-module-campaigns-chromium/attachments/probe-C02-79a64615a406285fcf402faad507c84144c91ed8.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a76b8-验失败-module-campaign-targets-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-a76b8-验失败-module-campaign-targets-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-a862b-限-冲突-module-community-tasks-chromium/attachments/probe-U02-ed5c8e6504b8c7e9ee94874bf9bae93478ecaa40.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a8f20--module-social-interactions-chromium/attachments/probe-D01-b113a41324d5e513758d6332060165551c89b319.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a9774-矩阵-module-content-templates-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-a9774-矩阵-module-content-templates-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-a97da-ule-livestream-interactions-chromium/attachments/probe-P01-c6dbc5a7f972ca1edcbfd08af25a9545af7475b3.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a9892--module-marketing-timeslots-chromium/attachments/probe-E01-0e4390f2782ed9a723f7e3d086937483c1af6b0a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a9b70-module-marketing-north-star-chromium/attachments/probe-P01-4a2ebb66f3c1c6bf47930da2e49eb991f456428e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a9cdb-限-冲突-module-social-accounts-chromium/attachments/probe-U02-289d7d1aaa44443930907eab045ecc5f42ba0080.json","e2e/test-results/crud-00-crud-runner-CRUD-严-aa2a2-module-predictive-analytics-chromium/attachments/probe-E01-a4cb5c1f44ed13aac6b86b148b4ea01f43df5cf7.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ad2fe-OI-P01-权限矩阵-module-geo-pois-chromium/attachments/probe-P01-46fc7a8e8db13adf9e9d60b1b870440de85b9071.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ad315-败-module-social-competitors-chromium/attachments/probe-C02-3affa4c01f150ec38ed2b5cd89e496bc02d01d2b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ad90f-败-module-livestream-scripts-chromium/attachments/probe-C02-6b1fc49476edaf87e95fb3bb901ffccf65f7506e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-aeff6-读-module-customer-marketing-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-aeff6-读-module-customer-marketing-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-af17c-心-P01-权限矩阵-module-marketing-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-af17c-心-P01-权限矩阵-module-marketing-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-afbc6-新权限-冲突-module-landing-pages-chromium/attachments/probe-U02-edc42dffef50a0e28c1027bd067a336532d2bf0f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-afbeb-矩阵-module-content-analytics-chromium/attachments/probe-P01-a26466d517306fc004ec31ca264ebf08c4c1a758.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b0fee-突-module-community-messages-chromium/attachments/probe-U02-853465bb0ecd64c196b292c14f10dccc558c5d7d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b13fe-常恢复-module-livestream-gifts-chromium/attachments/probe-E01-8dc63da7c905247a3994f4742387a64483ac03cb.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b1f12-阵-module-contract-templates-chromium/attachments/probe-P01-71eef5b541aab0efdeeea5b1a64b2bb18be2e395.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b2ca2-冲突-module-social-hot-topics-chromium/attachments/probe-U02-84920f91898ae81a35c1df29b8adb2f090580865.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b3a76-异常恢复-module-social-accounts-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-b3a76-异常恢复-module-social-accounts-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-b3eaf-可用-module-content-templates-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-b3eaf-可用-module-content-templates-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-b423e-01-异常恢复-module-social-posts-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-b423e-01-异常恢复-module-social-posts-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-b4aae--module-livestream-products-chromium/attachments/probe-P01-f5eaca6e6ece019d7513b09183ccff204b13160e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b4cf6--module-livestream-products-chromium/attachments/probe-C02-26eef7c698e56b80394a7836d6b23b10f3671781.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b56fc-可用-module-content-copyright-chromium/attachments/probe-D01-a31be5b68012673d51ca3aa39b1f3c71af7660e8.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b648f-2-创建校验失败-module-ad-biddings-chromium/attachments/probe-C02-65ea0afc2b0de93c9d6c126182fc1eb9a3c36ca7.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b72db-02-创建校验失败-module-ad-reports-chromium/attachments/probe-C02-e7105af3cabcd68b916fa05228d65f849409a8a7.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b9980-硬-可用-module-email-marketing-chromium/attachments/probe-D01-8a7de3c89117cb96857566f6a9bbec3ca4562a5a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-bad78-突-module-content-categories-chromium/attachments/probe-U02-9f6dada1b5b2803c3fbfba9fb5adbda43b9345e3.json","e2e/test-results/crud-00-crud-runner-CRUD-严-baff1-常恢复-module-realtime-trigger-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-baff1-常恢复-module-realtime-trigger-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-bb5da--C02-创建校验失败-module-channels-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-bb5da--C02-创建校验失败-module-channels-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-bc1ac--冲突-module-livestream-rooms-chromium/attachments/probe-U02-7c47e81045cba0de262cb9cdd495aaebfb9bbb20.json","e2e/test-results/crud-00-crud-runner-CRUD-严-bc736-矩阵-module-content-copyright-chromium/attachments/probe-P01-6ed856eb8ba81717adc1bab33f82cd139eb2f9c6.json","e2e/test-results/crud-00-crud-runner-CRUD-严-bc781-1-删除-软-硬-可用-module-channels-chromium/attachments/probe-D01-26cf0d0906149bca11264c6c4715cfa4cc98cab5.json","e2e/test-results/crud-00-crud-runner-CRUD-严-bcf4f-用-module-content-categories-chromium/attachments/probe-D01-456a281de5dc3c86fd8e03580b5672d51c10c273.json","e2e/test-results/crud-00-crud-runner-CRUD-严-bd925--module-marketing-timeslots-chromium/attachments/probe-U02-133c6d46940bee0ed7f3dc3cc5c08277861733a0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-bdfc5-冲突-module-content-templates-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-bdfc5-冲突-module-content-templates-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-c0304-异常恢复-module-community-tasks-chromium/attachments/probe-E01-bf11ae1c7c1a26681eae9b6cd7c6c86a2b32c5f9.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c0670-新权限-冲突-module-sms-marketing-chromium/attachments/probe-U02-66182afc6915811447c1ea467681b13c5c6b1c19.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c0911-module-predictive-analytics-chromium/attachments/probe-P01-c30e304e95d5a91791637e86dfb9405cccf8beba.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c165f--C02-创建校验失败-module-geo-pois-chromium/attachments/probe-C02-6fa348715f87cf072364932636815cdad624bd9d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c19e0-硬-可用-module-community-tasks-chromium/attachments/probe-D01-960aaf2953b5824690872543567954fb3cfb36b9.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c27b1--删除-软-硬-可用-module-contracts-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-c27b1--删除-软-硬-可用-module-contracts-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-c3571--硬-可用-module-crm-activities-chromium/attachments/probe-D01-e50f3cc3de532bcac85be8f2ddea02727c0faf0d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c37cb-权限矩阵-module-customer-health-chromium/attachments/probe-P01-5079636a6b3c77105f5e43efdf5a0115c2bd0dec.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c4192--硬-可用-module-content-review-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-c4192--硬-可用-module-content-review-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-c6214-删除-软-硬-可用-module-livestream-chromium/attachments/probe-D01-d0b5b05036ce5ee287f4e27089f156efd7f2ea38.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c6c6a-异常恢复-module-content-library-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-c6c6a-异常恢复-module-content-library-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-c7fd9-突-module-lead-qualification-chromium/attachments/probe-U02-79801201f9e8c213653459e1a49c4b972f3b3ab1.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c905f-常恢复-module-social-analytics-chromium/attachments/probe-E01-b69371067a94fd32306c0512b5934984a2c50b69.json","e2e/test-results/crud-00-crud-runner-CRUD-严-cb55c-恢复-module-marketing-chatbot-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-cb55c-恢复-module-marketing-chatbot-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-cc5b7-失败-module-content-copyright-chromium/attachments/probe-C02-a527ade6ba124cedd26b8c0a5d91111254414d08.json","e2e/test-results/crud-00-crud-runner-CRUD-严-cc728-阵-module-lead-qualification-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-cc728-阵-module-lead-qualification-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-cd6b2-理-P01-权限矩阵-module-campaigns-chromium/attachments/probe-P01-6968f2faf74190d9bb9c0b25f0c8bc1199058641.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ce97c-module-content-distribution-chromium/attachments/probe-C02-5484dfd45ca3a1af454caa39842b2ae0a556aeaf.json","e2e/test-results/crud-00-crud-runner-CRUD-严-cebf0-01-权限矩阵-module-web-tracking-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-cebf0-01-权限矩阵-module-web-tracking-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-cf5fe-败-module-community-messages-chromium/attachments/probe-C02-f3a02471d097ce6cf4e68841e729ab241ea4dcf2.json","e2e/test-results/crud-00-crud-runner-CRUD-严-cf9c5-矩阵-module-community-members-chromium/attachments/probe-P01-12047406b2061b911a041110b5e1601f3b3b8de6.json","e2e/test-results/crud-00-crud-runner-CRUD-严-cfa82--E01-异常恢复-module-livestream-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-cfa82--E01-异常恢复-module-livestream-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-d0036-权限矩阵-module-lead-scoring-ai-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-d0036-权限矩阵-module-lead-scoring-ai-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-d1d3c--软-硬-可用-module-ad-creatives-chromium/attachments/probe-D01-f5eb1ebdc5bd22a3cdeeb8bb8d2372c2e56692a7.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d3f15-阵-module-marketing-calendar-chromium/attachments/probe-P01-122ae80c35b03632093cf562157ec88daab5c3ff.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d4024-校验失败-module-customer-health-chromium/attachments/probe-C02-8896abb51f49b8448fbf98b5d3b3fe97498050b7.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d4d8f-常恢复-module-content-creation-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-d4d8f-常恢复-module-content-creation-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-d5aec-创建校验失败-module-geo-analytics-chromium/attachments/probe-C02-7578dafa399bf7a8c13ca3c2930aea722af06a2e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d71f4-理-P01-权限矩阵-module-ai-agents-chromium/attachments/probe-P01-5360ed0555898d5b71b3a347e05a99e1f3c53152.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d810c--软-硬-可用-module-ad-audiences-chromium/attachments/probe-D01-e4b80ce3877998cd5bc2cee0fc44dd5053ce9fd3.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d8f1d-02-更新权限-冲突-module-campaigns-chromium/attachments/probe-U02-7ca5a03e454893d7ca6ee9fca33c0eb4e907fea1.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d9cba-module-livestream-schedules-chromium/attachments/probe-D01-e70bba0448dc817d3e02d283f3bb38d1504b01e5.json","e2e/test-results/crud-00-crud-runner-CRUD-严-da5aa--异常恢复-module-content-review-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-da5aa--异常恢复-module-content-review-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-da5fa-module-marketing-automation-chromium/attachments/probe-P01-bc706032cb97d8a2341ce148b042fdc4eb41cd5f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-da84c-验失败-module-livestream-rooms-chromium/attachments/probe-C02-72d6b72817e8c150374bc5ff1f1f3389fc18b81f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-db4c1--module-community-materials-chromium/attachments/probe-E01-03d8e196427a2f394fce2f4267d12f48aad3ef77.json","e2e/test-results/crud-00-crud-runner-CRUD-严-dbab1--更新权限-冲突-module-ad-biddings-chromium/attachments/probe-U02-d6972351cc69310139780478d6b88cd2cd7843d9.json","e2e/test-results/crud-00-crud-runner-CRUD-严-dc57b--module-livestream-products-chromium/attachments/probe-U02-bead9a43b069a4caa8b37bbcb903f64728d1aad6.json","e2e/test-results/crud-00-crud-runner-CRUD-严-dc996-验失败-module-community-points-chromium/attachments/probe-C02-ec0987712a0905eecdf38a55dba59ca348ea5d15.json","e2e/test-results/crud-00-crud-runner-CRUD-严-dca95--module-community-materials-chromium/attachments/probe-D01-e45d7bdefeba6281f602aa07f67c2c04df822778.json","e2e/test-results/crud-00-crud-runner-CRUD-严-dd6e5--软-硬-可用-module-social-posts-chromium/attachments/probe-D01-c48576adb7412ca51e9955d13f8a2cc402373711.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ddfa8-用-module-community-messages-chromium/attachments/probe-D01-4989ba1cfd4ef415bafbf215f220b6ca89754aae.json","e2e/test-results/crud-00-crud-runner-CRUD-严-de5cf-01-权限矩阵-module-ad-creatives-chromium/attachments/probe-P01-a03e22c87916a2e3d07460eb4f3d16de061a85c2.json","e2e/test-results/crud-00-crud-runner-CRUD-严-df3b4--module-social-interactions-chromium/attachments/probe-P01-27cd032cb2e072bd8abad2d0669dc0825c4a0d0e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-e03ed-01-权限矩阵-module-ad-placement-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-e03ed-01-权限矩阵-module-ad-placement-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-e19a3--更新权限-冲突-module-geo-reviews-chromium/attachments/probe-U02-58d28317178c0b0d0de178960aeaeb51f1f292ea.json","e2e/test-results/crud-00-crud-runner-CRUD-严-e217f-管理-E01-异常恢复-module-channels-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-e217f-管理-E01-异常恢复-module-channels-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-e2741-01-权限矩阵-module-ad-audiences-chromium/attachments/probe-P01-88f9313bb479eb447503e45c4120bcb48bcde046.json","e2e/test-results/crud-00-crud-runner-CRUD-严-e3bd5--module-social-auto-replies-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-e3bd5--module-social-auto-replies-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-e464a-冲突-module-marketing-content-chromium/attachments/probe-U02-c0c27adf36b9c132381e98369d279258dac6ff09.json","e2e/test-results/crud-00-crud-runner-CRUD-严-e697e-恢复-module-content-templates-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-e697e-恢复-module-content-templates-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-e7190-常恢复-module-campaign-targets-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-e7190-常恢复-module-campaign-targets-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-e8bec-module-community-activities-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-e8bec-module-community-activities-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-e9638-ule-livestream-interactions-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-e9638-ule-livestream-interactions-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-eac37-更新权限-冲突-module-ad-creatives-chromium/attachments/probe-U02-a7fa194194354fcd6385b94943ef86d40f4acc85.json","e2e/test-results/crud-00-crud-runner-CRUD-严-eb057-权限矩阵-module-community-tasks-chromium/attachments/probe-P01-620242f8127ff229b1be0e3d9fbaacd843080c56.json","e2e/test-results/crud-00-crud-runner-CRUD-严-eb2f8-module-community-activities-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-eb2f8-module-community-activities-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-eb677-恢复-module-social-hot-topics-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-eb677-恢复-module-social-hot-topics-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-ebf9e-硬-可用-module-content-library-chromium/attachments/probe-D01-a9f9e728491df33327ba779ffcdb4de05c653a11.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ec545-用-module-livestream-scripts-chromium/attachments/probe-D01-74ea3c09b4319d952fbe144258c1efad461ed373.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ed2d6-01-异常恢复-module-ad-campaigns-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-ed2d6-01-异常恢复-module-ad-campaigns-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-ed934-限-冲突-module-email-marketing-chromium/attachments/probe-U02-9822e1b2cdc4b768568f1e25e8623e153c618a0d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ee6cc-除-软-硬-可用-module-geo-reviews-chromium/attachments/probe-D01-df56d1586681d17eed8d40d3fe1138cc0ab7253f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ef642--删除-软-硬-可用-module-marketing-chromium/attachments/probe-D01-cd595fdd0df46c6eb4debf99ce6131dfbf04b541.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f13fd-台-P01-权限矩阵-module-dashboard-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-f13fd-台-P01-权限矩阵-module-dashboard-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-f29c6-限-冲突-module-marketing-forms-chromium/attachments/probe-U02-d3531a1adf0a8b2a065b803b77c9fde923c1533a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f397e-理-E01-异常恢复-module-campaigns-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-f397e-理-E01-异常恢复-module-campaigns-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-f4194-module-livestream-schedules-chromium/attachments/probe-C02-1412f84c04e3d66104199b5720a1bd9cccd4556c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f44f9-用-module-lead-qualification-chromium/attachments/probe-D01-637e52b2a10c739d6af6375bcf9b3ebe5d6bd503.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f46eb-恢复-module-content-analytics-chromium/attachments/probe-E01-b45667616c5a6d09691ae50d20979d2ba4a508cf.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f4e2d-复-module-community-messages-chromium/attachments/probe-E01-a4748893d744bc727e95b50efe6fbc032c2d59ff.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f4f38--异常恢复-module-crm-activities-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-f4f38--异常恢复-module-crm-activities-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-f5463--P01-权限矩阵-module-ad-reports-chromium/attachments/probe-P01-7d85fd01e257f7aee26bd619d0ec91990254f1b5.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f5806--module-social-auto-replies-chromium/attachments/probe-U02-b1b44fbf53cdaeb638f18afab14b2b01ac8ae003.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f6533--module-social-auto-replies-chromium/attachments/probe-C02-86fd379b4d10134aaf6f84239758affe2f018da2.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f6886--P01-权限矩阵-module-livestream-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-f6886--P01-权限矩阵-module-livestream-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-f91d9-台-E01-异常恢复-module-dashboard-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-f91d9-台-E01-异常恢复-module-dashboard-chromium/test-failed-1.png","e2e/test-results/crud-00-crud-runner-CRUD-严-fca24-冲突-module-community-fission-chromium/attachments/probe-U02-421c521da69a48d170639e461e50d48a0fd3581a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-fccb5-败-module-content-categories-chromium/attachments/probe-C02-28ed0cc8dce33b3158de5d3ac94867b0f7fd5f20.json","e2e/test-results/crud-00-crud-runner-CRUD-严-fcd50-阵-module-content-categories-chromium/attachments/probe-P01-31c677238ae8dd339f6fc657201190ada6d60cde.json","e2e/test-results/crud-00-crud-runner-CRUD-严-fe9ad-不可见校验-module-content-review-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-fe9ad-不可见校验-module-content-review-chromium/test-failed-1.png","e2e/test-results/crud/probes/ad-accounts-C02-1770826473775.json","e2e/test-results/crud/probes/ad-accounts-D01-1770826477786.json","e2e/test-results/crud/probes/ad-accounts-P01-1770826479019.json","e2e/test-results/crud/probes/ad-accounts-U02-1770826477867.json","e2e/test-results/crud/probes/ad-audiences-D01-1770826486358.json","e2e/test-results/crud/probes/ad-audiences-P01-1770826487445.json","e2e/test-results/crud/probes/ad-audiences-U02-1770826485892.json","e2e/test-results/crud/probes/ad-biddings-C02-1770826490178.json","e2e/test-results/crud/probes/ad-biddings-D01-1770826494331.json","e2e/test-results/crud/probes/ad-biddings-P01-1770826495516.json","e2e/test-results/crud/probes/ad-biddings-U02-1770826493313.json","e2e/test-results/crud/probes/ad-campaigns-D01-1770826502672.json","e2e/test-results/crud/probes/ad-campaigns-P01-1770826503744.json","e2e/test-results/crud/probes/ad-creatives-D01-1770826510859.json","e2e/test-results/crud/probes/ad-creatives-P01-1770826511930.json","e2e/test-results/crud/probes/ad-creatives-U02-1770826510344.json","e2e/test-results/crud/probes/ad-placement-D01-1770826517104.json","e2e/test-results/crud/probes/ad-placement-U02-1770826517580.json","e2e/test-results/crud/probes/ad-reports-C02-1770826519787.json","e2e/test-results/crud/probes/ad-reports-D01-1770826522965.json","e2e/test-results/crud/probes/ad-reports-P01-1770826522603.json","e2e/test-results/crud/probes/ad-reports-U02-1770826521328.json","e2e/test-results/crud/probes/ai-agents-C02-1770826465096.json","e2e/test-results/crud/probes/ai-agents-D01-1770826469864.json","e2e/test-results/crud/probes/ai-agents-E01-1770826472538.json","e2e/test-results/crud/probes/ai-agents-P01-1770826471358.json","e2e/test-results/crud/probes/ai-agents-U02-1770826470163.json","e2e/test-results/crud/probes/attribution-D01-1770826526931.json","e2e/test-results/crud/probes/attribution-U02-1770826526317.json","e2e/test-results/crud/probes/campaign-library-C02-1770826528421.json","e2e/test-results/crud/probes/campaign-library-D01-1770826531415.json","e2e/test-results/crud/probes/campaign-library-E01-1770826532711.json","e2e/test-results/crud/probes/campaign-library-P01-1770826531407.json","e2e/test-results/crud/probes/campaign-library-U02-1770826530212.json","e2e/test-results/crud/probes/campaign-targets-D01-1770826535932.json","e2e/test-results/crud/probes/campaign-targets-P01-1770826535939.json","e2e/test-results/crud/probes/campaigns-C02-1770826537370.json","e2e/test-results/crud/probes/campaigns-D01-1770826540406.json","e2e/test-results/crud/probes/campaigns-P01-1770826540299.json","e2e/test-results/crud/probes/campaigns-U02-1770826538931.json","e2e/test-results/crud/probes/channels-D01-1770826544333.json","e2e/test-results/crud/probes/channels-P01-1770826544892.json","e2e/test-results/crud/probes/channels-U02-1770826544870.json","e2e/test-results/crud/probes/community-activities-D01-1770826548496.json","e2e/test-results/crud/probes/community-activities-P01-1770826550186.json","e2e/test-results/crud/probes/community-analytics-E01-1770826552758.json","e2e/test-results/crud/probes/community-analytics-P01-1770826553251.json","e2e/test-results/crud/probes/community-bots-C02-1770826552953.json","e2e/test-results/crud/probes/community-bots-D01-1770826555935.json","e2e/test-results/crud/probes/community-bots-P01-1770826557535.json","e2e/test-results/crud/probes/community-fission-C02-1770826557294.json","e2e/test-results/crud/probes/community-fission-D01-1770826560779.json","e2e/test-results/crud/probes/community-fission-E01-1770826561803.json","e2e/test-results/crud/probes/community-fission-P01-1770826561780.json","e2e/test-results/crud/probes/community-fission-U02-1770826559342.json","e2e/test-results/crud/probes/community-groups-C02-1770826562410.json","e2e/test-results/crud/probes/community-groups-E01-1770826576667.json","e2e/test-results/crud/probes/community-groups-P01-1770826569079.json","e2e/test-results/crud/probes/community-levels-C02-1770826576901.json","e2e/test-results/crud/probes/community-levels-D01-1770826580324.json","e2e/test-results/crud/probes/community-levels-E01-1770826584129.json","e2e/test-results/crud/probes/community-levels-P01-1770826583750.json","e2e/test-results/crud/probes/community-levels-U02-1770826580331.json","e2e/test-results/crud/probes/community-materials-C02-1770826586974.json","e2e/test-results/crud/probes/community-materials-D01-1770826590620.json","e2e/test-results/crud/probes/community-materials-E01-1770826592484.json","e2e/test-results/crud/probes/community-materials-P01-1770826591807.json","e2e/test-results/crud/probes/community-materials-U02-1770826587994.json","e2e/test-results/crud/probes/community-members-C02-1770826592620.json","e2e/test-results/crud/probes/community-members-D01-1770826596245.json","e2e/test-results/crud/probes/community-members-E01-1770826600042.json","e2e/test-results/crud/probes/community-members-P01-1770826600032.json","e2e/test-results/crud/probes/community-members-U02-1770826596404.json","e2e/test-results/crud/probes/community-messages-C02-1770826601037.json","e2e/test-results/crud/probes/community-messages-D01-1770826605587.json","e2e/test-results/crud/probes/community-messages-E01-1770826611225.json","e2e/test-results/crud/probes/community-messages-P01-1770826610272.json","e2e/test-results/crud/probes/community-messages-U02-1770826606089.json","e2e/test-results/crud/probes/community-points-C02-1770826610249.json","e2e/test-results/crud/probes/community-points-D01-1770826615902.json","e2e/test-results/crud/probes/community-points-E01-1770826620252.json","e2e/test-results/crud/probes/community-points-P01-1770826616875.json","e2e/test-results/crud/probes/community-points-U02-1770826616037.json","e2e/test-results/crud/probes/community-tasks-C02-1770826620262.json","e2e/test-results/crud/probes/community-tasks-D01-1770826626292.json","e2e/test-results/crud/probes/community-tasks-E01-1770826627745.json","e2e/test-results/crud/probes/community-tasks-P01-1770826627734.json","e2e/test-results/crud/probes/community-tasks-U02-1770826626621.json","e2e/test-results/crud/probes/content-analytics-E01-1770826632233.json","e2e/test-results/crud/probes/content-analytics-P01-1770826632233.json","e2e/test-results/crud/probes/content-categories-C02-1770826636354.json","e2e/test-results/crud/probes/content-categories-D01-1770826640369.json","e2e/test-results/crud/probes/content-categories-P01-1770826641175.json","e2e/test-results/crud/probes/content-categories-U02-1770826639367.json","e2e/test-results/crud/probes/content-copyright-C02-1770826644197.json","e2e/test-results/crud/probes/content-copyright-D01-1770826646841.json","e2e/test-results/crud/probes/content-copyright-P01-1770826649715.json","e2e/test-results/crud/probes/content-copyright-U02-1770826645882.json","e2e/test-results/crud/probes/content-creation-C02-1770826650726.json","e2e/test-results/crud/probes/content-creation-D01-1770826655604.json","e2e/test-results/crud/probes/content-creation-P01-1770826656219.json","e2e/test-results/crud/probes/content-creation-U02-1770826654752.json","e2e/test-results/crud/probes/content-distribution-C02-1770826658461.json","e2e/test-results/crud/probes/content-distribution-D01-1770826663506.json","e2e/test-results/crud/probes/content-distribution-P01-1770826663403.json","e2e/test-results/crud/probes/content-distribution-U02-1770826661752.json","e2e/test-results/crud/probes/content-library-C02-1770826665502.json","e2e/test-results/crud/probes/content-library-D01-1770826670593.json","e2e/test-results/crud/probes/content-library-P01-1770826670063.json","e2e/test-results/crud/probes/content-library-U02-1770826668408.json","e2e/test-results/crud/probes/content-review-C02-1770826672653.json","e2e/test-results/crud/probes/contract-templates-P01-1770827014110.json","e2e/test-results/crud/probes/contract-templates-U02-1770827007406.json","e2e/test-results/crud/probes/contracts-C02-1770827013715.json","e2e/test-results/crud/probes/contracts-E01-1770827019963.json","e2e/test-results/crud/probes/contracts-P01-1770827019820.json","e2e/test-results/crud/probes/crm-activities-C02-1770827023410.json","e2e/test-results/crud/probes/crm-activities-D01-1770827026424.json","e2e/test-results/crud/probes/crm-activities-P01-1770827028890.json","e2e/test-results/crud/probes/crm-activities-U02-1770827023971.json","e2e/test-results/crud/probes/customer-health-C02-1770827038613.json","e2e/test-results/crud/probes/customer-health-D01-1770827039621.json","e2e/test-results/crud/probes/customer-health-E01-1770827042796.json","e2e/test-results/crud/probes/customer-health-P01-1770827041442.json","e2e/test-results/crud/probes/customer-health-U02-1770827040816.json","e2e/test-results/crud/probes/email-marketing-D01-1770826693917.json","e2e/test-results/crud/probes/email-marketing-U02-1770826693967.json","e2e/test-results/crud/probes/geo-analytics-C02-1770826698910.json","e2e/test-results/crud/probes/geo-analytics-D01-1770826703040.json","e2e/test-results/crud/probes/geo-analytics-P01-1770826703537.json","e2e/test-results/crud/probes/geo-analytics-U02-1770826701597.json","e2e/test-results/crud/probes/geo-fences-C02-1770826705866.json","e2e/test-results/crud/probes/geo-fences-D01-1770826709237.json","e2e/test-results/crud/probes/geo-fences-P01-1770826710628.json","e2e/test-results/crud/probes/geo-fences-U02-1770826708885.json","e2e/test-results/crud/probes/geo-keywords-C02-1770826713455.json","e2e/test-results/crud/probes/geo-keywords-D01-1770826719203.json","e2e/test-results/crud/probes/geo-keywords-U02-1770826717907.json","e2e/test-results/crud/probes/geo-pois-C02-1770826721591.json","e2e/test-results/crud/probes/geo-pois-D01-1770826727117.json","e2e/test-results/crud/probes/geo-pois-P01-1770826730816.json","e2e/test-results/crud/probes/geo-pois-U02-1770826725488.json","e2e/test-results/crud/probes/geo-reviews-C02-1770826730596.json","e2e/test-results/crud/probes/geo-reviews-D01-1770826736890.json","e2e/test-results/crud/probes/geo-reviews-P01-1770826737087.json","e2e/test-results/crud/probes/geo-reviews-U02-1770826734138.json","e2e/test-results/crud/probes/landing-pages-C02-1770826737950.json","e2e/test-results/crud/probes/landing-pages-D01-1770826742665.json","e2e/test-results/crud/probes/landing-pages-P01-1770826743466.json","e2e/test-results/crud/probes/landing-pages-U02-1770826742733.json","e2e/test-results/crud/probes/lead-qualification-D01-1770826752857.json","e2e/test-results/crud/probes/lead-qualification-U02-1770826751683.json","e2e/test-results/crud/probes/lead-scoring-ai-D01-1770826763457.json","e2e/test-results/crud/probes/lead-scoring-ai-U02-1770826763471.json","e2e/test-results/crud/probes/livestream-D01-1770826773645.json","e2e/test-results/crud/probes/livestream-U02-1770826773778.json","e2e/test-results/crud/probes/livestream-analytics-E01-1770826781569.json","e2e/test-results/crud/probes/livestream-analytics-P01-1770826780200.json","e2e/test-results/crud/probes/livestream-gifts-C02-1770826781516.json","e2e/test-results/crud/probes/livestream-gifts-D01-1770826786062.json","e2e/test-results/crud/probes/livestream-gifts-E01-1770826790472.json","e2e/test-results/crud/probes/livestream-gifts-P01-1770826787562.json","e2e/test-results/crud/probes/livestream-gifts-U02-1770826785739.json","e2e/test-results/crud/probes/livestream-interactions-C02-1770826793943.json","e2e/test-results/crud/probes/livestream-interactions-D01-1770826795436.json","e2e/test-results/crud/probes/livestream-interactions-P01-1770826801138.json","e2e/test-results/crud/probes/livestream-products-C02-1770826801657.json","e2e/test-results/crud/probes/livestream-products-D01-1770826807079.json","e2e/test-results/crud/probes/livestream-products-P01-1770826807091.json","e2e/test-results/crud/probes/livestream-products-U02-1770826806320.json","e2e/test-results/crud/probes/livestream-rooms-C02-1770826810486.json","e2e/test-results/crud/probes/livestream-rooms-D01-1770826815288.json","e2e/test-results/crud/probes/livestream-rooms-P01-1770826814680.json","e2e/test-results/crud/probes/livestream-rooms-U02-1770826815374.json","e2e/test-results/crud/probes/livestream-schedules-C02-1770826819439.json","e2e/test-results/crud/probes/livestream-schedules-D01-1770826824697.json","e2e/test-results/crud/probes/livestream-schedules-P01-1770826825838.json","e2e/test-results/crud/probes/livestream-schedules-U02-1770826821053.json","e2e/test-results/crud/probes/livestream-scripts-C02-1770826828265.json","e2e/test-results/crud/probes/livestream-scripts-D01-1770826835912.json","e2e/test-results/crud/probes/livestream-scripts-P01-1770826835082.json","e2e/test-results/crud/probes/livestream-scripts-U02-1770826832553.json","e2e/test-results/crud/probes/marketing-D01-1770826841252.json","e2e/test-results/crud/probes/marketing-U02-1770826840331.json","e2e/test-results/crud/probes/marketing-automation-C02-1770826848028.json","e2e/test-results/crud/probes/marketing-automation-D01-1770826850839.json","e2e/test-results/crud/probes/marketing-automation-P01-1770826853568.json","e2e/test-results/crud/probes/marketing-automation-U02-1770826850852.json","e2e/test-results/crud/probes/marketing-calendar-C02-1770826854985.json","e2e/test-results/crud/probes/marketing-calendar-D01-1770826859149.json","e2e/test-results/crud/probes/marketing-calendar-E01-1770826864148.json","e2e/test-results/crud/probes/marketing-calendar-P01-1770826860371.json","e2e/test-results/crud/probes/marketing-calendar-U02-1770826859539.json","e2e/test-results/crud/probes/marketing-chatbot-D01-1770826870795.json","e2e/test-results/crud/probes/marketing-chatbot-U02-1770826865741.json","e2e/test-results/crud/probes/marketing-content-C02-1770826873976.json","e2e/test-results/crud/probes/marketing-content-D01-1770826877583.json","e2e/test-results/crud/probes/marketing-content-E01-1770826882318.json","e2e/test-results/crud/probes/marketing-content-P01-1770826878766.json","e2e/test-results/crud/probes/marketing-content-U02-1770826876086.json","e2e/test-results/crud/probes/marketing-forms-C02-1770826880566.json","e2e/test-results/crud/probes/marketing-forms-D01-1770826885803.json","e2e/test-results/crud/probes/marketing-forms-P01-1770826887760.json","e2e/test-results/crud/probes/marketing-forms-U02-1770826885203.json","e2e/test-results/crud/probes/marketing-matrix-D01-1770826894150.json","e2e/test-results/crud/probes/marketing-matrix-U02-1770826893131.json","e2e/test-results/crud/probes/marketing-north-star-C02-1770826897842.json","e2e/test-results/crud/probes/marketing-north-star-D01-1770826903688.json","e2e/test-results/crud/probes/marketing-north-star-E01-1770826904399.json","e2e/test-results/crud/probes/marketing-north-star-P01-1770826904415.json","e2e/test-results/crud/probes/marketing-north-star-U02-1770826903705.json","e2e/test-results/crud/probes/marketing-timeslots-C02-1770826906247.json","e2e/test-results/crud/probes/marketing-timeslots-D01-1770826909566.json","e2e/test-results/crud/probes/marketing-timeslots-E01-1770826911853.json","e2e/test-results/crud/probes/marketing-timeslots-P01-1770826910126.json","e2e/test-results/crud/probes/marketing-timeslots-U02-1770826910204.json","e2e/test-results/crud/probes/predictive-analytics-E01-1770826915735.json","e2e/test-results/crud/probes/predictive-analytics-P01-1770826915732.json","e2e/test-results/crud/probes/sms-marketing-D01-1770826926726.json","e2e/test-results/crud/probes/sms-marketing-U02-1770826926749.json","e2e/test-results/crud/probes/social-accounts-C02-1770826930158.json","e2e/test-results/crud/probes/social-accounts-D01-1770826935919.json","e2e/test-results/crud/probes/social-accounts-P01-1770826936661.json","e2e/test-results/crud/probes/social-accounts-U02-1770826933060.json","e2e/test-results/crud/probes/social-analytics-E01-1770826941755.json","e2e/test-results/crud/probes/social-analytics-P01-1770826940653.json","e2e/test-results/crud/probes/social-auto-replies-C02-1770826942439.json","e2e/test-results/crud/probes/social-auto-replies-D01-1770826950363.json","e2e/test-results/crud/probes/social-auto-replies-P01-1770826950355.json","e2e/test-results/crud/probes/social-auto-replies-U02-1770826950349.json","e2e/test-results/crud/probes/social-competitors-C02-1770826955290.json","e2e/test-results/crud/probes/social-competitors-D01-1770826960511.json","e2e/test-results/crud/probes/social-competitors-P01-1770826961656.json","e2e/test-results/crud/probes/social-competitors-U02-1770826956782.json","e2e/test-results/crud/probes/social-followers-C02-1770826962969.json","e2e/test-results/crud/probes/social-followers-D01-1770826967275.json","e2e/test-results/crud/probes/social-followers-P01-1770826968585.json","e2e/test-results/crud/probes/social-followers-U02-1770826968314.json","e2e/test-results/crud/probes/social-hot-topics-C02-1770826972032.json","e2e/test-results/crud/probes/social-hot-topics-D01-1770826977693.json","e2e/test-results/crud/probes/social-hot-topics-P01-1770826978760.json","e2e/test-results/crud/probes/social-hot-topics-U02-1770826974070.json","e2e/test-results/crud/probes/social-interactions-C02-1770826979934.json","e2e/test-results/crud/probes/social-interactions-D01-1770826983403.json","e2e/test-results/crud/probes/social-interactions-P01-1770826985069.json","e2e/test-results/crud/probes/social-interactions-U02-1770826984514.json","e2e/test-results/crud/probes/social-posts-C02-1770826989040.json","e2e/test-results/crud/probes/social-posts-D01-1770826991796.json","e2e/test-results/crud/probes/social-posts-P01-1770826994425.json","e2e/test-results/crud/probes/social-posts-U02-1770826990263.json","e2e/test-results/crud/probes/web-tracking-D01-1770827002522.json","e2e/test-results/crud/probes/web-tracking-U02-1770827002768.json"],"removed":[],"modified":["backend/src/modules/groupbuy-platforms/groupbuy-platform.controller.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.schema.ts","backend/src/modules/integration-services/integration-service.docs.ts","backend/src/modules/integration-services/integration-service.schema.ts","backend/src/modules/integration-services/integration-service.service.ts","frontend/src/api/index.ts","frontend/src/api/modules/groupbuy-platforms.ts","frontend/src/api/modules/integration-services.ts","frontend/src/router/index.ts","frontend/src/router/menu.ts","frontend/src/views/integration-services/Index.vue","frontend/src/views/settings/IntegrationServices.vue"]},{"id":"3b0503c391d1606984b159d179142267f3e0de8d","message":"Add groupbuy platforms integration\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3b0503c391d1606984b159d179142267f3e0de8d","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-12T00:08:25+08:00","added":["e2e/test-results/business-flows-order-fulfi-003e1-2E-测试-订单取消流程:已确认订单取消-→-退款处理-chromium/error-context.md","e2e/test-results/business-flows-order-fulfi-003e1-2E-测试-订单取消流程:已确认订单取消-→-退款处理-chromium/test-failed-1.png","e2e/test-results/business-flows-order-fulfi-096fb-约流程-E2E-测试-权限测试:客户只能查看自己的订单-chromium/error-context.md","e2e/test-results/business-flows-order-fulfi-096fb-约流程-E2E-测试-权限测试:客户只能查看自己的订单-chromium/test-failed-1.png","e2e/test-results/business-flows-order-fulfi-0d8d1-2E-测试-权限测试:仓储只能创建发货单,不能修改订单-chromium/error-context.md","e2e/test-results/business-flows-order-fulfi-0d8d1-2E-测试-权限测试:仓储只能创建发货单,不能修改订单-chromium/test-failed-1.png","e2e/test-results/business-flows-order-fulfi-21dc8-2E-测试-分批发货流程:创建多个发货单-→-分别发货-chromium/error-context.md","e2e/test-results/business-flows-order-fulfi-21dc8-2E-测试-分批发货流程:创建多个发货单-→-分别发货-chromium/test-failed-1.png","e2e/test-results/business-flows-order-fulfi-453ac-订单履约流程-E2E-测试-SLA-测试:超期交付预警-chromium/error-context.md","e2e/test-results/business-flows-order-fulfi-453ac-订单履约流程-E2E-测试-SLA-测试:超期交付预警-chromium/test-failed-1.png","e2e/test-results/business-flows-order-fulfi-990c4-试-银行转账流程:订单确认-→-银行转账-→-财务确认-chromium/error-context.md","e2e/test-results/business-flows-order-fulfi-990c4-试-银行转账流程:订单确认-→-银行转账-→-财务确认-chromium/test-failed-1.png","e2e/test-results/business-flows-order-fulfi-d99ca-订单确认-→-支付宝支付-→-发货-→-收货-→-完成-chromium/error-context.md","e2e/test-results/business-flows-order-fulfi-d99ca-订单确认-→-支付宝支付-→-发货-→-收货-→-完成-chromium/test-failed-1.png","e2e/test-results/business-flows-order-fulfi-db8ac--测试-微信支付流程:订单确认-→-微信支付-→-发货-chromium/error-context.md","e2e/test-results/business-flows-order-fulfi-db8ac--测试-微信支付流程:订单确认-→-微信支付-→-发货-chromium/test-failed-1.png"],"removed":[],"modified":["backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.schema.ts"]},{"id":"08ac5505f53c425f6625e3f518f78ed2258dab8e","message":"Analyze failed e2e flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/08ac5505f53c425f6625e3f518f78ed2258dab8e","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-12T00:05:40+08:00","added":["e2e/test-results/business-flows-contract-si-109b0--测试-标准流程:法务审批-→-电子签章-→-合同激活-chromium/error-context.md","e2e/test-results/business-flows-contract-si-109b0--测试-标准流程:法务审批-→-电子签章-→-合同激活-chromium/test-failed-1.png","e2e/test-results/business-flows-contract-si-28626-签署流程-E2E-测试-权限测试:销售专员无法审批合同-chromium/error-context.md","e2e/test-results/business-flows-contract-si-28626-签署流程-E2E-测试-权限测试:销售专员无法审批合同-chromium/test-failed-1.png","e2e/test-results/business-flows-contract-si-51110--合同签署流程-E2E-测试-合同续签流程:到期前续签-chromium/error-context.md","e2e/test-results/business-flows-contract-si-51110--合同签署流程-E2E-测试-合同续签流程:到期前续签-chromium/test-failed-1.png","e2e/test-results/business-flows-contract-si-66eea-试-审批拒绝流程:法务拒绝-→-销售修改-→-重新提交-chromium/error-context.md","e2e/test-results/business-flows-contract-si-66eea-试-审批拒绝流程:法务拒绝-→-销售修改-→-重新提交-chromium/test-failed-1.png","e2e/test-results/business-flows-contract-si-90e82-合同签署流程-E2E-测试-签署拒绝流程:客户拒绝签署-chromium/error-context.md","e2e/test-results/business-flows-contract-si-90e82-合同签署流程-E2E-测试-签署拒绝流程:客户拒绝签署-chromium/test-failed-1.png","e2e/test-results/business-flows-contract-si-a11ed-签署流程-E2E-测试-合同终止流程:生效中-→-终止-chromium/error-context.md","e2e/test-results/business-flows-contract-si-a11ed-签署流程-E2E-测试-合同终止流程:生效中-→-终止-chromium/test-failed-1.png","e2e/test-results/business-flows-contract-si-bed52-E-测试-合同激活-→-订单生成-→-权益激活完整链路-chromium/error-context.md","e2e/test-results/business-flows-contract-si-bed52-E-测试-合同激活-→-订单生成-→-权益激活完整链路-chromium/test-failed-1.png","e2e/test-results/business-flows-contract-si-e6f49-合同签署流程-E2E-测试-双审批流程:法务-财务审批-chromium/error-context.md","e2e/test-results/business-flows-contract-si-e6f49-合同签署流程-E2E-测试-双审批流程:法务-财务审批-chromium/test-failed-1.png"],"removed":[],"modified":[]},{"id":"89c27769d608af0197dd2a5008a526946a2b3a7c","message":"Update playwright report script data\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89c27769d608af0197dd2a5008a526946a2b3a7c","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-12T00:04:04+08:00","added":[],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":["e2e/playwright-report/index.html","e2e/test-results/.auth/admin.json"]}],"total_commits":0,"head_commit":{"id":"343b38f6bfbbd7d44a1387e1351700df68013555","message":"Add external group-buy integrations\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/343b38f6bfbbd7d44a1387e1351700df68013555","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-12T00:24:50+08:00","added":["e2e/test-results/.playwright-artifacts-123/0036a3ea004cf5faa825c1a3f8a6073f.png","e2e/test-results/.playwright-artifacts-123/113c7ba0c2ff6d2fe8d1527940153460.png","e2e/test-results/.playwright-artifacts-123/79e885472a3e6aeefe2c645e91e0299c.png","e2e/test-results/.playwright-artifacts-123/8960e110a7a16b8d1fda875c99115fc8.png","e2e/test-results/.playwright-artifacts-123/9340a7c7d25713d09068ef16ece6dc17.png","e2e/test-results/.playwright-artifacts-123/acbb71e1c6eb56a4bdc6daca62edb201.png","e2e/test-results/.playwright-artifacts-123/fffee32e8dbcea21ff4e74025022ba51.png","e2e/test-results/.playwright-artifacts-129/11476567fd09fa05f8fee058cae86686.png","e2e/test-results/.playwright-artifacts-129/1739c18fdfafcd1ddb89789bed64540f.png","e2e/test-results/.playwright-artifacts-129/6d8a6e59007dd53762caa0b90533996b.png","e2e/test-results/.playwright-artifacts-129/8b1c460ee4c9236a3443d2d6cbd185e2.png","e2e/test-results/.playwright-artifacts-129/99bfeadb7dd5f26df1f6f56a4eccdedc.png","e2e/test-results/.playwright-artifacts-129/baeada42716032c6f3c422664341717f.png","e2e/test-results/.playwright-artifacts-129/d56c024ed6abd9c9901c2834e695bbf6.png","e2e/test-results/.playwright-artifacts-135/040ea31135b74f973651b4df66ad2872.png","e2e/test-results/.playwright-artifacts-135/56a94c2d172c4e9f05cd349393c6efac.png","e2e/test-results/.playwright-artifacts-135/831b35c9c049da732306796db028c9fb.png","e2e/test-results/.playwright-artifacts-135/968ceefc530d18fcdcfb9f0c5bc464a8.png","e2e/test-results/.playwright-artifacts-135/a1f02a9f178b7c97da9b0fa17e8b907e.png","e2e/test-results/.playwright-artifacts-135/a51d824fd19bcea1380614157b07958d.png","e2e/test-results/.playwright-artifacts-135/acd5d4da1e1bf25b6b5ace1ba7565dcc.png","e2e/test-results/.playwright-artifacts-135/b6dffd33a245a7b80fc4770f9bf06b08.png","e2e/test-results/.playwright-artifacts-146/14a59910d516bd6aa293c0a85981621c.png","e2e/test-results/.playwright-artifacts-146/1ab95bcae962e4830101cd0b9ea979a3.png","e2e/test-results/.playwright-artifacts-146/44b3dc06fdbc5b50b55bd9aa93f58aea.png","e2e/test-results/.playwright-artifacts-146/6f7d208511930d83631f4778b38c2fd9.png","e2e/test-results/.playwright-artifacts-146/97845a6a9a0f01c67b88cf2e0a069af4.png","e2e/test-results/.playwright-artifacts-146/ada9e1a053fa71334be267e07c61d562.png","e2e/test-results/.playwright-artifacts-146/bce7da974abf178509043c149789fa5d.png","e2e/test-results/.playwright-artifacts-150/1f063d21022a6ca57b555291a7e9e13a.png","e2e/test-results/.playwright-artifacts-150/2278e0d8acc1279c6e4500e704f09267.png","e2e/test-results/.playwright-artifacts-150/74185d4e92c0ba9276af41bed4ea6ae1.png","e2e/test-results/.playwright-artifacts-150/8cf6870d845b0c9efb5e60ca58d96ec9.png","e2e/test-results/.playwright-artifacts-150/a15e8586f78be7229b2c525ab74eb46b.png","e2e/test-results/.playwright-artifacts-150/a39845c8368269f22e26985c61b4dbf6.png","e2e/test-results/.playwright-artifacts-150/bbeb940e2abb81bd33fb4f813dc81a74.png","e2e/test-results/.playwright-artifacts-153/20bab9c3b5a6a6c8f3c6e3493f0e1ba9.png","e2e/test-results/.playwright-artifacts-153/371fe221a15aeaa717f886876620d921.png","e2e/test-results/.playwright-artifacts-153/76cd4918f2304339ec1fe76ddcd7b55b.png","e2e/test-results/.playwright-artifacts-153/ae0376b9adb95505eb51e02ee90bbc8e.png","e2e/test-results/.playwright-artifacts-153/b531974f77e5e32e41ba7cca555f0bb7.png","e2e/test-results/.playwright-artifacts-153/b53ba76429c317199a14cb4364752825.png","e2e/test-results/.playwright-artifacts-153/ee392b3970023ccb139385de481abd72.png","e2e/test-results/.playwright-artifacts-154/0c13079a018ac9c13c4ba8db3ff4e094.png","e2e/test-results/.playwright-artifacts-154/118916b3102656818305cb217b588269.png","e2e/test-results/.playwright-artifacts-154/2e6e287d0dcdc0856c9362de8d6398aa.png","e2e/test-results/.playwright-artifacts-154/3a5f657bb84a41d032a0343df35d41a9.png","e2e/test-results/.playwright-artifacts-154/58301d1a07921edeb74d3a3483b1817a.png","e2e/test-results/.playwright-artifacts-154/ac3bf05aa40dd328f8ff94ea57b593d3.png","e2e/test-results/.playwright-artifacts-155/0f3785e074c2013fdb503ad2fbdb493e.png","e2e/test-results/.playwright-artifacts-155/a1bd8ce117a14b6e0de18cac5664ccaf.png","e2e/test-results/.playwright-artifacts-155/d6a52e76b890f02659819011f04fe8ec.png","e2e/test-results/crud-00-crud-runner-CRUD-严-045cc--删除-软-硬-可用-module-customers-chromium/attachments/probe-D01-8c7f456f302d2e70a2b7284d5b766d718e3352ae.json","e2e/test-results/crud-00-crud-runner-CRUD-严-06138-理-P01-权限矩阵-module-customers-chromium/attachments/probe-P01-dbc1e84cd0231cc2cd28fc2664348f332afc7d30.json","e2e/test-results/crud-00-crud-runner-CRUD-严-0cce6-02-更新权限-冲突-module-customers-chromium/attachments/probe-U02-43119af1727a79f6180e1f9cf4994cb26ec3b6cc.json","e2e/test-results/crud-00-crud-runner-CRUD-严-11522-软-硬-可用-module-opportunities-chromium/attachments/probe-D01-e43feac88c283a8bb5cfc28a3f54d6b0f07aca96.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1c969-D01-删除-软-硬-可用-module-orders-chromium/attachments/probe-D01-9b1d50362ea9770713b1fbf3d7858f876467484a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-3ac20-可用-module-partner-customers-chromium/attachments/probe-D01-1a6ebd5c788589fd1a39652a71d3716ded7fbed0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-41a40--线索管理-P01-权限矩阵-module-leads-chromium/attachments/probe-P01-a6cb822f15dde41179f2e984eeabc9c44494dacf.json","e2e/test-results/crud-00-crud-runner-CRUD-严-44a59--D01-删除-软-硬-可用-module-leads-chromium/attachments/probe-D01-807a2917507571c15e8ab96b895ae35f3ebfe663.json","e2e/test-results/crud-00-crud-runner-CRUD-严-53621-失败-module-partner-customers-chromium/attachments/probe-C02-3b1bb444202d36da2be56db4b6fc48d299f7b5b6.json","e2e/test-results/crud-00-crud-runner-CRUD-严-5b1fe-新权限-冲突-module-opportunities-chromium/attachments/probe-U02-083960f4995b4d35de257a738ac9dfb13c4851a5.json","e2e/test-results/crud-00-crud-runner-CRUD-严-5ba96-C02-创建校验失败-module-customers-chromium/attachments/probe-C02-bb26fd85550a6ff2937da16907cc5e695d7d68a7.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6affb-管理-U02-更新权限-冲突-module-leads-chromium/attachments/probe-U02-8c2d36fc8db97332aec6e4fccabb72db860b27c7.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6fb80-订单管理-E01-异常恢复-module-orders-chromium/attachments/probe-E01-b7bd7a53de90a9de565e895635d1d916a2ac4c13.json","e2e/test-results/crud-00-crud-runner-CRUD-严-75e9b-创建校验失败-module-opportunities-chromium/attachments/probe-C02-56114da1e981cd353811b030b54cf2825c2cf1c4.json","e2e/test-results/crud-00-crud-runner-CRUD-严-775a5-冲突-module-partner-customers-chromium/attachments/probe-U02-d35eb131ff22ad3ad71ff6f6152a0fc5d1c5ba9a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-81cdf-1-异常恢复-module-opportunities-chromium/attachments/probe-E01-67e5658a9eb109a3d2dc9a03f36d6a7be6147f7d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-86911-理-U02-更新权限-冲突-module-orders-chromium/attachments/probe-U02-dc281a7ac7950837e6cfff0372d360e0182818af.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8eb54-管理-C02-创建校验失败-module-orders-chromium/attachments/probe-C02-c486ba5d7bc3cac3fcc6ab9b2e879e894470751c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-91ddf-1-权限矩阵-module-opportunities-chromium/attachments/probe-P01-b59a575c564d37f5393d644761feff2783626088.json","e2e/test-results/crud-00-crud-runner-CRUD-严-9f610-索管理-C02-创建校验失败-module-leads-chromium/attachments/probe-C02-cb8baf848c0834fc939518ccbf58fab8672a7530.json","e2e/test-results/crud-00-crud-runner-CRUD-严-9fcf5-矩阵-module-partner-customers-chromium/attachments/probe-P01-8a41816eb5d2c8c56a744690a1576dadd630160a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a3731-订单管理-P01-权限矩阵-module-orders-chromium/attachments/probe-P01-30b94b8b9207fb726901bcab1127fe15c1b18c98.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c06c1-理-E01-异常恢复-module-customers-chromium/attachments/probe-E01-22e23e43ab9713d764572d8b3491179fd9889297.json","e2e/test-results/crud-00-crud-runner-CRUD-严-dca3a--线索管理-E01-异常恢复-module-leads-chromium/error-context.md","e2e/test-results/crud-00-crud-runner-CRUD-严-dca3a--线索管理-E01-异常恢复-module-leads-chromium/test-failed-1.png","e2e/test-results/crud/probes/customers-C02-1770827050956.json","e2e/test-results/crud/probes/customers-D01-1770827053886.json","e2e/test-results/crud/probes/customers-E01-1770827058974.json","e2e/test-results/crud/probes/customers-P01-1770827056383.json","e2e/test-results/crud/probes/customers-U02-1770827054979.json","e2e/test-results/crud/probes/leads-C02-1770827058659.json","e2e/test-results/crud/probes/leads-D01-1770827063025.json","e2e/test-results/crud/probes/leads-P01-1770827063720.json","e2e/test-results/crud/probes/leads-U02-1770827062828.json","e2e/test-results/crud/probes/opportunities-C02-1770827067673.json","e2e/test-results/crud/probes/opportunities-D01-1770827070647.json","e2e/test-results/crud/probes/opportunities-E01-1770827075636.json","e2e/test-results/crud/probes/opportunities-P01-1770827073400.json","e2e/test-results/crud/probes/opportunities-U02-1770827068171.json","e2e/test-results/crud/probes/orders-C02-1770827075123.json","e2e/test-results/crud/probes/orders-D01-1770827079459.json","e2e/test-results/crud/probes/orders-E01-1770827081598.json","e2e/test-results/crud/probes/orders-P01-1770827081447.json","e2e/test-results/crud/probes/orders-U02-1770827077941.json","e2e/test-results/crud/probes/partner-customers-C02-1770827083996.json","e2e/test-results/crud/probes/partner-customers-D01-1770827089066.json","e2e/test-results/crud/probes/partner-customers-P01-1770827089474.json","e2e/test-results/crud/probes/partner-customers-U02-1770827089055.json"],"removed":["e2e/test-results/.playwright-artifacts-149/3b50413d871f92fc7e7d32b34beb742f.png","e2e/test-results/.playwright-artifacts-149/88414d18ef67d6fa7fdd124986d691c7.png","e2e/test-results/.playwright-artifacts-149/f668a9d7fc16b945b8cd9dcf61cf03b3.png"],"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/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":true,"fork":false,"template":false,"parent":null,"mirror":false,"size":39621,"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-24T00:05:59+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
|
19
|
1771862768
|
1771862813
|
0
|
1771862764
|
1771862813
|
NULL
|
|
0
|
Edit
Delete
|
|
18
|
test11188889
|
2
|
2
|
hello-world.yaml
|
17
|
1
|
0
|
refs/heads/main
|
fbac0054c597227db514fa1c6581f5e9002a4c84
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"5bb99418afc48f8e77d3cdb4edd9fa1390476c57","after":"fbac0054c597227db514fa1c6581f5e9002a4c84","compare_url":"https://gitea.g-hi.com/juhai/testpc/compare/5bb99418afc48f8e77d3cdb4edd9fa1390476c57...fbac0054c597227db514fa1c6581f5e9002a4c84","commits":[{"id":"fbac0054c597227db514fa1c6581f5e9002a4c84","message":"test11188889\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/fbac0054c597227db514fa1c6581f5e9002a4c84","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-12T14:34:31+08:00","added":[],"removed":[],"modified":["pc/kg.php"]}],"total_commits":0,"head_commit":{"id":"fbac0054c597227db514fa1c6581f5e9002a4c84","message":"test11188889\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/fbac0054c597227db514fa1c6581f5e9002a4c84","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-12T14:34:31+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":17722,"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:32:19+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
|
2
|
0
|
1770878173
|
0
|
1770878076
|
1770878173
|
NULL
|
|
0
|
Edit
Delete
|
|
55
|
Update predictive and RFM modules
|
6
|
5
|
health-check.yml
|
16
|
-2
|
11
|
refs/heads/main
|
7145a8553a880d8a94356baf7bcb4e2df4631e61
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c8adeb7142f7f1b57a10bfffc3de856524997227","after":"7145a8553a880d8a94356baf7bcb4e2df4631e61","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/c8adeb7142f7f1b57a10bfffc3de856524997227...7145a8553a880d8a94356baf7bcb4e2df4631e61","commits":[{"id":"7145a8553a880d8a94356baf7bcb4e2df4631e61","message":"Update predictive and RFM modules\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7145a8553a880d8a94356baf7bcb4e2df4631e61","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-11T01:01:39+08:00","added":[],"removed":[],"modified":["backend/src/modules/predictive-analytics/predictive-analytics.compat.routes.ts","backend/src/modules/predictive-analytics/predictive-analytics.controller.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/predictive-analytics/predictive-analytics.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.compat.routes.ts","backend/src/modules/rfm-analysis/rfm-analysis.controller.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/rfm-analysis/rfm-analysis.schema.ts","backend/src/modules/rfm-analysis/rfm-analysis.service.ts"]},{"id":"0f2d9c3835013e4d3629614ecd18a44606763f27","message":"Review analytics module updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0f2d9c3835013e4d3629614ecd18a44606763f27","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-11T00:49:16+08:00","added":["backend/src/modules/campaign-analytics/campaign-analytics.controller.ts","backend/src/modules/campaign-analytics/campaign-analytics.docs.ts","backend/src/modules/campaign-analytics/campaign-analytics.schema.ts","backend/src/modules/campaign-analytics/campaign-analytics.service.ts","backend/src/modules/channel-analytics/channel-analytics.controller.ts","backend/src/modules/channel-analytics/channel-analytics.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channel-analytics/channel-analytics.service.ts","backend/src/modules/cohort-analysis/cohort-analysis.controller.ts","backend/src/modules/cohort-analysis/cohort-analysis.docs.ts","backend/src/modules/cohort-analysis/cohort-analysis.schema.ts","backend/src/modules/cohort-analysis/cohort-analysis.service.ts","backend/src/modules/consumer-behavior-analytics/consumer-behavior-analytics.controller.ts","backend/src/modules/consumer-behavior-analytics/consumer-behavior-analytics.docs.ts","backend/src/modules/consumer-behavior-analytics/consumer-behavior-analytics.schema.ts","backend/src/modules/consumer-behavior-analytics/consumer-behavior-analytics.service.ts","backend/src/modules/cost-allocation/cost-allocation.controller.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cost-allocation/cost-allocation.schema.ts","backend/src/modules/cost-allocation/cost-allocation.service.ts","backend/src/modules/cross-domain-funnel/cross-domain-funnel.controller.ts","backend/src/modules/cross-domain-funnel/cross-domain-funnel.docs.ts","backend/src/modules/cross-domain-funnel/cross-domain-funnel.schema.ts","backend/src/modules/cross-domain-funnel/cross-domain-funnel.service.ts","backend/src/modules/customer-journey-orchestration/customer-journey-orchestration.controller.ts","backend/src/modules/customer-journey-orchestration/customer-journey-orchestration.docs.ts","backend/src/modules/customer-journey-orchestration/customer-journey-orchestration.schema.ts","backend/src/modules/customer-journey-orchestration/customer-journey-orchestration.service.ts","backend/src/modules/customer-lifecycle-value/customer-lifecycle-value.controller.ts","backend/src/modules/customer-lifecycle-value/customer-lifecycle-value.docs.ts","backend/src/modules/customer-lifecycle-value/customer-lifecycle-value.schema.ts","backend/src/modules/customer-lifecycle-value/customer-lifecycle-value.service.ts","backend/src/modules/customer-ltv/customer-ltv.controller.ts","backend/src/modules/customer-ltv/customer-ltv.docs.ts","backend/src/modules/customer-ltv/customer-ltv.schema.ts","backend/src/modules/customer-ltv/customer-ltv.service.ts","backend/src/modules/dictionaries/dictionary.docs.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.docs.ts","backend/src/modules/dimension-transform/dimension-transform.schema.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.controller.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.docs.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.schema.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.service.ts","backend/src/modules/mdm/mdm.docs.ts","backend/src/modules/menus/menu.docs.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.controller.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.docs.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.schema.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.service.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.controller.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.docs.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.schema.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.service.ts","backend/src/modules/omnichannel-touchpoints/omnichannel-touchpoints.controller.ts","backend/src/modules/omnichannel-touchpoints/omnichannel-touchpoints.docs.ts","backend/src/modules/omnichannel-touchpoints/omnichannel-touchpoints.schema.ts","backend/src/modules/omnichannel-touchpoints/omnichannel-touchpoints.service.ts","backend/src/modules/positions/positions.controller.ts","backend/src/modules/positions/positions.docs.ts","backend/src/modules/positions/positions.schema.ts","backend/src/modules/positions/positions.service.ts","backend/src/modules/predictive-analytics/predictive-analytics.controller.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/predictive-analytics/predictive-analytics.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.controller.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime-trigger/realtime-trigger.schema.ts","backend/src/modules/realtime-trigger/realtime-trigger.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.controller.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/rfm-analysis/rfm-analysis.schema.ts","backend/src/modules/rfm-analysis/rfm-analysis.service.ts","backend/src/modules/supplier-payments/supplier-payments.controller.ts","backend/src/modules/supplier-payments/supplier-payments.docs.ts","backend/src/modules/supplier-payments/supplier-payments.schema.ts","backend/src/modules/supplier-payments/supplier-payments.service.ts"],"removed":[],"modified":["docs/ACTION-PLAN-2026.md","docs/ROADMAP_2026_Q1.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/全域收敛状态总览_2026-02-10.md"]},{"id":"9675324a5bbabd31646b05a46b9ccea1f19bbfb9","message":"Review backend and docs updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9675324a5bbabd31646b05a46b9ccea1f19bbfb9","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-11T00:29:08+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/modules/alliance-campaigns/alliance-campaign.service.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/campaign-drafts/campaign-draft.service.ts","backend/src/modules/devices/device.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/inventory/services/inventory-reservation.service.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.ts","backend/src/modules/meddpicc-analyses/meddpicc.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/web-tracking/web-tracking.service.ts","docs/ACQUISITION-DOMAIN-ANALYSIS.md","docs/ACQUISITION-INNOVATION-TRANSFORMATION-PLAN.md","docs/ACTION-PLAN-2026.md","docs/AI-AGENT-SYSTEM-ANALYSIS.md","docs/ALIGNMENT_REPORT.md","docs/API_REFACTORING_PLAN.md","docs/AUTO-FIX-REPORT.md","docs/BACKEND-QUALITY-AUDIT-REPORT.md","docs/BATCH_OPERATIONS_AUDIT.md","docs/BUSINESS-DOMAIN-ANALYSIS.md","docs/DATABASE_MIGRATION_GUIDE.md","docs/DEPLOYMENT_COMPLETE.md","docs/DUPLICATION_ANALYSIS_REPORT.md","docs/E2E-TEST-STRATEGY.md","docs/EVENT_STREAM_OPTIMIZATION_REPORT.md","docs/FRONTEND-BACKEND-GAP-ANALYSIS.md","docs/FRONTEND-UI-TEST-SPECIFICATION.md","docs/FRONTEND_ANALYSIS_20260102.md","docs/FRONTEND_ARCHITECTURE_ANALYSIS.md","docs/FULLSTACK-MATCHER-ANALYSIS.md","docs/IMPLEMENTATION-GAP-ANALYSIS.md","docs/IMPROVEMENT-PLAN.md","docs/IMPROVEMENTS_SUMMARY_20260102.md","docs/IMPROVEMENT_REPORT_2026-01-02.md","docs/KTV-LOCATION-SELECTION-PRD.md","docs/MARKETING-ARCHITECTURE-INNOVATION.md","docs/MENU-DESIGN-PROPOSAL.md","docs/MENU-STRUCTURE-COMPLETE.md","docs/MOBILE_CHAT_CRM_DEVELOPMENT_PLAN.md","docs/MODULE-STRUCTURE-ANALYSIS.md","docs/OMNICHANNEL-MARKETING-ARCHITECTURE.md","docs/P2-OPTIMIZATION-FINAL-REPORT.md","docs/PERFORMANCE_AUDIT_REPORT.md","docs/PHP-MIGRATION-ANALYSIS.md","docs/PLANNED-ROUTES.md","docs/PRD_巨嗨全域智库_v1.0.md","docs/PRODUCTION_CHECKLIST.md","docs/PROJECT_MODULE_OPTIMIZATION.md","docs/REFACTOR_COMPLETED.md","docs/ROADMAP_2026_Q1.md","docs/SALES-DOMAIN-ANALYSIS.md","docs/SECURITY-AUDIT-REPORT.md","docs/STABILITY-ANALYSIS-REPORT.md","docs/SWOT-ANALYSIS.md","docs/TEST-MATURITY-ASSESSMENT-REPORT.md","docs/TEST_COVERAGE_REPORT.md","docs/TEST_SPECIFICATION_REVIEW.md","docs/WEAKNESS-REMEDIATION-PLAN.md","docs/ZOD_VALIDATION_ENHANCEMENT_REPORT.md","docs/architecture/CAMPAIGNS-TENANT-ID-MIGRATION.md","docs/architecture/CONSISTENCY-CHECKER-COMPLETE.md","docs/architecture/P0-OUTBOX-IMPLEMENTATION-PLAN.md","docs/architecture/P0-OUTBOX-IMPLEMENTATION-REPORT.md","docs/architecture/P0-TABLE-PARTITIONING-PLAN.md","docs/architecture/P1-IMPLEMENTATION-PLAN.md","docs/architecture/PHASE_1_FIX_PLAN.md","docs/architecture/REFACTOR-MODULE-LIST-COMPLETE.md","docs/architecture/REFACTOR_IMPLEMENTATION_PLAN.md","docs/architecture/ROI-ANALYSIS-EMERGENCY-FIX.md","docs/architecture/ROI-ANALYSIS-FIX-UPDATED.md","docs/architecture/ROI-ANALYSIS-IMPLEMENTATION.md","docs/architecture/ROI-MENU-RENAME-COMPLETION.md","docs/architecture/ROI-MENU-RENAME-PLAN.md","docs/architecture/ROI-RENAME-SUMMARY.md","docs/architecture/ROUTE-LAYER-REFACTOR-REPORT.md","docs/architecture/SYSTEM-MANAGEMENT-ANALYSIS.md","docs/audits/comprehensive-scan-report-2026-01-08.md","docs/batch-refactor-plan.md","docs/batch-refactor-summary-phase1.md","docs/deployment-checklist.md","docs/guides/TESTING-SUMMARY.md","docs/guides/TODO-CLEANUP-PLAN.md","docs/guides/TODO-GITHUB-ISSUES.md","docs/guides/TYPESCRIPT-ERRORS-FIX-PLAN.md","docs/kafka-event-improvement-plan.md","docs/menus/MENU-ALIGNMENT-FINAL-REPORT.md","docs/menus/MENU-FIX-COMPLETION-REPORT.md","docs/menus/MENU-FIX-SUMMARY.md","docs/menus/MENU-MIGRATION-GUIDE.md","docs/menus/MENU-PERMISSIONS-ANALYSIS.md","docs/menus/MENU-PERMISSIONS-IMPLEMENTATION-GUIDE.md","docs/menus/MENU-PERMISSIONS-QUICK-REFERENCE.md","docs/menus/MENU-PERMISSIONS-SUMMARY.md","docs/menus/MENU-STRUCTURE-V2.2.md","docs/menus/MENU-STRUCTURE-VISUAL.md","docs/menus/MENU-UPDATE-V2.2-FINAL.md","docs/pinia-persistence-verification.md","docs/refactor-final-report.md","docs/refactor-plan-partner-customers.md","docs/refactor-progress.md","docs/refactor-session-summary-2026-01-06.md","docs/refactor-summary-partner-customers.md","docs/refactor-summary.md","docs/reports/AI_AGENT_IMPLEMENTATION_SUMMARY.md","docs/reports/CAMPAIGNS-MIGRATION-REPORT-20260110.md","docs/reports/CHANGELOG_ROUTER_FIX.md","docs/reports/CODE_AUDIT_REPORT.md","docs/reports/CODE_AUDIT_REPORT_2026-01-24.md","docs/reports/CODE_FIX_REPORT_2026-01-24.md","docs/reports/CONFIG_ANALYSIS_REPORT.md","docs/reports/DATABASE-INDEX-MIGRATION-REPORT.md","docs/reports/DATABASE-PARTITIONING-MERGE-SUMMARY.md","docs/reports/DEPENDENCY_AUDIT_REPORT.md","docs/reports/FRONTEND_AUDIT_REPORT.md","docs/reports/FULLSTACK-GAP-ANALYSIS.md","docs/reports/GAP_ANALYSIS_REPORT.md","docs/reports/IMMEDIATE-ACTION-SUMMARY.md","docs/reports/OPTIMIZATION-REPORT.md","docs/reports/P0-TASKS-COMPLETION-REPORT.md","docs/reports/P0-VERIFICATION-CHECKLIST.md","docs/reports/P1-SCHEMA-VALIDATION-REPORT.md","docs/reports/P1-SENTRY-INTEGRATION-REPORT.md","docs/reports/P2_OPTIMIZATION_REPORT.md","docs/reports/PERFORMANCE_ANALYSIS_REPORT.md","docs/reports/PERFORMANCE_OPTIMIZATION_REPORT.md","docs/reports/PHASE_0_COMPLETION_REPORT.md","docs/reports/PHASE_1_STATUS_REPORT.md","docs/reports/PRISMA_GAP_ANALYSIS.md","docs/reports/PROJECT_ANALYSIS_REPORT.md","docs/reports/PROJECT_COMPREHENSIVE_ANALYSIS_2026-01-24.md","docs/reports/REALITY_CHECK_20251222.md","docs/reports/ROUTER_WHITE_SCREEN_FINAL_FIX.md","docs/reports/SECURITY_AUDIT_REPORT_2026-01-24.md","docs/reports/TASK_COMPLETION_SUMMARY.md","docs/reports/TEST-CLEANUP-FIX-REPORT.md","docs/reports/TEST-EXECUTION-REPORT.md","docs/reports/TEST-FIXES-SUMMARY.md","docs/reports/TEST-INFRASTRUCTURE-COMPLETE.md","docs/reports/TEST_REPORT.md","docs/reports/TODO-ANALYSIS-REPORT.md","docs/testing/TEST_IMPROVEMENT_PLAN.md","docs/zod-fix-final-report.md","docs/zod-fix-verification.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/全域收敛状态总览_2026-02-10.md"]},{"id":"eb3fcc5f8f454b79674c60ad457e4d5ecd3ee310","message":"Review recent docs and service edits\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/eb3fcc5f8f454b79674c60ad457e4d5ecd3ee310","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-11T00:16:16+08:00","added":[],"removed":[],"modified":["backend/src/modules/campaigns/campaign-effectiveness.service.ts","docs/ACQUISITION-DOMAIN-ANALYSIS.md","docs/ACQUISITION-INNOVATION-TRANSFORMATION-PLAN.md","docs/ACTION-PLAN-2026.md","docs/AI-AGENT-SYSTEM-ANALYSIS.md","docs/ALIGNMENT_REPORT.md","docs/API_REFACTORING_PLAN.md","docs/AUTO-FIX-REPORT.md","docs/BACKEND-QUALITY-AUDIT-REPORT.md","docs/BATCH_OPERATIONS_AUDIT.md","docs/BUSINESS-DOMAIN-ANALYSIS.md","docs/DATABASE_MIGRATION_GUIDE.md","docs/DEPLOYMENT_COMPLETE.md","docs/DUPLICATION_ANALYSIS_REPORT.md","docs/E2E-TEST-STRATEGY.md","docs/EVENT_STREAM_OPTIMIZATION_REPORT.md","docs/FRONTEND-BACKEND-GAP-ANALYSIS.md","docs/FRONTEND-UI-TEST-SPECIFICATION.md","docs/FRONTEND_ANALYSIS_20260102.md","docs/FRONTEND_ARCHITECTURE_ANALYSIS.md","docs/FULLSTACK-MATCHER-ANALYSIS.md","docs/IMPLEMENTATION-GAP-ANALYSIS.md","docs/IMPROVEMENT-PLAN.md","docs/IMPROVEMENTS_SUMMARY_20260102.md","docs/IMPROVEMENT_REPORT_2026-01-02.md","docs/KTV-LOCATION-SELECTION-PRD.md","docs/MARKETING-ARCHITECTURE-INNOVATION.md","docs/MENU-DESIGN-PROPOSAL.md","docs/MENU-STRUCTURE-COMPLETE.md","docs/MOBILE_CHAT_CRM_DEVELOPMENT_PLAN.md","docs/MODULE-STRUCTURE-ANALYSIS.md","docs/OMNICHANNEL-MARKETING-ARCHITECTURE.md","docs/P2-OPTIMIZATION-FINAL-REPORT.md","docs/PERFORMANCE_AUDIT_REPORT.md","docs/PHP-MIGRATION-ANALYSIS.md","docs/PLANNED-ROUTES.md","docs/PRD_巨嗨全域智库_v1.0.md","docs/PRODUCTION_CHECKLIST.md","docs/PROJECT_MODULE_OPTIMIZATION.md","docs/REFACTOR_COMPLETED.md","docs/ROADMAP_2026_Q1.md","docs/SALES-DOMAIN-ANALYSIS.md","docs/SECURITY-AUDIT-REPORT.md","docs/STABILITY-ANALYSIS-REPORT.md","docs/SWOT-ANALYSIS.md","docs/TEST-MATURITY-ASSESSMENT-REPORT.md","docs/TEST_COVERAGE_REPORT.md","docs/TEST_SPECIFICATION_REVIEW.md","docs/WEAKNESS-REMEDIATION-PLAN.md","docs/ZOD_VALIDATION_ENHANCEMENT_REPORT.md","docs/architecture/CAMPAIGNS-TENANT-ID-MIGRATION.md","docs/architecture/CONSISTENCY-CHECKER-COMPLETE.md","docs/architecture/P0-OUTBOX-IMPLEMENTATION-PLAN.md","docs/architecture/P0-OUTBOX-IMPLEMENTATION-REPORT.md","docs/architecture/P0-TABLE-PARTITIONING-PLAN.md","docs/architecture/P1-IMPLEMENTATION-PLAN.md","docs/architecture/PHASE_1_FIX_PLAN.md","docs/architecture/REFACTOR-MODULE-LIST-COMPLETE.md","docs/architecture/REFACTOR_IMPLEMENTATION_PLAN.md","docs/architecture/ROI-ANALYSIS-EMERGENCY-FIX.md","docs/architecture/ROI-ANALYSIS-FIX-UPDATED.md","docs/architecture/ROI-ANALYSIS-IMPLEMENTATION.md","docs/architecture/ROI-MENU-RENAME-COMPLETION.md","docs/architecture/ROI-MENU-RENAME-PLAN.md","docs/architecture/ROI-RENAME-SUMMARY.md","docs/architecture/ROUTE-LAYER-REFACTOR-REPORT.md","docs/architecture/SYSTEM-MANAGEMENT-ANALYSIS.md","docs/audits/comprehensive-scan-report-2026-01-08.md","docs/batch-refactor-plan.md","docs/batch-refactor-summary-phase1.md","docs/deployment-checklist.md","docs/guides/TESTING-SUMMARY.md","docs/guides/TODO-CLEANUP-PLAN.md","docs/guides/TODO-GITHUB-ISSUES.md","docs/guides/TYPESCRIPT-ERRORS-FIX-PLAN.md","docs/kafka-event-improvement-plan.md","docs/menus/MENU-ALIGNMENT-FINAL-REPORT.md","docs/menus/MENU-FIX-COMPLETION-REPORT.md","docs/menus/MENU-FIX-SUMMARY.md","docs/menus/MENU-MIGRATION-GUIDE.md","docs/menus/MENU-PERMISSIONS-ANALYSIS.md","docs/menus/MENU-PERMISSIONS-IMPLEMENTATION-GUIDE.md","docs/menus/MENU-PERMISSIONS-QUICK-REFERENCE.md","docs/menus/MENU-PERMISSIONS-SUMMARY.md","docs/menus/MENU-STRUCTURE-V2.2.md","docs/menus/MENU-STRUCTURE-VISUAL.md","docs/menus/MENU-UPDATE-V2.2-FINAL.md","docs/pinia-persistence-verification.md","docs/refactor-final-report.md","docs/refactor-plan-partner-customers.md","docs/refactor-progress.md","docs/refactor-session-summary-2026-01-06.md","docs/refactor-summary-partner-customers.md","docs/refactor-summary.md","docs/reports/AI_AGENT_IMPLEMENTATION_SUMMARY.md","docs/reports/CAMPAIGNS-MIGRATION-REPORT-20260110.md","docs/reports/CHANGELOG_ROUTER_FIX.md","docs/reports/CODE_AUDIT_REPORT.md","docs/reports/CODE_AUDIT_REPORT_2026-01-24.md","docs/reports/CODE_FIX_REPORT_2026-01-24.md","docs/reports/CONFIG_ANALYSIS_REPORT.md","docs/reports/DATABASE-INDEX-MIGRATION-REPORT.md","docs/reports/DATABASE-PARTITIONING-MERGE-SUMMARY.md","docs/reports/DEPENDENCY_AUDIT_REPORT.md","docs/reports/FRONTEND_AUDIT_REPORT.md","docs/reports/FULLSTACK-GAP-ANALYSIS.md","docs/reports/GAP_ANALYSIS_REPORT.md","docs/reports/IMMEDIATE-ACTION-SUMMARY.md","docs/reports/OPTIMIZATION-REPORT.md","docs/reports/P0-TASKS-COMPLETION-REPORT.md","docs/reports/P0-VERIFICATION-CHECKLIST.md","docs/reports/P1-SCHEMA-VALIDATION-REPORT.md","docs/reports/P1-SENTRY-INTEGRATION-REPORT.md","docs/reports/P2_OPTIMIZATION_REPORT.md","docs/reports/PERFORMANCE_ANALYSIS_REPORT.md","docs/reports/PERFORMANCE_OPTIMIZATION_REPORT.md","docs/reports/PHASE_0_COMPLETION_REPORT.md","docs/reports/PHASE_1_STATUS_REPORT.md","docs/reports/PRISMA_GAP_ANALYSIS.md","docs/reports/PROJECT_ANALYSIS_REPORT.md","docs/reports/PROJECT_COMPREHENSIVE_ANALYSIS_2026-01-24.md","docs/reports/REALITY_CHECK_20251222.md","docs/reports/ROUTER_WHITE_SCREEN_FINAL_FIX.md","docs/reports/SECURITY_AUDIT_REPORT_2026-01-24.md","docs/reports/TASK_COMPLETION_SUMMARY.md","docs/reports/TEST-CLEANUP-FIX-REPORT.md","docs/reports/TEST-EXECUTION-REPORT.md","docs/reports/TEST-FIXES-SUMMARY.md","docs/reports/TEST-INFRASTRUCTURE-COMPLETE.md","docs/reports/TEST_REPORT.md","docs/reports/TODO-ANALYSIS-REPORT.md","docs/testing/TEST_IMPROVEMENT_PLAN.md","docs/zod-fix-final-report.md","docs/zod-fix-verification.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/全域收敛状态总览_2026-02-10.md"]},{"id":"2d6cf596bcfe9ab7bfa9a6d26a1d0572fef6cc8c","message":"Summarize backend doc updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2d6cf596bcfe9ab7bfa9a6d26a1d0572fef6cc8c","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-11T00:12:40+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/task-heartbeat.service.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/community-fission/community-fission.service.ts","backend/src/modules/crm-activities/crm-activity.service.ts","backend/src/modules/im/im.service.ts","backend/src/modules/inventory/services/inventory-export.service.ts","backend/src/modules/knowledge-capture/knowledge-ai.service.ts","backend/src/modules/livestream/livestream.service.ts","backend/src/modules/marketing-automation/workflow-action.service.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/pm/pm.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/rma/rma.compat.routes.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/stage-knowledge/stage-knowledge.service.ts","docs/ACQUISITION-DOMAIN-ANALYSIS.md","docs/ACQUISITION-INNOVATION-TRANSFORMATION-PLAN.md","docs/ACTION-PLAN-2026.md","docs/AI-AGENT-SYSTEM-ANALYSIS.md","docs/ALIGNMENT_REPORT.md","docs/API_REFACTORING_PLAN.md","docs/AUTO-FIX-REPORT.md","docs/BACKEND-QUALITY-AUDIT-REPORT.md","docs/BATCH_OPERATIONS_AUDIT.md","docs/BUSINESS-DOMAIN-ANALYSIS.md","docs/DATABASE_MIGRATION_GUIDE.md","docs/DEPLOYMENT_COMPLETE.md","docs/DUPLICATION_ANALYSIS_REPORT.md","docs/E2E-TEST-STRATEGY.md","docs/EVENT_STREAM_OPTIMIZATION_REPORT.md","docs/FRONTEND-BACKEND-GAP-ANALYSIS.md","docs/FRONTEND-UI-TEST-SPECIFICATION.md","docs/FRONTEND_ANALYSIS_20260102.md","docs/FRONTEND_ARCHITECTURE_ANALYSIS.md","docs/FULLSTACK-MATCHER-ANALYSIS.md","docs/IMPLEMENTATION-GAP-ANALYSIS.md","docs/IMPROVEMENT-PLAN.md","docs/IMPROVEMENTS_SUMMARY_20260102.md","docs/IMPROVEMENT_REPORT_2026-01-02.md","docs/KTV-LOCATION-SELECTION-PRD.md","docs/MARKETING-ARCHITECTURE-INNOVATION.md","docs/MENU-DESIGN-PROPOSAL.md","docs/MENU-STRUCTURE-COMPLETE.md","docs/MOBILE_CHAT_CRM_DEVELOPMENT_PLAN.md","docs/MODULE-STRUCTURE-ANALYSIS.md","docs/OMNICHANNEL-MARKETING-ARCHITECTURE.md","docs/P2-OPTIMIZATION-FINAL-REPORT.md","docs/PERFORMANCE_AUDIT_REPORT.md","docs/PHP-MIGRATION-ANALYSIS.md","docs/PLANNED-ROUTES.md","docs/PRD_巨嗨全域智库_v1.0.md","docs/PRODUCTION_CHECKLIST.md","docs/PROJECT_MODULE_OPTIMIZATION.md","docs/REFACTOR_COMPLETED.md","docs/ROADMAP_2026_Q1.md","docs/SALES-DOMAIN-ANALYSIS.md","docs/SECURITY-AUDIT-REPORT.md","docs/STABILITY-ANALYSIS-REPORT.md","docs/SWOT-ANALYSIS.md","docs/TEST-MATURITY-ASSESSMENT-REPORT.md","docs/TEST_COVERAGE_REPORT.md","docs/TEST_SPECIFICATION_REVIEW.md","docs/WEAKNESS-REMEDIATION-PLAN.md","docs/ZOD_VALIDATION_ENHANCEMENT_REPORT.md","docs/architecture/CAMPAIGNS-TENANT-ID-MIGRATION.md","docs/architecture/CONSISTENCY-CHECKER-COMPLETE.md","docs/architecture/P0-OUTBOX-IMPLEMENTATION-PLAN.md","docs/architecture/P0-OUTBOX-IMPLEMENTATION-REPORT.md","docs/architecture/P0-TABLE-PARTITIONING-PLAN.md","docs/architecture/P1-IMPLEMENTATION-PLAN.md","docs/architecture/PHASE_1_FIX_PLAN.md","docs/architecture/REFACTOR-MODULE-LIST-COMPLETE.md","docs/architecture/REFACTOR_IMPLEMENTATION_PLAN.md","docs/architecture/ROI-ANALYSIS-EMERGENCY-FIX.md","docs/architecture/ROI-ANALYSIS-FIX-UPDATED.md","docs/architecture/ROI-ANALYSIS-IMPLEMENTATION.md","docs/architecture/ROI-MENU-RENAME-COMPLETION.md","docs/architecture/ROI-MENU-RENAME-PLAN.md","docs/architecture/ROI-RENAME-SUMMARY.md","docs/architecture/ROUTE-LAYER-REFACTOR-REPORT.md","docs/architecture/SYSTEM-MANAGEMENT-ANALYSIS.md","docs/audits/comprehensive-scan-report-2026-01-08.md","docs/batch-refactor-plan.md","docs/batch-refactor-summary-phase1.md","docs/deployment-checklist.md","docs/guides/TESTING-SUMMARY.md","docs/guides/TODO-CLEANUP-PLAN.md","docs/guides/TODO-GITHUB-ISSUES.md","docs/guides/TYPESCRIPT-ERRORS-FIX-PLAN.md","docs/kafka-event-improvement-plan.md","docs/menus/MENU-ALIGNMENT-FINAL-REPORT.md","docs/menus/MENU-FIX-COMPLETION-REPORT.md","docs/menus/MENU-FIX-SUMMARY.md","docs/menus/MENU-MIGRATION-GUIDE.md","docs/menus/MENU-PERMISSIONS-ANALYSIS.md","docs/menus/MENU-PERMISSIONS-IMPLEMENTATION-GUIDE.md","docs/menus/MENU-PERMISSIONS-QUICK-REFERENCE.md","docs/menus/MENU-PERMISSIONS-SUMMARY.md","docs/menus/MENU-STRUCTURE-V2.2.md","docs/menus/MENU-STRUCTURE-VISUAL.md","docs/menus/MENU-UPDATE-V2.2-FINAL.md","docs/pinia-persistence-verification.md","docs/refactor-final-report.md","docs/refactor-plan-partner-customers.md","docs/refactor-progress.md","docs/refactor-session-summary-2026-01-06.md","docs/refactor-summary-partner-customers.md","docs/refactor-summary.md","docs/reports/AI_AGENT_IMPLEMENTATION_SUMMARY.md","docs/reports/CAMPAIGNS-MIGRATION-REPORT-20260110.md","docs/reports/CHANGELOG_ROUTER_FIX.md","docs/reports/CODE_AUDIT_REPORT.md","docs/reports/CODE_AUDIT_REPORT_2026-01-24.md","docs/reports/CODE_FIX_REPORT_2026-01-24.md","docs/reports/CONFIG_ANALYSIS_REPORT.md","docs/reports/DATABASE-INDEX-MIGRATION-REPORT.md","docs/reports/DATABASE-PARTITIONING-MERGE-SUMMARY.md","docs/reports/DEPENDENCY_AUDIT_REPORT.md","docs/reports/FRONTEND_AUDIT_REPORT.md","docs/reports/FULLSTACK-GAP-ANALYSIS.md","docs/reports/GAP_ANALYSIS_REPORT.md","docs/reports/IMMEDIATE-ACTION-SUMMARY.md","docs/reports/OPTIMIZATION-REPORT.md","docs/reports/P0-TASKS-COMPLETION-REPORT.md","docs/reports/P0-VERIFICATION-CHECKLIST.md","docs/reports/P1-SCHEMA-VALIDATION-REPORT.md","docs/reports/P1-SENTRY-INTEGRATION-REPORT.md","docs/reports/P2_OPTIMIZATION_REPORT.md","docs/reports/PERFORMANCE_ANALYSIS_REPORT.md","docs/reports/PERFORMANCE_OPTIMIZATION_REPORT.md","docs/reports/PHASE_0_COMPLETION_REPORT.md","docs/reports/PHASE_1_STATUS_REPORT.md","docs/reports/PRISMA_GAP_ANALYSIS.md","docs/reports/PROJECT_ANALYSIS_REPORT.md","docs/reports/PROJECT_COMPREHENSIVE_ANALYSIS_2026-01-24.md","docs/reports/REALITY_CHECK_20251222.md","docs/reports/ROUTER_WHITE_SCREEN_FINAL_FIX.md","docs/reports/SECURITY_AUDIT_REPORT_2026-01-24.md","docs/reports/TASK_COMPLETION_SUMMARY.md","docs/reports/TEST-CLEANUP-FIX-REPORT.md","docs/reports/TEST-EXECUTION-REPORT.md","docs/reports/TEST-FIXES-SUMMARY.md","docs/reports/TEST-INFRASTRUCTURE-COMPLETE.md","docs/reports/TEST_REPORT.md","docs/reports/TODO-ANALYSIS-REPORT.md","docs/testing/TEST_IMPROVEMENT_PLAN.md","docs/zod-fix-final-report.md","docs/zod-fix-verification.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/全域收敛状态总览_2026-02-10.md"]}],"total_commits":0,"head_commit":{"id":"7145a8553a880d8a94356baf7bcb4e2df4631e61","message":"Update predictive and RFM modules\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7145a8553a880d8a94356baf7bcb4e2df4631e61","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-11T01:01:39+08:00","added":[],"removed":[],"modified":["backend/src/modules/predictive-analytics/predictive-analytics.compat.routes.ts","backend/src/modules/predictive-analytics/predictive-analytics.controller.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/predictive-analytics/predictive-analytics.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.compat.routes.ts","backend/src/modules/rfm-analysis/rfm-analysis.controller.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/rfm-analysis/rfm-analysis.schema.ts","backend/src/modules/rfm-analysis/rfm-analysis.service.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":true,"fork":false,"template":false,"parent":null,"mirror":false,"size":31473,"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-24T00:01:59+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
|
1771862766
|
1771862767
|
0
|
1771862710
|
1771862767
|
NULL
|
|
0
|
Edit
Delete
|
|
17
|
test1118888
|
2
|
2
|
hello-world.yaml
|
16
|
1
|
0
|
refs/heads/main
|
5bb99418afc48f8e77d3cdb4edd9fa1390476c57
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"062acdd73d520de0360ff9d9158e60f202a02578","after":"5bb99418afc48f8e77d3cdb4edd9fa1390476c57","compare_url":"https://gitea.g-hi.com/juhai/testpc/compare/062acdd73d520de0360ff9d9158e60f202a02578...5bb99418afc48f8e77d3cdb4edd9fa1390476c57","commits":[{"id":"5bb99418afc48f8e77d3cdb4edd9fa1390476c57","message":"test1118888\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/5bb99418afc48f8e77d3cdb4edd9fa1390476c57","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-12T14:22:24+08:00","added":[],"removed":[],"modified":["pc/kg.php"]}],"total_commits":0,"head_commit":{"id":"5bb99418afc48f8e77d3cdb4edd9fa1390476c57","message":"test1118888\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/5bb99418afc48f8e77d3cdb4edd9fa1390476c57","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-12T14:22:24+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":17720,"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:22:01+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
|
2
|
0
|
1770877939
|
0
|
1770877350
|
1770877939
|
NULL
|
|
0
|
Edit
Delete
|
|
54
|
Update predictive and RFM modules
|
6
|
5
|
test-comprehensive.yml
|
15
|
5
|
0
|
refs/heads/main
|
7145a8553a880d8a94356baf7bcb4e2df4631e61
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c8adeb7142f7f1b57a10bfffc3de856524997227","after":"7145a8553a880d8a94356baf7bcb4e2df4631e61","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/c8adeb7142f7f1b57a10bfffc3de856524997227...7145a8553a880d8a94356baf7bcb4e2df4631e61","commits":[{"id":"7145a8553a880d8a94356baf7bcb4e2df4631e61","message":"Update predictive and RFM modules\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7145a8553a880d8a94356baf7bcb4e2df4631e61","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-11T01:01:39+08:00","added":[],"removed":[],"modified":["backend/src/modules/predictive-analytics/predictive-analytics.compat.routes.ts","backend/src/modules/predictive-analytics/predictive-analytics.controller.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/predictive-analytics/predictive-analytics.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.compat.routes.ts","backend/src/modules/rfm-analysis/rfm-analysis.controller.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/rfm-analysis/rfm-analysis.schema.ts","backend/src/modules/rfm-analysis/rfm-analysis.service.ts"]},{"id":"0f2d9c3835013e4d3629614ecd18a44606763f27","message":"Review analytics module updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0f2d9c3835013e4d3629614ecd18a44606763f27","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-11T00:49:16+08:00","added":["backend/src/modules/campaign-analytics/campaign-analytics.controller.ts","backend/src/modules/campaign-analytics/campaign-analytics.docs.ts","backend/src/modules/campaign-analytics/campaign-analytics.schema.ts","backend/src/modules/campaign-analytics/campaign-analytics.service.ts","backend/src/modules/channel-analytics/channel-analytics.controller.ts","backend/src/modules/channel-analytics/channel-analytics.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channel-analytics/channel-analytics.service.ts","backend/src/modules/cohort-analysis/cohort-analysis.controller.ts","backend/src/modules/cohort-analysis/cohort-analysis.docs.ts","backend/src/modules/cohort-analysis/cohort-analysis.schema.ts","backend/src/modules/cohort-analysis/cohort-analysis.service.ts","backend/src/modules/consumer-behavior-analytics/consumer-behavior-analytics.controller.ts","backend/src/modules/consumer-behavior-analytics/consumer-behavior-analytics.docs.ts","backend/src/modules/consumer-behavior-analytics/consumer-behavior-analytics.schema.ts","backend/src/modules/consumer-behavior-analytics/consumer-behavior-analytics.service.ts","backend/src/modules/cost-allocation/cost-allocation.controller.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cost-allocation/cost-allocation.schema.ts","backend/src/modules/cost-allocation/cost-allocation.service.ts","backend/src/modules/cross-domain-funnel/cross-domain-funnel.controller.ts","backend/src/modules/cross-domain-funnel/cross-domain-funnel.docs.ts","backend/src/modules/cross-domain-funnel/cross-domain-funnel.schema.ts","backend/src/modules/cross-domain-funnel/cross-domain-funnel.service.ts","backend/src/modules/customer-journey-orchestration/customer-journey-orchestration.controller.ts","backend/src/modules/customer-journey-orchestration/customer-journey-orchestration.docs.ts","backend/src/modules/customer-journey-orchestration/customer-journey-orchestration.schema.ts","backend/src/modules/customer-journey-orchestration/customer-journey-orchestration.service.ts","backend/src/modules/customer-lifecycle-value/customer-lifecycle-value.controller.ts","backend/src/modules/customer-lifecycle-value/customer-lifecycle-value.docs.ts","backend/src/modules/customer-lifecycle-value/customer-lifecycle-value.schema.ts","backend/src/modules/customer-lifecycle-value/customer-lifecycle-value.service.ts","backend/src/modules/customer-ltv/customer-ltv.controller.ts","backend/src/modules/customer-ltv/customer-ltv.docs.ts","backend/src/modules/customer-ltv/customer-ltv.schema.ts","backend/src/modules/customer-ltv/customer-ltv.service.ts","backend/src/modules/dictionaries/dictionary.docs.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.docs.ts","backend/src/modules/dimension-transform/dimension-transform.schema.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.controller.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.docs.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.schema.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.service.ts","backend/src/modules/mdm/mdm.docs.ts","backend/src/modules/menus/menu.docs.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.controller.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.docs.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.schema.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.service.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.controller.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.docs.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.schema.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.service.ts","backend/src/modules/omnichannel-touchpoints/omnichannel-touchpoints.controller.ts","backend/src/modules/omnichannel-touchpoints/omnichannel-touchpoints.docs.ts","backend/src/modules/omnichannel-touchpoints/omnichannel-touchpoints.schema.ts","backend/src/modules/omnichannel-touchpoints/omnichannel-touchpoints.service.ts","backend/src/modules/positions/positions.controller.ts","backend/src/modules/positions/positions.docs.ts","backend/src/modules/positions/positions.schema.ts","backend/src/modules/positions/positions.service.ts","backend/src/modules/predictive-analytics/predictive-analytics.controller.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/predictive-analytics/predictive-analytics.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.controller.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime-trigger/realtime-trigger.schema.ts","backend/src/modules/realtime-trigger/realtime-trigger.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.controller.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/rfm-analysis/rfm-analysis.schema.ts","backend/src/modules/rfm-analysis/rfm-analysis.service.ts","backend/src/modules/supplier-payments/supplier-payments.controller.ts","backend/src/modules/supplier-payments/supplier-payments.docs.ts","backend/src/modules/supplier-payments/supplier-payments.schema.ts","backend/src/modules/supplier-payments/supplier-payments.service.ts"],"removed":[],"modified":["docs/ACTION-PLAN-2026.md","docs/ROADMAP_2026_Q1.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/全域收敛状态总览_2026-02-10.md"]},{"id":"9675324a5bbabd31646b05a46b9ccea1f19bbfb9","message":"Review backend and docs updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9675324a5bbabd31646b05a46b9ccea1f19bbfb9","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-11T00:29:08+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/modules/alliance-campaigns/alliance-campaign.service.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/campaign-drafts/campaign-draft.service.ts","backend/src/modules/devices/device.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/inventory/services/inventory-reservation.service.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.ts","backend/src/modules/meddpicc-analyses/meddpicc.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/web-tracking/web-tracking.service.ts","docs/ACQUISITION-DOMAIN-ANALYSIS.md","docs/ACQUISITION-INNOVATION-TRANSFORMATION-PLAN.md","docs/ACTION-PLAN-2026.md","docs/AI-AGENT-SYSTEM-ANALYSIS.md","docs/ALIGNMENT_REPORT.md","docs/API_REFACTORING_PLAN.md","docs/AUTO-FIX-REPORT.md","docs/BACKEND-QUALITY-AUDIT-REPORT.md","docs/BATCH_OPERATIONS_AUDIT.md","docs/BUSINESS-DOMAIN-ANALYSIS.md","docs/DATABASE_MIGRATION_GUIDE.md","docs/DEPLOYMENT_COMPLETE.md","docs/DUPLICATION_ANALYSIS_REPORT.md","docs/E2E-TEST-STRATEGY.md","docs/EVENT_STREAM_OPTIMIZATION_REPORT.md","docs/FRONTEND-BACKEND-GAP-ANALYSIS.md","docs/FRONTEND-UI-TEST-SPECIFICATION.md","docs/FRONTEND_ANALYSIS_20260102.md","docs/FRONTEND_ARCHITECTURE_ANALYSIS.md","docs/FULLSTACK-MATCHER-ANALYSIS.md","docs/IMPLEMENTATION-GAP-ANALYSIS.md","docs/IMPROVEMENT-PLAN.md","docs/IMPROVEMENTS_SUMMARY_20260102.md","docs/IMPROVEMENT_REPORT_2026-01-02.md","docs/KTV-LOCATION-SELECTION-PRD.md","docs/MARKETING-ARCHITECTURE-INNOVATION.md","docs/MENU-DESIGN-PROPOSAL.md","docs/MENU-STRUCTURE-COMPLETE.md","docs/MOBILE_CHAT_CRM_DEVELOPMENT_PLAN.md","docs/MODULE-STRUCTURE-ANALYSIS.md","docs/OMNICHANNEL-MARKETING-ARCHITECTURE.md","docs/P2-OPTIMIZATION-FINAL-REPORT.md","docs/PERFORMANCE_AUDIT_REPORT.md","docs/PHP-MIGRATION-ANALYSIS.md","docs/PLANNED-ROUTES.md","docs/PRD_巨嗨全域智库_v1.0.md","docs/PRODUCTION_CHECKLIST.md","docs/PROJECT_MODULE_OPTIMIZATION.md","docs/REFACTOR_COMPLETED.md","docs/ROADMAP_2026_Q1.md","docs/SALES-DOMAIN-ANALYSIS.md","docs/SECURITY-AUDIT-REPORT.md","docs/STABILITY-ANALYSIS-REPORT.md","docs/SWOT-ANALYSIS.md","docs/TEST-MATURITY-ASSESSMENT-REPORT.md","docs/TEST_COVERAGE_REPORT.md","docs/TEST_SPECIFICATION_REVIEW.md","docs/WEAKNESS-REMEDIATION-PLAN.md","docs/ZOD_VALIDATION_ENHANCEMENT_REPORT.md","docs/architecture/CAMPAIGNS-TENANT-ID-MIGRATION.md","docs/architecture/CONSISTENCY-CHECKER-COMPLETE.md","docs/architecture/P0-OUTBOX-IMPLEMENTATION-PLAN.md","docs/architecture/P0-OUTBOX-IMPLEMENTATION-REPORT.md","docs/architecture/P0-TABLE-PARTITIONING-PLAN.md","docs/architecture/P1-IMPLEMENTATION-PLAN.md","docs/architecture/PHASE_1_FIX_PLAN.md","docs/architecture/REFACTOR-MODULE-LIST-COMPLETE.md","docs/architecture/REFACTOR_IMPLEMENTATION_PLAN.md","docs/architecture/ROI-ANALYSIS-EMERGENCY-FIX.md","docs/architecture/ROI-ANALYSIS-FIX-UPDATED.md","docs/architecture/ROI-ANALYSIS-IMPLEMENTATION.md","docs/architecture/ROI-MENU-RENAME-COMPLETION.md","docs/architecture/ROI-MENU-RENAME-PLAN.md","docs/architecture/ROI-RENAME-SUMMARY.md","docs/architecture/ROUTE-LAYER-REFACTOR-REPORT.md","docs/architecture/SYSTEM-MANAGEMENT-ANALYSIS.md","docs/audits/comprehensive-scan-report-2026-01-08.md","docs/batch-refactor-plan.md","docs/batch-refactor-summary-phase1.md","docs/deployment-checklist.md","docs/guides/TESTING-SUMMARY.md","docs/guides/TODO-CLEANUP-PLAN.md","docs/guides/TODO-GITHUB-ISSUES.md","docs/guides/TYPESCRIPT-ERRORS-FIX-PLAN.md","docs/kafka-event-improvement-plan.md","docs/menus/MENU-ALIGNMENT-FINAL-REPORT.md","docs/menus/MENU-FIX-COMPLETION-REPORT.md","docs/menus/MENU-FIX-SUMMARY.md","docs/menus/MENU-MIGRATION-GUIDE.md","docs/menus/MENU-PERMISSIONS-ANALYSIS.md","docs/menus/MENU-PERMISSIONS-IMPLEMENTATION-GUIDE.md","docs/menus/MENU-PERMISSIONS-QUICK-REFERENCE.md","docs/menus/MENU-PERMISSIONS-SUMMARY.md","docs/menus/MENU-STRUCTURE-V2.2.md","docs/menus/MENU-STRUCTURE-VISUAL.md","docs/menus/MENU-UPDATE-V2.2-FINAL.md","docs/pinia-persistence-verification.md","docs/refactor-final-report.md","docs/refactor-plan-partner-customers.md","docs/refactor-progress.md","docs/refactor-session-summary-2026-01-06.md","docs/refactor-summary-partner-customers.md","docs/refactor-summary.md","docs/reports/AI_AGENT_IMPLEMENTATION_SUMMARY.md","docs/reports/CAMPAIGNS-MIGRATION-REPORT-20260110.md","docs/reports/CHANGELOG_ROUTER_FIX.md","docs/reports/CODE_AUDIT_REPORT.md","docs/reports/CODE_AUDIT_REPORT_2026-01-24.md","docs/reports/CODE_FIX_REPORT_2026-01-24.md","docs/reports/CONFIG_ANALYSIS_REPORT.md","docs/reports/DATABASE-INDEX-MIGRATION-REPORT.md","docs/reports/DATABASE-PARTITIONING-MERGE-SUMMARY.md","docs/reports/DEPENDENCY_AUDIT_REPORT.md","docs/reports/FRONTEND_AUDIT_REPORT.md","docs/reports/FULLSTACK-GAP-ANALYSIS.md","docs/reports/GAP_ANALYSIS_REPORT.md","docs/reports/IMMEDIATE-ACTION-SUMMARY.md","docs/reports/OPTIMIZATION-REPORT.md","docs/reports/P0-TASKS-COMPLETION-REPORT.md","docs/reports/P0-VERIFICATION-CHECKLIST.md","docs/reports/P1-SCHEMA-VALIDATION-REPORT.md","docs/reports/P1-SENTRY-INTEGRATION-REPORT.md","docs/reports/P2_OPTIMIZATION_REPORT.md","docs/reports/PERFORMANCE_ANALYSIS_REPORT.md","docs/reports/PERFORMANCE_OPTIMIZATION_REPORT.md","docs/reports/PHASE_0_COMPLETION_REPORT.md","docs/reports/PHASE_1_STATUS_REPORT.md","docs/reports/PRISMA_GAP_ANALYSIS.md","docs/reports/PROJECT_ANALYSIS_REPORT.md","docs/reports/PROJECT_COMPREHENSIVE_ANALYSIS_2026-01-24.md","docs/reports/REALITY_CHECK_20251222.md","docs/reports/ROUTER_WHITE_SCREEN_FINAL_FIX.md","docs/reports/SECURITY_AUDIT_REPORT_2026-01-24.md","docs/reports/TASK_COMPLETION_SUMMARY.md","docs/reports/TEST-CLEANUP-FIX-REPORT.md","docs/reports/TEST-EXECUTION-REPORT.md","docs/reports/TEST-FIXES-SUMMARY.md","docs/reports/TEST-INFRASTRUCTURE-COMPLETE.md","docs/reports/TEST_REPORT.md","docs/reports/TODO-ANALYSIS-REPORT.md","docs/testing/TEST_IMPROVEMENT_PLAN.md","docs/zod-fix-final-report.md","docs/zod-fix-verification.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/全域收敛状态总览_2026-02-10.md"]},{"id":"eb3fcc5f8f454b79674c60ad457e4d5ecd3ee310","message":"Review recent docs and service edits\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/eb3fcc5f8f454b79674c60ad457e4d5ecd3ee310","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-11T00:16:16+08:00","added":[],"removed":[],"modified":["backend/src/modules/campaigns/campaign-effectiveness.service.ts","docs/ACQUISITION-DOMAIN-ANALYSIS.md","docs/ACQUISITION-INNOVATION-TRANSFORMATION-PLAN.md","docs/ACTION-PLAN-2026.md","docs/AI-AGENT-SYSTEM-ANALYSIS.md","docs/ALIGNMENT_REPORT.md","docs/API_REFACTORING_PLAN.md","docs/AUTO-FIX-REPORT.md","docs/BACKEND-QUALITY-AUDIT-REPORT.md","docs/BATCH_OPERATIONS_AUDIT.md","docs/BUSINESS-DOMAIN-ANALYSIS.md","docs/DATABASE_MIGRATION_GUIDE.md","docs/DEPLOYMENT_COMPLETE.md","docs/DUPLICATION_ANALYSIS_REPORT.md","docs/E2E-TEST-STRATEGY.md","docs/EVENT_STREAM_OPTIMIZATION_REPORT.md","docs/FRONTEND-BACKEND-GAP-ANALYSIS.md","docs/FRONTEND-UI-TEST-SPECIFICATION.md","docs/FRONTEND_ANALYSIS_20260102.md","docs/FRONTEND_ARCHITECTURE_ANALYSIS.md","docs/FULLSTACK-MATCHER-ANALYSIS.md","docs/IMPLEMENTATION-GAP-ANALYSIS.md","docs/IMPROVEMENT-PLAN.md","docs/IMPROVEMENTS_SUMMARY_20260102.md","docs/IMPROVEMENT_REPORT_2026-01-02.md","docs/KTV-LOCATION-SELECTION-PRD.md","docs/MARKETING-ARCHITECTURE-INNOVATION.md","docs/MENU-DESIGN-PROPOSAL.md","docs/MENU-STRUCTURE-COMPLETE.md","docs/MOBILE_CHAT_CRM_DEVELOPMENT_PLAN.md","docs/MODULE-STRUCTURE-ANALYSIS.md","docs/OMNICHANNEL-MARKETING-ARCHITECTURE.md","docs/P2-OPTIMIZATION-FINAL-REPORT.md","docs/PERFORMANCE_AUDIT_REPORT.md","docs/PHP-MIGRATION-ANALYSIS.md","docs/PLANNED-ROUTES.md","docs/PRD_巨嗨全域智库_v1.0.md","docs/PRODUCTION_CHECKLIST.md","docs/PROJECT_MODULE_OPTIMIZATION.md","docs/REFACTOR_COMPLETED.md","docs/ROADMAP_2026_Q1.md","docs/SALES-DOMAIN-ANALYSIS.md","docs/SECURITY-AUDIT-REPORT.md","docs/STABILITY-ANALYSIS-REPORT.md","docs/SWOT-ANALYSIS.md","docs/TEST-MATURITY-ASSESSMENT-REPORT.md","docs/TEST_COVERAGE_REPORT.md","docs/TEST_SPECIFICATION_REVIEW.md","docs/WEAKNESS-REMEDIATION-PLAN.md","docs/ZOD_VALIDATION_ENHANCEMENT_REPORT.md","docs/architecture/CAMPAIGNS-TENANT-ID-MIGRATION.md","docs/architecture/CONSISTENCY-CHECKER-COMPLETE.md","docs/architecture/P0-OUTBOX-IMPLEMENTATION-PLAN.md","docs/architecture/P0-OUTBOX-IMPLEMENTATION-REPORT.md","docs/architecture/P0-TABLE-PARTITIONING-PLAN.md","docs/architecture/P1-IMPLEMENTATION-PLAN.md","docs/architecture/PHASE_1_FIX_PLAN.md","docs/architecture/REFACTOR-MODULE-LIST-COMPLETE.md","docs/architecture/REFACTOR_IMPLEMENTATION_PLAN.md","docs/architecture/ROI-ANALYSIS-EMERGENCY-FIX.md","docs/architecture/ROI-ANALYSIS-FIX-UPDATED.md","docs/architecture/ROI-ANALYSIS-IMPLEMENTATION.md","docs/architecture/ROI-MENU-RENAME-COMPLETION.md","docs/architecture/ROI-MENU-RENAME-PLAN.md","docs/architecture/ROI-RENAME-SUMMARY.md","docs/architecture/ROUTE-LAYER-REFACTOR-REPORT.md","docs/architecture/SYSTEM-MANAGEMENT-ANALYSIS.md","docs/audits/comprehensive-scan-report-2026-01-08.md","docs/batch-refactor-plan.md","docs/batch-refactor-summary-phase1.md","docs/deployment-checklist.md","docs/guides/TESTING-SUMMARY.md","docs/guides/TODO-CLEANUP-PLAN.md","docs/guides/TODO-GITHUB-ISSUES.md","docs/guides/TYPESCRIPT-ERRORS-FIX-PLAN.md","docs/kafka-event-improvement-plan.md","docs/menus/MENU-ALIGNMENT-FINAL-REPORT.md","docs/menus/MENU-FIX-COMPLETION-REPORT.md","docs/menus/MENU-FIX-SUMMARY.md","docs/menus/MENU-MIGRATION-GUIDE.md","docs/menus/MENU-PERMISSIONS-ANALYSIS.md","docs/menus/MENU-PERMISSIONS-IMPLEMENTATION-GUIDE.md","docs/menus/MENU-PERMISSIONS-QUICK-REFERENCE.md","docs/menus/MENU-PERMISSIONS-SUMMARY.md","docs/menus/MENU-STRUCTURE-V2.2.md","docs/menus/MENU-STRUCTURE-VISUAL.md","docs/menus/MENU-UPDATE-V2.2-FINAL.md","docs/pinia-persistence-verification.md","docs/refactor-final-report.md","docs/refactor-plan-partner-customers.md","docs/refactor-progress.md","docs/refactor-session-summary-2026-01-06.md","docs/refactor-summary-partner-customers.md","docs/refactor-summary.md","docs/reports/AI_AGENT_IMPLEMENTATION_SUMMARY.md","docs/reports/CAMPAIGNS-MIGRATION-REPORT-20260110.md","docs/reports/CHANGELOG_ROUTER_FIX.md","docs/reports/CODE_AUDIT_REPORT.md","docs/reports/CODE_AUDIT_REPORT_2026-01-24.md","docs/reports/CODE_FIX_REPORT_2026-01-24.md","docs/reports/CONFIG_ANALYSIS_REPORT.md","docs/reports/DATABASE-INDEX-MIGRATION-REPORT.md","docs/reports/DATABASE-PARTITIONING-MERGE-SUMMARY.md","docs/reports/DEPENDENCY_AUDIT_REPORT.md","docs/reports/FRONTEND_AUDIT_REPORT.md","docs/reports/FULLSTACK-GAP-ANALYSIS.md","docs/reports/GAP_ANALYSIS_REPORT.md","docs/reports/IMMEDIATE-ACTION-SUMMARY.md","docs/reports/OPTIMIZATION-REPORT.md","docs/reports/P0-TASKS-COMPLETION-REPORT.md","docs/reports/P0-VERIFICATION-CHECKLIST.md","docs/reports/P1-SCHEMA-VALIDATION-REPORT.md","docs/reports/P1-SENTRY-INTEGRATION-REPORT.md","docs/reports/P2_OPTIMIZATION_REPORT.md","docs/reports/PERFORMANCE_ANALYSIS_REPORT.md","docs/reports/PERFORMANCE_OPTIMIZATION_REPORT.md","docs/reports/PHASE_0_COMPLETION_REPORT.md","docs/reports/PHASE_1_STATUS_REPORT.md","docs/reports/PRISMA_GAP_ANALYSIS.md","docs/reports/PROJECT_ANALYSIS_REPORT.md","docs/reports/PROJECT_COMPREHENSIVE_ANALYSIS_2026-01-24.md","docs/reports/REALITY_CHECK_20251222.md","docs/reports/ROUTER_WHITE_SCREEN_FINAL_FIX.md","docs/reports/SECURITY_AUDIT_REPORT_2026-01-24.md","docs/reports/TASK_COMPLETION_SUMMARY.md","docs/reports/TEST-CLEANUP-FIX-REPORT.md","docs/reports/TEST-EXECUTION-REPORT.md","docs/reports/TEST-FIXES-SUMMARY.md","docs/reports/TEST-INFRASTRUCTURE-COMPLETE.md","docs/reports/TEST_REPORT.md","docs/reports/TODO-ANALYSIS-REPORT.md","docs/testing/TEST_IMPROVEMENT_PLAN.md","docs/zod-fix-final-report.md","docs/zod-fix-verification.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/全域收敛状态总览_2026-02-10.md"]},{"id":"2d6cf596bcfe9ab7bfa9a6d26a1d0572fef6cc8c","message":"Summarize backend doc updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2d6cf596bcfe9ab7bfa9a6d26a1d0572fef6cc8c","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-11T00:12:40+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/task-heartbeat.service.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/community-fission/community-fission.service.ts","backend/src/modules/crm-activities/crm-activity.service.ts","backend/src/modules/im/im.service.ts","backend/src/modules/inventory/services/inventory-export.service.ts","backend/src/modules/knowledge-capture/knowledge-ai.service.ts","backend/src/modules/livestream/livestream.service.ts","backend/src/modules/marketing-automation/workflow-action.service.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/pm/pm.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/rma/rma.compat.routes.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/stage-knowledge/stage-knowledge.service.ts","docs/ACQUISITION-DOMAIN-ANALYSIS.md","docs/ACQUISITION-INNOVATION-TRANSFORMATION-PLAN.md","docs/ACTION-PLAN-2026.md","docs/AI-AGENT-SYSTEM-ANALYSIS.md","docs/ALIGNMENT_REPORT.md","docs/API_REFACTORING_PLAN.md","docs/AUTO-FIX-REPORT.md","docs/BACKEND-QUALITY-AUDIT-REPORT.md","docs/BATCH_OPERATIONS_AUDIT.md","docs/BUSINESS-DOMAIN-ANALYSIS.md","docs/DATABASE_MIGRATION_GUIDE.md","docs/DEPLOYMENT_COMPLETE.md","docs/DUPLICATION_ANALYSIS_REPORT.md","docs/E2E-TEST-STRATEGY.md","docs/EVENT_STREAM_OPTIMIZATION_REPORT.md","docs/FRONTEND-BACKEND-GAP-ANALYSIS.md","docs/FRONTEND-UI-TEST-SPECIFICATION.md","docs/FRONTEND_ANALYSIS_20260102.md","docs/FRONTEND_ARCHITECTURE_ANALYSIS.md","docs/FULLSTACK-MATCHER-ANALYSIS.md","docs/IMPLEMENTATION-GAP-ANALYSIS.md","docs/IMPROVEMENT-PLAN.md","docs/IMPROVEMENTS_SUMMARY_20260102.md","docs/IMPROVEMENT_REPORT_2026-01-02.md","docs/KTV-LOCATION-SELECTION-PRD.md","docs/MARKETING-ARCHITECTURE-INNOVATION.md","docs/MENU-DESIGN-PROPOSAL.md","docs/MENU-STRUCTURE-COMPLETE.md","docs/MOBILE_CHAT_CRM_DEVELOPMENT_PLAN.md","docs/MODULE-STRUCTURE-ANALYSIS.md","docs/OMNICHANNEL-MARKETING-ARCHITECTURE.md","docs/P2-OPTIMIZATION-FINAL-REPORT.md","docs/PERFORMANCE_AUDIT_REPORT.md","docs/PHP-MIGRATION-ANALYSIS.md","docs/PLANNED-ROUTES.md","docs/PRD_巨嗨全域智库_v1.0.md","docs/PRODUCTION_CHECKLIST.md","docs/PROJECT_MODULE_OPTIMIZATION.md","docs/REFACTOR_COMPLETED.md","docs/ROADMAP_2026_Q1.md","docs/SALES-DOMAIN-ANALYSIS.md","docs/SECURITY-AUDIT-REPORT.md","docs/STABILITY-ANALYSIS-REPORT.md","docs/SWOT-ANALYSIS.md","docs/TEST-MATURITY-ASSESSMENT-REPORT.md","docs/TEST_COVERAGE_REPORT.md","docs/TEST_SPECIFICATION_REVIEW.md","docs/WEAKNESS-REMEDIATION-PLAN.md","docs/ZOD_VALIDATION_ENHANCEMENT_REPORT.md","docs/architecture/CAMPAIGNS-TENANT-ID-MIGRATION.md","docs/architecture/CONSISTENCY-CHECKER-COMPLETE.md","docs/architecture/P0-OUTBOX-IMPLEMENTATION-PLAN.md","docs/architecture/P0-OUTBOX-IMPLEMENTATION-REPORT.md","docs/architecture/P0-TABLE-PARTITIONING-PLAN.md","docs/architecture/P1-IMPLEMENTATION-PLAN.md","docs/architecture/PHASE_1_FIX_PLAN.md","docs/architecture/REFACTOR-MODULE-LIST-COMPLETE.md","docs/architecture/REFACTOR_IMPLEMENTATION_PLAN.md","docs/architecture/ROI-ANALYSIS-EMERGENCY-FIX.md","docs/architecture/ROI-ANALYSIS-FIX-UPDATED.md","docs/architecture/ROI-ANALYSIS-IMPLEMENTATION.md","docs/architecture/ROI-MENU-RENAME-COMPLETION.md","docs/architecture/ROI-MENU-RENAME-PLAN.md","docs/architecture/ROI-RENAME-SUMMARY.md","docs/architecture/ROUTE-LAYER-REFACTOR-REPORT.md","docs/architecture/SYSTEM-MANAGEMENT-ANALYSIS.md","docs/audits/comprehensive-scan-report-2026-01-08.md","docs/batch-refactor-plan.md","docs/batch-refactor-summary-phase1.md","docs/deployment-checklist.md","docs/guides/TESTING-SUMMARY.md","docs/guides/TODO-CLEANUP-PLAN.md","docs/guides/TODO-GITHUB-ISSUES.md","docs/guides/TYPESCRIPT-ERRORS-FIX-PLAN.md","docs/kafka-event-improvement-plan.md","docs/menus/MENU-ALIGNMENT-FINAL-REPORT.md","docs/menus/MENU-FIX-COMPLETION-REPORT.md","docs/menus/MENU-FIX-SUMMARY.md","docs/menus/MENU-MIGRATION-GUIDE.md","docs/menus/MENU-PERMISSIONS-ANALYSIS.md","docs/menus/MENU-PERMISSIONS-IMPLEMENTATION-GUIDE.md","docs/menus/MENU-PERMISSIONS-QUICK-REFERENCE.md","docs/menus/MENU-PERMISSIONS-SUMMARY.md","docs/menus/MENU-STRUCTURE-V2.2.md","docs/menus/MENU-STRUCTURE-VISUAL.md","docs/menus/MENU-UPDATE-V2.2-FINAL.md","docs/pinia-persistence-verification.md","docs/refactor-final-report.md","docs/refactor-plan-partner-customers.md","docs/refactor-progress.md","docs/refactor-session-summary-2026-01-06.md","docs/refactor-summary-partner-customers.md","docs/refactor-summary.md","docs/reports/AI_AGENT_IMPLEMENTATION_SUMMARY.md","docs/reports/CAMPAIGNS-MIGRATION-REPORT-20260110.md","docs/reports/CHANGELOG_ROUTER_FIX.md","docs/reports/CODE_AUDIT_REPORT.md","docs/reports/CODE_AUDIT_REPORT_2026-01-24.md","docs/reports/CODE_FIX_REPORT_2026-01-24.md","docs/reports/CONFIG_ANALYSIS_REPORT.md","docs/reports/DATABASE-INDEX-MIGRATION-REPORT.md","docs/reports/DATABASE-PARTITIONING-MERGE-SUMMARY.md","docs/reports/DEPENDENCY_AUDIT_REPORT.md","docs/reports/FRONTEND_AUDIT_REPORT.md","docs/reports/FULLSTACK-GAP-ANALYSIS.md","docs/reports/GAP_ANALYSIS_REPORT.md","docs/reports/IMMEDIATE-ACTION-SUMMARY.md","docs/reports/OPTIMIZATION-REPORT.md","docs/reports/P0-TASKS-COMPLETION-REPORT.md","docs/reports/P0-VERIFICATION-CHECKLIST.md","docs/reports/P1-SCHEMA-VALIDATION-REPORT.md","docs/reports/P1-SENTRY-INTEGRATION-REPORT.md","docs/reports/P2_OPTIMIZATION_REPORT.md","docs/reports/PERFORMANCE_ANALYSIS_REPORT.md","docs/reports/PERFORMANCE_OPTIMIZATION_REPORT.md","docs/reports/PHASE_0_COMPLETION_REPORT.md","docs/reports/PHASE_1_STATUS_REPORT.md","docs/reports/PRISMA_GAP_ANALYSIS.md","docs/reports/PROJECT_ANALYSIS_REPORT.md","docs/reports/PROJECT_COMPREHENSIVE_ANALYSIS_2026-01-24.md","docs/reports/REALITY_CHECK_20251222.md","docs/reports/ROUTER_WHITE_SCREEN_FINAL_FIX.md","docs/reports/SECURITY_AUDIT_REPORT_2026-01-24.md","docs/reports/TASK_COMPLETION_SUMMARY.md","docs/reports/TEST-CLEANUP-FIX-REPORT.md","docs/reports/TEST-EXECUTION-REPORT.md","docs/reports/TEST-FIXES-SUMMARY.md","docs/reports/TEST-INFRASTRUCTURE-COMPLETE.md","docs/reports/TEST_REPORT.md","docs/reports/TODO-ANALYSIS-REPORT.md","docs/testing/TEST_IMPROVEMENT_PLAN.md","docs/zod-fix-final-report.md","docs/zod-fix-verification.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/全域收敛状态总览_2026-02-10.md"]}],"total_commits":0,"head_commit":{"id":"7145a8553a880d8a94356baf7bcb4e2df4631e61","message":"Update predictive and RFM modules\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7145a8553a880d8a94356baf7bcb4e2df4631e61","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-11T01:01:39+08:00","added":[],"removed":[],"modified":["backend/src/modules/predictive-analytics/predictive-analytics.compat.routes.ts","backend/src/modules/predictive-analytics/predictive-analytics.controller.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/predictive-analytics/predictive-analytics.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.compat.routes.ts","backend/src/modules/rfm-analysis/rfm-analysis.controller.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/rfm-analysis/rfm-analysis.schema.ts","backend/src/modules/rfm-analysis/rfm-analysis.service.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":true,"fork":false,"template":false,"parent":null,"mirror":false,"size":31473,"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-24T00:01:59+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
|
19
|
1771862764
|
1771862765
|
0
|
1771862652
|
1771862765
|
NULL
|
|
0
|
Edit
Delete
|
|
16
|
test111
|
2
|
2
|
hello-world.yaml
|
15
|
1
|
0
|
refs/heads/main
|
062acdd73d520de0360ff9d9158e60f202a02578
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"061edb11a5fd660934c3b57491d585077b3805cf","after":"062acdd73d520de0360ff9d9158e60f202a02578","compare_url":"https://gitea.g-hi.com/juhai/testpc/compare/061edb11a5fd660934c3b57491d585077b3805cf...062acdd73d520de0360ff9d9158e60f202a02578","commits":[{"id":"062acdd73d520de0360ff9d9158e60f202a02578","message":"test111\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/062acdd73d520de0360ff9d9158e60f202a02578","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-12T14:21:29+08:00","added":[],"removed":[],"modified":[".gitea/workflows/hello-world.yaml"]}],"total_commits":0,"head_commit":{"id":"062acdd73d520de0360ff9d9158e60f202a02578","message":"test111\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/062acdd73d520de0360ff9d9158e60f202a02578","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-12T14:21:29+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":17718,"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-12T13:52: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
|
2
|
2
|
0
|
1770877321
|
0
|
1770877295
|
1770877321
|
NULL
|
|
0
|
Edit
Delete
|
|
53
|
Update predictive and RFM modules
|
6
|
5
|
ci.yml
|
14
|
5
|
0
|
refs/heads/main
|
7145a8553a880d8a94356baf7bcb4e2df4631e61
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c8adeb7142f7f1b57a10bfffc3de856524997227","after":"7145a8553a880d8a94356baf7bcb4e2df4631e61","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/c8adeb7142f7f1b57a10bfffc3de856524997227...7145a8553a880d8a94356baf7bcb4e2df4631e61","commits":[{"id":"7145a8553a880d8a94356baf7bcb4e2df4631e61","message":"Update predictive and RFM modules\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7145a8553a880d8a94356baf7bcb4e2df4631e61","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-11T01:01:39+08:00","added":[],"removed":[],"modified":["backend/src/modules/predictive-analytics/predictive-analytics.compat.routes.ts","backend/src/modules/predictive-analytics/predictive-analytics.controller.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/predictive-analytics/predictive-analytics.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.compat.routes.ts","backend/src/modules/rfm-analysis/rfm-analysis.controller.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/rfm-analysis/rfm-analysis.schema.ts","backend/src/modules/rfm-analysis/rfm-analysis.service.ts"]},{"id":"0f2d9c3835013e4d3629614ecd18a44606763f27","message":"Review analytics module updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0f2d9c3835013e4d3629614ecd18a44606763f27","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-11T00:49:16+08:00","added":["backend/src/modules/campaign-analytics/campaign-analytics.controller.ts","backend/src/modules/campaign-analytics/campaign-analytics.docs.ts","backend/src/modules/campaign-analytics/campaign-analytics.schema.ts","backend/src/modules/campaign-analytics/campaign-analytics.service.ts","backend/src/modules/channel-analytics/channel-analytics.controller.ts","backend/src/modules/channel-analytics/channel-analytics.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channel-analytics/channel-analytics.service.ts","backend/src/modules/cohort-analysis/cohort-analysis.controller.ts","backend/src/modules/cohort-analysis/cohort-analysis.docs.ts","backend/src/modules/cohort-analysis/cohort-analysis.schema.ts","backend/src/modules/cohort-analysis/cohort-analysis.service.ts","backend/src/modules/consumer-behavior-analytics/consumer-behavior-analytics.controller.ts","backend/src/modules/consumer-behavior-analytics/consumer-behavior-analytics.docs.ts","backend/src/modules/consumer-behavior-analytics/consumer-behavior-analytics.schema.ts","backend/src/modules/consumer-behavior-analytics/consumer-behavior-analytics.service.ts","backend/src/modules/cost-allocation/cost-allocation.controller.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cost-allocation/cost-allocation.schema.ts","backend/src/modules/cost-allocation/cost-allocation.service.ts","backend/src/modules/cross-domain-funnel/cross-domain-funnel.controller.ts","backend/src/modules/cross-domain-funnel/cross-domain-funnel.docs.ts","backend/src/modules/cross-domain-funnel/cross-domain-funnel.schema.ts","backend/src/modules/cross-domain-funnel/cross-domain-funnel.service.ts","backend/src/modules/customer-journey-orchestration/customer-journey-orchestration.controller.ts","backend/src/modules/customer-journey-orchestration/customer-journey-orchestration.docs.ts","backend/src/modules/customer-journey-orchestration/customer-journey-orchestration.schema.ts","backend/src/modules/customer-journey-orchestration/customer-journey-orchestration.service.ts","backend/src/modules/customer-lifecycle-value/customer-lifecycle-value.controller.ts","backend/src/modules/customer-lifecycle-value/customer-lifecycle-value.docs.ts","backend/src/modules/customer-lifecycle-value/customer-lifecycle-value.schema.ts","backend/src/modules/customer-lifecycle-value/customer-lifecycle-value.service.ts","backend/src/modules/customer-ltv/customer-ltv.controller.ts","backend/src/modules/customer-ltv/customer-ltv.docs.ts","backend/src/modules/customer-ltv/customer-ltv.schema.ts","backend/src/modules/customer-ltv/customer-ltv.service.ts","backend/src/modules/dictionaries/dictionary.docs.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.docs.ts","backend/src/modules/dimension-transform/dimension-transform.schema.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.controller.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.docs.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.schema.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.service.ts","backend/src/modules/mdm/mdm.docs.ts","backend/src/modules/menus/menu.docs.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.controller.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.docs.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.schema.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.service.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.controller.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.docs.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.schema.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.service.ts","backend/src/modules/omnichannel-touchpoints/omnichannel-touchpoints.controller.ts","backend/src/modules/omnichannel-touchpoints/omnichannel-touchpoints.docs.ts","backend/src/modules/omnichannel-touchpoints/omnichannel-touchpoints.schema.ts","backend/src/modules/omnichannel-touchpoints/omnichannel-touchpoints.service.ts","backend/src/modules/positions/positions.controller.ts","backend/src/modules/positions/positions.docs.ts","backend/src/modules/positions/positions.schema.ts","backend/src/modules/positions/positions.service.ts","backend/src/modules/predictive-analytics/predictive-analytics.controller.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/predictive-analytics/predictive-analytics.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.controller.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime-trigger/realtime-trigger.schema.ts","backend/src/modules/realtime-trigger/realtime-trigger.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.controller.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/rfm-analysis/rfm-analysis.schema.ts","backend/src/modules/rfm-analysis/rfm-analysis.service.ts","backend/src/modules/supplier-payments/supplier-payments.controller.ts","backend/src/modules/supplier-payments/supplier-payments.docs.ts","backend/src/modules/supplier-payments/supplier-payments.schema.ts","backend/src/modules/supplier-payments/supplier-payments.service.ts"],"removed":[],"modified":["docs/ACTION-PLAN-2026.md","docs/ROADMAP_2026_Q1.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/全域收敛状态总览_2026-02-10.md"]},{"id":"9675324a5bbabd31646b05a46b9ccea1f19bbfb9","message":"Review backend and docs updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9675324a5bbabd31646b05a46b9ccea1f19bbfb9","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-11T00:29:08+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/modules/alliance-campaigns/alliance-campaign.service.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/campaign-drafts/campaign-draft.service.ts","backend/src/modules/devices/device.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/inventory/services/inventory-reservation.service.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.ts","backend/src/modules/meddpicc-analyses/meddpicc.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/web-tracking/web-tracking.service.ts","docs/ACQUISITION-DOMAIN-ANALYSIS.md","docs/ACQUISITION-INNOVATION-TRANSFORMATION-PLAN.md","docs/ACTION-PLAN-2026.md","docs/AI-AGENT-SYSTEM-ANALYSIS.md","docs/ALIGNMENT_REPORT.md","docs/API_REFACTORING_PLAN.md","docs/AUTO-FIX-REPORT.md","docs/BACKEND-QUALITY-AUDIT-REPORT.md","docs/BATCH_OPERATIONS_AUDIT.md","docs/BUSINESS-DOMAIN-ANALYSIS.md","docs/DATABASE_MIGRATION_GUIDE.md","docs/DEPLOYMENT_COMPLETE.md","docs/DUPLICATION_ANALYSIS_REPORT.md","docs/E2E-TEST-STRATEGY.md","docs/EVENT_STREAM_OPTIMIZATION_REPORT.md","docs/FRONTEND-BACKEND-GAP-ANALYSIS.md","docs/FRONTEND-UI-TEST-SPECIFICATION.md","docs/FRONTEND_ANALYSIS_20260102.md","docs/FRONTEND_ARCHITECTURE_ANALYSIS.md","docs/FULLSTACK-MATCHER-ANALYSIS.md","docs/IMPLEMENTATION-GAP-ANALYSIS.md","docs/IMPROVEMENT-PLAN.md","docs/IMPROVEMENTS_SUMMARY_20260102.md","docs/IMPROVEMENT_REPORT_2026-01-02.md","docs/KTV-LOCATION-SELECTION-PRD.md","docs/MARKETING-ARCHITECTURE-INNOVATION.md","docs/MENU-DESIGN-PROPOSAL.md","docs/MENU-STRUCTURE-COMPLETE.md","docs/MOBILE_CHAT_CRM_DEVELOPMENT_PLAN.md","docs/MODULE-STRUCTURE-ANALYSIS.md","docs/OMNICHANNEL-MARKETING-ARCHITECTURE.md","docs/P2-OPTIMIZATION-FINAL-REPORT.md","docs/PERFORMANCE_AUDIT_REPORT.md","docs/PHP-MIGRATION-ANALYSIS.md","docs/PLANNED-ROUTES.md","docs/PRD_巨嗨全域智库_v1.0.md","docs/PRODUCTION_CHECKLIST.md","docs/PROJECT_MODULE_OPTIMIZATION.md","docs/REFACTOR_COMPLETED.md","docs/ROADMAP_2026_Q1.md","docs/SALES-DOMAIN-ANALYSIS.md","docs/SECURITY-AUDIT-REPORT.md","docs/STABILITY-ANALYSIS-REPORT.md","docs/SWOT-ANALYSIS.md","docs/TEST-MATURITY-ASSESSMENT-REPORT.md","docs/TEST_COVERAGE_REPORT.md","docs/TEST_SPECIFICATION_REVIEW.md","docs/WEAKNESS-REMEDIATION-PLAN.md","docs/ZOD_VALIDATION_ENHANCEMENT_REPORT.md","docs/architecture/CAMPAIGNS-TENANT-ID-MIGRATION.md","docs/architecture/CONSISTENCY-CHECKER-COMPLETE.md","docs/architecture/P0-OUTBOX-IMPLEMENTATION-PLAN.md","docs/architecture/P0-OUTBOX-IMPLEMENTATION-REPORT.md","docs/architecture/P0-TABLE-PARTITIONING-PLAN.md","docs/architecture/P1-IMPLEMENTATION-PLAN.md","docs/architecture/PHASE_1_FIX_PLAN.md","docs/architecture/REFACTOR-MODULE-LIST-COMPLETE.md","docs/architecture/REFACTOR_IMPLEMENTATION_PLAN.md","docs/architecture/ROI-ANALYSIS-EMERGENCY-FIX.md","docs/architecture/ROI-ANALYSIS-FIX-UPDATED.md","docs/architecture/ROI-ANALYSIS-IMPLEMENTATION.md","docs/architecture/ROI-MENU-RENAME-COMPLETION.md","docs/architecture/ROI-MENU-RENAME-PLAN.md","docs/architecture/ROI-RENAME-SUMMARY.md","docs/architecture/ROUTE-LAYER-REFACTOR-REPORT.md","docs/architecture/SYSTEM-MANAGEMENT-ANALYSIS.md","docs/audits/comprehensive-scan-report-2026-01-08.md","docs/batch-refactor-plan.md","docs/batch-refactor-summary-phase1.md","docs/deployment-checklist.md","docs/guides/TESTING-SUMMARY.md","docs/guides/TODO-CLEANUP-PLAN.md","docs/guides/TODO-GITHUB-ISSUES.md","docs/guides/TYPESCRIPT-ERRORS-FIX-PLAN.md","docs/kafka-event-improvement-plan.md","docs/menus/MENU-ALIGNMENT-FINAL-REPORT.md","docs/menus/MENU-FIX-COMPLETION-REPORT.md","docs/menus/MENU-FIX-SUMMARY.md","docs/menus/MENU-MIGRATION-GUIDE.md","docs/menus/MENU-PERMISSIONS-ANALYSIS.md","docs/menus/MENU-PERMISSIONS-IMPLEMENTATION-GUIDE.md","docs/menus/MENU-PERMISSIONS-QUICK-REFERENCE.md","docs/menus/MENU-PERMISSIONS-SUMMARY.md","docs/menus/MENU-STRUCTURE-V2.2.md","docs/menus/MENU-STRUCTURE-VISUAL.md","docs/menus/MENU-UPDATE-V2.2-FINAL.md","docs/pinia-persistence-verification.md","docs/refactor-final-report.md","docs/refactor-plan-partner-customers.md","docs/refactor-progress.md","docs/refactor-session-summary-2026-01-06.md","docs/refactor-summary-partner-customers.md","docs/refactor-summary.md","docs/reports/AI_AGENT_IMPLEMENTATION_SUMMARY.md","docs/reports/CAMPAIGNS-MIGRATION-REPORT-20260110.md","docs/reports/CHANGELOG_ROUTER_FIX.md","docs/reports/CODE_AUDIT_REPORT.md","docs/reports/CODE_AUDIT_REPORT_2026-01-24.md","docs/reports/CODE_FIX_REPORT_2026-01-24.md","docs/reports/CONFIG_ANALYSIS_REPORT.md","docs/reports/DATABASE-INDEX-MIGRATION-REPORT.md","docs/reports/DATABASE-PARTITIONING-MERGE-SUMMARY.md","docs/reports/DEPENDENCY_AUDIT_REPORT.md","docs/reports/FRONTEND_AUDIT_REPORT.md","docs/reports/FULLSTACK-GAP-ANALYSIS.md","docs/reports/GAP_ANALYSIS_REPORT.md","docs/reports/IMMEDIATE-ACTION-SUMMARY.md","docs/reports/OPTIMIZATION-REPORT.md","docs/reports/P0-TASKS-COMPLETION-REPORT.md","docs/reports/P0-VERIFICATION-CHECKLIST.md","docs/reports/P1-SCHEMA-VALIDATION-REPORT.md","docs/reports/P1-SENTRY-INTEGRATION-REPORT.md","docs/reports/P2_OPTIMIZATION_REPORT.md","docs/reports/PERFORMANCE_ANALYSIS_REPORT.md","docs/reports/PERFORMANCE_OPTIMIZATION_REPORT.md","docs/reports/PHASE_0_COMPLETION_REPORT.md","docs/reports/PHASE_1_STATUS_REPORT.md","docs/reports/PRISMA_GAP_ANALYSIS.md","docs/reports/PROJECT_ANALYSIS_REPORT.md","docs/reports/PROJECT_COMPREHENSIVE_ANALYSIS_2026-01-24.md","docs/reports/REALITY_CHECK_20251222.md","docs/reports/ROUTER_WHITE_SCREEN_FINAL_FIX.md","docs/reports/SECURITY_AUDIT_REPORT_2026-01-24.md","docs/reports/TASK_COMPLETION_SUMMARY.md","docs/reports/TEST-CLEANUP-FIX-REPORT.md","docs/reports/TEST-EXECUTION-REPORT.md","docs/reports/TEST-FIXES-SUMMARY.md","docs/reports/TEST-INFRASTRUCTURE-COMPLETE.md","docs/reports/TEST_REPORT.md","docs/reports/TODO-ANALYSIS-REPORT.md","docs/testing/TEST_IMPROVEMENT_PLAN.md","docs/zod-fix-final-report.md","docs/zod-fix-verification.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/全域收敛状态总览_2026-02-10.md"]},{"id":"eb3fcc5f8f454b79674c60ad457e4d5ecd3ee310","message":"Review recent docs and service edits\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/eb3fcc5f8f454b79674c60ad457e4d5ecd3ee310","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-11T00:16:16+08:00","added":[],"removed":[],"modified":["backend/src/modules/campaigns/campaign-effectiveness.service.ts","docs/ACQUISITION-DOMAIN-ANALYSIS.md","docs/ACQUISITION-INNOVATION-TRANSFORMATION-PLAN.md","docs/ACTION-PLAN-2026.md","docs/AI-AGENT-SYSTEM-ANALYSIS.md","docs/ALIGNMENT_REPORT.md","docs/API_REFACTORING_PLAN.md","docs/AUTO-FIX-REPORT.md","docs/BACKEND-QUALITY-AUDIT-REPORT.md","docs/BATCH_OPERATIONS_AUDIT.md","docs/BUSINESS-DOMAIN-ANALYSIS.md","docs/DATABASE_MIGRATION_GUIDE.md","docs/DEPLOYMENT_COMPLETE.md","docs/DUPLICATION_ANALYSIS_REPORT.md","docs/E2E-TEST-STRATEGY.md","docs/EVENT_STREAM_OPTIMIZATION_REPORT.md","docs/FRONTEND-BACKEND-GAP-ANALYSIS.md","docs/FRONTEND-UI-TEST-SPECIFICATION.md","docs/FRONTEND_ANALYSIS_20260102.md","docs/FRONTEND_ARCHITECTURE_ANALYSIS.md","docs/FULLSTACK-MATCHER-ANALYSIS.md","docs/IMPLEMENTATION-GAP-ANALYSIS.md","docs/IMPROVEMENT-PLAN.md","docs/IMPROVEMENTS_SUMMARY_20260102.md","docs/IMPROVEMENT_REPORT_2026-01-02.md","docs/KTV-LOCATION-SELECTION-PRD.md","docs/MARKETING-ARCHITECTURE-INNOVATION.md","docs/MENU-DESIGN-PROPOSAL.md","docs/MENU-STRUCTURE-COMPLETE.md","docs/MOBILE_CHAT_CRM_DEVELOPMENT_PLAN.md","docs/MODULE-STRUCTURE-ANALYSIS.md","docs/OMNICHANNEL-MARKETING-ARCHITECTURE.md","docs/P2-OPTIMIZATION-FINAL-REPORT.md","docs/PERFORMANCE_AUDIT_REPORT.md","docs/PHP-MIGRATION-ANALYSIS.md","docs/PLANNED-ROUTES.md","docs/PRD_巨嗨全域智库_v1.0.md","docs/PRODUCTION_CHECKLIST.md","docs/PROJECT_MODULE_OPTIMIZATION.md","docs/REFACTOR_COMPLETED.md","docs/ROADMAP_2026_Q1.md","docs/SALES-DOMAIN-ANALYSIS.md","docs/SECURITY-AUDIT-REPORT.md","docs/STABILITY-ANALYSIS-REPORT.md","docs/SWOT-ANALYSIS.md","docs/TEST-MATURITY-ASSESSMENT-REPORT.md","docs/TEST_COVERAGE_REPORT.md","docs/TEST_SPECIFICATION_REVIEW.md","docs/WEAKNESS-REMEDIATION-PLAN.md","docs/ZOD_VALIDATION_ENHANCEMENT_REPORT.md","docs/architecture/CAMPAIGNS-TENANT-ID-MIGRATION.md","docs/architecture/CONSISTENCY-CHECKER-COMPLETE.md","docs/architecture/P0-OUTBOX-IMPLEMENTATION-PLAN.md","docs/architecture/P0-OUTBOX-IMPLEMENTATION-REPORT.md","docs/architecture/P0-TABLE-PARTITIONING-PLAN.md","docs/architecture/P1-IMPLEMENTATION-PLAN.md","docs/architecture/PHASE_1_FIX_PLAN.md","docs/architecture/REFACTOR-MODULE-LIST-COMPLETE.md","docs/architecture/REFACTOR_IMPLEMENTATION_PLAN.md","docs/architecture/ROI-ANALYSIS-EMERGENCY-FIX.md","docs/architecture/ROI-ANALYSIS-FIX-UPDATED.md","docs/architecture/ROI-ANALYSIS-IMPLEMENTATION.md","docs/architecture/ROI-MENU-RENAME-COMPLETION.md","docs/architecture/ROI-MENU-RENAME-PLAN.md","docs/architecture/ROI-RENAME-SUMMARY.md","docs/architecture/ROUTE-LAYER-REFACTOR-REPORT.md","docs/architecture/SYSTEM-MANAGEMENT-ANALYSIS.md","docs/audits/comprehensive-scan-report-2026-01-08.md","docs/batch-refactor-plan.md","docs/batch-refactor-summary-phase1.md","docs/deployment-checklist.md","docs/guides/TESTING-SUMMARY.md","docs/guides/TODO-CLEANUP-PLAN.md","docs/guides/TODO-GITHUB-ISSUES.md","docs/guides/TYPESCRIPT-ERRORS-FIX-PLAN.md","docs/kafka-event-improvement-plan.md","docs/menus/MENU-ALIGNMENT-FINAL-REPORT.md","docs/menus/MENU-FIX-COMPLETION-REPORT.md","docs/menus/MENU-FIX-SUMMARY.md","docs/menus/MENU-MIGRATION-GUIDE.md","docs/menus/MENU-PERMISSIONS-ANALYSIS.md","docs/menus/MENU-PERMISSIONS-IMPLEMENTATION-GUIDE.md","docs/menus/MENU-PERMISSIONS-QUICK-REFERENCE.md","docs/menus/MENU-PERMISSIONS-SUMMARY.md","docs/menus/MENU-STRUCTURE-V2.2.md","docs/menus/MENU-STRUCTURE-VISUAL.md","docs/menus/MENU-UPDATE-V2.2-FINAL.md","docs/pinia-persistence-verification.md","docs/refactor-final-report.md","docs/refactor-plan-partner-customers.md","docs/refactor-progress.md","docs/refactor-session-summary-2026-01-06.md","docs/refactor-summary-partner-customers.md","docs/refactor-summary.md","docs/reports/AI_AGENT_IMPLEMENTATION_SUMMARY.md","docs/reports/CAMPAIGNS-MIGRATION-REPORT-20260110.md","docs/reports/CHANGELOG_ROUTER_FIX.md","docs/reports/CODE_AUDIT_REPORT.md","docs/reports/CODE_AUDIT_REPORT_2026-01-24.md","docs/reports/CODE_FIX_REPORT_2026-01-24.md","docs/reports/CONFIG_ANALYSIS_REPORT.md","docs/reports/DATABASE-INDEX-MIGRATION-REPORT.md","docs/reports/DATABASE-PARTITIONING-MERGE-SUMMARY.md","docs/reports/DEPENDENCY_AUDIT_REPORT.md","docs/reports/FRONTEND_AUDIT_REPORT.md","docs/reports/FULLSTACK-GAP-ANALYSIS.md","docs/reports/GAP_ANALYSIS_REPORT.md","docs/reports/IMMEDIATE-ACTION-SUMMARY.md","docs/reports/OPTIMIZATION-REPORT.md","docs/reports/P0-TASKS-COMPLETION-REPORT.md","docs/reports/P0-VERIFICATION-CHECKLIST.md","docs/reports/P1-SCHEMA-VALIDATION-REPORT.md","docs/reports/P1-SENTRY-INTEGRATION-REPORT.md","docs/reports/P2_OPTIMIZATION_REPORT.md","docs/reports/PERFORMANCE_ANALYSIS_REPORT.md","docs/reports/PERFORMANCE_OPTIMIZATION_REPORT.md","docs/reports/PHASE_0_COMPLETION_REPORT.md","docs/reports/PHASE_1_STATUS_REPORT.md","docs/reports/PRISMA_GAP_ANALYSIS.md","docs/reports/PROJECT_ANALYSIS_REPORT.md","docs/reports/PROJECT_COMPREHENSIVE_ANALYSIS_2026-01-24.md","docs/reports/REALITY_CHECK_20251222.md","docs/reports/ROUTER_WHITE_SCREEN_FINAL_FIX.md","docs/reports/SECURITY_AUDIT_REPORT_2026-01-24.md","docs/reports/TASK_COMPLETION_SUMMARY.md","docs/reports/TEST-CLEANUP-FIX-REPORT.md","docs/reports/TEST-EXECUTION-REPORT.md","docs/reports/TEST-FIXES-SUMMARY.md","docs/reports/TEST-INFRASTRUCTURE-COMPLETE.md","docs/reports/TEST_REPORT.md","docs/reports/TODO-ANALYSIS-REPORT.md","docs/testing/TEST_IMPROVEMENT_PLAN.md","docs/zod-fix-final-report.md","docs/zod-fix-verification.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/全域收敛状态总览_2026-02-10.md"]},{"id":"2d6cf596bcfe9ab7bfa9a6d26a1d0572fef6cc8c","message":"Summarize backend doc updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2d6cf596bcfe9ab7bfa9a6d26a1d0572fef6cc8c","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-11T00:12:40+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/task-heartbeat.service.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/community-fission/community-fission.service.ts","backend/src/modules/crm-activities/crm-activity.service.ts","backend/src/modules/im/im.service.ts","backend/src/modules/inventory/services/inventory-export.service.ts","backend/src/modules/knowledge-capture/knowledge-ai.service.ts","backend/src/modules/livestream/livestream.service.ts","backend/src/modules/marketing-automation/workflow-action.service.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/pm/pm.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/rma/rma.compat.routes.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/stage-knowledge/stage-knowledge.service.ts","docs/ACQUISITION-DOMAIN-ANALYSIS.md","docs/ACQUISITION-INNOVATION-TRANSFORMATION-PLAN.md","docs/ACTION-PLAN-2026.md","docs/AI-AGENT-SYSTEM-ANALYSIS.md","docs/ALIGNMENT_REPORT.md","docs/API_REFACTORING_PLAN.md","docs/AUTO-FIX-REPORT.md","docs/BACKEND-QUALITY-AUDIT-REPORT.md","docs/BATCH_OPERATIONS_AUDIT.md","docs/BUSINESS-DOMAIN-ANALYSIS.md","docs/DATABASE_MIGRATION_GUIDE.md","docs/DEPLOYMENT_COMPLETE.md","docs/DUPLICATION_ANALYSIS_REPORT.md","docs/E2E-TEST-STRATEGY.md","docs/EVENT_STREAM_OPTIMIZATION_REPORT.md","docs/FRONTEND-BACKEND-GAP-ANALYSIS.md","docs/FRONTEND-UI-TEST-SPECIFICATION.md","docs/FRONTEND_ANALYSIS_20260102.md","docs/FRONTEND_ARCHITECTURE_ANALYSIS.md","docs/FULLSTACK-MATCHER-ANALYSIS.md","docs/IMPLEMENTATION-GAP-ANALYSIS.md","docs/IMPROVEMENT-PLAN.md","docs/IMPROVEMENTS_SUMMARY_20260102.md","docs/IMPROVEMENT_REPORT_2026-01-02.md","docs/KTV-LOCATION-SELECTION-PRD.md","docs/MARKETING-ARCHITECTURE-INNOVATION.md","docs/MENU-DESIGN-PROPOSAL.md","docs/MENU-STRUCTURE-COMPLETE.md","docs/MOBILE_CHAT_CRM_DEVELOPMENT_PLAN.md","docs/MODULE-STRUCTURE-ANALYSIS.md","docs/OMNICHANNEL-MARKETING-ARCHITECTURE.md","docs/P2-OPTIMIZATION-FINAL-REPORT.md","docs/PERFORMANCE_AUDIT_REPORT.md","docs/PHP-MIGRATION-ANALYSIS.md","docs/PLANNED-ROUTES.md","docs/PRD_巨嗨全域智库_v1.0.md","docs/PRODUCTION_CHECKLIST.md","docs/PROJECT_MODULE_OPTIMIZATION.md","docs/REFACTOR_COMPLETED.md","docs/ROADMAP_2026_Q1.md","docs/SALES-DOMAIN-ANALYSIS.md","docs/SECURITY-AUDIT-REPORT.md","docs/STABILITY-ANALYSIS-REPORT.md","docs/SWOT-ANALYSIS.md","docs/TEST-MATURITY-ASSESSMENT-REPORT.md","docs/TEST_COVERAGE_REPORT.md","docs/TEST_SPECIFICATION_REVIEW.md","docs/WEAKNESS-REMEDIATION-PLAN.md","docs/ZOD_VALIDATION_ENHANCEMENT_REPORT.md","docs/architecture/CAMPAIGNS-TENANT-ID-MIGRATION.md","docs/architecture/CONSISTENCY-CHECKER-COMPLETE.md","docs/architecture/P0-OUTBOX-IMPLEMENTATION-PLAN.md","docs/architecture/P0-OUTBOX-IMPLEMENTATION-REPORT.md","docs/architecture/P0-TABLE-PARTITIONING-PLAN.md","docs/architecture/P1-IMPLEMENTATION-PLAN.md","docs/architecture/PHASE_1_FIX_PLAN.md","docs/architecture/REFACTOR-MODULE-LIST-COMPLETE.md","docs/architecture/REFACTOR_IMPLEMENTATION_PLAN.md","docs/architecture/ROI-ANALYSIS-EMERGENCY-FIX.md","docs/architecture/ROI-ANALYSIS-FIX-UPDATED.md","docs/architecture/ROI-ANALYSIS-IMPLEMENTATION.md","docs/architecture/ROI-MENU-RENAME-COMPLETION.md","docs/architecture/ROI-MENU-RENAME-PLAN.md","docs/architecture/ROI-RENAME-SUMMARY.md","docs/architecture/ROUTE-LAYER-REFACTOR-REPORT.md","docs/architecture/SYSTEM-MANAGEMENT-ANALYSIS.md","docs/audits/comprehensive-scan-report-2026-01-08.md","docs/batch-refactor-plan.md","docs/batch-refactor-summary-phase1.md","docs/deployment-checklist.md","docs/guides/TESTING-SUMMARY.md","docs/guides/TODO-CLEANUP-PLAN.md","docs/guides/TODO-GITHUB-ISSUES.md","docs/guides/TYPESCRIPT-ERRORS-FIX-PLAN.md","docs/kafka-event-improvement-plan.md","docs/menus/MENU-ALIGNMENT-FINAL-REPORT.md","docs/menus/MENU-FIX-COMPLETION-REPORT.md","docs/menus/MENU-FIX-SUMMARY.md","docs/menus/MENU-MIGRATION-GUIDE.md","docs/menus/MENU-PERMISSIONS-ANALYSIS.md","docs/menus/MENU-PERMISSIONS-IMPLEMENTATION-GUIDE.md","docs/menus/MENU-PERMISSIONS-QUICK-REFERENCE.md","docs/menus/MENU-PERMISSIONS-SUMMARY.md","docs/menus/MENU-STRUCTURE-V2.2.md","docs/menus/MENU-STRUCTURE-VISUAL.md","docs/menus/MENU-UPDATE-V2.2-FINAL.md","docs/pinia-persistence-verification.md","docs/refactor-final-report.md","docs/refactor-plan-partner-customers.md","docs/refactor-progress.md","docs/refactor-session-summary-2026-01-06.md","docs/refactor-summary-partner-customers.md","docs/refactor-summary.md","docs/reports/AI_AGENT_IMPLEMENTATION_SUMMARY.md","docs/reports/CAMPAIGNS-MIGRATION-REPORT-20260110.md","docs/reports/CHANGELOG_ROUTER_FIX.md","docs/reports/CODE_AUDIT_REPORT.md","docs/reports/CODE_AUDIT_REPORT_2026-01-24.md","docs/reports/CODE_FIX_REPORT_2026-01-24.md","docs/reports/CONFIG_ANALYSIS_REPORT.md","docs/reports/DATABASE-INDEX-MIGRATION-REPORT.md","docs/reports/DATABASE-PARTITIONING-MERGE-SUMMARY.md","docs/reports/DEPENDENCY_AUDIT_REPORT.md","docs/reports/FRONTEND_AUDIT_REPORT.md","docs/reports/FULLSTACK-GAP-ANALYSIS.md","docs/reports/GAP_ANALYSIS_REPORT.md","docs/reports/IMMEDIATE-ACTION-SUMMARY.md","docs/reports/OPTIMIZATION-REPORT.md","docs/reports/P0-TASKS-COMPLETION-REPORT.md","docs/reports/P0-VERIFICATION-CHECKLIST.md","docs/reports/P1-SCHEMA-VALIDATION-REPORT.md","docs/reports/P1-SENTRY-INTEGRATION-REPORT.md","docs/reports/P2_OPTIMIZATION_REPORT.md","docs/reports/PERFORMANCE_ANALYSIS_REPORT.md","docs/reports/PERFORMANCE_OPTIMIZATION_REPORT.md","docs/reports/PHASE_0_COMPLETION_REPORT.md","docs/reports/PHASE_1_STATUS_REPORT.md","docs/reports/PRISMA_GAP_ANALYSIS.md","docs/reports/PROJECT_ANALYSIS_REPORT.md","docs/reports/PROJECT_COMPREHENSIVE_ANALYSIS_2026-01-24.md","docs/reports/REALITY_CHECK_20251222.md","docs/reports/ROUTER_WHITE_SCREEN_FINAL_FIX.md","docs/reports/SECURITY_AUDIT_REPORT_2026-01-24.md","docs/reports/TASK_COMPLETION_SUMMARY.md","docs/reports/TEST-CLEANUP-FIX-REPORT.md","docs/reports/TEST-EXECUTION-REPORT.md","docs/reports/TEST-FIXES-SUMMARY.md","docs/reports/TEST-INFRASTRUCTURE-COMPLETE.md","docs/reports/TEST_REPORT.md","docs/reports/TODO-ANALYSIS-REPORT.md","docs/testing/TEST_IMPROVEMENT_PLAN.md","docs/zod-fix-final-report.md","docs/zod-fix-verification.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/全域收敛状态总览_2026-02-10.md"]}],"total_commits":0,"head_commit":{"id":"7145a8553a880d8a94356baf7bcb4e2df4631e61","message":"Update predictive and RFM modules\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7145a8553a880d8a94356baf7bcb4e2df4631e61","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-11T01:01:39+08:00","added":[],"removed":[],"modified":["backend/src/modules/predictive-analytics/predictive-analytics.compat.routes.ts","backend/src/modules/predictive-analytics/predictive-analytics.controller.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/predictive-analytics/predictive-analytics.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.compat.routes.ts","backend/src/modules/rfm-analysis/rfm-analysis.controller.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/rfm-analysis/rfm-analysis.schema.ts","backend/src/modules/rfm-analysis/rfm-analysis.service.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":true,"fork":false,"template":false,"parent":null,"mirror":false,"size":31473,"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-24T00:01:59+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
|
19
|
1771862759
|
1771862764
|
0
|
1771862651
|
1771862764
|
NULL
|
|
0
|
Edit
Delete
|
|
15
|
描述你的修改
|
2
|
2
|
hello-world.yaml
|
14
|
1
|
0
|
refs/heads/main
|
061edb11a5fd660934c3b57491d585077b3805cf
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"b895cbd8b188037f0f5dbfb0fcfef056dfc36ebc","after":"061edb11a5fd660934c3b57491d585077b3805cf","compare_url":"https://gitea.g-hi.com/juhai/testpc/compare/b895cbd8b188037f0f5dbfb0fcfef056dfc36ebc...061edb11a5fd660934c3b57491d585077b3805cf","commits":[{"id":"061edb11a5fd660934c3b57491d585077b3805cf","message":"描述你的修改\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/061edb11a5fd660934c3b57491d585077b3805cf","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-12T13:39:17+08:00","added":[],"removed":[],"modified":[".gitea/workflows/hello-world.yaml"]}],"total_commits":0,"head_commit":{"id":"061edb11a5fd660934c3b57491d585077b3805cf","message":"描述你的修改\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/061edb11a5fd660934c3b57491d585077b3805cf","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-12T13:39:17+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":17717,"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:35: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
|
2
|
0
|
1770875534
|
0
|
1770874771
|
1770875534
|
NULL
|
|
0
|
Edit
Delete
|
|
52
|
docs: 添加项目缺失组件全面分析报告
|
6
|
5
|
test-comprehensive.yml
|
13
|
5
|
0
|
refs/heads/main
|
c8adeb7142f7f1b57a10bfffc3de856524997227
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e15e357a819170a89dbcfd25fe33ea58972ae0ff","after":"c8adeb7142f7f1b57a10bfffc3de856524997227","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/e15e357a819170a89dbcfd25fe33ea58972ae0ff...c8adeb7142f7f1b57a10bfffc3de856524997227","commits":[{"id":"c8adeb7142f7f1b57a10bfffc3de856524997227","message":"docs: 添加项目缺失组件全面分析报告\n\n扫描 194 个后端模块、211 个前端 API 模块、236 个视图目录、67 个状态机,\n从 6 个维度系统分析项目缺失:后端 5 层完整性、前后端对应关系、\n事件发布覆盖、多租户隔离、MODULE_REGISTRY 注册、状态机覆盖。\n\nhttps://claude.ai/code/session_01GCDecp19keemJd6cdsCb7u\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c8adeb7142f7f1b57a10bfffc3de856524997227","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-02-07T00:59:30Z","added":["docs/MISSING-COMPONENTS-ANALYSIS.md"],"removed":[],"modified":[]},{"id":"ef7d327658968d43877a720fa4769acb2363b556","message":"chore: 添加用户权限检查和缓存清理脚本\n\n- check-user-permissions.ts: 检查用户角色和 MEDDPICC 相关权限\n- clear-user-cache.ts: 清除用户和角色权限的 Redis 缓存\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ef7d327658968d43877a720fa4769acb2363b556","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-01-26T22:50:15+08:00","added":["backend/scripts/check-user-permissions.ts","backend/scripts/clear-user-cache.ts"],"removed":[],"modified":[]},{"id":"4cf8f8a37c80ac40fc47068d0eb5c4e4377cde2c","message":"fix: 修复 groupbuy 模块 TypeScript 类型错误\n\n修复内容:\n- groupbuy-commissions: 修复 Prisma 表名类型和 JSON 字段类型\n- groupbuy-influencers: 修复 Prisma 表名类型\n- groupbuy-inventory: 修复 Prisma 表名类型\n- groupbuy-orders: 修复 Prisma 表名类型和 JSON 字段类型\n- groupbuy-participants: 修复 schema 和 service 类型\n- groupbuy-platforms: 修复 controller 和 service 类型\n- groupbuy-pricing: 修复 Prisma 表名类型\n- groupbuy-products: 修复 Prisma 表名类型和 JSON 字段类型\n- groupbuy-promotions: 修复 Prisma 表名类型\n- groupbuy-redemptions: 修复 schema 和 service 类型\n- groupbuy-reviews: 修复 controller 和 service 类型\n- groupbuy-settlements: 修复 BizCodePrefix 导入和 JSON 字段类型\n\n修复模式:\n- (prisma as any).table_name 处理未在 schema 中的表\n- Prisma.InputJsonValue 处理 JSON 字段类型\n- Record\u003cstring, unknown\u003e 替代 Record\u003cstring, any\u003e\n- as any 处理复杂查询参数类型\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/4cf8f8a37c80ac40fc47068d0eb5c4e4377cde2c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-01-26T22:40:45+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260126100000_add_critical_indexes/migration.sql","backend/src/modules/geo-reviews/index.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.controller.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.service.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.service.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-orders/groupbuy-order.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.schema.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.controller.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.service.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/groupbuy-products/groupbuy-product.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.schema.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.controller.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.service.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.controller.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.service.ts"]},{"id":"3b059cbbbaed4d76d3197383a280b976511f20a6","message":"fix: 修复多模块 TypeScript 类型错误\n\n主要修复:\n- geo-analytics: 修复 Prisma Decimal 类型导入和 OpenAPI 文档类型\n- disbursements: 修复控制器类型错误\n- files: 修复文件服务和控制器类型\n- event-subscriptions: 确认类型正确\n- 其他模块: 修复各类 TypeScript 类型推断问题\n\n涉及 67 个文件的类型安全改进\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3b059cbbbaed4d76d3197383a280b976511f20a6","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-01-26T22:05:32+08:00","added":[],"removed":[],"modified":["backend/src/consumers/ai-agent-task-processor.consumer.ts","backend/src/consumers/ai-task-processor.consumer.ts","backend/src/modules/ad-accounts/ad-account.service.ts","backend/src/modules/ad-campaigns/ad-campaigns.service.ts","backend/src/modules/ad-reports/ad-report.service.ts","backend/src/modules/ai-agents/ai-agent.docs.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/task-heartbeat.service.ts","backend/src/modules/ai-agents/services/workflow-instance.service.ts","backend/src/modules/alliance-packages/alliance-package.schema.ts","backend/src/modules/alliance-packages/alliance-package.service.ts","backend/src/modules/alliance-products/alliance-product.service.ts","backend/src/modules/alliance-referrals/alliance-referral.service.ts","backend/src/modules/alliance-settlements/alliance-settlement.service.ts","backend/src/modules/assets/asset.service.ts","backend/src/modules/campaign-use-case-templates/use-case-template.service.ts","backend/src/modules/channels/channel.transformer.ts","backend/src/modules/community-activities/community-activity.service.ts","backend/src/modules/community-bots/community-bot.service.ts","backend/src/modules/community-fission/community-fission.service.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-tasks/community-task.service.ts","backend/src/modules/content-distribution/content-distribution.service.ts","backend/src/modules/content-library/content-library.controller.ts","backend/src/modules/content-library/content-library.service.ts","backend/src/modules/contract-templates/contract-template.service.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.docs.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/cpq/cpq.controller.ts","backend/src/modules/customer-marketing/customer-marketing.service.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customer-profit/customer-profit.service.ts","backend/src/modules/customers/customer-enhanced.docs.ts","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/customers/customer.service.ts","backend/src/modules/customers/customer.transformer.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/dashboard/dashboard.controller.ts","backend/src/modules/departments/department.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/devices/device.service.ts","backend/src/modules/disbursements/disbursement.controller.ts","backend/src/modules/event-subscriptions/event-subscriptions.service.ts","backend/src/modules/files/file.controller.ts","backend/src/modules/files/file.service.ts","backend/src/modules/finance/event-payment-integration.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/finance/treasury.service.ts","backend/src/modules/fulfillment/acceptance-automation.service.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-analytics/geo-analytics.docs.ts","backend/src/modules/geo-analytics/geo-analytics.service.ts","backend/src/modules/geo-fences/geo-fences.controller.ts","backend/src/modules/geo-fences/geo-fences.service.ts","backend/src/modules/geo-fences/index.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/geo-keywords/index.ts","backend/src/modules/geo-pois/geo-poi.service.ts","backend/src/modules/geo-pois/index.ts","backend/src/shared/openapi/registry.ts","frontend/src/api/client.ts","frontend/src/views/acquisition/composables/useTodos.ts"]},{"id":"e9edc5693579b5dd189b08eacef3678ceaf3be4a","message":"fix(ai-agents): 修复 LeadCollector 组件 API 响应解包错误\n\n问题:\n- client.ts 拦截器对非分页响应自动解包 response.data\n- LeadCollector.vue 错误地使用 response.data.data 导致 undefined\n\n修复 4 处 API 调用:\n- loadIndustries: getSupportedIndustries 响应解包\n- loadIndustryKeywords: getIndustryKeywords 响应解包\n- handleCollect: collectLeads 响应解包\n- handleCheckDuplicate: detectDuplicate 响应解包\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e9edc5693579b5dd189b08eacef3678ceaf3be4a","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-01-26T21:25:55+08:00","added":[],"removed":[],"modified":["frontend/src/views/ai-agents/LeadCollector.vue"]}],"total_commits":0,"head_commit":{"id":"c8adeb7142f7f1b57a10bfffc3de856524997227","message":"docs: 添加项目缺失组件全面分析报告\n\n扫描 194 个后端模块、211 个前端 API 模块、236 个视图目录、67 个状态机,\n从 6 个维度系统分析项目缺失:后端 5 层完整性、前后端对应关系、\n事件发布覆盖、多租户隔离、MODULE_REGISTRY 注册、状态机覆盖。\n\nhttps://claude.ai/code/session_01GCDecp19keemJd6cdsCb7u\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c8adeb7142f7f1b57a10bfffc3de856524997227","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-02-07T00:59:30Z","added":["docs/MISSING-COMPONENTS-ANALYSIS.md"],"removed":[],"modified":[]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/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":true,"fork":false,"template":false,"parent":null,"mirror":false,"size":29511,"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-24T00:01:38+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
|
18
|
1771862651
|
1771862652
|
0
|
1771862519
|
1771862652
|
NULL
|
|
0
|
Edit
Delete
|
|
14
|
测11
|
2
|
2
|
hello-world.yaml
|
13
|
1
|
0
|
refs/heads/main
|
b895cbd8b188037f0f5dbfb0fcfef056dfc36ebc
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"646aa1dc79636bb90dbfec0b6b9fb9aef11c7556","after":"b895cbd8b188037f0f5dbfb0fcfef056dfc36ebc","compare_url":"https://gitea.g-hi.com/juhai/testpc/compare/646aa1dc79636bb90dbfec0b6b9fb9aef11c7556...b895cbd8b188037f0f5dbfb0fcfef056dfc36ebc","commits":[{"id":"b895cbd8b188037f0f5dbfb0fcfef056dfc36ebc","message":"测11\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/b895cbd8b188037f0f5dbfb0fcfef056dfc36ebc","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-11T17:35:21+08:00","added":[],"removed":[],"modified":[".gitea/workflows/hello-world.yaml"]}],"total_commits":0,"head_commit":{"id":"b895cbd8b188037f0f5dbfb0fcfef056dfc36ebc","message":"测11\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/b895cbd8b188037f0f5dbfb0fcfef056dfc36ebc","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-11T17:35:21+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":17715,"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:31:58+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
|
1770802531
|
1770802550
|
0
|
1770802529
|
1770802550
|
NULL
|
|
0
|
Edit
Delete
|
|
51
|
docs: 添加项目缺失组件全面分析报告
|
6
|
5
|
ci.yml
|
12
|
5
|
0
|
refs/heads/main
|
c8adeb7142f7f1b57a10bfffc3de856524997227
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e15e357a819170a89dbcfd25fe33ea58972ae0ff","after":"c8adeb7142f7f1b57a10bfffc3de856524997227","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/e15e357a819170a89dbcfd25fe33ea58972ae0ff...c8adeb7142f7f1b57a10bfffc3de856524997227","commits":[{"id":"c8adeb7142f7f1b57a10bfffc3de856524997227","message":"docs: 添加项目缺失组件全面分析报告\n\n扫描 194 个后端模块、211 个前端 API 模块、236 个视图目录、67 个状态机,\n从 6 个维度系统分析项目缺失:后端 5 层完整性、前后端对应关系、\n事件发布覆盖、多租户隔离、MODULE_REGISTRY 注册、状态机覆盖。\n\nhttps://claude.ai/code/session_01GCDecp19keemJd6cdsCb7u\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c8adeb7142f7f1b57a10bfffc3de856524997227","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-02-07T00:59:30Z","added":["docs/MISSING-COMPONENTS-ANALYSIS.md"],"removed":[],"modified":[]},{"id":"ef7d327658968d43877a720fa4769acb2363b556","message":"chore: 添加用户权限检查和缓存清理脚本\n\n- check-user-permissions.ts: 检查用户角色和 MEDDPICC 相关权限\n- clear-user-cache.ts: 清除用户和角色权限的 Redis 缓存\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ef7d327658968d43877a720fa4769acb2363b556","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-01-26T22:50:15+08:00","added":["backend/scripts/check-user-permissions.ts","backend/scripts/clear-user-cache.ts"],"removed":[],"modified":[]},{"id":"4cf8f8a37c80ac40fc47068d0eb5c4e4377cde2c","message":"fix: 修复 groupbuy 模块 TypeScript 类型错误\n\n修复内容:\n- groupbuy-commissions: 修复 Prisma 表名类型和 JSON 字段类型\n- groupbuy-influencers: 修复 Prisma 表名类型\n- groupbuy-inventory: 修复 Prisma 表名类型\n- groupbuy-orders: 修复 Prisma 表名类型和 JSON 字段类型\n- groupbuy-participants: 修复 schema 和 service 类型\n- groupbuy-platforms: 修复 controller 和 service 类型\n- groupbuy-pricing: 修复 Prisma 表名类型\n- groupbuy-products: 修复 Prisma 表名类型和 JSON 字段类型\n- groupbuy-promotions: 修复 Prisma 表名类型\n- groupbuy-redemptions: 修复 schema 和 service 类型\n- groupbuy-reviews: 修复 controller 和 service 类型\n- groupbuy-settlements: 修复 BizCodePrefix 导入和 JSON 字段类型\n\n修复模式:\n- (prisma as any).table_name 处理未在 schema 中的表\n- Prisma.InputJsonValue 处理 JSON 字段类型\n- Record\u003cstring, unknown\u003e 替代 Record\u003cstring, any\u003e\n- as any 处理复杂查询参数类型\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/4cf8f8a37c80ac40fc47068d0eb5c4e4377cde2c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-01-26T22:40:45+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260126100000_add_critical_indexes/migration.sql","backend/src/modules/geo-reviews/index.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.controller.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.service.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.service.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-orders/groupbuy-order.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.schema.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.controller.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.service.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/groupbuy-products/groupbuy-product.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.schema.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.controller.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.service.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.controller.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.service.ts"]},{"id":"3b059cbbbaed4d76d3197383a280b976511f20a6","message":"fix: 修复多模块 TypeScript 类型错误\n\n主要修复:\n- geo-analytics: 修复 Prisma Decimal 类型导入和 OpenAPI 文档类型\n- disbursements: 修复控制器类型错误\n- files: 修复文件服务和控制器类型\n- event-subscriptions: 确认类型正确\n- 其他模块: 修复各类 TypeScript 类型推断问题\n\n涉及 67 个文件的类型安全改进\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3b059cbbbaed4d76d3197383a280b976511f20a6","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-01-26T22:05:32+08:00","added":[],"removed":[],"modified":["backend/src/consumers/ai-agent-task-processor.consumer.ts","backend/src/consumers/ai-task-processor.consumer.ts","backend/src/modules/ad-accounts/ad-account.service.ts","backend/src/modules/ad-campaigns/ad-campaigns.service.ts","backend/src/modules/ad-reports/ad-report.service.ts","backend/src/modules/ai-agents/ai-agent.docs.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/task-heartbeat.service.ts","backend/src/modules/ai-agents/services/workflow-instance.service.ts","backend/src/modules/alliance-packages/alliance-package.schema.ts","backend/src/modules/alliance-packages/alliance-package.service.ts","backend/src/modules/alliance-products/alliance-product.service.ts","backend/src/modules/alliance-referrals/alliance-referral.service.ts","backend/src/modules/alliance-settlements/alliance-settlement.service.ts","backend/src/modules/assets/asset.service.ts","backend/src/modules/campaign-use-case-templates/use-case-template.service.ts","backend/src/modules/channels/channel.transformer.ts","backend/src/modules/community-activities/community-activity.service.ts","backend/src/modules/community-bots/community-bot.service.ts","backend/src/modules/community-fission/community-fission.service.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-tasks/community-task.service.ts","backend/src/modules/content-distribution/content-distribution.service.ts","backend/src/modules/content-library/content-library.controller.ts","backend/src/modules/content-library/content-library.service.ts","backend/src/modules/contract-templates/contract-template.service.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.docs.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/cpq/cpq.controller.ts","backend/src/modules/customer-marketing/customer-marketing.service.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customer-profit/customer-profit.service.ts","backend/src/modules/customers/customer-enhanced.docs.ts","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/customers/customer.service.ts","backend/src/modules/customers/customer.transformer.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/dashboard/dashboard.controller.ts","backend/src/modules/departments/department.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/devices/device.service.ts","backend/src/modules/disbursements/disbursement.controller.ts","backend/src/modules/event-subscriptions/event-subscriptions.service.ts","backend/src/modules/files/file.controller.ts","backend/src/modules/files/file.service.ts","backend/src/modules/finance/event-payment-integration.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/finance/treasury.service.ts","backend/src/modules/fulfillment/acceptance-automation.service.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-analytics/geo-analytics.docs.ts","backend/src/modules/geo-analytics/geo-analytics.service.ts","backend/src/modules/geo-fences/geo-fences.controller.ts","backend/src/modules/geo-fences/geo-fences.service.ts","backend/src/modules/geo-fences/index.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/geo-keywords/index.ts","backend/src/modules/geo-pois/geo-poi.service.ts","backend/src/modules/geo-pois/index.ts","backend/src/shared/openapi/registry.ts","frontend/src/api/client.ts","frontend/src/views/acquisition/composables/useTodos.ts"]},{"id":"e9edc5693579b5dd189b08eacef3678ceaf3be4a","message":"fix(ai-agents): 修复 LeadCollector 组件 API 响应解包错误\n\n问题:\n- client.ts 拦截器对非分页响应自动解包 response.data\n- LeadCollector.vue 错误地使用 response.data.data 导致 undefined\n\n修复 4 处 API 调用:\n- loadIndustries: getSupportedIndustries 响应解包\n- loadIndustryKeywords: getIndustryKeywords 响应解包\n- handleCollect: collectLeads 响应解包\n- handleCheckDuplicate: detectDuplicate 响应解包\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e9edc5693579b5dd189b08eacef3678ceaf3be4a","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-01-26T21:25:55+08:00","added":[],"removed":[],"modified":["frontend/src/views/ai-agents/LeadCollector.vue"]}],"total_commits":0,"head_commit":{"id":"c8adeb7142f7f1b57a10bfffc3de856524997227","message":"docs: 添加项目缺失组件全面分析报告\n\n扫描 194 个后端模块、211 个前端 API 模块、236 个视图目录、67 个状态机,\n从 6 个维度系统分析项目缺失:后端 5 层完整性、前后端对应关系、\n事件发布覆盖、多租户隔离、MODULE_REGISTRY 注册、状态机覆盖。\n\nhttps://claude.ai/code/session_01GCDecp19keemJd6cdsCb7u\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c8adeb7142f7f1b57a10bfffc3de856524997227","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-02-07T00:59:30Z","added":["docs/MISSING-COMPONENTS-ANALYSIS.md"],"removed":[],"modified":[]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/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":true,"fork":false,"template":false,"parent":null,"mirror":false,"size":29511,"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-24T00:01:38+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
|
18
|
1771862651
|
1771862651
|
0
|
1771862518
|
1771862651
|
NULL
|
|
0
|
Edit
Delete
|
|
13
|
测试修改3333111
|
2
|
2
|
hello-world.yaml
|
12
|
1
|
0
|
refs/heads/main
|
646aa1dc79636bb90dbfec0b6b9fb9aef11c7556
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"4dfa289ffffceaeca9d550f8e594eb56a3c414be","after":"646aa1dc79636bb90dbfec0b6b9fb9aef11c7556","compare_url":"https://gitea.g-hi.com/juhai/testpc/compare/4dfa289ffffceaeca9d550f8e594eb56a3c414be...646aa1dc79636bb90dbfec0b6b9fb9aef11c7556","commits":[{"id":"646aa1dc79636bb90dbfec0b6b9fb9aef11c7556","message":"测试修改3333111\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/646aa1dc79636bb90dbfec0b6b9fb9aef11c7556","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-11T17:31:46+08:00","added":[],"removed":[],"modified":[".gitea/workflows/hello-world.yaml"]}],"total_commits":0,"head_commit":{"id":"646aa1dc79636bb90dbfec0b6b9fb9aef11c7556","message":"测试修改3333111\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/646aa1dc79636bb90dbfec0b6b9fb9aef11c7556","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-11T17:31:46+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":17713,"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:24:10+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
|
1770802313
|
1770802318
|
0
|
1770802312
|
1770802318
|
NULL
|
|
0
|
Edit
Delete
|
|
50
|
feat: 新增 P1 优先级状态机(AI Agent、AI 任务、广告计划、选址评估)
|
6
|
5
|
test-comprehensive.yml
|
11
|
5
|
0
|
refs/heads/main
|
e15e357a819170a89dbcfd25fe33ea58972ae0ff
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"a7c22fc0f5e2d113210bb58646dcdbf7381be245","after":"e15e357a819170a89dbcfd25fe33ea58972ae0ff","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/a7c22fc0f5e2d113210bb58646dcdbf7381be245...e15e357a819170a89dbcfd25fe33ea58972ae0ff","commits":[{"id":"e15e357a819170a89dbcfd25fe33ea58972ae0ff","message":"feat: 新增 P1 优先级状态机(AI Agent、AI 任务、广告计划、选址评估)\n\n- ai-agent: 管理 AI Agent 员工生命周期(未激活→活跃→训练中→已暂停)\n- ai-task: 管理 AI 任务执行流程(待处理→处理中→已完成/失败/已取消)\n- ad-campaign: 管理广告投放全流程(草稿→待审批→已批准→投放中→已完成)\n- location-assessment: 管理门店选址评估(草稿→已提交→评审中→实地勘察→待审批→已批准)\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e15e357a819170a89dbcfd25fe33ea58972ae0ff","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-01-25T22:55:03Z","added":["backend/src/shared/state-machines/machines/ad-campaign.machine.ts","backend/src/shared/state-machines/machines/ai-agent.machine.ts","backend/src/shared/state-machines/machines/ai-task.machine.ts","backend/src/shared/state-machines/machines/location-assessment.machine.ts"],"removed":[],"modified":["backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/utils/transitions.ts"]},{"id":"1ca105d537327f10bfa4ff7b4dd263c21711a3d5","message":"feat: 新增团购商品、团购核销、社媒发布状态机\n\n- groupbuy-product: 管理团购商品生命周期(草稿→审核→上架→下架/售罄/过期)\n- groupbuy-redemption: 管理券码核销流程(待核销→已核销/已退款/已过期)\n- social-post: 管理社媒内容发布(草稿→定时→发布中→已发布/失败)\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1ca105d537327f10bfa4ff7b4dd263c21711a3d5","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-01-25T22:46:38Z","added":["backend/src/shared/state-machines/machines/groupbuy-product.machine.ts","backend/src/shared/state-machines/machines/groupbuy-redemption.machine.ts","backend/src/shared/state-machines/machines/social-post.machine.ts"],"removed":[],"modified":["backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/utils/transitions.ts"]},{"id":"e8d10339466d1d493d672174bb25eaaf804f5fa7","message":"feat: 新增联盟商家、培训场次、联盟结算状态机\n\n- 新增 alliance-partner.machine.ts (联盟商家状态机)\n - 状态:pending → approved → active → suspended/terminated\n - 支持审批、激活、冻结、终止等操作\n\n- 新增 training-session.machine.ts (培训场次状态机)\n - 状态:pending → enrolling → in_progress → completed\n - 支持报名开放、开始、完成、取消等操作\n\n- 新增 alliance-settlement.machine.ts (联盟结算状态机)\n - 状态:pending → confirmed → approved → paid\n - 支持确认、审批、支付、拒绝等操作\n\n- 更新 index.ts 导出新状态机\n- 更新 transitions.ts 添加转换验证函数\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e8d10339466d1d493d672174bb25eaaf804f5fa7","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-01-25T22:40:37Z","added":["backend/src/shared/state-machines/machines/alliance-partner.machine.ts","backend/src/shared/state-machines/machines/alliance-settlement.machine.ts","backend/src/shared/state-machines/machines/training-session.machine.ts"],"removed":[],"modified":["backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/utils/transitions.ts"]},{"id":"986b5900952c599b9590cce0b9d832ab58f86504","message":"feat: 新增团购扩展状态机\n\n- 新增 groupbuy-influencer.machine.ts (团购达人状态机)\n- 新增 groupbuy-commission.machine.ts (团购佣金状态机)\n- 新增 groupbuy-promotion.machine.ts (团购促销状态机)\n- 更新 index.ts 导出新状态机\n- 更新 transitions.ts 添加转换验证函数\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/986b5900952c599b9590cce0b9d832ab58f86504","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-01-25T22:35:57Z","added":["backend/src/shared/state-machines/machines/groupbuy-commission.machine.ts","backend/src/shared/state-machines/machines/groupbuy-influencer.machine.ts","backend/src/shared/state-machines/machines/groupbuy-promotion.machine.ts"],"removed":[],"modified":["backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/utils/transitions.ts"]},{"id":"43e15382c2d1217602fc7ef10114983770e23e14","message":"feat: 新增 HR 模块和资产管理状态机\n\n- 新增 leave-request.machine.ts (请假申请状态机)\n- 新增 overtime-request.machine.ts (加班申请状态机)\n- 新增 serial-number.machine.ts (序列号/资产状态机)\n- 更新 index.ts 导出新状态机\n- 更新 transitions.ts 添加转换验证函数\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/43e15382c2d1217602fc7ef10114983770e23e14","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-01-25T22:28:50Z","added":["backend/src/shared/state-machines/machines/leave-request.machine.ts","backend/src/shared/state-machines/machines/overtime-request.machine.ts","backend/src/shared/state-machines/machines/serial-number.machine.ts"],"removed":[],"modified":["backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/utils/transitions.ts"]}],"total_commits":0,"head_commit":{"id":"e15e357a819170a89dbcfd25fe33ea58972ae0ff","message":"feat: 新增 P1 优先级状态机(AI Agent、AI 任务、广告计划、选址评估)\n\n- ai-agent: 管理 AI Agent 员工生命周期(未激活→活跃→训练中→已暂停)\n- ai-task: 管理 AI 任务执行流程(待处理→处理中→已完成/失败/已取消)\n- ad-campaign: 管理广告投放全流程(草稿→待审批→已批准→投放中→已完成)\n- location-assessment: 管理门店选址评估(草稿→已提交→评审中→实地勘察→待审批→已批准)\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e15e357a819170a89dbcfd25fe33ea58972ae0ff","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-01-25T22:55:03Z","added":["backend/src/shared/state-machines/machines/ad-campaign.machine.ts","backend/src/shared/state-machines/machines/ai-agent.machine.ts","backend/src/shared/state-machines/machines/ai-task.machine.ts","backend/src/shared/state-machines/machines/location-assessment.machine.ts"],"removed":[],"modified":["backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/utils/transitions.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":true,"fork":false,"template":false,"parent":null,"mirror":false,"size":26375,"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-24T00:00:13+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
|
18
|
1771862518
|
1771862519
|
0
|
1771862496
|
1771862519
|
NULL
|
|
0
|
Edit
Delete
|
|
12
|
测试修改3333
|
2
|
2
|
hello-world.yaml
|
11
|
1
|
0
|
refs/heads/main
|
4dfa289ffffceaeca9d550f8e594eb56a3c414be
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"86003a30fcfeb3966084629ff6b4530693a642fa","after":"4dfa289ffffceaeca9d550f8e594eb56a3c414be","compare_url":"https://gitea.g-hi.com/juhai/testpc/compare/86003a30fcfeb3966084629ff6b4530693a642fa...4dfa289ffffceaeca9d550f8e594eb56a3c414be","commits":[{"id":"4dfa289ffffceaeca9d550f8e594eb56a3c414be","message":"测试修改3333\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/4dfa289ffffceaeca9d550f8e594eb56a3c414be","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-11T17:23:59+08:00","added":[],"removed":[],"modified":[".gitea/workflows/hello-world.yaml"]}],"total_commits":0,"head_commit":{"id":"4dfa289ffffceaeca9d550f8e594eb56a3c414be","message":"测试修改3333\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/4dfa289ffffceaeca9d550f8e594eb56a3c414be","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-11T17:23:59+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":17711,"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:19:58+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
|
1770801845
|
1770801850
|
0
|
1770801845
|
1770801850
|
NULL
|
|
0
|
Edit
Delete
|
|
49
|
feat: 新增 P1 优先级状态机(AI Agent、AI 任务、广告计划、选址评估)
|
6
|
5
|
ci.yml
|
10
|
5
|
0
|
refs/heads/main
|
e15e357a819170a89dbcfd25fe33ea58972ae0ff
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"a7c22fc0f5e2d113210bb58646dcdbf7381be245","after":"e15e357a819170a89dbcfd25fe33ea58972ae0ff","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/a7c22fc0f5e2d113210bb58646dcdbf7381be245...e15e357a819170a89dbcfd25fe33ea58972ae0ff","commits":[{"id":"e15e357a819170a89dbcfd25fe33ea58972ae0ff","message":"feat: 新增 P1 优先级状态机(AI Agent、AI 任务、广告计划、选址评估)\n\n- ai-agent: 管理 AI Agent 员工生命周期(未激活→活跃→训练中→已暂停)\n- ai-task: 管理 AI 任务执行流程(待处理→处理中→已完成/失败/已取消)\n- ad-campaign: 管理广告投放全流程(草稿→待审批→已批准→投放中→已完成)\n- location-assessment: 管理门店选址评估(草稿→已提交→评审中→实地勘察→待审批→已批准)\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e15e357a819170a89dbcfd25fe33ea58972ae0ff","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-01-25T22:55:03Z","added":["backend/src/shared/state-machines/machines/ad-campaign.machine.ts","backend/src/shared/state-machines/machines/ai-agent.machine.ts","backend/src/shared/state-machines/machines/ai-task.machine.ts","backend/src/shared/state-machines/machines/location-assessment.machine.ts"],"removed":[],"modified":["backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/utils/transitions.ts"]},{"id":"1ca105d537327f10bfa4ff7b4dd263c21711a3d5","message":"feat: 新增团购商品、团购核销、社媒发布状态机\n\n- groupbuy-product: 管理团购商品生命周期(草稿→审核→上架→下架/售罄/过期)\n- groupbuy-redemption: 管理券码核销流程(待核销→已核销/已退款/已过期)\n- social-post: 管理社媒内容发布(草稿→定时→发布中→已发布/失败)\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1ca105d537327f10bfa4ff7b4dd263c21711a3d5","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-01-25T22:46:38Z","added":["backend/src/shared/state-machines/machines/groupbuy-product.machine.ts","backend/src/shared/state-machines/machines/groupbuy-redemption.machine.ts","backend/src/shared/state-machines/machines/social-post.machine.ts"],"removed":[],"modified":["backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/utils/transitions.ts"]},{"id":"e8d10339466d1d493d672174bb25eaaf804f5fa7","message":"feat: 新增联盟商家、培训场次、联盟结算状态机\n\n- 新增 alliance-partner.machine.ts (联盟商家状态机)\n - 状态:pending → approved → active → suspended/terminated\n - 支持审批、激活、冻结、终止等操作\n\n- 新增 training-session.machine.ts (培训场次状态机)\n - 状态:pending → enrolling → in_progress → completed\n - 支持报名开放、开始、完成、取消等操作\n\n- 新增 alliance-settlement.machine.ts (联盟结算状态机)\n - 状态:pending → confirmed → approved → paid\n - 支持确认、审批、支付、拒绝等操作\n\n- 更新 index.ts 导出新状态机\n- 更新 transitions.ts 添加转换验证函数\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e8d10339466d1d493d672174bb25eaaf804f5fa7","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-01-25T22:40:37Z","added":["backend/src/shared/state-machines/machines/alliance-partner.machine.ts","backend/src/shared/state-machines/machines/alliance-settlement.machine.ts","backend/src/shared/state-machines/machines/training-session.machine.ts"],"removed":[],"modified":["backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/utils/transitions.ts"]},{"id":"986b5900952c599b9590cce0b9d832ab58f86504","message":"feat: 新增团购扩展状态机\n\n- 新增 groupbuy-influencer.machine.ts (团购达人状态机)\n- 新增 groupbuy-commission.machine.ts (团购佣金状态机)\n- 新增 groupbuy-promotion.machine.ts (团购促销状态机)\n- 更新 index.ts 导出新状态机\n- 更新 transitions.ts 添加转换验证函数\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/986b5900952c599b9590cce0b9d832ab58f86504","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-01-25T22:35:57Z","added":["backend/src/shared/state-machines/machines/groupbuy-commission.machine.ts","backend/src/shared/state-machines/machines/groupbuy-influencer.machine.ts","backend/src/shared/state-machines/machines/groupbuy-promotion.machine.ts"],"removed":[],"modified":["backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/utils/transitions.ts"]},{"id":"43e15382c2d1217602fc7ef10114983770e23e14","message":"feat: 新增 HR 模块和资产管理状态机\n\n- 新增 leave-request.machine.ts (请假申请状态机)\n- 新增 overtime-request.machine.ts (加班申请状态机)\n- 新增 serial-number.machine.ts (序列号/资产状态机)\n- 更新 index.ts 导出新状态机\n- 更新 transitions.ts 添加转换验证函数\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/43e15382c2d1217602fc7ef10114983770e23e14","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-01-25T22:28:50Z","added":["backend/src/shared/state-machines/machines/leave-request.machine.ts","backend/src/shared/state-machines/machines/overtime-request.machine.ts","backend/src/shared/state-machines/machines/serial-number.machine.ts"],"removed":[],"modified":["backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/utils/transitions.ts"]}],"total_commits":0,"head_commit":{"id":"e15e357a819170a89dbcfd25fe33ea58972ae0ff","message":"feat: 新增 P1 优先级状态机(AI Agent、AI 任务、广告计划、选址评估)\n\n- ai-agent: 管理 AI Agent 员工生命周期(未激活→活跃→训练中→已暂停)\n- ai-task: 管理 AI 任务执行流程(待处理→处理中→已完成/失败/已取消)\n- ad-campaign: 管理广告投放全流程(草稿→待审批→已批准→投放中→已完成)\n- location-assessment: 管理门店选址评估(草稿→已提交→评审中→实地勘察→待审批→已批准)\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e15e357a819170a89dbcfd25fe33ea58972ae0ff","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-01-25T22:55:03Z","added":["backend/src/shared/state-machines/machines/ad-campaign.machine.ts","backend/src/shared/state-machines/machines/ai-agent.machine.ts","backend/src/shared/state-machines/machines/ai-task.machine.ts","backend/src/shared/state-machines/machines/location-assessment.machine.ts"],"removed":[],"modified":["backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/utils/transitions.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":true,"fork":false,"template":false,"parent":null,"mirror":false,"size":26375,"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-24T00:00:13+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
|
18
|
1771862517
|
1771862518
|
0
|
1771862495
|
1771862518
|
NULL
|
|
0
|
Edit
Delete
|
|
11
|
测试修改3333
|
2
|
2
|
hello-world.yaml
|
10
|
1
|
0
|
refs/heads/main
|
86003a30fcfeb3966084629ff6b4530693a642fa
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"bbba1e40297c5378b23d53b0161cc6a10581ccf1","after":"86003a30fcfeb3966084629ff6b4530693a642fa","compare_url":"https://gitea.g-hi.com/juhai/testpc/compare/bbba1e40297c5378b23d53b0161cc6a10581ccf1...86003a30fcfeb3966084629ff6b4530693a642fa","commits":[{"id":"86003a30fcfeb3966084629ff6b4530693a642fa","message":"测试修改3333\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/86003a30fcfeb3966084629ff6b4530693a642fa","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-11T17:19:45+08:00","added":[],"removed":[],"modified":[".gitea/workflows/hello-world.yaml"]}],"total_commits":0,"head_commit":{"id":"86003a30fcfeb3966084629ff6b4530693a642fa","message":"测试修改3333\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/86003a30fcfeb3966084629ff6b4530693a642fa","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-11T17:19:45+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":17709,"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:16:56+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
|
1770801593
|
1770801598
|
0
|
1770801592
|
1770801598
|
NULL
|
|
0
|
Edit
Delete
|
|
11711
|
build: 完善Release版本构建配置
|
13
|
5
|
codeql-analysis.yml
|
9
|
-2
|
46
|
refs/heads/main
|
6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","compare_url":"https://gitea.g-hi.com/luoanwu/printer-server/compare/c254333cc45c082124d3d4fd01a4a3fc3fda7296...6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","commits":[{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},{"id":"b44b6415c67f54b2d1bcd688757fec2aaf1686f4","message":"fix: 修复PrintJob状态转换和数据库初始化崩溃问题\n\n1. PrinterDatabase.optimizeDatabase()\n - 将PRAGMA命令从execSQL改为query()方法\n - Room的SupportSQLiteDatabase对PRAGMA有限制\n - 添加异常处理确保数据库优化失败不影响启动\n\n2. PrinterService.onTaskFailed()\n - 添加状态检查逻辑,根据当前状态决定处理方式\n - FAILED状态:执行重试逻辑\n - PRINTING状态:先转换为FAILED再重试\n - 其他状态:直接重新调度执行\n\n3. PrintingApplicationService.executePrintJob()\n - 新增prepareJobForPrinting()确保状态正确转换\n - CREATED -\u003e QUEUED -\u003e PRINTING 状态流转\n - 新增handleJobFailure()安全处理失败\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/b44b6415c67f54b2d1bcd688757fec2aaf1686f4","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:54:24+08:00","added":[],"removed":[],"modified":["printer-redesign/application/service/PrinterService.java","printer-redesign/application/service/PrintingApplicationService.java","printer-redesign/infrastructure/database/PrinterDatabase.java","printer-redesign/scripts/build-release.sh"]},{"id":"d2d0385e8b5c1b06d7e59f108c6e9f845905c841","message":"fix: 修复编译错误并成功构建APK\n\n修复内容:\n- PrintTestActivity: 重写以修复API兼容性问题\n - observeEnabled()替代getEnabledPrinters()\n - 移除PrinterApplication依赖\n - 修复Priority/PrintType方法调用\n - 修复rawContent类型(String→byte[])\n- OrderFormatterService: 补充shouldBeep()方法闭合括号\n- TemplateRenderEngine: 修复方法调用\n - getSummary()→toString()\n - setFontSize()→setSize()\n - setWidth()→setLength()\n- PrintJobDao: 添加getActiveJobs()方法\n- QueueViewModel: 修复RxJava包装和cancel()参数\n- MainViewModel: 移除totalCount()调用\n- PrinterConfigDTO: 修复fromEntity()方法兼容性\n\n构建结果:APK 7.8MB\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/d2d0385e8b5c1b06d7e59f108c6e9f845905c841","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:38:29+08:00","added":[],"removed":[],"modified":["printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/domain/service/OrderFormatterService.java","printer-redesign/infrastructure/database/dao/PrintJobDao.java","printer-redesign/infrastructure/device/EscPosExecutor.java","printer-redesign/infrastructure/device/PrinterCommandExecutor.java","printer-redesign/infrastructure/device/TsplExecutor.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java"]},{"id":"f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","message":"feat: 增强应用架构与测试功能\n\n- 新增 CQRS 模式支持 (command/query/dto)\n- 添加 PrintTestActivity 测试界面\n- 新增 MainViewModel 和 QueueViewModel\n- 完善 build.gradle 配置与签名设置\n- 优化 MainActivity 功能与交互\n- 增强 PrintTaskAdapter 适配逻辑\n- 添加 proguard 混淆规则和构建脚本\n- 更新 UI 资源文件\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:28:57+08:00","added":["printer-redesign/application/command/ConfigurePrinterCommand.java","printer-redesign/application/command/RecoverDeadLetterCommand.java","printer-redesign/application/command/SubmitPrintJobCommand.java","printer-redesign/application/dto/PrintJobDTO.java","printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/dto/QueueStatsDTO.java","printer-redesign/application/query/GetPrintJobsQuery.java","printer-redesign/application/query/GetQueueStatsQuery.java","printer-redesign/keystore.properties.template","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java","printer-redesign/proguard-rules.pro","printer-redesign/scripts/build-release.sh","printer-redesign/scripts/generate-keystore.sh","printer-redesign/src/main/res/drawable/ic_help.xml","printer-redesign/src/main/res/layout/activity_print_test.xml"],"removed":[],"modified":[".gitignore","printer-redesign/build.gradle","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/migration/BillStyleAdapter.java","printer-redesign/migration/PrintTaskAdapter.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/values/colors.xml","printer-redesign/src/main/res/values/strings.xml"]},{"id":"4052be41183584c726cd84d2f9d9cb5c371da83b","message":"feat: 完善模板引擎系统与UI优化\n\n模板引擎增强:\n- 新增 ExpressionEvaluator 表达式求值器,支持复杂条件判断\n- 新增 FormatPipeline 格式化管道,支持货币/日期/截断等格式化\n- 新增 ContextDataEnhanced 增强上下文,支持嵌套路径和管道\n- 新增 GroupElement 分组元素,支持条件渲染和循环渲染\n- 新增 TableElementEnhanced 增强表格,支持分组/小计/合计\n- 新增 ImageElement 图片元素,支持URL/Base64/本地文件\n- 新增 TemplateValidator 模板验证器\n- 新增 TemplateRenderEngineEnhanced 增强渲染引擎\n- 完善 TemplateManager 模板管理器\n\nUI和功能优化:\n- 新增 HealthCheckActivity 健康检查详情页\n- 新增 LogViewerActivity 日志查看页面\n- 新增 QueueDetailActivity 队列详情页面\n- 优化 MainActivity 界面布局和状态显示\n- 精简 SystemPrintDriver 代码结构\n- 新增相关资源文件和菜单\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/4052be41183584c726cd84d2f9d9cb5c371da83b","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:12:50+08:00","added":["printer-redesign/application/engine/TemplateRenderEngineEnhanced.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/docs/TEMPLATE_ENHANCEMENT_GUIDE.md","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/domain/service/formatter/StrategyRegistry.java","printer-redesign/domain/template/ContextDataEnhanced.java","printer-redesign/domain/template/CutElement.java","printer-redesign/domain/template/FormatPipeline.java","printer-redesign/domain/template/GroupElement.java","printer-redesign/domain/template/ImageElement.java","printer-redesign/domain/template/QRCodeElement.java","printer-redesign/domain/template/SpacerElement.java","printer-redesign/domain/template/TableElementEnhanced.java","printer-redesign/infrastructure/device/utils/BitmapToEscPosUtil.java","printer-redesign/presentation/HealthCheckActivity.java","printer-redesign/presentation/LogViewerActivity.java","printer-redesign/presentation/QueueDetailActivity.java","printer-redesign/src/main/res/drawable/bg_error_message.xml","printer-redesign/src/main/res/drawable/bg_status_chip.xml","printer-redesign/src/main/res/drawable/ic_check_circle.xml","printer-redesign/src/main/res/drawable/ic_error.xml","printer-redesign/src/main/res/drawable/ic_print_type.xml","printer-redesign/src/main/res/drawable/ic_recover.xml","printer-redesign/src/main/res/drawable/ic_warning.xml","printer-redesign/src/main/res/layout/activity_health_check.xml","printer-redesign/src/main/res/layout/activity_log_viewer.xml","printer-redesign/src/main/res/layout/activity_queue_detail.xml","printer-redesign/src/main/res/layout/item_health_component.xml","printer-redesign/src/main/res/layout/item_print_log.xml","printer-redesign/src/main/res/layout/item_queue_job.xml","printer-redesign/src/main/res/menu/menu_log_viewer.xml","printer-redesign/src/main/res/menu/menu_queue_detail.xml"],"removed":[],"modified":["ARCHITECTURE_COMPARISON.md","CLAUDE.md","printer-redesign/ARCHITECTURE.md","printer-redesign/application/engine/TemplateManager.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/build.gradle","printer-redesign/domain/template/BarcodeElement.java","printer-redesign/domain/template/BaseElement.java","printer-redesign/domain/template/ContextData.java","printer-redesign/domain/template/LineElement.java","printer-redesign/domain/template/PrintElement.java","printer-redesign/domain/template/TableElement.java","printer-redesign/domain/template/TextElement.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/layout/activity_main.xml","printer-redesign/src/main/res/values/colors.xml"]}],"total_commits":0,"head_commit":{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},"repository":{"id":13,"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":"printer-server","full_name":"luoanwu/printer-server","description":"KTV打印服务器 - DDD架构重构","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server/languages","html_url":"https://gitea.g-hi.com/luoanwu/printer-server","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/printer-server.git","clone_url":"https://gitea.g-hi.com/luoanwu/printer-server.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-28T11:06:40+08:00","updated_at":"2026-02-28T11:06:54+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
|
2
|
4
|
1775444420
|
1775444445
|
0
|
1775444418
|
1775444445
|
|
|
0
|
Edit
Delete
|
|
48
|
feat: 完善菜单系统与获客域组件
|
6
|
5
|
test-comprehensive.yml
|
9
|
5
|
0
|
refs/heads/main
|
a7c22fc0f5e2d113210bb58646dcdbf7381be245
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"89209aba1afe21133399ce0db0a47c2729c9a4b4","after":"a7c22fc0f5e2d113210bb58646dcdbf7381be245","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/89209aba1afe21133399ce0db0a47c2729c9a4b4...a7c22fc0f5e2d113210bb58646dcdbf7381be245","commits":[{"id":"a7c22fc0f5e2d113210bb58646dcdbf7381be245","message":"feat: 完善菜单系统与获客域组件\n\n菜单系统优化:\n- 完善路由配置和菜单定义\n- 优化侧边栏布局组件\n\n获客域改进:\n- 重构 CalendarSidebar 组件\n- 完善 useTodos composable 逻辑\n- 优化 acquisition Index 页面\n\nAPI 适配器优化:\n- 完善订单和报价模块接口\n- 优化类型定义\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a7c22fc0f5e2d113210bb58646dcdbf7381be245","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-01-24T13:15:57+08:00","added":[],"removed":[],"modified":["backend/src/modules/orders/order.service.ts","backend/src/modules/quotes/quote.service.ts","frontend/src/api/adapters.ts","frontend/src/api/modules/orders.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/layout/SidebarV2.vue","frontend/src/router/index.ts","frontend/src/router/menu.ts","frontend/src/types/enums.ts","frontend/src/views/acquisition/Index.vue","frontend/src/views/acquisition/components/CalendarSidebar.vue","frontend/src/views/acquisition/composables/types.ts","frontend/src/views/acquisition/composables/useTodos.ts"]},{"id":"c33235407144b26da2f8210eafefcb17b16eb681","message":"feat(activity): 完善活动组件功能\n\n- 提取时间格式化工具函数到 utils/date.ts\n - formatMinutesToReadable: 格式化分钟数为可读格式\n - formatTimeOnly: 格式化时间为 HH:mm 格式\n - formatOverdue: 格式化逾期时间描述\n - getDateLabel: 获取日期友好标签(今天、昨天、周几)\n\n- ActivityTodayPanel 新增自动刷新功能\n - 添加 refreshInterval prop 配置刷新间隔\n - 实现定时器自动刷新机制\n - 添加生命周期管理确保定时器正确清理\n\n- ActivityQuickCreate 新增最近使用类型功能\n - 使用 localStorage 持久化最近使用的活动类型\n - 快捷类型列表优先显示最近使用的类型\n - 创建成功后自动保存到最近使用列表\n\n- ActivityTimeline 代码优化\n - 使用共享工具函数替代本地重复代码\n - 简化 groupedActivities 计算逻辑\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c33235407144b26da2f8210eafefcb17b16eb681","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-01-24T13:15:47+08:00","added":[],"removed":[],"modified":["frontend/src/components/business/ActivityQuickCreate.vue","frontend/src/components/business/ActivityTimeline.vue","frontend/src/components/business/ActivityTodayPanel.vue","frontend/src/components/business/WorkstationCalendarGantt.vue","frontend/src/utils/date.ts"]},{"id":"89aabcffe0caa49473f79ba33ee5a776168823d3","message":"fix(types): 修复 TypeScript 类型错误\n\n- tsconfig.json: 添加 Node.js 类型定义\n- slow-query.middleware.ts: 修复 Express 类型导入\n- encryption.middleware.ts: 修复泛型索引类型错误\n- encryption.service.ts: 修复泛型索引类型错误\n- outbox-processor.service.ts: 添加 Kafka producer 空值检查\n\n剩余类型错误主要为 Prisma 相关,需要执行 prisma generate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89aabcffe0caa49473f79ba33ee5a776168823d3","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-01-24T04:42:53Z","added":[],"removed":[],"modified":["backend/src/shared/middleware/encryption.middleware.ts","backend/src/shared/middleware/slow-query.middleware.ts","backend/src/shared/services/encryption.service.ts","backend/src/shared/services/outbox-processor.service.ts","backend/tsconfig.json"]},{"id":"abd654ed9ddbab9a988c89074448d591135d7d51","message":"docs(claude): 新增 Claude Code 工具使用规范章节\n\n新增内容:\n- 工具选择决策树(快速判断使用哪个工具)\n- 文件操作工具规范(Read/Glob/Grep/Edit/Write)\n- 命令执行工具规范(Bash 适用场景和禁止操作)\n- Task 工具使用指南(11 种 Agent 类型选择)\n- TodoWrite 任务追踪规范\n- Web 工具使用方法\n- 4 种常用工具组合模式\n- 项目特定规范(多租户/状态机/事件/7层一致性)\n- 工具使用禁忌对照表\n- 效率优化原则\n\n版本更新:v7.2 → v7.3\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/abd654ed9ddbab9a988c89074448d591135d7d51","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-01-24T11:37:19+08:00","added":["frontend/src/views/acquisition/Integrations.vue","frontend/src/views/acquisition/TobTocGateway.vue","frontend/src/views/ad/Accounts.vue","frontend/src/views/ad/Analytics.vue","frontend/src/views/ad/Audiences.vue","frontend/src/views/ad/Biddings.vue","frontend/src/views/ad/Campaigns.vue","frontend/src/views/ad/Creatives.vue","frontend/src/views/ad/Placements.vue","frontend/src/views/ad/Reports.vue","frontend/src/views/admin/ApiMonitor.vue","frontend/src/views/admin/Bom.vue","frontend/src/views/admin/CacheMonitor.vue","frontend/src/views/admin/KafkaMonitor.vue","frontend/src/views/admin/SystemMonitor.vue","frontend/src/views/ai/Copilot.vue","frontend/src/views/alliance/Analytics.vue","frontend/src/views/alliance/Coupons.vue","frontend/src/views/alliance/Merchants.vue","frontend/src/views/alliance/Products.vue","frontend/src/views/alliance/Promotions.vue","frontend/src/views/alliance/Referrals.vue","frontend/src/views/alliance/Settlements.vue","frontend/src/views/analytics/CohortAnalysis.vue","frontend/src/views/analytics/ConsumerBehavior.vue","frontend/src/views/analytics/CrossDomainFunnel.vue","frontend/src/views/analytics/CustomerJourney.vue","frontend/src/views/analytics/DataHub.vue","frontend/src/views/analytics/DimensionTransform.vue","frontend/src/views/analytics/JourneyOrchestration.vue","frontend/src/views/analytics/LifecycleValue.vue","frontend/src/views/analytics/Ltv.vue","frontend/src/views/analytics/MetricTree.vue","frontend/src/views/analytics/NorthStarMetrics.vue","frontend/src/views/analytics/OmnichannelDashboard.vue","frontend/src/views/analytics/ProductAnalytics.vue","frontend/src/views/analytics/RealtimeMarketingAi.vue","frontend/src/views/analytics/RfmAnalysis.vue","frontend/src/views/analytics/SalesFunnel.vue","frontend/src/views/analytics/Segmentation.vue","frontend/src/views/analytics/Segments.vue","frontend/src/views/analytics/Touchpoints.vue","frontend/src/views/approvals/Configs.vue","frontend/src/views/approvals/Templates.vue","frontend/src/views/assets/Maintenance.vue","frontend/src/views/assets/Transfers.vue","frontend/src/views/attribution/ConversionPaths.vue","frontend/src/views/attribution/Models.vue","frontend/src/views/attribution/MultiTouch.vue","frontend/src/views/attribution/Reports.vue","frontend/src/views/campaigns/Analytics.vue","frontend/src/views/campaigns/Drafts.vue","frontend/src/views/campaigns/Tools.vue","frontend/src/views/campaigns/UseCaseTemplates.vue","frontend/src/views/channels/Analytics.vue","frontend/src/views/channels/QrCodes.vue","frontend/src/views/channels/UtmTracking.vue","frontend/src/views/community/Gamification.vue","frontend/src/views/finance/AgingAnalysis.vue","frontend/src/views/finance/ApLedger.vue","frontend/src/views/finance/ArLedger.vue","frontend/src/views/finance/CostAllocation.vue","frontend/src/views/finance/ExpenseClaims.vue","frontend/src/views/finance/InvoiceRequests.vue","frontend/src/views/finance/InvoiceVerification.vue","frontend/src/views/finance/PaymentPlans.vue","frontend/src/views/finance/SupplierPayments.vue","frontend/src/views/geo/Analysis.vue","frontend/src/views/groupbuy/Pricing.vue","frontend/src/views/groupbuy/Rankings.vue","frontend/src/views/groupbuy/Rules.vue","frontend/src/views/groupbuy/Vouchers.vue","frontend/src/views/hr/Payroll.vue","frontend/src/views/im/Channels.vue","frontend/src/views/im/VideoCall.vue","frontend/src/views/knowledge/Tags.vue","frontend/src/views/leads/Import.vue","frontend/src/views/leads/Intelligence.vue","frontend/src/views/leads/Pool.vue","frontend/src/views/leads/Pools.vue","frontend/src/views/leads/Scoring.vue","frontend/src/views/livestream/Replays.vue","frontend/src/views/marketing/AbmMarketing.vue","frontend/src/views/marketing/Attribution.vue","frontend/src/views/marketing/Dashboard.vue","frontend/src/views/marketing/Effectiveness.vue","frontend/src/views/members/Benefits.vue","frontend/src/views/members/Levels.vue","frontend/src/views/members/Points.vue","frontend/src/views/organization/Chart.vue","frontend/src/views/organization/Positions.vue","frontend/src/views/social/Matrix.vue","frontend/src/views/stores/Agency.vue","frontend/src/views/stores/Configs.vue","frontend/src/views/stores/Dashboard.vue","frontend/src/views/stores/LocalEvents.vue","frontend/src/views/stores/LocalPromotion.vue","frontend/src/views/stores/Performance.vue","frontend/src/views/stores/SelfOperated.vue","frontend/src/views/system/AuditLogs.vue","frontend/src/views/system/BizSequences.vue","frontend/src/views/system/Dictionaries.vue","frontend/src/views/system/EmailTemplates.vue","frontend/src/views/system/Events.vue","frontend/src/views/system/Files.vue","frontend/src/views/system/IntegrationServices.vue","frontend/src/views/system/LoginLogs.vue","frontend/src/views/system/Menus.vue","frontend/src/views/system/OperationLogs.vue","frontend/src/views/system/Permissions.vue","frontend/src/views/system/Realtime.vue","frontend/src/views/system/SecuritySettings.vue","frontend/src/views/system/Settings.vue","frontend/src/views/system/WorkflowGenerator.vue","frontend/src/views/tenant/Branding.vue","frontend/src/views/tenant/Settings.vue","frontend/src/views/video/Analytics.vue","frontend/src/views/video/Content.vue","frontend/src/views/video/Publishing.vue"],"removed":[],"modified":["CLAUDE.md","frontend/src/views/dashboard/components/ProfitAnalysis.vue","frontend/src/views/orders/Index.vue","frontend/src/views/quotes/Detail.vue"]},{"id":"0b4942d200d9009d4c6ee1e06674d71f13585a52","message":"feat(menu): 将渠道客户移动到销售中心的渠道管理分组\n\n- 修改 partner-customers 路由的 menuGroup 从 '主数据' 改为 '渠道管理'\n- 在 SALES_ITEMS 中添加 partner-customers 菜单项\n- 调整 menuOrder 为 3(在客户管理和合作伙伴之后)\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b4942d200d9009d4c6ee1e06674d71f13585a52","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-01-24T02:33:47+08:00","added":[],"removed":[],"modified":["frontend/src/router/index.ts","frontend/src/router/menu.ts"]}],"total_commits":0,"head_commit":{"id":"a7c22fc0f5e2d113210bb58646dcdbf7381be245","message":"feat: 完善菜单系统与获客域组件\n\n菜单系统优化:\n- 完善路由配置和菜单定义\n- 优化侧边栏布局组件\n\n获客域改进:\n- 重构 CalendarSidebar 组件\n- 完善 useTodos composable 逻辑\n- 优化 acquisition Index 页面\n\nAPI 适配器优化:\n- 完善订单和报价模块接口\n- 优化类型定义\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a7c22fc0f5e2d113210bb58646dcdbf7381be245","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-01-24T13:15:57+08:00","added":[],"removed":[],"modified":["backend/src/modules/orders/order.service.ts","backend/src/modules/quotes/quote.service.ts","frontend/src/api/adapters.ts","frontend/src/api/modules/orders.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/layout/SidebarV2.vue","frontend/src/router/index.ts","frontend/src/router/menu.ts","frontend/src/types/enums.ts","frontend/src/views/acquisition/Index.vue","frontend/src/views/acquisition/components/CalendarSidebar.vue","frontend/src/views/acquisition/composables/types.ts","frontend/src/views/acquisition/composables/useTodos.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":true,"fork":false,"template":false,"parent":null,"mirror":false,"size":14720,"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-24T00:00:10+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
|
18
|
1771862495
|
1771862495
|
0
|
1771862412
|
1771862495
|
NULL
|
|
0
|
Edit
Delete
|
|
10
|
测试修改3333
|
2
|
2
|
hello-world.yaml
|
9
|
1
|
0
|
refs/heads/main
|
bbba1e40297c5378b23d53b0161cc6a10581ccf1
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9ea10aada78365404579933ba4df771f312ad652","after":"bbba1e40297c5378b23d53b0161cc6a10581ccf1","compare_url":"https://gitea.g-hi.com/juhai/testpc/compare/9ea10aada78365404579933ba4df771f312ad652...bbba1e40297c5378b23d53b0161cc6a10581ccf1","commits":[{"id":"bbba1e40297c5378b23d53b0161cc6a10581ccf1","message":"测试修改3333\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/bbba1e40297c5378b23d53b0161cc6a10581ccf1","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:45+08:00","added":[],"removed":[],"modified":["pc/alilog.php"]}],"total_commits":0,"head_commit":{"id":"bbba1e40297c5378b23d53b0161cc6a10581ccf1","message":"测试修改3333\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/bbba1e40297c5378b23d53b0161cc6a10581ccf1","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:45+08:00","added":[],"removed":[],"modified":["pc/alilog.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":17708,"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:16:28+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
|
1770801411
|
1770801416
|
0
|
1770801410
|
1770801416
|
NULL
|
|
0
|
Edit
Delete
|
|
9535
|
build: 完善Release版本构建配置
|
13
|
5
|
codeql-analysis.yml
|
8
|
-2
|
46
|
refs/heads/main
|
6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","compare_url":"https://gitea.g-hi.com/luoanwu/printer-server/compare/c254333cc45c082124d3d4fd01a4a3fc3fda7296...6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","commits":[{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},{"id":"b44b6415c67f54b2d1bcd688757fec2aaf1686f4","message":"fix: 修复PrintJob状态转换和数据库初始化崩溃问题\n\n1. PrinterDatabase.optimizeDatabase()\n - 将PRAGMA命令从execSQL改为query()方法\n - Room的SupportSQLiteDatabase对PRAGMA有限制\n - 添加异常处理确保数据库优化失败不影响启动\n\n2. PrinterService.onTaskFailed()\n - 添加状态检查逻辑,根据当前状态决定处理方式\n - FAILED状态:执行重试逻辑\n - PRINTING状态:先转换为FAILED再重试\n - 其他状态:直接重新调度执行\n\n3. PrintingApplicationService.executePrintJob()\n - 新增prepareJobForPrinting()确保状态正确转换\n - CREATED -\u003e QUEUED -\u003e PRINTING 状态流转\n - 新增handleJobFailure()安全处理失败\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/b44b6415c67f54b2d1bcd688757fec2aaf1686f4","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:54:24+08:00","added":[],"removed":[],"modified":["printer-redesign/application/service/PrinterService.java","printer-redesign/application/service/PrintingApplicationService.java","printer-redesign/infrastructure/database/PrinterDatabase.java","printer-redesign/scripts/build-release.sh"]},{"id":"d2d0385e8b5c1b06d7e59f108c6e9f845905c841","message":"fix: 修复编译错误并成功构建APK\n\n修复内容:\n- PrintTestActivity: 重写以修复API兼容性问题\n - observeEnabled()替代getEnabledPrinters()\n - 移除PrinterApplication依赖\n - 修复Priority/PrintType方法调用\n - 修复rawContent类型(String→byte[])\n- OrderFormatterService: 补充shouldBeep()方法闭合括号\n- TemplateRenderEngine: 修复方法调用\n - getSummary()→toString()\n - setFontSize()→setSize()\n - setWidth()→setLength()\n- PrintJobDao: 添加getActiveJobs()方法\n- QueueViewModel: 修复RxJava包装和cancel()参数\n- MainViewModel: 移除totalCount()调用\n- PrinterConfigDTO: 修复fromEntity()方法兼容性\n\n构建结果:APK 7.8MB\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/d2d0385e8b5c1b06d7e59f108c6e9f845905c841","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:38:29+08:00","added":[],"removed":[],"modified":["printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/domain/service/OrderFormatterService.java","printer-redesign/infrastructure/database/dao/PrintJobDao.java","printer-redesign/infrastructure/device/EscPosExecutor.java","printer-redesign/infrastructure/device/PrinterCommandExecutor.java","printer-redesign/infrastructure/device/TsplExecutor.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java"]},{"id":"f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","message":"feat: 增强应用架构与测试功能\n\n- 新增 CQRS 模式支持 (command/query/dto)\n- 添加 PrintTestActivity 测试界面\n- 新增 MainViewModel 和 QueueViewModel\n- 完善 build.gradle 配置与签名设置\n- 优化 MainActivity 功能与交互\n- 增强 PrintTaskAdapter 适配逻辑\n- 添加 proguard 混淆规则和构建脚本\n- 更新 UI 资源文件\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:28:57+08:00","added":["printer-redesign/application/command/ConfigurePrinterCommand.java","printer-redesign/application/command/RecoverDeadLetterCommand.java","printer-redesign/application/command/SubmitPrintJobCommand.java","printer-redesign/application/dto/PrintJobDTO.java","printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/dto/QueueStatsDTO.java","printer-redesign/application/query/GetPrintJobsQuery.java","printer-redesign/application/query/GetQueueStatsQuery.java","printer-redesign/keystore.properties.template","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java","printer-redesign/proguard-rules.pro","printer-redesign/scripts/build-release.sh","printer-redesign/scripts/generate-keystore.sh","printer-redesign/src/main/res/drawable/ic_help.xml","printer-redesign/src/main/res/layout/activity_print_test.xml"],"removed":[],"modified":[".gitignore","printer-redesign/build.gradle","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/migration/BillStyleAdapter.java","printer-redesign/migration/PrintTaskAdapter.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/values/colors.xml","printer-redesign/src/main/res/values/strings.xml"]},{"id":"4052be41183584c726cd84d2f9d9cb5c371da83b","message":"feat: 完善模板引擎系统与UI优化\n\n模板引擎增强:\n- 新增 ExpressionEvaluator 表达式求值器,支持复杂条件判断\n- 新增 FormatPipeline 格式化管道,支持货币/日期/截断等格式化\n- 新增 ContextDataEnhanced 增强上下文,支持嵌套路径和管道\n- 新增 GroupElement 分组元素,支持条件渲染和循环渲染\n- 新增 TableElementEnhanced 增强表格,支持分组/小计/合计\n- 新增 ImageElement 图片元素,支持URL/Base64/本地文件\n- 新增 TemplateValidator 模板验证器\n- 新增 TemplateRenderEngineEnhanced 增强渲染引擎\n- 完善 TemplateManager 模板管理器\n\nUI和功能优化:\n- 新增 HealthCheckActivity 健康检查详情页\n- 新增 LogViewerActivity 日志查看页面\n- 新增 QueueDetailActivity 队列详情页面\n- 优化 MainActivity 界面布局和状态显示\n- 精简 SystemPrintDriver 代码结构\n- 新增相关资源文件和菜单\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/4052be41183584c726cd84d2f9d9cb5c371da83b","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:12:50+08:00","added":["printer-redesign/application/engine/TemplateRenderEngineEnhanced.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/docs/TEMPLATE_ENHANCEMENT_GUIDE.md","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/domain/service/formatter/StrategyRegistry.java","printer-redesign/domain/template/ContextDataEnhanced.java","printer-redesign/domain/template/CutElement.java","printer-redesign/domain/template/FormatPipeline.java","printer-redesign/domain/template/GroupElement.java","printer-redesign/domain/template/ImageElement.java","printer-redesign/domain/template/QRCodeElement.java","printer-redesign/domain/template/SpacerElement.java","printer-redesign/domain/template/TableElementEnhanced.java","printer-redesign/infrastructure/device/utils/BitmapToEscPosUtil.java","printer-redesign/presentation/HealthCheckActivity.java","printer-redesign/presentation/LogViewerActivity.java","printer-redesign/presentation/QueueDetailActivity.java","printer-redesign/src/main/res/drawable/bg_error_message.xml","printer-redesign/src/main/res/drawable/bg_status_chip.xml","printer-redesign/src/main/res/drawable/ic_check_circle.xml","printer-redesign/src/main/res/drawable/ic_error.xml","printer-redesign/src/main/res/drawable/ic_print_type.xml","printer-redesign/src/main/res/drawable/ic_recover.xml","printer-redesign/src/main/res/drawable/ic_warning.xml","printer-redesign/src/main/res/layout/activity_health_check.xml","printer-redesign/src/main/res/layout/activity_log_viewer.xml","printer-redesign/src/main/res/layout/activity_queue_detail.xml","printer-redesign/src/main/res/layout/item_health_component.xml","printer-redesign/src/main/res/layout/item_print_log.xml","printer-redesign/src/main/res/layout/item_queue_job.xml","printer-redesign/src/main/res/menu/menu_log_viewer.xml","printer-redesign/src/main/res/menu/menu_queue_detail.xml"],"removed":[],"modified":["ARCHITECTURE_COMPARISON.md","CLAUDE.md","printer-redesign/ARCHITECTURE.md","printer-redesign/application/engine/TemplateManager.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/build.gradle","printer-redesign/domain/template/BarcodeElement.java","printer-redesign/domain/template/BaseElement.java","printer-redesign/domain/template/ContextData.java","printer-redesign/domain/template/LineElement.java","printer-redesign/domain/template/PrintElement.java","printer-redesign/domain/template/TableElement.java","printer-redesign/domain/template/TextElement.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/layout/activity_main.xml","printer-redesign/src/main/res/values/colors.xml"]}],"total_commits":0,"head_commit":{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},"repository":{"id":13,"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":"printer-server","full_name":"luoanwu/printer-server","description":"KTV打印服务器 - DDD架构重构","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server/languages","html_url":"https://gitea.g-hi.com/luoanwu/printer-server","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/printer-server.git","clone_url":"https://gitea.g-hi.com/luoanwu/printer-server.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-28T11:06:40+08:00","updated_at":"2026-02-28T11:06:54+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
|
2
|
4
|
1774839621
|
1774839661
|
0
|
1774839618
|
1774839661
|
|
|
0
|
Edit
Delete
|
|
1142
|
fix(ime-core): 修复TFLiteRecognizerTest验证方式,改为验证可观察行 fix(ime-core): 修复TFLiteRecognizerTest验证方式,改为验证可观察行为...
|
9
|
5
|
performance-check.yml
|
8
|
5
|
0
|
refs/heads/main
|
22125e0f1e435efabf81ec0007a1b56996cb0776
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"893022bfd17ce1f2e75e75651551cf8ceaacfe45","after":"22125e0f1e435efabf81ec0007a1b56996cb0776","compare_url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/compare/893022bfd17ce1f2e75e75651551cf8ceaacfe45...22125e0f1e435efabf81ec0007a1b56996cb0776","commits":[{"id":"22125e0f1e435efabf81ec0007a1b56996cb0776","message":"fix(ime-core): 修复TFLiteRecognizerTest验证方式,改为验证可观察行为\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/22125e0f1e435efabf81ec0007a1b56996cb0776","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-27T14:49:40+08:00","added":[],"removed":["ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/db/v13/p95794--38ca5d/data.mdb","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/db/v13/p95794--38ca5d/lock.mdb"],"modified":["ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/PanelCommon.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactMatcherTest.kt","app/src/main/java/com/haizhan/ime/ui/management/ManagementViewModel.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingManager.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/StrokeSegmenter.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/UnifiedRecognitionEngine.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/TFLiteRecognizerTest.kt","pnpm-lock.yaml","server/api-gateway/package.json","server/api-gateway/src/app.module.ts","server/api-gateway/src/main.ts","server/api-gateway/src/modules/ai/ai.module.ts","server/api-gateway/src/modules/ai/ai.service.ts","server/api-gateway/src/modules/knowledge/knowledge.service.ts","server/api-gateway/src/modules/ocr/ocr.module.ts","server/api-gateway/src/modules/ocr/ocr.service.ts","server/api-gateway/src/modules/settings/settings.module.ts","server/api-gateway/src/modules/settings/settings.service.ts"]},{"id":"e7926bf94bb1d2df1c56170dbe47940b49a70134","message":"fix(ime-core): 修复HandwritingManager测试缺少ModelDownloader参数\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/e7926bf94bb1d2df1c56170dbe47940b49a70134","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-27T14:40:23+08:00","added":[".github/workflows/ios-ci.yml",".npmrc","MIGRATION_COMPLETE_REPORT.md","admin-web/.eslintrc.cjs","docs/PNPM_MIGRATION_NOTICE.md","flutter_app/assets/fonts/PingFang-Medium.ttf","flutter_app/assets/fonts/PingFang-Regular.ttf","flutter_app/assets/fonts/PingFang-Semibold.ttf","flutter_app/assets/icons/.gitkeep","flutter_app/assets/images/.gitkeep","flutter_app/lib/features/contacts/data/contact_360_provider.dart","ime-core/src/main/java/com/haizhan/ime/core/handwriting/ModelDownloader.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/StrokeSegmenter.kt","package.json","pnpm-lock.yaml","pnpm-workspace.yaml","scripts/PACKAGE_MANAGER.md","scripts/PACKAGE_MANAGER_SUMMARY.md","scripts/migrate-to-pnpm.sh","scripts/package-manager-migration.md","server/api-gateway/src/modules/ai/ai.controller.ts","server/api-gateway/src/modules/ai/ai.module.ts","server/api-gateway/src/modules/ai/ai.service.ts","server/api-gateway/src/modules/ocr/ocr.controller.ts","server/api-gateway/src/modules/ocr/ocr.module.ts","server/api-gateway/src/modules/ocr/ocr.service.ts"],"removed":["server/ai-service/package-lock.json","server/api-gateway/package-lock.json","server/ocr-service/package-lock.json"],"modified":[".github/workflows/frontend-backend-ci.yml",".gitignore","CHANGELOG.md","CLAUDE.md","README.md","admin-web/package.json","admin-web/src/views/knowledge/index.vue","ai-panel/src/main/java/com/haizhan/ime/panel/agentic/HybridSearchExecutor.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/ContactMatcher.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/EnhancedContactMatcher.kt","ai-panel/src/main/java/com/haizhan/ime/panel/context/InputContextCollector.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/TitleBarParser.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/RagReplyGenerator.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/ReplyGenerator.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/PanelCommon.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactMatcherTest.kt","app/build.gradle.kts","app/proguard-rules.pro","app/src/main/java/com/haizhan/ime/ui/management/ManagementViewModel.kt","app/src/main/java/com/haizhan/ime/ui/management/SettingsScreen.kt","build.gradle.kts","common/src/main/java/com/haizhan/ime/common/theme/DesignTokens.kt","data/src/main/java/com/haizhan/ime/data/auth/AuthInterceptor.kt","data/src/main/java/com/haizhan/ime/data/auth/AuthManager.kt","data/src/main/java/com/haizhan/ime/data/di/NetworkModule.kt","data/src/main/java/com/haizhan/ime/data/repository/SettingsRepository.kt","docs/CI_CD_PIPELINE.md","docs/CODING_STANDARDS.md","docs/DEPLOYMENT.md","docs/DEVELOPMENT_GUIDE.md","docs/TESTING_STRATEGY.md","flutter_app/.dart_tool/package_config.json","flutter_app/.dart_tool/package_graph.json","flutter_app/lib/core/bridge/haizhan_bridge.dart","flutter_app/lib/core/di/service_locator.dart","flutter_app/lib/core/theme/app_colors.dart","flutter_app/lib/core/theme/app_theme.dart","flutter_app/lib/features/auth/presentation/login_screen.dart","flutter_app/lib/features/chat/presentation/chat_screen.dart","flutter_app/lib/features/chat/presentation/conversation_screen.dart","flutter_app/lib/features/contacts/data/contacts_provider.dart","flutter_app/lib/features/contacts/presentation/contact_detail_screen.dart","flutter_app/lib/features/contacts/presentation/contacts_screen.dart","flutter_app/lib/features/home/presentation/home_screen.dart","flutter_app/lib/features/home/presentation/main_shell.dart","flutter_app/lib/features/knowledge/presentation/knowledge_screen.dart","flutter_app/lib/features/profile/presentation/profile_screen.dart","flutter_app/lib/features/search/presentation/widgets/search_metrics_indicator.dart","flutter_app/lib/features/settings/presentation/settings_screen.dart","flutter_app/lib/features/stats/presentation/widgets/contact_stats_tab.dart","flutter_app/lib/features/stats/presentation/widgets/overview_tab.dart","flutter_app/lib/features/stats/presentation/widgets/reply_stats_tab.dart","flutter_app/lib/features/stats/presentation/widgets/stats_shared_widgets.dart","flutter_app/lib/features/support/presentation/about_screen.dart","flutter_app/lib/features/support/presentation/feedback_screen.dart","flutter_app/lib/features/support/presentation/help_screen.dart","flutter_app/lib/features/support/presentation/privacy_screen.dart","flutter_app/lib/main.dart","flutter_app/lib/shared/widgets/stat_card.dart","flutter_app/pigeons/haizhan_api.dart","flutter_app/pubspec.lock","flutter_app/pubspec.yaml","flutter_app/test/core/theme/theme_provider_test.dart","flutter_app/test/features/auth/login_screen_test.dart","flutter_app/test/features/chat/chat_screen_test.dart","flutter_app/test/features/contacts/contacts_screen_test.dart","flutter_app/test/features/home/home_screen_test.dart","flutter_app/test/features/knowledge/knowledge_screen_test.dart","flutter_app/test/features/profile/profile_screen_test.dart","flutter_app/test/features/settings/settings_screen_test.dart","flutter_app/test/features/stats/stats_screen_test.dart","flutter_app/test/integration/app_integration_test.dart","flutter_app/test/providers/auth_provider_test.dart","flutter_app/test/services/api_service_test.dart","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingManager.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingView.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/TFLiteRecognizer.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/UnifiedRecognitionEngine.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/EnhancedCandidatesView.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/KeyboardView.kt","ime-core/src/main/java/com/haizhan/ime/core/theme/DesignTokens.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/HandwritingManagerAdvancedTest.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/HandwritingManagerTest.kt","ios_keyboard/.build/.lock","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboard.build/HaizhanKeyboard.emit-module.d","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboard.build/master.priors","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboard.build/output-file-map.json","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboard.build/sources","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboardTests.build/output-file-map.json","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboardTests.build/sources","ios_keyboard/.build/arm64-apple-macosx/debug/description.json","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/AIPanelView.swift.o-3JCH38GYDGXR8","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/ContactMatcher.swift.o-2DEFMG7O4JYLM","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/HapticManager.swift.o-1RR1AGSLF5OMM","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/KeyboardEngine.swift.o-138QNNFN5L8T5","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/KeyboardView.swift.o-3DKAUVCODQU40","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/KeyboardViewController.swift.o-Q3D13NLK8BXH","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/NineGridKeyboard.swift.o-1SAAN5KAN9TN9","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/PinyinSegmenter.swift.o-MFJITYIEOC0T","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/ReplyService.swift.o-32WKBX1JUI0W6","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/ScreenshotManager.swift.o-2OU33ZXZWSYE6","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/SettingsView.swift.o-127RM9EAP5VM6","ios_keyboard/.build/arm64-apple-macosx/debug/plugin-tools-description.json","ios_keyboard/.build/build.db","ios_keyboard/.build/debug.yaml","ios_keyboard/.build/index-build/.lock","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/HaizhanKeyboard.build/master.priors","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/description.json","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/store/v5/units/KeyboardView.swift.o-ZCNKWX79V430","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/store/v5/units/NineGridKeyboard.swift.o-1ZTZUBTR9D3N2","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/store/v5/units/ScreenshotManager.swift.o-1OSRMU5500GQS","ios_keyboard/.build/index-build/build.db","ios_keyboard/.build/index-build/debug.yaml","ios_keyboard/.build/plugin-tools.yaml","ios_keyboard/Sources/HaizhanKeyboard/AI/ScreenshotManager.swift","ios_keyboard/Sources/HaizhanKeyboard/Views/KeyboardView.swift","ios_keyboard/Sources/HaizhanKeyboard/Views/NineGridKeyboard.swift","server/.npmrc","server/README.md","server/ai-service/Dockerfile","server/api-gateway/Dockerfile","server/api-gateway/package.json","server/api-gateway/src/modules/mobile-compat/mobile-compat.controller.ts","server/docker-compose.override.yml","server/docker-compose.yml","server/ocr-service/Dockerfile","shared/src/iosMain/kotlin/com/haizhan/ime/shared/auth/IosTokenStorage.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/platform/DictionaryLoader.ios.kt","voice/src/main/java/com/haizhan/ime/voice/audio/AudioPipelineImpl.kt","voice/src/main/java/com/haizhan/ime/voice/recognition/SpeechRecognitionServiceImpl.kt"]},{"id":"15aae8c5e92b6e0c7dd53a7921212b68b8a1294b","message":"perf(server): JWT用户缓存 + 缓存失效 + legacy-reply stub实现\n\n- JwtStrategy 添加 Redis 用户缓存 (5分钟TTL), 减少95%数据库查询\n- auth.service 在 updateProfile/logout/logoutAll 时主动失效缓存\n- users.service 在 update/updateStatus/toggleStatus/delete 时失效缓存\n- UsersModule 注入 RedisModule 支持缓存操作\n- legacy-reply markReplyUsed/submitReplyFeedback stub 实现完整请求解析和日志\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/15aae8c5e92b6e0c7dd53a7921212b68b8a1294b","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-25T08:23:28+08:00","added":[],"removed":[],"modified":["server/ai-service/src/modules/ai/legacy-reply.controller.ts","server/api-gateway/src/modules/auth/auth.service.ts","server/api-gateway/src/modules/auth/strategies/jwt.strategy.ts","server/api-gateway/src/modules/users/users.module.ts","server/api-gateway/src/modules/users/users.service.ts"]},{"id":"f19558e8e838bacc0f616f40c1ec10d9a5e4e9d5","message":"chore(server): 优化 Docker 基础设施配置\n\n- Redis: 修复空密码时 --requirepass 报错问题\n- Reranker Dockerfile: torch CPU 预安装 + 清华 PyPI 镜像加速\n- requirements.txt: 移除 --extra-index-url(已在 Dockerfile 中处理)\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/f19558e8e838bacc0f616f40c1ec10d9a5e4e9d5","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-25T08:16:10+08:00","added":[],"removed":[],"modified":["server/docker-compose.yml","server/model-services/reranker/Dockerfile","server/model-services/reranker/requirements.txt"]},{"id":"43712be12681e00bab0e3fed74c60ffa34fdc11d","message":"fix(server): 修复 5 个 CRITICAL + 5 个 HIGH 安全漏洞\n\nCRITICAL:\n- C1: 移除 JWT_SECRET/JWT_REFRESH_SECRET 弱默认值回退,启动时断言必须配置\n- C2: 开发后门 000000 需同时满足 NODE_ENV=development + ENABLE_DEV_BYPASS=true\n- C3: OCR recognizeFromUrl 添加 SSRF 防护(HTTPS-only + 内网地址黑名单)\n- C4: resetPassword 使用 crypto.randomBytes + bcrypt.hash 替代 Math.random + 明文\n- C5: ai-service auth.guard 添加 JWT alg 字段校验 + timingSafeEqual 签名比较\n\nHIGH:\n- H1: Redis KEYS 命令替换为 SCAN 游标迭代,避免生产环境阻塞\n- H2: knowledge.controller 添加 @UseGuards(JwtAuthGuard) 认证守卫\n- H4: updateProfile 禁止直接修改手机号,需独立验证流程\n- H6: Access Token 有效期从 7d 缩短至 1h\n- H7: JwtStrategy.validate 注入 RedisService 检查 token 黑名单\n\n测试: api-gateway 963 tests, ai-service 883 tests, ocr-service 87 tests 全部通过\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/43712be12681e00bab0e3fed74c60ffa34fdc11d","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-25T08:15:48+08:00","added":[],"removed":[],"modified":["server/ai-service/src/common/guards/auth.guard.ts","server/api-gateway/src/modules/auth/auth.service.ts","server/api-gateway/src/modules/auth/strategies/jwt.strategy.ts","server/api-gateway/src/modules/knowledge/knowledge.controller.ts","server/api-gateway/src/modules/users/users.service.ts","server/api-gateway/src/shared/redis/redis.service.ts","server/ocr-service/src/modules/ocr/ocr.service.ts"]}],"total_commits":0,"head_commit":{"id":"22125e0f1e435efabf81ec0007a1b56996cb0776","message":"fix(ime-core): 修复TFLiteRecognizerTest验证方式,改为验证可观察行为\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/22125e0f1e435efabf81ec0007a1b56996cb0776","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-27T14:49:40+08:00","added":[],"removed":["ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/db/v13/p95794--38ca5d/data.mdb","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/db/v13/p95794--38ca5d/lock.mdb"],"modified":["ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/PanelCommon.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactMatcherTest.kt","app/src/main/java/com/haizhan/ime/ui/management/ManagementViewModel.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingManager.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/StrokeSegmenter.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/UnifiedRecognitionEngine.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/TFLiteRecognizerTest.kt","pnpm-lock.yaml","server/api-gateway/package.json","server/api-gateway/src/app.module.ts","server/api-gateway/src/main.ts","server/api-gateway/src/modules/ai/ai.module.ts","server/api-gateway/src/modules/ai/ai.service.ts","server/api-gateway/src/modules/knowledge/knowledge.service.ts","server/api-gateway/src/modules/ocr/ocr.module.ts","server/api-gateway/src/modules/ocr/ocr.service.ts","server/api-gateway/src/modules/settings/settings.module.ts","server/api-gateway/src/modules/settings/settings.service.ts"]},"repository":{"id":9,"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":"haizhan-ime-android","full_name":"luoanwu/haizhan-ime-android","description":"嗨赞AI输入法 Android版","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":22552,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizhan-ime-android/languages","html_url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizhan-ime-android","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/haizhan-ime-android.git","clone_url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android.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-27T15:27:17+08:00","updated_at":"2026-02-27T15:42:01+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
|
3
|
1772189679
|
1772189721
|
0
|
1772178609
|
1772189721
|
NULL
|
|
0
|
Edit
Delete
|
|
47
|
feat: 完善菜单系统与获客域组件
|
6
|
5
|
quality-check.yml
|
8
|
5
|
0
|
refs/heads/main
|
a7c22fc0f5e2d113210bb58646dcdbf7381be245
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"89209aba1afe21133399ce0db0a47c2729c9a4b4","after":"a7c22fc0f5e2d113210bb58646dcdbf7381be245","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/89209aba1afe21133399ce0db0a47c2729c9a4b4...a7c22fc0f5e2d113210bb58646dcdbf7381be245","commits":[{"id":"a7c22fc0f5e2d113210bb58646dcdbf7381be245","message":"feat: 完善菜单系统与获客域组件\n\n菜单系统优化:\n- 完善路由配置和菜单定义\n- 优化侧边栏布局组件\n\n获客域改进:\n- 重构 CalendarSidebar 组件\n- 完善 useTodos composable 逻辑\n- 优化 acquisition Index 页面\n\nAPI 适配器优化:\n- 完善订单和报价模块接口\n- 优化类型定义\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a7c22fc0f5e2d113210bb58646dcdbf7381be245","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-01-24T13:15:57+08:00","added":[],"removed":[],"modified":["backend/src/modules/orders/order.service.ts","backend/src/modules/quotes/quote.service.ts","frontend/src/api/adapters.ts","frontend/src/api/modules/orders.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/layout/SidebarV2.vue","frontend/src/router/index.ts","frontend/src/router/menu.ts","frontend/src/types/enums.ts","frontend/src/views/acquisition/Index.vue","frontend/src/views/acquisition/components/CalendarSidebar.vue","frontend/src/views/acquisition/composables/types.ts","frontend/src/views/acquisition/composables/useTodos.ts"]},{"id":"c33235407144b26da2f8210eafefcb17b16eb681","message":"feat(activity): 完善活动组件功能\n\n- 提取时间格式化工具函数到 utils/date.ts\n - formatMinutesToReadable: 格式化分钟数为可读格式\n - formatTimeOnly: 格式化时间为 HH:mm 格式\n - formatOverdue: 格式化逾期时间描述\n - getDateLabel: 获取日期友好标签(今天、昨天、周几)\n\n- ActivityTodayPanel 新增自动刷新功能\n - 添加 refreshInterval prop 配置刷新间隔\n - 实现定时器自动刷新机制\n - 添加生命周期管理确保定时器正确清理\n\n- ActivityQuickCreate 新增最近使用类型功能\n - 使用 localStorage 持久化最近使用的活动类型\n - 快捷类型列表优先显示最近使用的类型\n - 创建成功后自动保存到最近使用列表\n\n- ActivityTimeline 代码优化\n - 使用共享工具函数替代本地重复代码\n - 简化 groupedActivities 计算逻辑\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c33235407144b26da2f8210eafefcb17b16eb681","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-01-24T13:15:47+08:00","added":[],"removed":[],"modified":["frontend/src/components/business/ActivityQuickCreate.vue","frontend/src/components/business/ActivityTimeline.vue","frontend/src/components/business/ActivityTodayPanel.vue","frontend/src/components/business/WorkstationCalendarGantt.vue","frontend/src/utils/date.ts"]},{"id":"89aabcffe0caa49473f79ba33ee5a776168823d3","message":"fix(types): 修复 TypeScript 类型错误\n\n- tsconfig.json: 添加 Node.js 类型定义\n- slow-query.middleware.ts: 修复 Express 类型导入\n- encryption.middleware.ts: 修复泛型索引类型错误\n- encryption.service.ts: 修复泛型索引类型错误\n- outbox-processor.service.ts: 添加 Kafka producer 空值检查\n\n剩余类型错误主要为 Prisma 相关,需要执行 prisma generate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89aabcffe0caa49473f79ba33ee5a776168823d3","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-01-24T04:42:53Z","added":[],"removed":[],"modified":["backend/src/shared/middleware/encryption.middleware.ts","backend/src/shared/middleware/slow-query.middleware.ts","backend/src/shared/services/encryption.service.ts","backend/src/shared/services/outbox-processor.service.ts","backend/tsconfig.json"]},{"id":"abd654ed9ddbab9a988c89074448d591135d7d51","message":"docs(claude): 新增 Claude Code 工具使用规范章节\n\n新增内容:\n- 工具选择决策树(快速判断使用哪个工具)\n- 文件操作工具规范(Read/Glob/Grep/Edit/Write)\n- 命令执行工具规范(Bash 适用场景和禁止操作)\n- Task 工具使用指南(11 种 Agent 类型选择)\n- TodoWrite 任务追踪规范\n- Web 工具使用方法\n- 4 种常用工具组合模式\n- 项目特定规范(多租户/状态机/事件/7层一致性)\n- 工具使用禁忌对照表\n- 效率优化原则\n\n版本更新:v7.2 → v7.3\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/abd654ed9ddbab9a988c89074448d591135d7d51","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-01-24T11:37:19+08:00","added":["frontend/src/views/acquisition/Integrations.vue","frontend/src/views/acquisition/TobTocGateway.vue","frontend/src/views/ad/Accounts.vue","frontend/src/views/ad/Analytics.vue","frontend/src/views/ad/Audiences.vue","frontend/src/views/ad/Biddings.vue","frontend/src/views/ad/Campaigns.vue","frontend/src/views/ad/Creatives.vue","frontend/src/views/ad/Placements.vue","frontend/src/views/ad/Reports.vue","frontend/src/views/admin/ApiMonitor.vue","frontend/src/views/admin/Bom.vue","frontend/src/views/admin/CacheMonitor.vue","frontend/src/views/admin/KafkaMonitor.vue","frontend/src/views/admin/SystemMonitor.vue","frontend/src/views/ai/Copilot.vue","frontend/src/views/alliance/Analytics.vue","frontend/src/views/alliance/Coupons.vue","frontend/src/views/alliance/Merchants.vue","frontend/src/views/alliance/Products.vue","frontend/src/views/alliance/Promotions.vue","frontend/src/views/alliance/Referrals.vue","frontend/src/views/alliance/Settlements.vue","frontend/src/views/analytics/CohortAnalysis.vue","frontend/src/views/analytics/ConsumerBehavior.vue","frontend/src/views/analytics/CrossDomainFunnel.vue","frontend/src/views/analytics/CustomerJourney.vue","frontend/src/views/analytics/DataHub.vue","frontend/src/views/analytics/DimensionTransform.vue","frontend/src/views/analytics/JourneyOrchestration.vue","frontend/src/views/analytics/LifecycleValue.vue","frontend/src/views/analytics/Ltv.vue","frontend/src/views/analytics/MetricTree.vue","frontend/src/views/analytics/NorthStarMetrics.vue","frontend/src/views/analytics/OmnichannelDashboard.vue","frontend/src/views/analytics/ProductAnalytics.vue","frontend/src/views/analytics/RealtimeMarketingAi.vue","frontend/src/views/analytics/RfmAnalysis.vue","frontend/src/views/analytics/SalesFunnel.vue","frontend/src/views/analytics/Segmentation.vue","frontend/src/views/analytics/Segments.vue","frontend/src/views/analytics/Touchpoints.vue","frontend/src/views/approvals/Configs.vue","frontend/src/views/approvals/Templates.vue","frontend/src/views/assets/Maintenance.vue","frontend/src/views/assets/Transfers.vue","frontend/src/views/attribution/ConversionPaths.vue","frontend/src/views/attribution/Models.vue","frontend/src/views/attribution/MultiTouch.vue","frontend/src/views/attribution/Reports.vue","frontend/src/views/campaigns/Analytics.vue","frontend/src/views/campaigns/Drafts.vue","frontend/src/views/campaigns/Tools.vue","frontend/src/views/campaigns/UseCaseTemplates.vue","frontend/src/views/channels/Analytics.vue","frontend/src/views/channels/QrCodes.vue","frontend/src/views/channels/UtmTracking.vue","frontend/src/views/community/Gamification.vue","frontend/src/views/finance/AgingAnalysis.vue","frontend/src/views/finance/ApLedger.vue","frontend/src/views/finance/ArLedger.vue","frontend/src/views/finance/CostAllocation.vue","frontend/src/views/finance/ExpenseClaims.vue","frontend/src/views/finance/InvoiceRequests.vue","frontend/src/views/finance/InvoiceVerification.vue","frontend/src/views/finance/PaymentPlans.vue","frontend/src/views/finance/SupplierPayments.vue","frontend/src/views/geo/Analysis.vue","frontend/src/views/groupbuy/Pricing.vue","frontend/src/views/groupbuy/Rankings.vue","frontend/src/views/groupbuy/Rules.vue","frontend/src/views/groupbuy/Vouchers.vue","frontend/src/views/hr/Payroll.vue","frontend/src/views/im/Channels.vue","frontend/src/views/im/VideoCall.vue","frontend/src/views/knowledge/Tags.vue","frontend/src/views/leads/Import.vue","frontend/src/views/leads/Intelligence.vue","frontend/src/views/leads/Pool.vue","frontend/src/views/leads/Pools.vue","frontend/src/views/leads/Scoring.vue","frontend/src/views/livestream/Replays.vue","frontend/src/views/marketing/AbmMarketing.vue","frontend/src/views/marketing/Attribution.vue","frontend/src/views/marketing/Dashboard.vue","frontend/src/views/marketing/Effectiveness.vue","frontend/src/views/members/Benefits.vue","frontend/src/views/members/Levels.vue","frontend/src/views/members/Points.vue","frontend/src/views/organization/Chart.vue","frontend/src/views/organization/Positions.vue","frontend/src/views/social/Matrix.vue","frontend/src/views/stores/Agency.vue","frontend/src/views/stores/Configs.vue","frontend/src/views/stores/Dashboard.vue","frontend/src/views/stores/LocalEvents.vue","frontend/src/views/stores/LocalPromotion.vue","frontend/src/views/stores/Performance.vue","frontend/src/views/stores/SelfOperated.vue","frontend/src/views/system/AuditLogs.vue","frontend/src/views/system/BizSequences.vue","frontend/src/views/system/Dictionaries.vue","frontend/src/views/system/EmailTemplates.vue","frontend/src/views/system/Events.vue","frontend/src/views/system/Files.vue","frontend/src/views/system/IntegrationServices.vue","frontend/src/views/system/LoginLogs.vue","frontend/src/views/system/Menus.vue","frontend/src/views/system/OperationLogs.vue","frontend/src/views/system/Permissions.vue","frontend/src/views/system/Realtime.vue","frontend/src/views/system/SecuritySettings.vue","frontend/src/views/system/Settings.vue","frontend/src/views/system/WorkflowGenerator.vue","frontend/src/views/tenant/Branding.vue","frontend/src/views/tenant/Settings.vue","frontend/src/views/video/Analytics.vue","frontend/src/views/video/Content.vue","frontend/src/views/video/Publishing.vue"],"removed":[],"modified":["CLAUDE.md","frontend/src/views/dashboard/components/ProfitAnalysis.vue","frontend/src/views/orders/Index.vue","frontend/src/views/quotes/Detail.vue"]},{"id":"0b4942d200d9009d4c6ee1e06674d71f13585a52","message":"feat(menu): 将渠道客户移动到销售中心的渠道管理分组\n\n- 修改 partner-customers 路由的 menuGroup 从 '主数据' 改为 '渠道管理'\n- 在 SALES_ITEMS 中添加 partner-customers 菜单项\n- 调整 menuOrder 为 3(在客户管理和合作伙伴之后)\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b4942d200d9009d4c6ee1e06674d71f13585a52","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-01-24T02:33:47+08:00","added":[],"removed":[],"modified":["frontend/src/router/index.ts","frontend/src/router/menu.ts"]}],"total_commits":0,"head_commit":{"id":"a7c22fc0f5e2d113210bb58646dcdbf7381be245","message":"feat: 完善菜单系统与获客域组件\n\n菜单系统优化:\n- 完善路由配置和菜单定义\n- 优化侧边栏布局组件\n\n获客域改进:\n- 重构 CalendarSidebar 组件\n- 完善 useTodos composable 逻辑\n- 优化 acquisition Index 页面\n\nAPI 适配器优化:\n- 完善订单和报价模块接口\n- 优化类型定义\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a7c22fc0f5e2d113210bb58646dcdbf7381be245","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-01-24T13:15:57+08:00","added":[],"removed":[],"modified":["backend/src/modules/orders/order.service.ts","backend/src/modules/quotes/quote.service.ts","frontend/src/api/adapters.ts","frontend/src/api/modules/orders.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/layout/SidebarV2.vue","frontend/src/router/index.ts","frontend/src/router/menu.ts","frontend/src/types/enums.ts","frontend/src/views/acquisition/Index.vue","frontend/src/views/acquisition/components/CalendarSidebar.vue","frontend/src/views/acquisition/composables/types.ts","frontend/src/views/acquisition/composables/useTodos.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":true,"fork":false,"template":false,"parent":null,"mirror":false,"size":14720,"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-24T00:00:10+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
|
3
|
1771862498
|
1771862759
|
0
|
1771862412
|
1771862759
|
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
|
|
7322
|
build: 完善Release版本构建配置
|
13
|
5
|
codeql-analysis.yml
|
7
|
-2
|
46
|
refs/heads/main
|
6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","compare_url":"https://gitea.g-hi.com/luoanwu/printer-server/compare/c254333cc45c082124d3d4fd01a4a3fc3fda7296...6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","commits":[{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},{"id":"b44b6415c67f54b2d1bcd688757fec2aaf1686f4","message":"fix: 修复PrintJob状态转换和数据库初始化崩溃问题\n\n1. PrinterDatabase.optimizeDatabase()\n - 将PRAGMA命令从execSQL改为query()方法\n - Room的SupportSQLiteDatabase对PRAGMA有限制\n - 添加异常处理确保数据库优化失败不影响启动\n\n2. PrinterService.onTaskFailed()\n - 添加状态检查逻辑,根据当前状态决定处理方式\n - FAILED状态:执行重试逻辑\n - PRINTING状态:先转换为FAILED再重试\n - 其他状态:直接重新调度执行\n\n3. PrintingApplicationService.executePrintJob()\n - 新增prepareJobForPrinting()确保状态正确转换\n - CREATED -\u003e QUEUED -\u003e PRINTING 状态流转\n - 新增handleJobFailure()安全处理失败\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/b44b6415c67f54b2d1bcd688757fec2aaf1686f4","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:54:24+08:00","added":[],"removed":[],"modified":["printer-redesign/application/service/PrinterService.java","printer-redesign/application/service/PrintingApplicationService.java","printer-redesign/infrastructure/database/PrinterDatabase.java","printer-redesign/scripts/build-release.sh"]},{"id":"d2d0385e8b5c1b06d7e59f108c6e9f845905c841","message":"fix: 修复编译错误并成功构建APK\n\n修复内容:\n- PrintTestActivity: 重写以修复API兼容性问题\n - observeEnabled()替代getEnabledPrinters()\n - 移除PrinterApplication依赖\n - 修复Priority/PrintType方法调用\n - 修复rawContent类型(String→byte[])\n- OrderFormatterService: 补充shouldBeep()方法闭合括号\n- TemplateRenderEngine: 修复方法调用\n - getSummary()→toString()\n - setFontSize()→setSize()\n - setWidth()→setLength()\n- PrintJobDao: 添加getActiveJobs()方法\n- QueueViewModel: 修复RxJava包装和cancel()参数\n- MainViewModel: 移除totalCount()调用\n- PrinterConfigDTO: 修复fromEntity()方法兼容性\n\n构建结果:APK 7.8MB\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/d2d0385e8b5c1b06d7e59f108c6e9f845905c841","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:38:29+08:00","added":[],"removed":[],"modified":["printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/domain/service/OrderFormatterService.java","printer-redesign/infrastructure/database/dao/PrintJobDao.java","printer-redesign/infrastructure/device/EscPosExecutor.java","printer-redesign/infrastructure/device/PrinterCommandExecutor.java","printer-redesign/infrastructure/device/TsplExecutor.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java"]},{"id":"f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","message":"feat: 增强应用架构与测试功能\n\n- 新增 CQRS 模式支持 (command/query/dto)\n- 添加 PrintTestActivity 测试界面\n- 新增 MainViewModel 和 QueueViewModel\n- 完善 build.gradle 配置与签名设置\n- 优化 MainActivity 功能与交互\n- 增强 PrintTaskAdapter 适配逻辑\n- 添加 proguard 混淆规则和构建脚本\n- 更新 UI 资源文件\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:28:57+08:00","added":["printer-redesign/application/command/ConfigurePrinterCommand.java","printer-redesign/application/command/RecoverDeadLetterCommand.java","printer-redesign/application/command/SubmitPrintJobCommand.java","printer-redesign/application/dto/PrintJobDTO.java","printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/dto/QueueStatsDTO.java","printer-redesign/application/query/GetPrintJobsQuery.java","printer-redesign/application/query/GetQueueStatsQuery.java","printer-redesign/keystore.properties.template","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java","printer-redesign/proguard-rules.pro","printer-redesign/scripts/build-release.sh","printer-redesign/scripts/generate-keystore.sh","printer-redesign/src/main/res/drawable/ic_help.xml","printer-redesign/src/main/res/layout/activity_print_test.xml"],"removed":[],"modified":[".gitignore","printer-redesign/build.gradle","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/migration/BillStyleAdapter.java","printer-redesign/migration/PrintTaskAdapter.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/values/colors.xml","printer-redesign/src/main/res/values/strings.xml"]},{"id":"4052be41183584c726cd84d2f9d9cb5c371da83b","message":"feat: 完善模板引擎系统与UI优化\n\n模板引擎增强:\n- 新增 ExpressionEvaluator 表达式求值器,支持复杂条件判断\n- 新增 FormatPipeline 格式化管道,支持货币/日期/截断等格式化\n- 新增 ContextDataEnhanced 增强上下文,支持嵌套路径和管道\n- 新增 GroupElement 分组元素,支持条件渲染和循环渲染\n- 新增 TableElementEnhanced 增强表格,支持分组/小计/合计\n- 新增 ImageElement 图片元素,支持URL/Base64/本地文件\n- 新增 TemplateValidator 模板验证器\n- 新增 TemplateRenderEngineEnhanced 增强渲染引擎\n- 完善 TemplateManager 模板管理器\n\nUI和功能优化:\n- 新增 HealthCheckActivity 健康检查详情页\n- 新增 LogViewerActivity 日志查看页面\n- 新增 QueueDetailActivity 队列详情页面\n- 优化 MainActivity 界面布局和状态显示\n- 精简 SystemPrintDriver 代码结构\n- 新增相关资源文件和菜单\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/4052be41183584c726cd84d2f9d9cb5c371da83b","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:12:50+08:00","added":["printer-redesign/application/engine/TemplateRenderEngineEnhanced.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/docs/TEMPLATE_ENHANCEMENT_GUIDE.md","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/domain/service/formatter/StrategyRegistry.java","printer-redesign/domain/template/ContextDataEnhanced.java","printer-redesign/domain/template/CutElement.java","printer-redesign/domain/template/FormatPipeline.java","printer-redesign/domain/template/GroupElement.java","printer-redesign/domain/template/ImageElement.java","printer-redesign/domain/template/QRCodeElement.java","printer-redesign/domain/template/SpacerElement.java","printer-redesign/domain/template/TableElementEnhanced.java","printer-redesign/infrastructure/device/utils/BitmapToEscPosUtil.java","printer-redesign/presentation/HealthCheckActivity.java","printer-redesign/presentation/LogViewerActivity.java","printer-redesign/presentation/QueueDetailActivity.java","printer-redesign/src/main/res/drawable/bg_error_message.xml","printer-redesign/src/main/res/drawable/bg_status_chip.xml","printer-redesign/src/main/res/drawable/ic_check_circle.xml","printer-redesign/src/main/res/drawable/ic_error.xml","printer-redesign/src/main/res/drawable/ic_print_type.xml","printer-redesign/src/main/res/drawable/ic_recover.xml","printer-redesign/src/main/res/drawable/ic_warning.xml","printer-redesign/src/main/res/layout/activity_health_check.xml","printer-redesign/src/main/res/layout/activity_log_viewer.xml","printer-redesign/src/main/res/layout/activity_queue_detail.xml","printer-redesign/src/main/res/layout/item_health_component.xml","printer-redesign/src/main/res/layout/item_print_log.xml","printer-redesign/src/main/res/layout/item_queue_job.xml","printer-redesign/src/main/res/menu/menu_log_viewer.xml","printer-redesign/src/main/res/menu/menu_queue_detail.xml"],"removed":[],"modified":["ARCHITECTURE_COMPARISON.md","CLAUDE.md","printer-redesign/ARCHITECTURE.md","printer-redesign/application/engine/TemplateManager.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/build.gradle","printer-redesign/domain/template/BarcodeElement.java","printer-redesign/domain/template/BaseElement.java","printer-redesign/domain/template/ContextData.java","printer-redesign/domain/template/LineElement.java","printer-redesign/domain/template/PrintElement.java","printer-redesign/domain/template/TableElement.java","printer-redesign/domain/template/TextElement.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/layout/activity_main.xml","printer-redesign/src/main/res/values/colors.xml"]}],"total_commits":0,"head_commit":{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},"repository":{"id":13,"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":"printer-server","full_name":"luoanwu/printer-server","description":"KTV打印服务器 - DDD架构重构","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server/languages","html_url":"https://gitea.g-hi.com/luoanwu/printer-server","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/printer-server.git","clone_url":"https://gitea.g-hi.com/luoanwu/printer-server.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-28T11:06:40+08:00","updated_at":"2026-02-28T11:06:54+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
|
2
|
4
|
1774234842
|
1774234854
|
0
|
1774234840
|
1774234854
|
|
|
0
|
Edit
Delete
|
|
1141
|
fix(ime-core): 修复TFLiteRecognizerTest验证方式,改为验证可观察行 fix(ime-core): 修复TFLiteRecognizerTest验证方式,改为验证可观察行为...
|
9
|
5
|
ios-ci.yml
|
7
|
5
|
0
|
refs/heads/main
|
22125e0f1e435efabf81ec0007a1b56996cb0776
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"893022bfd17ce1f2e75e75651551cf8ceaacfe45","after":"22125e0f1e435efabf81ec0007a1b56996cb0776","compare_url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/compare/893022bfd17ce1f2e75e75651551cf8ceaacfe45...22125e0f1e435efabf81ec0007a1b56996cb0776","commits":[{"id":"22125e0f1e435efabf81ec0007a1b56996cb0776","message":"fix(ime-core): 修复TFLiteRecognizerTest验证方式,改为验证可观察行为\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/22125e0f1e435efabf81ec0007a1b56996cb0776","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-27T14:49:40+08:00","added":[],"removed":["ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/db/v13/p95794--38ca5d/data.mdb","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/db/v13/p95794--38ca5d/lock.mdb"],"modified":["ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/PanelCommon.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactMatcherTest.kt","app/src/main/java/com/haizhan/ime/ui/management/ManagementViewModel.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingManager.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/StrokeSegmenter.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/UnifiedRecognitionEngine.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/TFLiteRecognizerTest.kt","pnpm-lock.yaml","server/api-gateway/package.json","server/api-gateway/src/app.module.ts","server/api-gateway/src/main.ts","server/api-gateway/src/modules/ai/ai.module.ts","server/api-gateway/src/modules/ai/ai.service.ts","server/api-gateway/src/modules/knowledge/knowledge.service.ts","server/api-gateway/src/modules/ocr/ocr.module.ts","server/api-gateway/src/modules/ocr/ocr.service.ts","server/api-gateway/src/modules/settings/settings.module.ts","server/api-gateway/src/modules/settings/settings.service.ts"]},{"id":"e7926bf94bb1d2df1c56170dbe47940b49a70134","message":"fix(ime-core): 修复HandwritingManager测试缺少ModelDownloader参数\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/e7926bf94bb1d2df1c56170dbe47940b49a70134","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-27T14:40:23+08:00","added":[".github/workflows/ios-ci.yml",".npmrc","MIGRATION_COMPLETE_REPORT.md","admin-web/.eslintrc.cjs","docs/PNPM_MIGRATION_NOTICE.md","flutter_app/assets/fonts/PingFang-Medium.ttf","flutter_app/assets/fonts/PingFang-Regular.ttf","flutter_app/assets/fonts/PingFang-Semibold.ttf","flutter_app/assets/icons/.gitkeep","flutter_app/assets/images/.gitkeep","flutter_app/lib/features/contacts/data/contact_360_provider.dart","ime-core/src/main/java/com/haizhan/ime/core/handwriting/ModelDownloader.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/StrokeSegmenter.kt","package.json","pnpm-lock.yaml","pnpm-workspace.yaml","scripts/PACKAGE_MANAGER.md","scripts/PACKAGE_MANAGER_SUMMARY.md","scripts/migrate-to-pnpm.sh","scripts/package-manager-migration.md","server/api-gateway/src/modules/ai/ai.controller.ts","server/api-gateway/src/modules/ai/ai.module.ts","server/api-gateway/src/modules/ai/ai.service.ts","server/api-gateway/src/modules/ocr/ocr.controller.ts","server/api-gateway/src/modules/ocr/ocr.module.ts","server/api-gateway/src/modules/ocr/ocr.service.ts"],"removed":["server/ai-service/package-lock.json","server/api-gateway/package-lock.json","server/ocr-service/package-lock.json"],"modified":[".github/workflows/frontend-backend-ci.yml",".gitignore","CHANGELOG.md","CLAUDE.md","README.md","admin-web/package.json","admin-web/src/views/knowledge/index.vue","ai-panel/src/main/java/com/haizhan/ime/panel/agentic/HybridSearchExecutor.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/ContactMatcher.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/EnhancedContactMatcher.kt","ai-panel/src/main/java/com/haizhan/ime/panel/context/InputContextCollector.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/TitleBarParser.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/RagReplyGenerator.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/ReplyGenerator.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/PanelCommon.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactMatcherTest.kt","app/build.gradle.kts","app/proguard-rules.pro","app/src/main/java/com/haizhan/ime/ui/management/ManagementViewModel.kt","app/src/main/java/com/haizhan/ime/ui/management/SettingsScreen.kt","build.gradle.kts","common/src/main/java/com/haizhan/ime/common/theme/DesignTokens.kt","data/src/main/java/com/haizhan/ime/data/auth/AuthInterceptor.kt","data/src/main/java/com/haizhan/ime/data/auth/AuthManager.kt","data/src/main/java/com/haizhan/ime/data/di/NetworkModule.kt","data/src/main/java/com/haizhan/ime/data/repository/SettingsRepository.kt","docs/CI_CD_PIPELINE.md","docs/CODING_STANDARDS.md","docs/DEPLOYMENT.md","docs/DEVELOPMENT_GUIDE.md","docs/TESTING_STRATEGY.md","flutter_app/.dart_tool/package_config.json","flutter_app/.dart_tool/package_graph.json","flutter_app/lib/core/bridge/haizhan_bridge.dart","flutter_app/lib/core/di/service_locator.dart","flutter_app/lib/core/theme/app_colors.dart","flutter_app/lib/core/theme/app_theme.dart","flutter_app/lib/features/auth/presentation/login_screen.dart","flutter_app/lib/features/chat/presentation/chat_screen.dart","flutter_app/lib/features/chat/presentation/conversation_screen.dart","flutter_app/lib/features/contacts/data/contacts_provider.dart","flutter_app/lib/features/contacts/presentation/contact_detail_screen.dart","flutter_app/lib/features/contacts/presentation/contacts_screen.dart","flutter_app/lib/features/home/presentation/home_screen.dart","flutter_app/lib/features/home/presentation/main_shell.dart","flutter_app/lib/features/knowledge/presentation/knowledge_screen.dart","flutter_app/lib/features/profile/presentation/profile_screen.dart","flutter_app/lib/features/search/presentation/widgets/search_metrics_indicator.dart","flutter_app/lib/features/settings/presentation/settings_screen.dart","flutter_app/lib/features/stats/presentation/widgets/contact_stats_tab.dart","flutter_app/lib/features/stats/presentation/widgets/overview_tab.dart","flutter_app/lib/features/stats/presentation/widgets/reply_stats_tab.dart","flutter_app/lib/features/stats/presentation/widgets/stats_shared_widgets.dart","flutter_app/lib/features/support/presentation/about_screen.dart","flutter_app/lib/features/support/presentation/feedback_screen.dart","flutter_app/lib/features/support/presentation/help_screen.dart","flutter_app/lib/features/support/presentation/privacy_screen.dart","flutter_app/lib/main.dart","flutter_app/lib/shared/widgets/stat_card.dart","flutter_app/pigeons/haizhan_api.dart","flutter_app/pubspec.lock","flutter_app/pubspec.yaml","flutter_app/test/core/theme/theme_provider_test.dart","flutter_app/test/features/auth/login_screen_test.dart","flutter_app/test/features/chat/chat_screen_test.dart","flutter_app/test/features/contacts/contacts_screen_test.dart","flutter_app/test/features/home/home_screen_test.dart","flutter_app/test/features/knowledge/knowledge_screen_test.dart","flutter_app/test/features/profile/profile_screen_test.dart","flutter_app/test/features/settings/settings_screen_test.dart","flutter_app/test/features/stats/stats_screen_test.dart","flutter_app/test/integration/app_integration_test.dart","flutter_app/test/providers/auth_provider_test.dart","flutter_app/test/services/api_service_test.dart","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingManager.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingView.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/TFLiteRecognizer.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/UnifiedRecognitionEngine.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/EnhancedCandidatesView.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/KeyboardView.kt","ime-core/src/main/java/com/haizhan/ime/core/theme/DesignTokens.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/HandwritingManagerAdvancedTest.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/HandwritingManagerTest.kt","ios_keyboard/.build/.lock","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboard.build/HaizhanKeyboard.emit-module.d","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboard.build/master.priors","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboard.build/output-file-map.json","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboard.build/sources","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboardTests.build/output-file-map.json","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboardTests.build/sources","ios_keyboard/.build/arm64-apple-macosx/debug/description.json","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/AIPanelView.swift.o-3JCH38GYDGXR8","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/ContactMatcher.swift.o-2DEFMG7O4JYLM","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/HapticManager.swift.o-1RR1AGSLF5OMM","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/KeyboardEngine.swift.o-138QNNFN5L8T5","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/KeyboardView.swift.o-3DKAUVCODQU40","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/KeyboardViewController.swift.o-Q3D13NLK8BXH","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/NineGridKeyboard.swift.o-1SAAN5KAN9TN9","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/PinyinSegmenter.swift.o-MFJITYIEOC0T","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/ReplyService.swift.o-32WKBX1JUI0W6","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/ScreenshotManager.swift.o-2OU33ZXZWSYE6","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/SettingsView.swift.o-127RM9EAP5VM6","ios_keyboard/.build/arm64-apple-macosx/debug/plugin-tools-description.json","ios_keyboard/.build/build.db","ios_keyboard/.build/debug.yaml","ios_keyboard/.build/index-build/.lock","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/HaizhanKeyboard.build/master.priors","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/description.json","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/store/v5/units/KeyboardView.swift.o-ZCNKWX79V430","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/store/v5/units/NineGridKeyboard.swift.o-1ZTZUBTR9D3N2","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/store/v5/units/ScreenshotManager.swift.o-1OSRMU5500GQS","ios_keyboard/.build/index-build/build.db","ios_keyboard/.build/index-build/debug.yaml","ios_keyboard/.build/plugin-tools.yaml","ios_keyboard/Sources/HaizhanKeyboard/AI/ScreenshotManager.swift","ios_keyboard/Sources/HaizhanKeyboard/Views/KeyboardView.swift","ios_keyboard/Sources/HaizhanKeyboard/Views/NineGridKeyboard.swift","server/.npmrc","server/README.md","server/ai-service/Dockerfile","server/api-gateway/Dockerfile","server/api-gateway/package.json","server/api-gateway/src/modules/mobile-compat/mobile-compat.controller.ts","server/docker-compose.override.yml","server/docker-compose.yml","server/ocr-service/Dockerfile","shared/src/iosMain/kotlin/com/haizhan/ime/shared/auth/IosTokenStorage.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/platform/DictionaryLoader.ios.kt","voice/src/main/java/com/haizhan/ime/voice/audio/AudioPipelineImpl.kt","voice/src/main/java/com/haizhan/ime/voice/recognition/SpeechRecognitionServiceImpl.kt"]},{"id":"15aae8c5e92b6e0c7dd53a7921212b68b8a1294b","message":"perf(server): JWT用户缓存 + 缓存失效 + legacy-reply stub实现\n\n- JwtStrategy 添加 Redis 用户缓存 (5分钟TTL), 减少95%数据库查询\n- auth.service 在 updateProfile/logout/logoutAll 时主动失效缓存\n- users.service 在 update/updateStatus/toggleStatus/delete 时失效缓存\n- UsersModule 注入 RedisModule 支持缓存操作\n- legacy-reply markReplyUsed/submitReplyFeedback stub 实现完整请求解析和日志\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/15aae8c5e92b6e0c7dd53a7921212b68b8a1294b","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-25T08:23:28+08:00","added":[],"removed":[],"modified":["server/ai-service/src/modules/ai/legacy-reply.controller.ts","server/api-gateway/src/modules/auth/auth.service.ts","server/api-gateway/src/modules/auth/strategies/jwt.strategy.ts","server/api-gateway/src/modules/users/users.module.ts","server/api-gateway/src/modules/users/users.service.ts"]},{"id":"f19558e8e838bacc0f616f40c1ec10d9a5e4e9d5","message":"chore(server): 优化 Docker 基础设施配置\n\n- Redis: 修复空密码时 --requirepass 报错问题\n- Reranker Dockerfile: torch CPU 预安装 + 清华 PyPI 镜像加速\n- requirements.txt: 移除 --extra-index-url(已在 Dockerfile 中处理)\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/f19558e8e838bacc0f616f40c1ec10d9a5e4e9d5","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-25T08:16:10+08:00","added":[],"removed":[],"modified":["server/docker-compose.yml","server/model-services/reranker/Dockerfile","server/model-services/reranker/requirements.txt"]},{"id":"43712be12681e00bab0e3fed74c60ffa34fdc11d","message":"fix(server): 修复 5 个 CRITICAL + 5 个 HIGH 安全漏洞\n\nCRITICAL:\n- C1: 移除 JWT_SECRET/JWT_REFRESH_SECRET 弱默认值回退,启动时断言必须配置\n- C2: 开发后门 000000 需同时满足 NODE_ENV=development + ENABLE_DEV_BYPASS=true\n- C3: OCR recognizeFromUrl 添加 SSRF 防护(HTTPS-only + 内网地址黑名单)\n- C4: resetPassword 使用 crypto.randomBytes + bcrypt.hash 替代 Math.random + 明文\n- C5: ai-service auth.guard 添加 JWT alg 字段校验 + timingSafeEqual 签名比较\n\nHIGH:\n- H1: Redis KEYS 命令替换为 SCAN 游标迭代,避免生产环境阻塞\n- H2: knowledge.controller 添加 @UseGuards(JwtAuthGuard) 认证守卫\n- H4: updateProfile 禁止直接修改手机号,需独立验证流程\n- H6: Access Token 有效期从 7d 缩短至 1h\n- H7: JwtStrategy.validate 注入 RedisService 检查 token 黑名单\n\n测试: api-gateway 963 tests, ai-service 883 tests, ocr-service 87 tests 全部通过\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/43712be12681e00bab0e3fed74c60ffa34fdc11d","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-25T08:15:48+08:00","added":[],"removed":[],"modified":["server/ai-service/src/common/guards/auth.guard.ts","server/api-gateway/src/modules/auth/auth.service.ts","server/api-gateway/src/modules/auth/strategies/jwt.strategy.ts","server/api-gateway/src/modules/knowledge/knowledge.controller.ts","server/api-gateway/src/modules/users/users.service.ts","server/api-gateway/src/shared/redis/redis.service.ts","server/ocr-service/src/modules/ocr/ocr.service.ts"]}],"total_commits":0,"head_commit":{"id":"22125e0f1e435efabf81ec0007a1b56996cb0776","message":"fix(ime-core): 修复TFLiteRecognizerTest验证方式,改为验证可观察行为\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/22125e0f1e435efabf81ec0007a1b56996cb0776","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-27T14:49:40+08:00","added":[],"removed":["ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/db/v13/p95794--38ca5d/data.mdb","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/db/v13/p95794--38ca5d/lock.mdb"],"modified":["ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/PanelCommon.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactMatcherTest.kt","app/src/main/java/com/haizhan/ime/ui/management/ManagementViewModel.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingManager.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/StrokeSegmenter.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/UnifiedRecognitionEngine.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/TFLiteRecognizerTest.kt","pnpm-lock.yaml","server/api-gateway/package.json","server/api-gateway/src/app.module.ts","server/api-gateway/src/main.ts","server/api-gateway/src/modules/ai/ai.module.ts","server/api-gateway/src/modules/ai/ai.service.ts","server/api-gateway/src/modules/knowledge/knowledge.service.ts","server/api-gateway/src/modules/ocr/ocr.module.ts","server/api-gateway/src/modules/ocr/ocr.service.ts","server/api-gateway/src/modules/settings/settings.module.ts","server/api-gateway/src/modules/settings/settings.service.ts"]},"repository":{"id":9,"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":"haizhan-ime-android","full_name":"luoanwu/haizhan-ime-android","description":"嗨赞AI输入法 Android版","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":22552,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizhan-ime-android/languages","html_url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizhan-ime-android","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/haizhan-ime-android.git","clone_url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android.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-27T15:27:17+08:00","updated_at":"2026-02-27T15:42:01+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
|
4
|
1772284752
|
1772284752
|
0
|
1772178609
|
1772284752
|
NULL
|
|
0
|
Edit
Delete
|
|
46
|
feat: 完善菜单系统与获客域组件
|
6
|
5
|
ci.yml
|
7
|
5
|
0
|
refs/heads/main
|
a7c22fc0f5e2d113210bb58646dcdbf7381be245
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"89209aba1afe21133399ce0db0a47c2729c9a4b4","after":"a7c22fc0f5e2d113210bb58646dcdbf7381be245","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/89209aba1afe21133399ce0db0a47c2729c9a4b4...a7c22fc0f5e2d113210bb58646dcdbf7381be245","commits":[{"id":"a7c22fc0f5e2d113210bb58646dcdbf7381be245","message":"feat: 完善菜单系统与获客域组件\n\n菜单系统优化:\n- 完善路由配置和菜单定义\n- 优化侧边栏布局组件\n\n获客域改进:\n- 重构 CalendarSidebar 组件\n- 完善 useTodos composable 逻辑\n- 优化 acquisition Index 页面\n\nAPI 适配器优化:\n- 完善订单和报价模块接口\n- 优化类型定义\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a7c22fc0f5e2d113210bb58646dcdbf7381be245","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-01-24T13:15:57+08:00","added":[],"removed":[],"modified":["backend/src/modules/orders/order.service.ts","backend/src/modules/quotes/quote.service.ts","frontend/src/api/adapters.ts","frontend/src/api/modules/orders.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/layout/SidebarV2.vue","frontend/src/router/index.ts","frontend/src/router/menu.ts","frontend/src/types/enums.ts","frontend/src/views/acquisition/Index.vue","frontend/src/views/acquisition/components/CalendarSidebar.vue","frontend/src/views/acquisition/composables/types.ts","frontend/src/views/acquisition/composables/useTodos.ts"]},{"id":"c33235407144b26da2f8210eafefcb17b16eb681","message":"feat(activity): 完善活动组件功能\n\n- 提取时间格式化工具函数到 utils/date.ts\n - formatMinutesToReadable: 格式化分钟数为可读格式\n - formatTimeOnly: 格式化时间为 HH:mm 格式\n - formatOverdue: 格式化逾期时间描述\n - getDateLabel: 获取日期友好标签(今天、昨天、周几)\n\n- ActivityTodayPanel 新增自动刷新功能\n - 添加 refreshInterval prop 配置刷新间隔\n - 实现定时器自动刷新机制\n - 添加生命周期管理确保定时器正确清理\n\n- ActivityQuickCreate 新增最近使用类型功能\n - 使用 localStorage 持久化最近使用的活动类型\n - 快捷类型列表优先显示最近使用的类型\n - 创建成功后自动保存到最近使用列表\n\n- ActivityTimeline 代码优化\n - 使用共享工具函数替代本地重复代码\n - 简化 groupedActivities 计算逻辑\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c33235407144b26da2f8210eafefcb17b16eb681","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-01-24T13:15:47+08:00","added":[],"removed":[],"modified":["frontend/src/components/business/ActivityQuickCreate.vue","frontend/src/components/business/ActivityTimeline.vue","frontend/src/components/business/ActivityTodayPanel.vue","frontend/src/components/business/WorkstationCalendarGantt.vue","frontend/src/utils/date.ts"]},{"id":"89aabcffe0caa49473f79ba33ee5a776168823d3","message":"fix(types): 修复 TypeScript 类型错误\n\n- tsconfig.json: 添加 Node.js 类型定义\n- slow-query.middleware.ts: 修复 Express 类型导入\n- encryption.middleware.ts: 修复泛型索引类型错误\n- encryption.service.ts: 修复泛型索引类型错误\n- outbox-processor.service.ts: 添加 Kafka producer 空值检查\n\n剩余类型错误主要为 Prisma 相关,需要执行 prisma generate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89aabcffe0caa49473f79ba33ee5a776168823d3","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-01-24T04:42:53Z","added":[],"removed":[],"modified":["backend/src/shared/middleware/encryption.middleware.ts","backend/src/shared/middleware/slow-query.middleware.ts","backend/src/shared/services/encryption.service.ts","backend/src/shared/services/outbox-processor.service.ts","backend/tsconfig.json"]},{"id":"abd654ed9ddbab9a988c89074448d591135d7d51","message":"docs(claude): 新增 Claude Code 工具使用规范章节\n\n新增内容:\n- 工具选择决策树(快速判断使用哪个工具)\n- 文件操作工具规范(Read/Glob/Grep/Edit/Write)\n- 命令执行工具规范(Bash 适用场景和禁止操作)\n- Task 工具使用指南(11 种 Agent 类型选择)\n- TodoWrite 任务追踪规范\n- Web 工具使用方法\n- 4 种常用工具组合模式\n- 项目特定规范(多租户/状态机/事件/7层一致性)\n- 工具使用禁忌对照表\n- 效率优化原则\n\n版本更新:v7.2 → v7.3\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/abd654ed9ddbab9a988c89074448d591135d7d51","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-01-24T11:37:19+08:00","added":["frontend/src/views/acquisition/Integrations.vue","frontend/src/views/acquisition/TobTocGateway.vue","frontend/src/views/ad/Accounts.vue","frontend/src/views/ad/Analytics.vue","frontend/src/views/ad/Audiences.vue","frontend/src/views/ad/Biddings.vue","frontend/src/views/ad/Campaigns.vue","frontend/src/views/ad/Creatives.vue","frontend/src/views/ad/Placements.vue","frontend/src/views/ad/Reports.vue","frontend/src/views/admin/ApiMonitor.vue","frontend/src/views/admin/Bom.vue","frontend/src/views/admin/CacheMonitor.vue","frontend/src/views/admin/KafkaMonitor.vue","frontend/src/views/admin/SystemMonitor.vue","frontend/src/views/ai/Copilot.vue","frontend/src/views/alliance/Analytics.vue","frontend/src/views/alliance/Coupons.vue","frontend/src/views/alliance/Merchants.vue","frontend/src/views/alliance/Products.vue","frontend/src/views/alliance/Promotions.vue","frontend/src/views/alliance/Referrals.vue","frontend/src/views/alliance/Settlements.vue","frontend/src/views/analytics/CohortAnalysis.vue","frontend/src/views/analytics/ConsumerBehavior.vue","frontend/src/views/analytics/CrossDomainFunnel.vue","frontend/src/views/analytics/CustomerJourney.vue","frontend/src/views/analytics/DataHub.vue","frontend/src/views/analytics/DimensionTransform.vue","frontend/src/views/analytics/JourneyOrchestration.vue","frontend/src/views/analytics/LifecycleValue.vue","frontend/src/views/analytics/Ltv.vue","frontend/src/views/analytics/MetricTree.vue","frontend/src/views/analytics/NorthStarMetrics.vue","frontend/src/views/analytics/OmnichannelDashboard.vue","frontend/src/views/analytics/ProductAnalytics.vue","frontend/src/views/analytics/RealtimeMarketingAi.vue","frontend/src/views/analytics/RfmAnalysis.vue","frontend/src/views/analytics/SalesFunnel.vue","frontend/src/views/analytics/Segmentation.vue","frontend/src/views/analytics/Segments.vue","frontend/src/views/analytics/Touchpoints.vue","frontend/src/views/approvals/Configs.vue","frontend/src/views/approvals/Templates.vue","frontend/src/views/assets/Maintenance.vue","frontend/src/views/assets/Transfers.vue","frontend/src/views/attribution/ConversionPaths.vue","frontend/src/views/attribution/Models.vue","frontend/src/views/attribution/MultiTouch.vue","frontend/src/views/attribution/Reports.vue","frontend/src/views/campaigns/Analytics.vue","frontend/src/views/campaigns/Drafts.vue","frontend/src/views/campaigns/Tools.vue","frontend/src/views/campaigns/UseCaseTemplates.vue","frontend/src/views/channels/Analytics.vue","frontend/src/views/channels/QrCodes.vue","frontend/src/views/channels/UtmTracking.vue","frontend/src/views/community/Gamification.vue","frontend/src/views/finance/AgingAnalysis.vue","frontend/src/views/finance/ApLedger.vue","frontend/src/views/finance/ArLedger.vue","frontend/src/views/finance/CostAllocation.vue","frontend/src/views/finance/ExpenseClaims.vue","frontend/src/views/finance/InvoiceRequests.vue","frontend/src/views/finance/InvoiceVerification.vue","frontend/src/views/finance/PaymentPlans.vue","frontend/src/views/finance/SupplierPayments.vue","frontend/src/views/geo/Analysis.vue","frontend/src/views/groupbuy/Pricing.vue","frontend/src/views/groupbuy/Rankings.vue","frontend/src/views/groupbuy/Rules.vue","frontend/src/views/groupbuy/Vouchers.vue","frontend/src/views/hr/Payroll.vue","frontend/src/views/im/Channels.vue","frontend/src/views/im/VideoCall.vue","frontend/src/views/knowledge/Tags.vue","frontend/src/views/leads/Import.vue","frontend/src/views/leads/Intelligence.vue","frontend/src/views/leads/Pool.vue","frontend/src/views/leads/Pools.vue","frontend/src/views/leads/Scoring.vue","frontend/src/views/livestream/Replays.vue","frontend/src/views/marketing/AbmMarketing.vue","frontend/src/views/marketing/Attribution.vue","frontend/src/views/marketing/Dashboard.vue","frontend/src/views/marketing/Effectiveness.vue","frontend/src/views/members/Benefits.vue","frontend/src/views/members/Levels.vue","frontend/src/views/members/Points.vue","frontend/src/views/organization/Chart.vue","frontend/src/views/organization/Positions.vue","frontend/src/views/social/Matrix.vue","frontend/src/views/stores/Agency.vue","frontend/src/views/stores/Configs.vue","frontend/src/views/stores/Dashboard.vue","frontend/src/views/stores/LocalEvents.vue","frontend/src/views/stores/LocalPromotion.vue","frontend/src/views/stores/Performance.vue","frontend/src/views/stores/SelfOperated.vue","frontend/src/views/system/AuditLogs.vue","frontend/src/views/system/BizSequences.vue","frontend/src/views/system/Dictionaries.vue","frontend/src/views/system/EmailTemplates.vue","frontend/src/views/system/Events.vue","frontend/src/views/system/Files.vue","frontend/src/views/system/IntegrationServices.vue","frontend/src/views/system/LoginLogs.vue","frontend/src/views/system/Menus.vue","frontend/src/views/system/OperationLogs.vue","frontend/src/views/system/Permissions.vue","frontend/src/views/system/Realtime.vue","frontend/src/views/system/SecuritySettings.vue","frontend/src/views/system/Settings.vue","frontend/src/views/system/WorkflowGenerator.vue","frontend/src/views/tenant/Branding.vue","frontend/src/views/tenant/Settings.vue","frontend/src/views/video/Analytics.vue","frontend/src/views/video/Content.vue","frontend/src/views/video/Publishing.vue"],"removed":[],"modified":["CLAUDE.md","frontend/src/views/dashboard/components/ProfitAnalysis.vue","frontend/src/views/orders/Index.vue","frontend/src/views/quotes/Detail.vue"]},{"id":"0b4942d200d9009d4c6ee1e06674d71f13585a52","message":"feat(menu): 将渠道客户移动到销售中心的渠道管理分组\n\n- 修改 partner-customers 路由的 menuGroup 从 '主数据' 改为 '渠道管理'\n- 在 SALES_ITEMS 中添加 partner-customers 菜单项\n- 调整 menuOrder 为 3(在客户管理和合作伙伴之后)\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b4942d200d9009d4c6ee1e06674d71f13585a52","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-01-24T02:33:47+08:00","added":[],"removed":[],"modified":["frontend/src/router/index.ts","frontend/src/router/menu.ts"]}],"total_commits":0,"head_commit":{"id":"a7c22fc0f5e2d113210bb58646dcdbf7381be245","message":"feat: 完善菜单系统与获客域组件\n\n菜单系统优化:\n- 完善路由配置和菜单定义\n- 优化侧边栏布局组件\n\n获客域改进:\n- 重构 CalendarSidebar 组件\n- 完善 useTodos composable 逻辑\n- 优化 acquisition Index 页面\n\nAPI 适配器优化:\n- 完善订单和报价模块接口\n- 优化类型定义\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a7c22fc0f5e2d113210bb58646dcdbf7381be245","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-01-24T13:15:57+08:00","added":[],"removed":[],"modified":["backend/src/modules/orders/order.service.ts","backend/src/modules/quotes/quote.service.ts","frontend/src/api/adapters.ts","frontend/src/api/modules/orders.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/layout/SidebarV2.vue","frontend/src/router/index.ts","frontend/src/router/menu.ts","frontend/src/types/enums.ts","frontend/src/views/acquisition/Index.vue","frontend/src/views/acquisition/components/CalendarSidebar.vue","frontend/src/views/acquisition/composables/types.ts","frontend/src/views/acquisition/composables/useTodos.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":true,"fork":false,"template":false,"parent":null,"mirror":false,"size":14720,"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-24T00:00:10+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
|
18
|
1771862494
|
1771862495
|
0
|
1771862412
|
1771862495
|
NULL
|
|
0
|
Edit
Delete
|
|
8
|
测试修改3333
|
2
|
2
|
hello-world.yaml
|
7
|
1
|
0
|
refs/heads/main
|
265f1b4a557b2a64464bc98e1e418e0e01298d31
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"a931e51a2c8c1e80aab44673de58b17e14e7b34e","after":"265f1b4a557b2a64464bc98e1e418e0e01298d31","compare_url":"https://gitea.g-hi.com/juhai/testpc/compare/a931e51a2c8c1e80aab44673de58b17e14e7b34e...265f1b4a557b2a64464bc98e1e418e0e01298d31","commits":[{"id":"265f1b4a557b2a64464bc98e1e418e0e01298d31","message":"测试修改3333\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/265f1b4a557b2a64464bc98e1e418e0e01298d31","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-11T17:05:29+08:00","added":[],"removed":[],"modified":["pc/alilog.php"]}],"total_commits":0,"head_commit":{"id":"265f1b4a557b2a64464bc98e1e418e0e01298d31","message":"测试修改3333\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/265f1b4a557b2a64464bc98e1e418e0e01298d31","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-11T17:05:29+08:00","added":[],"removed":[],"modified":["pc/alilog.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":17705,"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:04:45+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
|
1770800735
|
1770800740
|
0
|
1770800734
|
1770800740
|
NULL
|
|
0
|
Edit
Delete
|
|
7229
|
build: 完善Release版本构建配置
|
13
|
5
|
codeql-analysis.yml
|
6
|
-2
|
46
|
refs/heads/main
|
6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","compare_url":"https://gitea.g-hi.com/luoanwu/printer-server/compare/c254333cc45c082124d3d4fd01a4a3fc3fda7296...6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","commits":[{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},{"id":"b44b6415c67f54b2d1bcd688757fec2aaf1686f4","message":"fix: 修复PrintJob状态转换和数据库初始化崩溃问题\n\n1. PrinterDatabase.optimizeDatabase()\n - 将PRAGMA命令从execSQL改为query()方法\n - Room的SupportSQLiteDatabase对PRAGMA有限制\n - 添加异常处理确保数据库优化失败不影响启动\n\n2. PrinterService.onTaskFailed()\n - 添加状态检查逻辑,根据当前状态决定处理方式\n - FAILED状态:执行重试逻辑\n - PRINTING状态:先转换为FAILED再重试\n - 其他状态:直接重新调度执行\n\n3. PrintingApplicationService.executePrintJob()\n - 新增prepareJobForPrinting()确保状态正确转换\n - CREATED -\u003e QUEUED -\u003e PRINTING 状态流转\n - 新增handleJobFailure()安全处理失败\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/b44b6415c67f54b2d1bcd688757fec2aaf1686f4","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:54:24+08:00","added":[],"removed":[],"modified":["printer-redesign/application/service/PrinterService.java","printer-redesign/application/service/PrintingApplicationService.java","printer-redesign/infrastructure/database/PrinterDatabase.java","printer-redesign/scripts/build-release.sh"]},{"id":"d2d0385e8b5c1b06d7e59f108c6e9f845905c841","message":"fix: 修复编译错误并成功构建APK\n\n修复内容:\n- PrintTestActivity: 重写以修复API兼容性问题\n - observeEnabled()替代getEnabledPrinters()\n - 移除PrinterApplication依赖\n - 修复Priority/PrintType方法调用\n - 修复rawContent类型(String→byte[])\n- OrderFormatterService: 补充shouldBeep()方法闭合括号\n- TemplateRenderEngine: 修复方法调用\n - getSummary()→toString()\n - setFontSize()→setSize()\n - setWidth()→setLength()\n- PrintJobDao: 添加getActiveJobs()方法\n- QueueViewModel: 修复RxJava包装和cancel()参数\n- MainViewModel: 移除totalCount()调用\n- PrinterConfigDTO: 修复fromEntity()方法兼容性\n\n构建结果:APK 7.8MB\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/d2d0385e8b5c1b06d7e59f108c6e9f845905c841","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:38:29+08:00","added":[],"removed":[],"modified":["printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/domain/service/OrderFormatterService.java","printer-redesign/infrastructure/database/dao/PrintJobDao.java","printer-redesign/infrastructure/device/EscPosExecutor.java","printer-redesign/infrastructure/device/PrinterCommandExecutor.java","printer-redesign/infrastructure/device/TsplExecutor.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java"]},{"id":"f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","message":"feat: 增强应用架构与测试功能\n\n- 新增 CQRS 模式支持 (command/query/dto)\n- 添加 PrintTestActivity 测试界面\n- 新增 MainViewModel 和 QueueViewModel\n- 完善 build.gradle 配置与签名设置\n- 优化 MainActivity 功能与交互\n- 增强 PrintTaskAdapter 适配逻辑\n- 添加 proguard 混淆规则和构建脚本\n- 更新 UI 资源文件\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:28:57+08:00","added":["printer-redesign/application/command/ConfigurePrinterCommand.java","printer-redesign/application/command/RecoverDeadLetterCommand.java","printer-redesign/application/command/SubmitPrintJobCommand.java","printer-redesign/application/dto/PrintJobDTO.java","printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/dto/QueueStatsDTO.java","printer-redesign/application/query/GetPrintJobsQuery.java","printer-redesign/application/query/GetQueueStatsQuery.java","printer-redesign/keystore.properties.template","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java","printer-redesign/proguard-rules.pro","printer-redesign/scripts/build-release.sh","printer-redesign/scripts/generate-keystore.sh","printer-redesign/src/main/res/drawable/ic_help.xml","printer-redesign/src/main/res/layout/activity_print_test.xml"],"removed":[],"modified":[".gitignore","printer-redesign/build.gradle","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/migration/BillStyleAdapter.java","printer-redesign/migration/PrintTaskAdapter.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/values/colors.xml","printer-redesign/src/main/res/values/strings.xml"]},{"id":"4052be41183584c726cd84d2f9d9cb5c371da83b","message":"feat: 完善模板引擎系统与UI优化\n\n模板引擎增强:\n- 新增 ExpressionEvaluator 表达式求值器,支持复杂条件判断\n- 新增 FormatPipeline 格式化管道,支持货币/日期/截断等格式化\n- 新增 ContextDataEnhanced 增强上下文,支持嵌套路径和管道\n- 新增 GroupElement 分组元素,支持条件渲染和循环渲染\n- 新增 TableElementEnhanced 增强表格,支持分组/小计/合计\n- 新增 ImageElement 图片元素,支持URL/Base64/本地文件\n- 新增 TemplateValidator 模板验证器\n- 新增 TemplateRenderEngineEnhanced 增强渲染引擎\n- 完善 TemplateManager 模板管理器\n\nUI和功能优化:\n- 新增 HealthCheckActivity 健康检查详情页\n- 新增 LogViewerActivity 日志查看页面\n- 新增 QueueDetailActivity 队列详情页面\n- 优化 MainActivity 界面布局和状态显示\n- 精简 SystemPrintDriver 代码结构\n- 新增相关资源文件和菜单\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/4052be41183584c726cd84d2f9d9cb5c371da83b","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:12:50+08:00","added":["printer-redesign/application/engine/TemplateRenderEngineEnhanced.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/docs/TEMPLATE_ENHANCEMENT_GUIDE.md","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/domain/service/formatter/StrategyRegistry.java","printer-redesign/domain/template/ContextDataEnhanced.java","printer-redesign/domain/template/CutElement.java","printer-redesign/domain/template/FormatPipeline.java","printer-redesign/domain/template/GroupElement.java","printer-redesign/domain/template/ImageElement.java","printer-redesign/domain/template/QRCodeElement.java","printer-redesign/domain/template/SpacerElement.java","printer-redesign/domain/template/TableElementEnhanced.java","printer-redesign/infrastructure/device/utils/BitmapToEscPosUtil.java","printer-redesign/presentation/HealthCheckActivity.java","printer-redesign/presentation/LogViewerActivity.java","printer-redesign/presentation/QueueDetailActivity.java","printer-redesign/src/main/res/drawable/bg_error_message.xml","printer-redesign/src/main/res/drawable/bg_status_chip.xml","printer-redesign/src/main/res/drawable/ic_check_circle.xml","printer-redesign/src/main/res/drawable/ic_error.xml","printer-redesign/src/main/res/drawable/ic_print_type.xml","printer-redesign/src/main/res/drawable/ic_recover.xml","printer-redesign/src/main/res/drawable/ic_warning.xml","printer-redesign/src/main/res/layout/activity_health_check.xml","printer-redesign/src/main/res/layout/activity_log_viewer.xml","printer-redesign/src/main/res/layout/activity_queue_detail.xml","printer-redesign/src/main/res/layout/item_health_component.xml","printer-redesign/src/main/res/layout/item_print_log.xml","printer-redesign/src/main/res/layout/item_queue_job.xml","printer-redesign/src/main/res/menu/menu_log_viewer.xml","printer-redesign/src/main/res/menu/menu_queue_detail.xml"],"removed":[],"modified":["ARCHITECTURE_COMPARISON.md","CLAUDE.md","printer-redesign/ARCHITECTURE.md","printer-redesign/application/engine/TemplateManager.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/build.gradle","printer-redesign/domain/template/BarcodeElement.java","printer-redesign/domain/template/BaseElement.java","printer-redesign/domain/template/ContextData.java","printer-redesign/domain/template/LineElement.java","printer-redesign/domain/template/PrintElement.java","printer-redesign/domain/template/TableElement.java","printer-redesign/domain/template/TextElement.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/layout/activity_main.xml","printer-redesign/src/main/res/values/colors.xml"]}],"total_commits":0,"head_commit":{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},"repository":{"id":13,"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":"printer-server","full_name":"luoanwu/printer-server","description":"KTV打印服务器 - DDD架构重构","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server/languages","html_url":"https://gitea.g-hi.com/luoanwu/printer-server","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/printer-server.git","clone_url":"https://gitea.g-hi.com/luoanwu/printer-server.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-28T11:06:40+08:00","updated_at":"2026-02-28T11:06:54+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
|
2
|
4
|
1774206041
|
1774206127
|
0
|
1774206040
|
1774206127
|
|
|
0
|
Edit
Delete
|
|
1140
|
fix(ime-core): 修复TFLiteRecognizerTest验证方式,改为验证可观察行 fix(ime-core): 修复TFLiteRecognizerTest验证方式,改为验证可观察行为...
|
9
|
5
|
frontend-backend-ci.yml
|
6
|
5
|
0
|
refs/heads/main
|
22125e0f1e435efabf81ec0007a1b56996cb0776
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"893022bfd17ce1f2e75e75651551cf8ceaacfe45","after":"22125e0f1e435efabf81ec0007a1b56996cb0776","compare_url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/compare/893022bfd17ce1f2e75e75651551cf8ceaacfe45...22125e0f1e435efabf81ec0007a1b56996cb0776","commits":[{"id":"22125e0f1e435efabf81ec0007a1b56996cb0776","message":"fix(ime-core): 修复TFLiteRecognizerTest验证方式,改为验证可观察行为\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/22125e0f1e435efabf81ec0007a1b56996cb0776","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-27T14:49:40+08:00","added":[],"removed":["ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/db/v13/p95794--38ca5d/data.mdb","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/db/v13/p95794--38ca5d/lock.mdb"],"modified":["ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/PanelCommon.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactMatcherTest.kt","app/src/main/java/com/haizhan/ime/ui/management/ManagementViewModel.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingManager.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/StrokeSegmenter.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/UnifiedRecognitionEngine.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/TFLiteRecognizerTest.kt","pnpm-lock.yaml","server/api-gateway/package.json","server/api-gateway/src/app.module.ts","server/api-gateway/src/main.ts","server/api-gateway/src/modules/ai/ai.module.ts","server/api-gateway/src/modules/ai/ai.service.ts","server/api-gateway/src/modules/knowledge/knowledge.service.ts","server/api-gateway/src/modules/ocr/ocr.module.ts","server/api-gateway/src/modules/ocr/ocr.service.ts","server/api-gateway/src/modules/settings/settings.module.ts","server/api-gateway/src/modules/settings/settings.service.ts"]},{"id":"e7926bf94bb1d2df1c56170dbe47940b49a70134","message":"fix(ime-core): 修复HandwritingManager测试缺少ModelDownloader参数\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/e7926bf94bb1d2df1c56170dbe47940b49a70134","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-27T14:40:23+08:00","added":[".github/workflows/ios-ci.yml",".npmrc","MIGRATION_COMPLETE_REPORT.md","admin-web/.eslintrc.cjs","docs/PNPM_MIGRATION_NOTICE.md","flutter_app/assets/fonts/PingFang-Medium.ttf","flutter_app/assets/fonts/PingFang-Regular.ttf","flutter_app/assets/fonts/PingFang-Semibold.ttf","flutter_app/assets/icons/.gitkeep","flutter_app/assets/images/.gitkeep","flutter_app/lib/features/contacts/data/contact_360_provider.dart","ime-core/src/main/java/com/haizhan/ime/core/handwriting/ModelDownloader.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/StrokeSegmenter.kt","package.json","pnpm-lock.yaml","pnpm-workspace.yaml","scripts/PACKAGE_MANAGER.md","scripts/PACKAGE_MANAGER_SUMMARY.md","scripts/migrate-to-pnpm.sh","scripts/package-manager-migration.md","server/api-gateway/src/modules/ai/ai.controller.ts","server/api-gateway/src/modules/ai/ai.module.ts","server/api-gateway/src/modules/ai/ai.service.ts","server/api-gateway/src/modules/ocr/ocr.controller.ts","server/api-gateway/src/modules/ocr/ocr.module.ts","server/api-gateway/src/modules/ocr/ocr.service.ts"],"removed":["server/ai-service/package-lock.json","server/api-gateway/package-lock.json","server/ocr-service/package-lock.json"],"modified":[".github/workflows/frontend-backend-ci.yml",".gitignore","CHANGELOG.md","CLAUDE.md","README.md","admin-web/package.json","admin-web/src/views/knowledge/index.vue","ai-panel/src/main/java/com/haizhan/ime/panel/agentic/HybridSearchExecutor.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/ContactMatcher.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/EnhancedContactMatcher.kt","ai-panel/src/main/java/com/haizhan/ime/panel/context/InputContextCollector.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/TitleBarParser.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/RagReplyGenerator.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/ReplyGenerator.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/PanelCommon.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactMatcherTest.kt","app/build.gradle.kts","app/proguard-rules.pro","app/src/main/java/com/haizhan/ime/ui/management/ManagementViewModel.kt","app/src/main/java/com/haizhan/ime/ui/management/SettingsScreen.kt","build.gradle.kts","common/src/main/java/com/haizhan/ime/common/theme/DesignTokens.kt","data/src/main/java/com/haizhan/ime/data/auth/AuthInterceptor.kt","data/src/main/java/com/haizhan/ime/data/auth/AuthManager.kt","data/src/main/java/com/haizhan/ime/data/di/NetworkModule.kt","data/src/main/java/com/haizhan/ime/data/repository/SettingsRepository.kt","docs/CI_CD_PIPELINE.md","docs/CODING_STANDARDS.md","docs/DEPLOYMENT.md","docs/DEVELOPMENT_GUIDE.md","docs/TESTING_STRATEGY.md","flutter_app/.dart_tool/package_config.json","flutter_app/.dart_tool/package_graph.json","flutter_app/lib/core/bridge/haizhan_bridge.dart","flutter_app/lib/core/di/service_locator.dart","flutter_app/lib/core/theme/app_colors.dart","flutter_app/lib/core/theme/app_theme.dart","flutter_app/lib/features/auth/presentation/login_screen.dart","flutter_app/lib/features/chat/presentation/chat_screen.dart","flutter_app/lib/features/chat/presentation/conversation_screen.dart","flutter_app/lib/features/contacts/data/contacts_provider.dart","flutter_app/lib/features/contacts/presentation/contact_detail_screen.dart","flutter_app/lib/features/contacts/presentation/contacts_screen.dart","flutter_app/lib/features/home/presentation/home_screen.dart","flutter_app/lib/features/home/presentation/main_shell.dart","flutter_app/lib/features/knowledge/presentation/knowledge_screen.dart","flutter_app/lib/features/profile/presentation/profile_screen.dart","flutter_app/lib/features/search/presentation/widgets/search_metrics_indicator.dart","flutter_app/lib/features/settings/presentation/settings_screen.dart","flutter_app/lib/features/stats/presentation/widgets/contact_stats_tab.dart","flutter_app/lib/features/stats/presentation/widgets/overview_tab.dart","flutter_app/lib/features/stats/presentation/widgets/reply_stats_tab.dart","flutter_app/lib/features/stats/presentation/widgets/stats_shared_widgets.dart","flutter_app/lib/features/support/presentation/about_screen.dart","flutter_app/lib/features/support/presentation/feedback_screen.dart","flutter_app/lib/features/support/presentation/help_screen.dart","flutter_app/lib/features/support/presentation/privacy_screen.dart","flutter_app/lib/main.dart","flutter_app/lib/shared/widgets/stat_card.dart","flutter_app/pigeons/haizhan_api.dart","flutter_app/pubspec.lock","flutter_app/pubspec.yaml","flutter_app/test/core/theme/theme_provider_test.dart","flutter_app/test/features/auth/login_screen_test.dart","flutter_app/test/features/chat/chat_screen_test.dart","flutter_app/test/features/contacts/contacts_screen_test.dart","flutter_app/test/features/home/home_screen_test.dart","flutter_app/test/features/knowledge/knowledge_screen_test.dart","flutter_app/test/features/profile/profile_screen_test.dart","flutter_app/test/features/settings/settings_screen_test.dart","flutter_app/test/features/stats/stats_screen_test.dart","flutter_app/test/integration/app_integration_test.dart","flutter_app/test/providers/auth_provider_test.dart","flutter_app/test/services/api_service_test.dart","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingManager.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingView.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/TFLiteRecognizer.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/UnifiedRecognitionEngine.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/EnhancedCandidatesView.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/KeyboardView.kt","ime-core/src/main/java/com/haizhan/ime/core/theme/DesignTokens.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/HandwritingManagerAdvancedTest.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/HandwritingManagerTest.kt","ios_keyboard/.build/.lock","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboard.build/HaizhanKeyboard.emit-module.d","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboard.build/master.priors","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboard.build/output-file-map.json","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboard.build/sources","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboardTests.build/output-file-map.json","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboardTests.build/sources","ios_keyboard/.build/arm64-apple-macosx/debug/description.json","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/AIPanelView.swift.o-3JCH38GYDGXR8","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/ContactMatcher.swift.o-2DEFMG7O4JYLM","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/HapticManager.swift.o-1RR1AGSLF5OMM","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/KeyboardEngine.swift.o-138QNNFN5L8T5","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/KeyboardView.swift.o-3DKAUVCODQU40","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/KeyboardViewController.swift.o-Q3D13NLK8BXH","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/NineGridKeyboard.swift.o-1SAAN5KAN9TN9","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/PinyinSegmenter.swift.o-MFJITYIEOC0T","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/ReplyService.swift.o-32WKBX1JUI0W6","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/ScreenshotManager.swift.o-2OU33ZXZWSYE6","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/SettingsView.swift.o-127RM9EAP5VM6","ios_keyboard/.build/arm64-apple-macosx/debug/plugin-tools-description.json","ios_keyboard/.build/build.db","ios_keyboard/.build/debug.yaml","ios_keyboard/.build/index-build/.lock","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/HaizhanKeyboard.build/master.priors","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/description.json","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/store/v5/units/KeyboardView.swift.o-ZCNKWX79V430","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/store/v5/units/NineGridKeyboard.swift.o-1ZTZUBTR9D3N2","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/store/v5/units/ScreenshotManager.swift.o-1OSRMU5500GQS","ios_keyboard/.build/index-build/build.db","ios_keyboard/.build/index-build/debug.yaml","ios_keyboard/.build/plugin-tools.yaml","ios_keyboard/Sources/HaizhanKeyboard/AI/ScreenshotManager.swift","ios_keyboard/Sources/HaizhanKeyboard/Views/KeyboardView.swift","ios_keyboard/Sources/HaizhanKeyboard/Views/NineGridKeyboard.swift","server/.npmrc","server/README.md","server/ai-service/Dockerfile","server/api-gateway/Dockerfile","server/api-gateway/package.json","server/api-gateway/src/modules/mobile-compat/mobile-compat.controller.ts","server/docker-compose.override.yml","server/docker-compose.yml","server/ocr-service/Dockerfile","shared/src/iosMain/kotlin/com/haizhan/ime/shared/auth/IosTokenStorage.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/platform/DictionaryLoader.ios.kt","voice/src/main/java/com/haizhan/ime/voice/audio/AudioPipelineImpl.kt","voice/src/main/java/com/haizhan/ime/voice/recognition/SpeechRecognitionServiceImpl.kt"]},{"id":"15aae8c5e92b6e0c7dd53a7921212b68b8a1294b","message":"perf(server): JWT用户缓存 + 缓存失效 + legacy-reply stub实现\n\n- JwtStrategy 添加 Redis 用户缓存 (5分钟TTL), 减少95%数据库查询\n- auth.service 在 updateProfile/logout/logoutAll 时主动失效缓存\n- users.service 在 update/updateStatus/toggleStatus/delete 时失效缓存\n- UsersModule 注入 RedisModule 支持缓存操作\n- legacy-reply markReplyUsed/submitReplyFeedback stub 实现完整请求解析和日志\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/15aae8c5e92b6e0c7dd53a7921212b68b8a1294b","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-25T08:23:28+08:00","added":[],"removed":[],"modified":["server/ai-service/src/modules/ai/legacy-reply.controller.ts","server/api-gateway/src/modules/auth/auth.service.ts","server/api-gateway/src/modules/auth/strategies/jwt.strategy.ts","server/api-gateway/src/modules/users/users.module.ts","server/api-gateway/src/modules/users/users.service.ts"]},{"id":"f19558e8e838bacc0f616f40c1ec10d9a5e4e9d5","message":"chore(server): 优化 Docker 基础设施配置\n\n- Redis: 修复空密码时 --requirepass 报错问题\n- Reranker Dockerfile: torch CPU 预安装 + 清华 PyPI 镜像加速\n- requirements.txt: 移除 --extra-index-url(已在 Dockerfile 中处理)\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/f19558e8e838bacc0f616f40c1ec10d9a5e4e9d5","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-25T08:16:10+08:00","added":[],"removed":[],"modified":["server/docker-compose.yml","server/model-services/reranker/Dockerfile","server/model-services/reranker/requirements.txt"]},{"id":"43712be12681e00bab0e3fed74c60ffa34fdc11d","message":"fix(server): 修复 5 个 CRITICAL + 5 个 HIGH 安全漏洞\n\nCRITICAL:\n- C1: 移除 JWT_SECRET/JWT_REFRESH_SECRET 弱默认值回退,启动时断言必须配置\n- C2: 开发后门 000000 需同时满足 NODE_ENV=development + ENABLE_DEV_BYPASS=true\n- C3: OCR recognizeFromUrl 添加 SSRF 防护(HTTPS-only + 内网地址黑名单)\n- C4: resetPassword 使用 crypto.randomBytes + bcrypt.hash 替代 Math.random + 明文\n- C5: ai-service auth.guard 添加 JWT alg 字段校验 + timingSafeEqual 签名比较\n\nHIGH:\n- H1: Redis KEYS 命令替换为 SCAN 游标迭代,避免生产环境阻塞\n- H2: knowledge.controller 添加 @UseGuards(JwtAuthGuard) 认证守卫\n- H4: updateProfile 禁止直接修改手机号,需独立验证流程\n- H6: Access Token 有效期从 7d 缩短至 1h\n- H7: JwtStrategy.validate 注入 RedisService 检查 token 黑名单\n\n测试: api-gateway 963 tests, ai-service 883 tests, ocr-service 87 tests 全部通过\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/43712be12681e00bab0e3fed74c60ffa34fdc11d","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-25T08:15:48+08:00","added":[],"removed":[],"modified":["server/ai-service/src/common/guards/auth.guard.ts","server/api-gateway/src/modules/auth/auth.service.ts","server/api-gateway/src/modules/auth/strategies/jwt.strategy.ts","server/api-gateway/src/modules/knowledge/knowledge.controller.ts","server/api-gateway/src/modules/users/users.service.ts","server/api-gateway/src/shared/redis/redis.service.ts","server/ocr-service/src/modules/ocr/ocr.service.ts"]}],"total_commits":0,"head_commit":{"id":"22125e0f1e435efabf81ec0007a1b56996cb0776","message":"fix(ime-core): 修复TFLiteRecognizerTest验证方式,改为验证可观察行为\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/22125e0f1e435efabf81ec0007a1b56996cb0776","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-27T14:49:40+08:00","added":[],"removed":["ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/db/v13/p95794--38ca5d/data.mdb","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/db/v13/p95794--38ca5d/lock.mdb"],"modified":["ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/PanelCommon.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactMatcherTest.kt","app/src/main/java/com/haizhan/ime/ui/management/ManagementViewModel.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingManager.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/StrokeSegmenter.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/UnifiedRecognitionEngine.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/TFLiteRecognizerTest.kt","pnpm-lock.yaml","server/api-gateway/package.json","server/api-gateway/src/app.module.ts","server/api-gateway/src/main.ts","server/api-gateway/src/modules/ai/ai.module.ts","server/api-gateway/src/modules/ai/ai.service.ts","server/api-gateway/src/modules/knowledge/knowledge.service.ts","server/api-gateway/src/modules/ocr/ocr.module.ts","server/api-gateway/src/modules/ocr/ocr.service.ts","server/api-gateway/src/modules/settings/settings.module.ts","server/api-gateway/src/modules/settings/settings.service.ts"]},"repository":{"id":9,"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":"haizhan-ime-android","full_name":"luoanwu/haizhan-ime-android","description":"嗨赞AI输入法 Android版","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":22552,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizhan-ime-android/languages","html_url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizhan-ime-android","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/haizhan-ime-android.git","clone_url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android.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-27T15:27:17+08:00","updated_at":"2026-02-27T15:42:01+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
|
14
|
1772189123
|
1772189722
|
0
|
1772178609
|
1772189722
|
NULL
|
|
0
|
Edit
Delete
|
|
45
|
feat: 新增门店管理模块,补充门店维度营销分析端点
|
6
|
5
|
health-check.yml
|
6
|
-2
|
3
|
refs/heads/main
|
89209aba1afe21133399ce0db0a47c2729c9a4b4
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"abd8cdd0283c96dc4a62fbf753d2aca2e68aa379","after":"89209aba1afe21133399ce0db0a47c2729c9a4b4","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/abd8cdd0283c96dc4a62fbf753d2aca2e68aa379...89209aba1afe21133399ce0db0a47c2729c9a4b4","commits":[{"id":"89209aba1afe21133399ce0db0a47c2729c9a4b4","message":"feat: 新增门店管理模块,补充门店维度营销分析端点\n\n一、门店管理模块 (stores)\n- 门店 CRUD:创建、更新、删除、状态管理\n- 门店类型:旗舰店、标准店、加盟店、合作店、迷你店、快闪店\n- 状态机:pending → active → suspended/renovating → closed\n\n二、门店维度营销分析端点\n- GET /stores/:id/marketing-analytics - 门店营销分析(活动、直播、团购、订单汇总)\n- GET /stores/:id/roi-analytics - 门店 ROI 分析(投入产出比、渠道分解、同比环比)\n- GET /stores/:id/livestream-stats - 门店直播统计(场次、时长、观众、GMV)\n- GET /stores/:id/campaigns - 门店活动列表\n\n三、门店对比和排行\n- POST /stores/compare - 多门店横向对比\n- GET /stores/ranking - 门店排行榜(营收、订单、评分、直播GMV)\n\n四、门店营销配置\n- PATCH /stores/:id/marketing-config - 团购/直播/促销开关、平台配置、预算设置\n\n五、前端 API 模块\n- stores.ts:完整类型定义 + API 封装 + 状态配置 + 工具函数\n\n严格遵循8条开发红线\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89209aba1afe21133399ce0db0a47c2729c9a4b4","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-01-11T07:36:12Z","added":["backend/src/modules/stores/index.ts","backend/src/modules/stores/store.controller.ts","backend/src/modules/stores/store.routes.ts","backend/src/modules/stores/store.schema.ts","backend/src/modules/stores/store.service.ts","frontend/src/api/modules/stores.ts"],"removed":[],"modified":["backend/src/shared/constants/modules.ts"]},{"id":"bd02a7f3eefc8d114499177151ddde0a410c4065","message":"feat: 完善 KTV 智慧营销域模块代码实现 - 19个后端模块 + 19个前端API模块\n\n一、分析类模块 (3个)\n- social-analytics: 社交媒体分析(账号概览、内容表现、粉丝画像、竞品对比、趋势分析)\n- content-analytics: 内容分析(表现概览、热门内容、分类表现、发布时间分析)\n- livestream-gifts: 直播礼物(礼物配置、赠送记录、礼物统计、排行榜)\n\n二、商家联盟域模块 (5个)\n- alliance-partners: 联盟商家(入驻审核、等级管理、状态机驱动)\n- alliance-agreements: 联盟协议(协议模板、审批流、续签终止)\n- alliance-campaigns: 联盟活动(多商家参与、效果追踪、奖励配置)\n- alliance-coupons: 联盟优惠券(发放核销、成本分摊、使用规则)\n- alliance-packages: 联盟套餐(多商家组合、分成模式、有效期管理)\n\n三、社群运营域模块 (4个)\n- community-materials: 社群素材(素材库、审核流程、使用追踪)\n- community-tasks: 社群任务(任务配置、执行管理、状态机驱动)\n- community-fission: 社群裂变(邀请奖励、拼团助力、排行榜)\n- community-bots: 社群机器人(多平台支持、自动回复、消息日志)\n\n四、团购运营域模块 (7个)\n- groupbuy-platforms: 团购平台(平台接入、同步配置、对账管理)\n- groupbuy-promotions: 团购促销(促销配置、状态管理、批量操作)\n- groupbuy-inventory: 团购库存(库存管理、预警机制、调拨盘点)\n- groupbuy-redemptions: 团购核销(券码验证、核销记录、统计分析)\n- groupbuy-reviews: 团购评价(评价管理、商家回复、审核分析)\n- groupbuy-commissions: 团购佣金(佣金规则、结算审批、对账报表)\n- groupbuy-influencers: 团购达人(招募审核、等级体系、带货数据)\n\n技术规范:\n- 后端:5层标准结构(schema/service/controller/routes/index)\n- 前端:完整 TypeScript 类型定义 + API 封装\n- 严格遵循8条开发红线(多租户隔离、状态机、事件驱动等)\n\n文件统计:\n- 后端模块:19个目录,95个文件\n- 前端API:19个TypeScript模块,总计约10,000+行代码\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/bd02a7f3eefc8d114499177151ddde0a410c4065","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-01-11T07:21:51Z","added":["backend/src/modules/alliance-agreements/alliance-agreement.controller.ts","backend/src/modules/alliance-agreements/alliance-agreement.routes.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-agreements/alliance-agreement.service.ts","backend/src/modules/alliance-agreements/index.ts","backend/src/modules/alliance-campaigns/alliance-campaign.controller.ts","backend/src/modules/alliance-campaigns/alliance-campaign.routes.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.service.ts","backend/src/modules/alliance-campaigns/index.ts","backend/src/modules/alliance-coupons/alliance-coupon.controller.ts","backend/src/modules/alliance-coupons/alliance-coupon.routes.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.service.ts","backend/src/modules/alliance-coupons/index.ts","backend/src/modules/alliance-packages/alliance-package.controller.ts","backend/src/modules/alliance-packages/alliance-package.routes.ts","backend/src/modules/alliance-packages/alliance-package.schema.ts","backend/src/modules/alliance-packages/alliance-package.service.ts","backend/src/modules/alliance-packages/index.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/alliance-partners/index.ts","backend/src/modules/community-bots/community-bot.controller.ts","backend/src/modules/community-bots/community-bot.routes.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-bots/community-bot.service.ts","backend/src/modules/community-bots/index.ts","backend/src/modules/community-fission/community-fission.controller.ts","backend/src/modules/community-fission/community-fission.routes.ts","backend/src/modules/community-fission/community-fission.schema.ts","backend/src/modules/community-fission/community-fission.service.ts","backend/src/modules/community-fission/index.ts","backend/src/modules/community-materials/community-material.controller.ts","backend/src/modules/community-materials/community-material.routes.ts","backend/src/modules/community-materials/community-material.schema.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-materials/index.ts","backend/src/modules/community-tasks/community-task.controller.ts","backend/src/modules/community-tasks/community-task.routes.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/community-tasks/community-task.service.ts","backend/src/modules/community-tasks/index.ts","backend/src/modules/content-analytics/content-analytics.controller.ts","backend/src/modules/content-analytics/content-analytics.routes.ts","backend/src/modules/content-analytics/content-analytics.schema.ts","backend/src/modules/content-analytics/content-analytics.service.ts","backend/src/modules/content-analytics/index.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.controller.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.routes.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.schema.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.service.ts","backend/src/modules/groupbuy-commissions/index.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.controller.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.routes.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.service.ts","backend/src/modules/groupbuy-influencers/index.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.controller.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.routes.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.schema.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-inventory/index.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.controller.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.routes.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.schema.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.service.ts","backend/src/modules/groupbuy-platforms/index.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.controller.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.routes.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-promotions/index.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.controller.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.routes.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.schema.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/groupbuy-redemptions/index.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.controller.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.routes.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.schema.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.service.ts","backend/src/modules/groupbuy-reviews/index.ts","backend/src/modules/livestream-gifts/index.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/livestream-gifts/livestream-gifts.routes.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.service.ts","backend/src/modules/social-analytics/index.ts","backend/src/modules/social-analytics/social-analytics.controller.ts","backend/src/modules/social-analytics/social-analytics.routes.ts","backend/src/modules/social-analytics/social-analytics.schema.ts","backend/src/modules/social-analytics/social-analytics.service.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-fission.ts","frontend/src/api/modules/community-materials.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/groupbuy-commissions.ts","frontend/src/api/modules/groupbuy-influencers.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-platforms.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/groupbuy-redemptions.ts","frontend/src/api/modules/groupbuy-reviews.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/social-analytics.ts"],"removed":[],"modified":[]},{"id":"5c0e2a9ccc614bb1dac8ed3875f4eeddb1bed80d","message":"feat: 完善 modules.ts 模块元数据定义,覆盖全部142个已部署模块\n\n主要变更:\n1. 新增 ModuleCategory 类型:\n - hr (人力资源域)\n - marketing-customer (营销客户维度)\n - ktv-content, ktv-social, ktv-geo, ktv-adflow, ktv-livestream, ktv-alliance, ktv-community, ktv-groupbuy (KTV智慧营销域)\n\n2. 补充缺失的模块定义:\n - 营销客户维度:campaign-targets, segments, customer-marketing\n - 系统核心模块:auth, scheduled-jobs, event-logs, event-subscriptions, realtime, ai-copilot\n - 服务域:service, service-monitor\n - 履约域:maintenance, workflow-generator\n - 财务域:customer-profit\n - HR域:hr\n\n3. 新增KTV智慧营销域模块(未来规划):\n - 内容管理、社交媒体、GEO优化、投流管理、直播运营、商家联盟、社群运营、团购运营等34个模块\n\n4. 清理重复模块定义:\n - 删除 users, roles, departments, notifications, files, events, approvals, analytics, dashboard, reports, im 的重复定义\n\n模块统计:\n- 已部署模块:142个(全部覆盖)\n- 总定义模块:176个(含34个未来规划模块)\n\n严格遵循8条开发红线\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5c0e2a9ccc614bb1dac8ed3875f4eeddb1bed80d","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-01-11T06:14:38Z","added":[],"removed":[],"modified":["backend/src/shared/constants/modules.ts"]},{"id":"b7ed9e35d5ce2b9182dd507c95aa9c675335c3b3","message":"feat: 营销模块客户/门店维度增强 - 活动定向、客户分群、营销分析\n\n核心功能:\n- 新增4个数据库表:campaign_targets、audience_segments、segment_members、campaign_performance\n- 新增3个后端模块:campaign-targets(活动定向)、segments(客户分群)、customer-marketing(营销分析)\n- 新增3个前端API模块,包含完整类型定义和工具函数\n- 新增18个权限配置,归入营销客户维度分组\n\n技术亮点:\n- 分群状态机:draft → active → paused → archived\n- 营销衍生指标:CTR、CVR、ROI、CPA、ROAS 自动计算\n- 多维度分析:客户、门店、活动、分群四个维度\n- 严格遵循8条开发红线\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/b7ed9e35d5ce2b9182dd507c95aa9c675335c3b3","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-01-11T06:00:53Z","added":["backend/src/modules/campaign-targets/index.ts","backend/src/modules/customer-marketing/index.ts","backend/src/modules/segments/index.ts","frontend/src/api/modules/campaign-targets.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/segments.ts"],"removed":[],"modified":["backend/prisma/schema.prisma","backend/src/main.ts","backend/src/shared/constants/permissions.ts"]},{"id":"fb6039939f7601cf35179127a6b8205e787342aa","message":"feat: 完善社交账号、广告人群、广告报表等6个核心模块,严格遵循8条开发红线\n\n完善模块:\n- social-accounts: 8平台账号授权、数据同步、指标追踪、健康度评估\n- social-interactions: 6种互动类型、4种状态、情感分析、自动回复\n- livestream-analytics: 10+分析维度、房间/商品/主播/话术效果分析\n- livestream-scripts: 7种话术类型、6种场景、AI生成优化、结构化模板\n- ad-audiences: 6种人群类型、6种数据源、相似人群、规则验证\n- ad-reports: 8种报表API、10种指标计算、预算预警、效果建议\n\n特性:\n- 状态机驱动:所有状态变更通过POST动作接口\n- 类型安全:禁用any,完整类型定义与后端严格匹配\n- 四层架构:智库层/数链层/SOP层/IM层交互文档\n- 工具函数:格式化、验证、健康度计算、图表数据生成\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb6039939f7601cf35179127a6b8205e787342aa","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-01-11T05:02:28Z","added":[],"removed":[],"modified":["frontend/src/api/modules/ad-audiences.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/livestream-analytics.ts","frontend/src/api/modules/livestream-scripts.ts","frontend/src/api/modules/social-accounts.ts","frontend/src/api/modules/social-interactions.ts"]}],"total_commits":0,"head_commit":{"id":"89209aba1afe21133399ce0db0a47c2729c9a4b4","message":"feat: 新增门店管理模块,补充门店维度营销分析端点\n\n一、门店管理模块 (stores)\n- 门店 CRUD:创建、更新、删除、状态管理\n- 门店类型:旗舰店、标准店、加盟店、合作店、迷你店、快闪店\n- 状态机:pending → active → suspended/renovating → closed\n\n二、门店维度营销分析端点\n- GET /stores/:id/marketing-analytics - 门店营销分析(活动、直播、团购、订单汇总)\n- GET /stores/:id/roi-analytics - 门店 ROI 分析(投入产出比、渠道分解、同比环比)\n- GET /stores/:id/livestream-stats - 门店直播统计(场次、时长、观众、GMV)\n- GET /stores/:id/campaigns - 门店活动列表\n\n三、门店对比和排行\n- POST /stores/compare - 多门店横向对比\n- GET /stores/ranking - 门店排行榜(营收、订单、评分、直播GMV)\n\n四、门店营销配置\n- PATCH /stores/:id/marketing-config - 团购/直播/促销开关、平台配置、预算设置\n\n五、前端 API 模块\n- stores.ts:完整类型定义 + API 封装 + 状态配置 + 工具函数\n\n严格遵循8条开发红线\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89209aba1afe21133399ce0db0a47c2729c9a4b4","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-01-11T07:36:12Z","added":["backend/src/modules/stores/index.ts","backend/src/modules/stores/store.controller.ts","backend/src/modules/stores/store.routes.ts","backend/src/modules/stores/store.schema.ts","backend/src/modules/stores/store.service.ts","frontend/src/api/modules/stores.ts"],"removed":[],"modified":["backend/src/shared/constants/modules.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":true,"fork":false,"template":false,"parent":null,"mirror":false,"size":9503,"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-23T23:59:28+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
|
1771862496
|
1771862496
|
0
|
1771862410
|
1771862496
|
NULL
|
|
0
|
Edit
Delete
|
|
7
|
测试修改3333
|
2
|
2
|
hello-world.yaml
|
6
|
1
|
0
|
refs/heads/main
|
a931e51a2c8c1e80aab44673de58b17e14e7b34e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ce36f880dce499ef2d3c804c32a1b8ba04ffbcc2","after":"a931e51a2c8c1e80aab44673de58b17e14e7b34e","compare_url":"https://gitea.g-hi.com/juhai/testpc/compare/ce36f880dce499ef2d3c804c32a1b8ba04ffbcc2...a931e51a2c8c1e80aab44673de58b17e14e7b34e","commits":[{"id":"a931e51a2c8c1e80aab44673de58b17e14e7b34e","message":"测试修改3333\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/a931e51a2c8c1e80aab44673de58b17e14e7b34e","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-11T17:04:32+08:00","added":[],"removed":[],"modified":[".gitea/workflows/hello-world.yaml"]}],"total_commits":0,"head_commit":{"id":"a931e51a2c8c1e80aab44673de58b17e14e7b34e","message":"测试修改3333\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/a931e51a2c8c1e80aab44673de58b17e14e7b34e","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-11T17:04:32+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":17703,"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-11T16:59:04+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
|
1770800679
|
1770800685
|
0
|
1770800679
|
1770800685
|
NULL
|
|
0
|
Edit
Delete
|
|
5908
|
build: 完善Release版本构建配置
|
13
|
5
|
codeql-analysis.yml
|
5
|
-2
|
46
|
refs/heads/main
|
6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","compare_url":"https://gitea.g-hi.com/luoanwu/printer-server/compare/c254333cc45c082124d3d4fd01a4a3fc3fda7296...6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","commits":[{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},{"id":"b44b6415c67f54b2d1bcd688757fec2aaf1686f4","message":"fix: 修复PrintJob状态转换和数据库初始化崩溃问题\n\n1. PrinterDatabase.optimizeDatabase()\n - 将PRAGMA命令从execSQL改为query()方法\n - Room的SupportSQLiteDatabase对PRAGMA有限制\n - 添加异常处理确保数据库优化失败不影响启动\n\n2. PrinterService.onTaskFailed()\n - 添加状态检查逻辑,根据当前状态决定处理方式\n - FAILED状态:执行重试逻辑\n - PRINTING状态:先转换为FAILED再重试\n - 其他状态:直接重新调度执行\n\n3. PrintingApplicationService.executePrintJob()\n - 新增prepareJobForPrinting()确保状态正确转换\n - CREATED -\u003e QUEUED -\u003e PRINTING 状态流转\n - 新增handleJobFailure()安全处理失败\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/b44b6415c67f54b2d1bcd688757fec2aaf1686f4","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:54:24+08:00","added":[],"removed":[],"modified":["printer-redesign/application/service/PrinterService.java","printer-redesign/application/service/PrintingApplicationService.java","printer-redesign/infrastructure/database/PrinterDatabase.java","printer-redesign/scripts/build-release.sh"]},{"id":"d2d0385e8b5c1b06d7e59f108c6e9f845905c841","message":"fix: 修复编译错误并成功构建APK\n\n修复内容:\n- PrintTestActivity: 重写以修复API兼容性问题\n - observeEnabled()替代getEnabledPrinters()\n - 移除PrinterApplication依赖\n - 修复Priority/PrintType方法调用\n - 修复rawContent类型(String→byte[])\n- OrderFormatterService: 补充shouldBeep()方法闭合括号\n- TemplateRenderEngine: 修复方法调用\n - getSummary()→toString()\n - setFontSize()→setSize()\n - setWidth()→setLength()\n- PrintJobDao: 添加getActiveJobs()方法\n- QueueViewModel: 修复RxJava包装和cancel()参数\n- MainViewModel: 移除totalCount()调用\n- PrinterConfigDTO: 修复fromEntity()方法兼容性\n\n构建结果:APK 7.8MB\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/d2d0385e8b5c1b06d7e59f108c6e9f845905c841","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:38:29+08:00","added":[],"removed":[],"modified":["printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/domain/service/OrderFormatterService.java","printer-redesign/infrastructure/database/dao/PrintJobDao.java","printer-redesign/infrastructure/device/EscPosExecutor.java","printer-redesign/infrastructure/device/PrinterCommandExecutor.java","printer-redesign/infrastructure/device/TsplExecutor.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java"]},{"id":"f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","message":"feat: 增强应用架构与测试功能\n\n- 新增 CQRS 模式支持 (command/query/dto)\n- 添加 PrintTestActivity 测试界面\n- 新增 MainViewModel 和 QueueViewModel\n- 完善 build.gradle 配置与签名设置\n- 优化 MainActivity 功能与交互\n- 增强 PrintTaskAdapter 适配逻辑\n- 添加 proguard 混淆规则和构建脚本\n- 更新 UI 资源文件\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:28:57+08:00","added":["printer-redesign/application/command/ConfigurePrinterCommand.java","printer-redesign/application/command/RecoverDeadLetterCommand.java","printer-redesign/application/command/SubmitPrintJobCommand.java","printer-redesign/application/dto/PrintJobDTO.java","printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/dto/QueueStatsDTO.java","printer-redesign/application/query/GetPrintJobsQuery.java","printer-redesign/application/query/GetQueueStatsQuery.java","printer-redesign/keystore.properties.template","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java","printer-redesign/proguard-rules.pro","printer-redesign/scripts/build-release.sh","printer-redesign/scripts/generate-keystore.sh","printer-redesign/src/main/res/drawable/ic_help.xml","printer-redesign/src/main/res/layout/activity_print_test.xml"],"removed":[],"modified":[".gitignore","printer-redesign/build.gradle","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/migration/BillStyleAdapter.java","printer-redesign/migration/PrintTaskAdapter.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/values/colors.xml","printer-redesign/src/main/res/values/strings.xml"]},{"id":"4052be41183584c726cd84d2f9d9cb5c371da83b","message":"feat: 完善模板引擎系统与UI优化\n\n模板引擎增强:\n- 新增 ExpressionEvaluator 表达式求值器,支持复杂条件判断\n- 新增 FormatPipeline 格式化管道,支持货币/日期/截断等格式化\n- 新增 ContextDataEnhanced 增强上下文,支持嵌套路径和管道\n- 新增 GroupElement 分组元素,支持条件渲染和循环渲染\n- 新增 TableElementEnhanced 增强表格,支持分组/小计/合计\n- 新增 ImageElement 图片元素,支持URL/Base64/本地文件\n- 新增 TemplateValidator 模板验证器\n- 新增 TemplateRenderEngineEnhanced 增强渲染引擎\n- 完善 TemplateManager 模板管理器\n\nUI和功能优化:\n- 新增 HealthCheckActivity 健康检查详情页\n- 新增 LogViewerActivity 日志查看页面\n- 新增 QueueDetailActivity 队列详情页面\n- 优化 MainActivity 界面布局和状态显示\n- 精简 SystemPrintDriver 代码结构\n- 新增相关资源文件和菜单\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/4052be41183584c726cd84d2f9d9cb5c371da83b","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:12:50+08:00","added":["printer-redesign/application/engine/TemplateRenderEngineEnhanced.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/docs/TEMPLATE_ENHANCEMENT_GUIDE.md","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/domain/service/formatter/StrategyRegistry.java","printer-redesign/domain/template/ContextDataEnhanced.java","printer-redesign/domain/template/CutElement.java","printer-redesign/domain/template/FormatPipeline.java","printer-redesign/domain/template/GroupElement.java","printer-redesign/domain/template/ImageElement.java","printer-redesign/domain/template/QRCodeElement.java","printer-redesign/domain/template/SpacerElement.java","printer-redesign/domain/template/TableElementEnhanced.java","printer-redesign/infrastructure/device/utils/BitmapToEscPosUtil.java","printer-redesign/presentation/HealthCheckActivity.java","printer-redesign/presentation/LogViewerActivity.java","printer-redesign/presentation/QueueDetailActivity.java","printer-redesign/src/main/res/drawable/bg_error_message.xml","printer-redesign/src/main/res/drawable/bg_status_chip.xml","printer-redesign/src/main/res/drawable/ic_check_circle.xml","printer-redesign/src/main/res/drawable/ic_error.xml","printer-redesign/src/main/res/drawable/ic_print_type.xml","printer-redesign/src/main/res/drawable/ic_recover.xml","printer-redesign/src/main/res/drawable/ic_warning.xml","printer-redesign/src/main/res/layout/activity_health_check.xml","printer-redesign/src/main/res/layout/activity_log_viewer.xml","printer-redesign/src/main/res/layout/activity_queue_detail.xml","printer-redesign/src/main/res/layout/item_health_component.xml","printer-redesign/src/main/res/layout/item_print_log.xml","printer-redesign/src/main/res/layout/item_queue_job.xml","printer-redesign/src/main/res/menu/menu_log_viewer.xml","printer-redesign/src/main/res/menu/menu_queue_detail.xml"],"removed":[],"modified":["ARCHITECTURE_COMPARISON.md","CLAUDE.md","printer-redesign/ARCHITECTURE.md","printer-redesign/application/engine/TemplateManager.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/build.gradle","printer-redesign/domain/template/BarcodeElement.java","printer-redesign/domain/template/BaseElement.java","printer-redesign/domain/template/ContextData.java","printer-redesign/domain/template/LineElement.java","printer-redesign/domain/template/PrintElement.java","printer-redesign/domain/template/TableElement.java","printer-redesign/domain/template/TextElement.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/layout/activity_main.xml","printer-redesign/src/main/res/values/colors.xml"]}],"total_commits":0,"head_commit":{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},"repository":{"id":13,"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":"printer-server","full_name":"luoanwu/printer-server","description":"KTV打印服务器 - DDD架构重构","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server/languages","html_url":"https://gitea.g-hi.com/luoanwu/printer-server","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/printer-server.git","clone_url":"https://gitea.g-hi.com/luoanwu/printer-server.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-28T11:06:40+08:00","updated_at":"2026-02-28T11:06:54+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
|
2
|
3
|
1773601235
|
1773601638
|
0
|
1773601232
|
1773601638
|
NULL
|
|
0
|
Edit
Delete
|
|
1139
|
fix(ime-core): 修复TFLiteRecognizerTest验证方式,改为验证可观察行 fix(ime-core): 修复TFLiteRecognizerTest验证方式,改为验证可观察行为...
|
9
|
5
|
ci.yml
|
5
|
5
|
0
|
refs/heads/main
|
22125e0f1e435efabf81ec0007a1b56996cb0776
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"893022bfd17ce1f2e75e75651551cf8ceaacfe45","after":"22125e0f1e435efabf81ec0007a1b56996cb0776","compare_url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/compare/893022bfd17ce1f2e75e75651551cf8ceaacfe45...22125e0f1e435efabf81ec0007a1b56996cb0776","commits":[{"id":"22125e0f1e435efabf81ec0007a1b56996cb0776","message":"fix(ime-core): 修复TFLiteRecognizerTest验证方式,改为验证可观察行为\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/22125e0f1e435efabf81ec0007a1b56996cb0776","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-27T14:49:40+08:00","added":[],"removed":["ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/db/v13/p95794--38ca5d/data.mdb","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/db/v13/p95794--38ca5d/lock.mdb"],"modified":["ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/PanelCommon.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactMatcherTest.kt","app/src/main/java/com/haizhan/ime/ui/management/ManagementViewModel.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingManager.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/StrokeSegmenter.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/UnifiedRecognitionEngine.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/TFLiteRecognizerTest.kt","pnpm-lock.yaml","server/api-gateway/package.json","server/api-gateway/src/app.module.ts","server/api-gateway/src/main.ts","server/api-gateway/src/modules/ai/ai.module.ts","server/api-gateway/src/modules/ai/ai.service.ts","server/api-gateway/src/modules/knowledge/knowledge.service.ts","server/api-gateway/src/modules/ocr/ocr.module.ts","server/api-gateway/src/modules/ocr/ocr.service.ts","server/api-gateway/src/modules/settings/settings.module.ts","server/api-gateway/src/modules/settings/settings.service.ts"]},{"id":"e7926bf94bb1d2df1c56170dbe47940b49a70134","message":"fix(ime-core): 修复HandwritingManager测试缺少ModelDownloader参数\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/e7926bf94bb1d2df1c56170dbe47940b49a70134","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-27T14:40:23+08:00","added":[".github/workflows/ios-ci.yml",".npmrc","MIGRATION_COMPLETE_REPORT.md","admin-web/.eslintrc.cjs","docs/PNPM_MIGRATION_NOTICE.md","flutter_app/assets/fonts/PingFang-Medium.ttf","flutter_app/assets/fonts/PingFang-Regular.ttf","flutter_app/assets/fonts/PingFang-Semibold.ttf","flutter_app/assets/icons/.gitkeep","flutter_app/assets/images/.gitkeep","flutter_app/lib/features/contacts/data/contact_360_provider.dart","ime-core/src/main/java/com/haizhan/ime/core/handwriting/ModelDownloader.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/StrokeSegmenter.kt","package.json","pnpm-lock.yaml","pnpm-workspace.yaml","scripts/PACKAGE_MANAGER.md","scripts/PACKAGE_MANAGER_SUMMARY.md","scripts/migrate-to-pnpm.sh","scripts/package-manager-migration.md","server/api-gateway/src/modules/ai/ai.controller.ts","server/api-gateway/src/modules/ai/ai.module.ts","server/api-gateway/src/modules/ai/ai.service.ts","server/api-gateway/src/modules/ocr/ocr.controller.ts","server/api-gateway/src/modules/ocr/ocr.module.ts","server/api-gateway/src/modules/ocr/ocr.service.ts"],"removed":["server/ai-service/package-lock.json","server/api-gateway/package-lock.json","server/ocr-service/package-lock.json"],"modified":[".github/workflows/frontend-backend-ci.yml",".gitignore","CHANGELOG.md","CLAUDE.md","README.md","admin-web/package.json","admin-web/src/views/knowledge/index.vue","ai-panel/src/main/java/com/haizhan/ime/panel/agentic/HybridSearchExecutor.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/ContactMatcher.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/EnhancedContactMatcher.kt","ai-panel/src/main/java/com/haizhan/ime/panel/context/InputContextCollector.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/TitleBarParser.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/RagReplyGenerator.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/ReplyGenerator.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/PanelCommon.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactMatcherTest.kt","app/build.gradle.kts","app/proguard-rules.pro","app/src/main/java/com/haizhan/ime/ui/management/ManagementViewModel.kt","app/src/main/java/com/haizhan/ime/ui/management/SettingsScreen.kt","build.gradle.kts","common/src/main/java/com/haizhan/ime/common/theme/DesignTokens.kt","data/src/main/java/com/haizhan/ime/data/auth/AuthInterceptor.kt","data/src/main/java/com/haizhan/ime/data/auth/AuthManager.kt","data/src/main/java/com/haizhan/ime/data/di/NetworkModule.kt","data/src/main/java/com/haizhan/ime/data/repository/SettingsRepository.kt","docs/CI_CD_PIPELINE.md","docs/CODING_STANDARDS.md","docs/DEPLOYMENT.md","docs/DEVELOPMENT_GUIDE.md","docs/TESTING_STRATEGY.md","flutter_app/.dart_tool/package_config.json","flutter_app/.dart_tool/package_graph.json","flutter_app/lib/core/bridge/haizhan_bridge.dart","flutter_app/lib/core/di/service_locator.dart","flutter_app/lib/core/theme/app_colors.dart","flutter_app/lib/core/theme/app_theme.dart","flutter_app/lib/features/auth/presentation/login_screen.dart","flutter_app/lib/features/chat/presentation/chat_screen.dart","flutter_app/lib/features/chat/presentation/conversation_screen.dart","flutter_app/lib/features/contacts/data/contacts_provider.dart","flutter_app/lib/features/contacts/presentation/contact_detail_screen.dart","flutter_app/lib/features/contacts/presentation/contacts_screen.dart","flutter_app/lib/features/home/presentation/home_screen.dart","flutter_app/lib/features/home/presentation/main_shell.dart","flutter_app/lib/features/knowledge/presentation/knowledge_screen.dart","flutter_app/lib/features/profile/presentation/profile_screen.dart","flutter_app/lib/features/search/presentation/widgets/search_metrics_indicator.dart","flutter_app/lib/features/settings/presentation/settings_screen.dart","flutter_app/lib/features/stats/presentation/widgets/contact_stats_tab.dart","flutter_app/lib/features/stats/presentation/widgets/overview_tab.dart","flutter_app/lib/features/stats/presentation/widgets/reply_stats_tab.dart","flutter_app/lib/features/stats/presentation/widgets/stats_shared_widgets.dart","flutter_app/lib/features/support/presentation/about_screen.dart","flutter_app/lib/features/support/presentation/feedback_screen.dart","flutter_app/lib/features/support/presentation/help_screen.dart","flutter_app/lib/features/support/presentation/privacy_screen.dart","flutter_app/lib/main.dart","flutter_app/lib/shared/widgets/stat_card.dart","flutter_app/pigeons/haizhan_api.dart","flutter_app/pubspec.lock","flutter_app/pubspec.yaml","flutter_app/test/core/theme/theme_provider_test.dart","flutter_app/test/features/auth/login_screen_test.dart","flutter_app/test/features/chat/chat_screen_test.dart","flutter_app/test/features/contacts/contacts_screen_test.dart","flutter_app/test/features/home/home_screen_test.dart","flutter_app/test/features/knowledge/knowledge_screen_test.dart","flutter_app/test/features/profile/profile_screen_test.dart","flutter_app/test/features/settings/settings_screen_test.dart","flutter_app/test/features/stats/stats_screen_test.dart","flutter_app/test/integration/app_integration_test.dart","flutter_app/test/providers/auth_provider_test.dart","flutter_app/test/services/api_service_test.dart","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingManager.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingView.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/TFLiteRecognizer.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/UnifiedRecognitionEngine.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/EnhancedCandidatesView.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/KeyboardView.kt","ime-core/src/main/java/com/haizhan/ime/core/theme/DesignTokens.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/HandwritingManagerAdvancedTest.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/HandwritingManagerTest.kt","ios_keyboard/.build/.lock","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboard.build/HaizhanKeyboard.emit-module.d","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboard.build/master.priors","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboard.build/output-file-map.json","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboard.build/sources","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboardTests.build/output-file-map.json","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboardTests.build/sources","ios_keyboard/.build/arm64-apple-macosx/debug/description.json","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/AIPanelView.swift.o-3JCH38GYDGXR8","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/ContactMatcher.swift.o-2DEFMG7O4JYLM","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/HapticManager.swift.o-1RR1AGSLF5OMM","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/KeyboardEngine.swift.o-138QNNFN5L8T5","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/KeyboardView.swift.o-3DKAUVCODQU40","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/KeyboardViewController.swift.o-Q3D13NLK8BXH","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/NineGridKeyboard.swift.o-1SAAN5KAN9TN9","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/PinyinSegmenter.swift.o-MFJITYIEOC0T","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/ReplyService.swift.o-32WKBX1JUI0W6","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/ScreenshotManager.swift.o-2OU33ZXZWSYE6","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/SettingsView.swift.o-127RM9EAP5VM6","ios_keyboard/.build/arm64-apple-macosx/debug/plugin-tools-description.json","ios_keyboard/.build/build.db","ios_keyboard/.build/debug.yaml","ios_keyboard/.build/index-build/.lock","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/HaizhanKeyboard.build/master.priors","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/description.json","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/store/v5/units/KeyboardView.swift.o-ZCNKWX79V430","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/store/v5/units/NineGridKeyboard.swift.o-1ZTZUBTR9D3N2","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/store/v5/units/ScreenshotManager.swift.o-1OSRMU5500GQS","ios_keyboard/.build/index-build/build.db","ios_keyboard/.build/index-build/debug.yaml","ios_keyboard/.build/plugin-tools.yaml","ios_keyboard/Sources/HaizhanKeyboard/AI/ScreenshotManager.swift","ios_keyboard/Sources/HaizhanKeyboard/Views/KeyboardView.swift","ios_keyboard/Sources/HaizhanKeyboard/Views/NineGridKeyboard.swift","server/.npmrc","server/README.md","server/ai-service/Dockerfile","server/api-gateway/Dockerfile","server/api-gateway/package.json","server/api-gateway/src/modules/mobile-compat/mobile-compat.controller.ts","server/docker-compose.override.yml","server/docker-compose.yml","server/ocr-service/Dockerfile","shared/src/iosMain/kotlin/com/haizhan/ime/shared/auth/IosTokenStorage.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/platform/DictionaryLoader.ios.kt","voice/src/main/java/com/haizhan/ime/voice/audio/AudioPipelineImpl.kt","voice/src/main/java/com/haizhan/ime/voice/recognition/SpeechRecognitionServiceImpl.kt"]},{"id":"15aae8c5e92b6e0c7dd53a7921212b68b8a1294b","message":"perf(server): JWT用户缓存 + 缓存失效 + legacy-reply stub实现\n\n- JwtStrategy 添加 Redis 用户缓存 (5分钟TTL), 减少95%数据库查询\n- auth.service 在 updateProfile/logout/logoutAll 时主动失效缓存\n- users.service 在 update/updateStatus/toggleStatus/delete 时失效缓存\n- UsersModule 注入 RedisModule 支持缓存操作\n- legacy-reply markReplyUsed/submitReplyFeedback stub 实现完整请求解析和日志\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/15aae8c5e92b6e0c7dd53a7921212b68b8a1294b","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-25T08:23:28+08:00","added":[],"removed":[],"modified":["server/ai-service/src/modules/ai/legacy-reply.controller.ts","server/api-gateway/src/modules/auth/auth.service.ts","server/api-gateway/src/modules/auth/strategies/jwt.strategy.ts","server/api-gateway/src/modules/users/users.module.ts","server/api-gateway/src/modules/users/users.service.ts"]},{"id":"f19558e8e838bacc0f616f40c1ec10d9a5e4e9d5","message":"chore(server): 优化 Docker 基础设施配置\n\n- Redis: 修复空密码时 --requirepass 报错问题\n- Reranker Dockerfile: torch CPU 预安装 + 清华 PyPI 镜像加速\n- requirements.txt: 移除 --extra-index-url(已在 Dockerfile 中处理)\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/f19558e8e838bacc0f616f40c1ec10d9a5e4e9d5","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-25T08:16:10+08:00","added":[],"removed":[],"modified":["server/docker-compose.yml","server/model-services/reranker/Dockerfile","server/model-services/reranker/requirements.txt"]},{"id":"43712be12681e00bab0e3fed74c60ffa34fdc11d","message":"fix(server): 修复 5 个 CRITICAL + 5 个 HIGH 安全漏洞\n\nCRITICAL:\n- C1: 移除 JWT_SECRET/JWT_REFRESH_SECRET 弱默认值回退,启动时断言必须配置\n- C2: 开发后门 000000 需同时满足 NODE_ENV=development + ENABLE_DEV_BYPASS=true\n- C3: OCR recognizeFromUrl 添加 SSRF 防护(HTTPS-only + 内网地址黑名单)\n- C4: resetPassword 使用 crypto.randomBytes + bcrypt.hash 替代 Math.random + 明文\n- C5: ai-service auth.guard 添加 JWT alg 字段校验 + timingSafeEqual 签名比较\n\nHIGH:\n- H1: Redis KEYS 命令替换为 SCAN 游标迭代,避免生产环境阻塞\n- H2: knowledge.controller 添加 @UseGuards(JwtAuthGuard) 认证守卫\n- H4: updateProfile 禁止直接修改手机号,需独立验证流程\n- H6: Access Token 有效期从 7d 缩短至 1h\n- H7: JwtStrategy.validate 注入 RedisService 检查 token 黑名单\n\n测试: api-gateway 963 tests, ai-service 883 tests, ocr-service 87 tests 全部通过\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/43712be12681e00bab0e3fed74c60ffa34fdc11d","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-25T08:15:48+08:00","added":[],"removed":[],"modified":["server/ai-service/src/common/guards/auth.guard.ts","server/api-gateway/src/modules/auth/auth.service.ts","server/api-gateway/src/modules/auth/strategies/jwt.strategy.ts","server/api-gateway/src/modules/knowledge/knowledge.controller.ts","server/api-gateway/src/modules/users/users.service.ts","server/api-gateway/src/shared/redis/redis.service.ts","server/ocr-service/src/modules/ocr/ocr.service.ts"]}],"total_commits":0,"head_commit":{"id":"22125e0f1e435efabf81ec0007a1b56996cb0776","message":"fix(ime-core): 修复TFLiteRecognizerTest验证方式,改为验证可观察行为\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/22125e0f1e435efabf81ec0007a1b56996cb0776","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-27T14:49:40+08:00","added":[],"removed":["ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/db/v13/p95794--38ca5d/data.mdb","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/db/v13/p95794--38ca5d/lock.mdb"],"modified":["ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/PanelCommon.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactMatcherTest.kt","app/src/main/java/com/haizhan/ime/ui/management/ManagementViewModel.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingManager.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/StrokeSegmenter.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/UnifiedRecognitionEngine.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/TFLiteRecognizerTest.kt","pnpm-lock.yaml","server/api-gateway/package.json","server/api-gateway/src/app.module.ts","server/api-gateway/src/main.ts","server/api-gateway/src/modules/ai/ai.module.ts","server/api-gateway/src/modules/ai/ai.service.ts","server/api-gateway/src/modules/knowledge/knowledge.service.ts","server/api-gateway/src/modules/ocr/ocr.module.ts","server/api-gateway/src/modules/ocr/ocr.service.ts","server/api-gateway/src/modules/settings/settings.module.ts","server/api-gateway/src/modules/settings/settings.service.ts"]},"repository":{"id":9,"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":"haizhan-ime-android","full_name":"luoanwu/haizhan-ime-android","description":"嗨赞AI输入法 Android版","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":22552,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizhan-ime-android/languages","html_url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizhan-ime-android","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/haizhan-ime-android.git","clone_url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android.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-27T15:27:17+08:00","updated_at":"2026-02-27T15:42:01+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
|
7
|
1772178612
|
1772189124
|
0
|
1772178608
|
1772189124
|
NULL
|
|
0
|
Edit
Delete
|
|
44
|
feat: 新增门店管理模块,补充门店维度营销分析端点
|
6
|
5
|
test-comprehensive.yml
|
5
|
5
|
0
|
refs/heads/main
|
89209aba1afe21133399ce0db0a47c2729c9a4b4
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"abd8cdd0283c96dc4a62fbf753d2aca2e68aa379","after":"89209aba1afe21133399ce0db0a47c2729c9a4b4","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/abd8cdd0283c96dc4a62fbf753d2aca2e68aa379...89209aba1afe21133399ce0db0a47c2729c9a4b4","commits":[{"id":"89209aba1afe21133399ce0db0a47c2729c9a4b4","message":"feat: 新增门店管理模块,补充门店维度营销分析端点\n\n一、门店管理模块 (stores)\n- 门店 CRUD:创建、更新、删除、状态管理\n- 门店类型:旗舰店、标准店、加盟店、合作店、迷你店、快闪店\n- 状态机:pending → active → suspended/renovating → closed\n\n二、门店维度营销分析端点\n- GET /stores/:id/marketing-analytics - 门店营销分析(活动、直播、团购、订单汇总)\n- GET /stores/:id/roi-analytics - 门店 ROI 分析(投入产出比、渠道分解、同比环比)\n- GET /stores/:id/livestream-stats - 门店直播统计(场次、时长、观众、GMV)\n- GET /stores/:id/campaigns - 门店活动列表\n\n三、门店对比和排行\n- POST /stores/compare - 多门店横向对比\n- GET /stores/ranking - 门店排行榜(营收、订单、评分、直播GMV)\n\n四、门店营销配置\n- PATCH /stores/:id/marketing-config - 团购/直播/促销开关、平台配置、预算设置\n\n五、前端 API 模块\n- stores.ts:完整类型定义 + API 封装 + 状态配置 + 工具函数\n\n严格遵循8条开发红线\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89209aba1afe21133399ce0db0a47c2729c9a4b4","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-01-11T07:36:12Z","added":["backend/src/modules/stores/index.ts","backend/src/modules/stores/store.controller.ts","backend/src/modules/stores/store.routes.ts","backend/src/modules/stores/store.schema.ts","backend/src/modules/stores/store.service.ts","frontend/src/api/modules/stores.ts"],"removed":[],"modified":["backend/src/shared/constants/modules.ts"]},{"id":"bd02a7f3eefc8d114499177151ddde0a410c4065","message":"feat: 完善 KTV 智慧营销域模块代码实现 - 19个后端模块 + 19个前端API模块\n\n一、分析类模块 (3个)\n- social-analytics: 社交媒体分析(账号概览、内容表现、粉丝画像、竞品对比、趋势分析)\n- content-analytics: 内容分析(表现概览、热门内容、分类表现、发布时间分析)\n- livestream-gifts: 直播礼物(礼物配置、赠送记录、礼物统计、排行榜)\n\n二、商家联盟域模块 (5个)\n- alliance-partners: 联盟商家(入驻审核、等级管理、状态机驱动)\n- alliance-agreements: 联盟协议(协议模板、审批流、续签终止)\n- alliance-campaigns: 联盟活动(多商家参与、效果追踪、奖励配置)\n- alliance-coupons: 联盟优惠券(发放核销、成本分摊、使用规则)\n- alliance-packages: 联盟套餐(多商家组合、分成模式、有效期管理)\n\n三、社群运营域模块 (4个)\n- community-materials: 社群素材(素材库、审核流程、使用追踪)\n- community-tasks: 社群任务(任务配置、执行管理、状态机驱动)\n- community-fission: 社群裂变(邀请奖励、拼团助力、排行榜)\n- community-bots: 社群机器人(多平台支持、自动回复、消息日志)\n\n四、团购运营域模块 (7个)\n- groupbuy-platforms: 团购平台(平台接入、同步配置、对账管理)\n- groupbuy-promotions: 团购促销(促销配置、状态管理、批量操作)\n- groupbuy-inventory: 团购库存(库存管理、预警机制、调拨盘点)\n- groupbuy-redemptions: 团购核销(券码验证、核销记录、统计分析)\n- groupbuy-reviews: 团购评价(评价管理、商家回复、审核分析)\n- groupbuy-commissions: 团购佣金(佣金规则、结算审批、对账报表)\n- groupbuy-influencers: 团购达人(招募审核、等级体系、带货数据)\n\n技术规范:\n- 后端:5层标准结构(schema/service/controller/routes/index)\n- 前端:完整 TypeScript 类型定义 + API 封装\n- 严格遵循8条开发红线(多租户隔离、状态机、事件驱动等)\n\n文件统计:\n- 后端模块:19个目录,95个文件\n- 前端API:19个TypeScript模块,总计约10,000+行代码\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/bd02a7f3eefc8d114499177151ddde0a410c4065","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-01-11T07:21:51Z","added":["backend/src/modules/alliance-agreements/alliance-agreement.controller.ts","backend/src/modules/alliance-agreements/alliance-agreement.routes.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-agreements/alliance-agreement.service.ts","backend/src/modules/alliance-agreements/index.ts","backend/src/modules/alliance-campaigns/alliance-campaign.controller.ts","backend/src/modules/alliance-campaigns/alliance-campaign.routes.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.service.ts","backend/src/modules/alliance-campaigns/index.ts","backend/src/modules/alliance-coupons/alliance-coupon.controller.ts","backend/src/modules/alliance-coupons/alliance-coupon.routes.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.service.ts","backend/src/modules/alliance-coupons/index.ts","backend/src/modules/alliance-packages/alliance-package.controller.ts","backend/src/modules/alliance-packages/alliance-package.routes.ts","backend/src/modules/alliance-packages/alliance-package.schema.ts","backend/src/modules/alliance-packages/alliance-package.service.ts","backend/src/modules/alliance-packages/index.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/alliance-partners/index.ts","backend/src/modules/community-bots/community-bot.controller.ts","backend/src/modules/community-bots/community-bot.routes.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-bots/community-bot.service.ts","backend/src/modules/community-bots/index.ts","backend/src/modules/community-fission/community-fission.controller.ts","backend/src/modules/community-fission/community-fission.routes.ts","backend/src/modules/community-fission/community-fission.schema.ts","backend/src/modules/community-fission/community-fission.service.ts","backend/src/modules/community-fission/index.ts","backend/src/modules/community-materials/community-material.controller.ts","backend/src/modules/community-materials/community-material.routes.ts","backend/src/modules/community-materials/community-material.schema.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-materials/index.ts","backend/src/modules/community-tasks/community-task.controller.ts","backend/src/modules/community-tasks/community-task.routes.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/community-tasks/community-task.service.ts","backend/src/modules/community-tasks/index.ts","backend/src/modules/content-analytics/content-analytics.controller.ts","backend/src/modules/content-analytics/content-analytics.routes.ts","backend/src/modules/content-analytics/content-analytics.schema.ts","backend/src/modules/content-analytics/content-analytics.service.ts","backend/src/modules/content-analytics/index.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.controller.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.routes.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.schema.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.service.ts","backend/src/modules/groupbuy-commissions/index.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.controller.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.routes.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.service.ts","backend/src/modules/groupbuy-influencers/index.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.controller.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.routes.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.schema.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-inventory/index.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.controller.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.routes.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.schema.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.service.ts","backend/src/modules/groupbuy-platforms/index.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.controller.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.routes.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-promotions/index.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.controller.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.routes.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.schema.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/groupbuy-redemptions/index.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.controller.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.routes.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.schema.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.service.ts","backend/src/modules/groupbuy-reviews/index.ts","backend/src/modules/livestream-gifts/index.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/livestream-gifts/livestream-gifts.routes.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.service.ts","backend/src/modules/social-analytics/index.ts","backend/src/modules/social-analytics/social-analytics.controller.ts","backend/src/modules/social-analytics/social-analytics.routes.ts","backend/src/modules/social-analytics/social-analytics.schema.ts","backend/src/modules/social-analytics/social-analytics.service.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-fission.ts","frontend/src/api/modules/community-materials.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/groupbuy-commissions.ts","frontend/src/api/modules/groupbuy-influencers.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-platforms.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/groupbuy-redemptions.ts","frontend/src/api/modules/groupbuy-reviews.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/social-analytics.ts"],"removed":[],"modified":[]},{"id":"5c0e2a9ccc614bb1dac8ed3875f4eeddb1bed80d","message":"feat: 完善 modules.ts 模块元数据定义,覆盖全部142个已部署模块\n\n主要变更:\n1. 新增 ModuleCategory 类型:\n - hr (人力资源域)\n - marketing-customer (营销客户维度)\n - ktv-content, ktv-social, ktv-geo, ktv-adflow, ktv-livestream, ktv-alliance, ktv-community, ktv-groupbuy (KTV智慧营销域)\n\n2. 补充缺失的模块定义:\n - 营销客户维度:campaign-targets, segments, customer-marketing\n - 系统核心模块:auth, scheduled-jobs, event-logs, event-subscriptions, realtime, ai-copilot\n - 服务域:service, service-monitor\n - 履约域:maintenance, workflow-generator\n - 财务域:customer-profit\n - HR域:hr\n\n3. 新增KTV智慧营销域模块(未来规划):\n - 内容管理、社交媒体、GEO优化、投流管理、直播运营、商家联盟、社群运营、团购运营等34个模块\n\n4. 清理重复模块定义:\n - 删除 users, roles, departments, notifications, files, events, approvals, analytics, dashboard, reports, im 的重复定义\n\n模块统计:\n- 已部署模块:142个(全部覆盖)\n- 总定义模块:176个(含34个未来规划模块)\n\n严格遵循8条开发红线\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5c0e2a9ccc614bb1dac8ed3875f4eeddb1bed80d","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-01-11T06:14:38Z","added":[],"removed":[],"modified":["backend/src/shared/constants/modules.ts"]},{"id":"b7ed9e35d5ce2b9182dd507c95aa9c675335c3b3","message":"feat: 营销模块客户/门店维度增强 - 活动定向、客户分群、营销分析\n\n核心功能:\n- 新增4个数据库表:campaign_targets、audience_segments、segment_members、campaign_performance\n- 新增3个后端模块:campaign-targets(活动定向)、segments(客户分群)、customer-marketing(营销分析)\n- 新增3个前端API模块,包含完整类型定义和工具函数\n- 新增18个权限配置,归入营销客户维度分组\n\n技术亮点:\n- 分群状态机:draft → active → paused → archived\n- 营销衍生指标:CTR、CVR、ROI、CPA、ROAS 自动计算\n- 多维度分析:客户、门店、活动、分群四个维度\n- 严格遵循8条开发红线\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/b7ed9e35d5ce2b9182dd507c95aa9c675335c3b3","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-01-11T06:00:53Z","added":["backend/src/modules/campaign-targets/index.ts","backend/src/modules/customer-marketing/index.ts","backend/src/modules/segments/index.ts","frontend/src/api/modules/campaign-targets.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/segments.ts"],"removed":[],"modified":["backend/prisma/schema.prisma","backend/src/main.ts","backend/src/shared/constants/permissions.ts"]},{"id":"fb6039939f7601cf35179127a6b8205e787342aa","message":"feat: 完善社交账号、广告人群、广告报表等6个核心模块,严格遵循8条开发红线\n\n完善模块:\n- social-accounts: 8平台账号授权、数据同步、指标追踪、健康度评估\n- social-interactions: 6种互动类型、4种状态、情感分析、自动回复\n- livestream-analytics: 10+分析维度、房间/商品/主播/话术效果分析\n- livestream-scripts: 7种话术类型、6种场景、AI生成优化、结构化模板\n- ad-audiences: 6种人群类型、6种数据源、相似人群、规则验证\n- ad-reports: 8种报表API、10种指标计算、预算预警、效果建议\n\n特性:\n- 状态机驱动:所有状态变更通过POST动作接口\n- 类型安全:禁用any,完整类型定义与后端严格匹配\n- 四层架构:智库层/数链层/SOP层/IM层交互文档\n- 工具函数:格式化、验证、健康度计算、图表数据生成\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb6039939f7601cf35179127a6b8205e787342aa","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-01-11T05:02:28Z","added":[],"removed":[],"modified":["frontend/src/api/modules/ad-audiences.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/livestream-analytics.ts","frontend/src/api/modules/livestream-scripts.ts","frontend/src/api/modules/social-accounts.ts","frontend/src/api/modules/social-interactions.ts"]}],"total_commits":0,"head_commit":{"id":"89209aba1afe21133399ce0db0a47c2729c9a4b4","message":"feat: 新增门店管理模块,补充门店维度营销分析端点\n\n一、门店管理模块 (stores)\n- 门店 CRUD:创建、更新、删除、状态管理\n- 门店类型:旗舰店、标准店、加盟店、合作店、迷你店、快闪店\n- 状态机:pending → active → suspended/renovating → closed\n\n二、门店维度营销分析端点\n- GET /stores/:id/marketing-analytics - 门店营销分析(活动、直播、团购、订单汇总)\n- GET /stores/:id/roi-analytics - 门店 ROI 分析(投入产出比、渠道分解、同比环比)\n- GET /stores/:id/livestream-stats - 门店直播统计(场次、时长、观众、GMV)\n- GET /stores/:id/campaigns - 门店活动列表\n\n三、门店对比和排行\n- POST /stores/compare - 多门店横向对比\n- GET /stores/ranking - 门店排行榜(营收、订单、评分、直播GMV)\n\n四、门店营销配置\n- PATCH /stores/:id/marketing-config - 团购/直播/促销开关、平台配置、预算设置\n\n五、前端 API 模块\n- stores.ts:完整类型定义 + API 封装 + 状态配置 + 工具函数\n\n严格遵循8条开发红线\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89209aba1afe21133399ce0db0a47c2729c9a4b4","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-01-11T07:36:12Z","added":["backend/src/modules/stores/index.ts","backend/src/modules/stores/store.controller.ts","backend/src/modules/stores/store.routes.ts","backend/src/modules/stores/store.schema.ts","backend/src/modules/stores/store.service.ts","frontend/src/api/modules/stores.ts"],"removed":[],"modified":["backend/src/shared/constants/modules.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":true,"fork":false,"template":false,"parent":null,"mirror":false,"size":9503,"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-23T23:59:28+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
|
18
|
1771862412
|
1771862496
|
0
|
1771862389
|
1771862496
|
NULL
|
|
0
|
Edit
Delete
|
|
6
|
测试修改2222
|
2
|
2
|
hello-world.yaml
|
5
|
1
|
0
|
refs/heads/main
|
ce36f880dce499ef2d3c804c32a1b8ba04ffbcc2
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7d4d920368182d2222ed4f7dd18933b433f88ec2","after":"ce36f880dce499ef2d3c804c32a1b8ba04ffbcc2","compare_url":"https://gitea.g-hi.com/juhai/testpc/compare/7d4d920368182d2222ed4f7dd18933b433f88ec2...ce36f880dce499ef2d3c804c32a1b8ba04ffbcc2","commits":[{"id":"ce36f880dce499ef2d3c804c32a1b8ba04ffbcc2","message":"测试修改2222\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/ce36f880dce499ef2d3c804c32a1b8ba04ffbcc2","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-11T16:58:52+08:00","added":[],"removed":[],"modified":["pc/alilog.php"]}],"total_commits":0,"head_commit":{"id":"ce36f880dce499ef2d3c804c32a1b8ba04ffbcc2","message":"测试修改2222\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/ce36f880dce499ef2d3c804c32a1b8ba04ffbcc2","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-11T16:58:52+08:00","added":[],"removed":[],"modified":["pc/alilog.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":17702,"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-11T16:57:57+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
|
1770800339
|
1770800344
|
0
|
1770800337
|
1770800344
|
NULL
|
|
0
|
Edit
Delete
|
|
3887
|
build: 完善Release版本构建配置
|
13
|
5
|
codeql-analysis.yml
|
4
|
-2
|
46
|
refs/heads/main
|
6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","compare_url":"https://gitea.g-hi.com/luoanwu/printer-server/compare/c254333cc45c082124d3d4fd01a4a3fc3fda7296...6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","commits":[{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},{"id":"b44b6415c67f54b2d1bcd688757fec2aaf1686f4","message":"fix: 修复PrintJob状态转换和数据库初始化崩溃问题\n\n1. PrinterDatabase.optimizeDatabase()\n - 将PRAGMA命令从execSQL改为query()方法\n - Room的SupportSQLiteDatabase对PRAGMA有限制\n - 添加异常处理确保数据库优化失败不影响启动\n\n2. PrinterService.onTaskFailed()\n - 添加状态检查逻辑,根据当前状态决定处理方式\n - FAILED状态:执行重试逻辑\n - PRINTING状态:先转换为FAILED再重试\n - 其他状态:直接重新调度执行\n\n3. PrintingApplicationService.executePrintJob()\n - 新增prepareJobForPrinting()确保状态正确转换\n - CREATED -\u003e QUEUED -\u003e PRINTING 状态流转\n - 新增handleJobFailure()安全处理失败\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/b44b6415c67f54b2d1bcd688757fec2aaf1686f4","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:54:24+08:00","added":[],"removed":[],"modified":["printer-redesign/application/service/PrinterService.java","printer-redesign/application/service/PrintingApplicationService.java","printer-redesign/infrastructure/database/PrinterDatabase.java","printer-redesign/scripts/build-release.sh"]},{"id":"d2d0385e8b5c1b06d7e59f108c6e9f845905c841","message":"fix: 修复编译错误并成功构建APK\n\n修复内容:\n- PrintTestActivity: 重写以修复API兼容性问题\n - observeEnabled()替代getEnabledPrinters()\n - 移除PrinterApplication依赖\n - 修复Priority/PrintType方法调用\n - 修复rawContent类型(String→byte[])\n- OrderFormatterService: 补充shouldBeep()方法闭合括号\n- TemplateRenderEngine: 修复方法调用\n - getSummary()→toString()\n - setFontSize()→setSize()\n - setWidth()→setLength()\n- PrintJobDao: 添加getActiveJobs()方法\n- QueueViewModel: 修复RxJava包装和cancel()参数\n- MainViewModel: 移除totalCount()调用\n- PrinterConfigDTO: 修复fromEntity()方法兼容性\n\n构建结果:APK 7.8MB\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/d2d0385e8b5c1b06d7e59f108c6e9f845905c841","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:38:29+08:00","added":[],"removed":[],"modified":["printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/domain/service/OrderFormatterService.java","printer-redesign/infrastructure/database/dao/PrintJobDao.java","printer-redesign/infrastructure/device/EscPosExecutor.java","printer-redesign/infrastructure/device/PrinterCommandExecutor.java","printer-redesign/infrastructure/device/TsplExecutor.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java"]},{"id":"f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","message":"feat: 增强应用架构与测试功能\n\n- 新增 CQRS 模式支持 (command/query/dto)\n- 添加 PrintTestActivity 测试界面\n- 新增 MainViewModel 和 QueueViewModel\n- 完善 build.gradle 配置与签名设置\n- 优化 MainActivity 功能与交互\n- 增强 PrintTaskAdapter 适配逻辑\n- 添加 proguard 混淆规则和构建脚本\n- 更新 UI 资源文件\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:28:57+08:00","added":["printer-redesign/application/command/ConfigurePrinterCommand.java","printer-redesign/application/command/RecoverDeadLetterCommand.java","printer-redesign/application/command/SubmitPrintJobCommand.java","printer-redesign/application/dto/PrintJobDTO.java","printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/dto/QueueStatsDTO.java","printer-redesign/application/query/GetPrintJobsQuery.java","printer-redesign/application/query/GetQueueStatsQuery.java","printer-redesign/keystore.properties.template","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java","printer-redesign/proguard-rules.pro","printer-redesign/scripts/build-release.sh","printer-redesign/scripts/generate-keystore.sh","printer-redesign/src/main/res/drawable/ic_help.xml","printer-redesign/src/main/res/layout/activity_print_test.xml"],"removed":[],"modified":[".gitignore","printer-redesign/build.gradle","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/migration/BillStyleAdapter.java","printer-redesign/migration/PrintTaskAdapter.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/values/colors.xml","printer-redesign/src/main/res/values/strings.xml"]},{"id":"4052be41183584c726cd84d2f9d9cb5c371da83b","message":"feat: 完善模板引擎系统与UI优化\n\n模板引擎增强:\n- 新增 ExpressionEvaluator 表达式求值器,支持复杂条件判断\n- 新增 FormatPipeline 格式化管道,支持货币/日期/截断等格式化\n- 新增 ContextDataEnhanced 增强上下文,支持嵌套路径和管道\n- 新增 GroupElement 分组元素,支持条件渲染和循环渲染\n- 新增 TableElementEnhanced 增强表格,支持分组/小计/合计\n- 新增 ImageElement 图片元素,支持URL/Base64/本地文件\n- 新增 TemplateValidator 模板验证器\n- 新增 TemplateRenderEngineEnhanced 增强渲染引擎\n- 完善 TemplateManager 模板管理器\n\nUI和功能优化:\n- 新增 HealthCheckActivity 健康检查详情页\n- 新增 LogViewerActivity 日志查看页面\n- 新增 QueueDetailActivity 队列详情页面\n- 优化 MainActivity 界面布局和状态显示\n- 精简 SystemPrintDriver 代码结构\n- 新增相关资源文件和菜单\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/4052be41183584c726cd84d2f9d9cb5c371da83b","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:12:50+08:00","added":["printer-redesign/application/engine/TemplateRenderEngineEnhanced.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/docs/TEMPLATE_ENHANCEMENT_GUIDE.md","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/domain/service/formatter/StrategyRegistry.java","printer-redesign/domain/template/ContextDataEnhanced.java","printer-redesign/domain/template/CutElement.java","printer-redesign/domain/template/FormatPipeline.java","printer-redesign/domain/template/GroupElement.java","printer-redesign/domain/template/ImageElement.java","printer-redesign/domain/template/QRCodeElement.java","printer-redesign/domain/template/SpacerElement.java","printer-redesign/domain/template/TableElementEnhanced.java","printer-redesign/infrastructure/device/utils/BitmapToEscPosUtil.java","printer-redesign/presentation/HealthCheckActivity.java","printer-redesign/presentation/LogViewerActivity.java","printer-redesign/presentation/QueueDetailActivity.java","printer-redesign/src/main/res/drawable/bg_error_message.xml","printer-redesign/src/main/res/drawable/bg_status_chip.xml","printer-redesign/src/main/res/drawable/ic_check_circle.xml","printer-redesign/src/main/res/drawable/ic_error.xml","printer-redesign/src/main/res/drawable/ic_print_type.xml","printer-redesign/src/main/res/drawable/ic_recover.xml","printer-redesign/src/main/res/drawable/ic_warning.xml","printer-redesign/src/main/res/layout/activity_health_check.xml","printer-redesign/src/main/res/layout/activity_log_viewer.xml","printer-redesign/src/main/res/layout/activity_queue_detail.xml","printer-redesign/src/main/res/layout/item_health_component.xml","printer-redesign/src/main/res/layout/item_print_log.xml","printer-redesign/src/main/res/layout/item_queue_job.xml","printer-redesign/src/main/res/menu/menu_log_viewer.xml","printer-redesign/src/main/res/menu/menu_queue_detail.xml"],"removed":[],"modified":["ARCHITECTURE_COMPARISON.md","CLAUDE.md","printer-redesign/ARCHITECTURE.md","printer-redesign/application/engine/TemplateManager.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/build.gradle","printer-redesign/domain/template/BarcodeElement.java","printer-redesign/domain/template/BaseElement.java","printer-redesign/domain/template/ContextData.java","printer-redesign/domain/template/LineElement.java","printer-redesign/domain/template/PrintElement.java","printer-redesign/domain/template/TableElement.java","printer-redesign/domain/template/TextElement.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/layout/activity_main.xml","printer-redesign/src/main/res/values/colors.xml"]}],"total_commits":0,"head_commit":{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},"repository":{"id":13,"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":"printer-server","full_name":"luoanwu/printer-server","description":"KTV打印服务器 - DDD架构重构","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server/languages","html_url":"https://gitea.g-hi.com/luoanwu/printer-server","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/printer-server.git","clone_url":"https://gitea.g-hi.com/luoanwu/printer-server.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-28T11:06:40+08:00","updated_at":"2026-02-28T11:06:54+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
|
2
|
3
|
1772996434
|
1772996471
|
0
|
1772996432
|
1772996471
|
NULL
|
|
0
|
Edit
Delete
|
|
1134
|
feat: 嗨赞AI输入法Android版初始提交
|
9
|
5
|
performance-check.yml
|
4
|
5
|
0
|
refs/heads/main
|
893022bfd17ce1f2e75e75651551cf8ceaacfe45
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"a8f0a86b4c1d4422bfe5c002b8c5307111d317bb","after":"893022bfd17ce1f2e75e75651551cf8ceaacfe45","compare_url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/compare/a8f0a86b4c1d4422bfe5c002b8c5307111d317bb...893022bfd17ce1f2e75e75651551cf8ceaacfe45","commits":[{"id":"893022bfd17ce1f2e75e75651551cf8ceaacfe45","message":"feat: 嗨赞AI输入法Android版初始提交\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/893022bfd17ce1f2e75e75651551cf8ceaacfe45","author":{"name":"luoanwu","email":"law@g-hi.com","username":"luoanwu"},"committer":{"name":"luoanwu","email":"law@g-hi.com","username":"luoanwu"},"verification":null,"timestamp":"2026-02-27T15:28:58+08:00","added":[".claude/skills/haizhan-ime-development.md",".claude/worktrees/charming-zhukovsky",".editorconfig",".github/workflows/ci.yml",".github/workflows/frontend-backend-ci.yml",".github/workflows/ios-ci.yml",".github/workflows/performance-check.yml",".github/workflows/pr-check.yml",".github/workflows/release.yml",".gitignore",".npmrc","CHANGELOG.md","CLAUDE.md","MIGRATION_COMPLETE_REPORT.md","README.md","admin-web/.env.development","admin-web/.eslintrc.cjs","admin-web/.gitignore","admin-web/.npmrc","admin-web/README.md","admin-web/e2e/all-pages.spec.ts","admin-web/e2e/crud-tests.spec.ts","admin-web/e2e/dashboard.spec.ts","admin-web/e2e/interactive-click.spec.ts","admin-web/e2e/login.spec.ts","admin-web/e2e/templates.spec.ts","admin-web/index.html","admin-web/package.json","admin-web/playwright.config.ts","admin-web/postcss.config.js","admin-web/public/favicon.svg","admin-web/src/App.vue","admin-web/src/api/ai-config.ts","admin-web/src/api/audit.ts","admin-web/src/api/auth.ts","admin-web/src/api/contact.ts","admin-web/src/api/knowledge.ts","admin-web/src/api/rag.ts","admin-web/src/api/settings.ts","admin-web/src/api/team.ts","admin-web/src/api/template.ts","admin-web/src/api/usage.ts","admin-web/src/api/user.ts","admin-web/src/assets/logo.svg","admin-web/src/components/UserCard.vue","admin-web/src/components/index.ts","admin-web/src/composables/usePermission.ts","admin-web/src/composables/useResponsive.ts","admin-web/src/composables/useTable.ts","admin-web/src/directives/index.ts","admin-web/src/directives/permission.ts","admin-web/src/env.d.ts","admin-web/src/layouts/MainLayout.vue","admin-web/src/layouts/components/HeaderBar.vue","admin-web/src/layouts/components/MobileDrawer.vue","admin-web/src/layouts/components/SidebarMenu.vue","admin-web/src/main.ts","admin-web/src/router/index.ts","admin-web/src/stores/app.ts","admin-web/src/stores/user.ts","admin-web/src/styles/index.scss","admin-web/src/styles/variables.scss","admin-web/src/types/ai-config.ts","admin-web/src/types/api.ts","admin-web/src/types/audit.ts","admin-web/src/types/contact.ts","admin-web/src/types/knowledge.ts","admin-web/src/types/permission.ts","admin-web/src/types/rag.ts","admin-web/src/types/settings.ts","admin-web/src/types/team.ts","admin-web/src/types/template.ts","admin-web/src/types/usage.ts","admin-web/src/types/user.ts","admin-web/src/utils/request.ts","admin-web/src/views/ai-config/index.vue","admin-web/src/views/audit/index.vue","admin-web/src/views/contacts/index.vue","admin-web/src/views/contacts/profile.vue","admin-web/src/views/dashboard/index.vue","admin-web/src/views/error/403.vue","admin-web/src/views/error/404.vue","admin-web/src/views/knowledge/index.vue","admin-web/src/views/login/index.vue","admin-web/src/views/profile/index.vue","admin-web/src/views/rag/index.vue","admin-web/src/views/settings/index.vue","admin-web/src/views/teams/index.vue","admin-web/src/views/templates/index.vue","admin-web/src/views/usage/index.vue","admin-web/src/views/users/index.vue","admin-web/tailwind.config.js","admin-web/test-results/.last-run.json","admin-web/tsconfig.app.json","admin-web/tsconfig.json","admin-web/tsconfig.node.json","admin-web/vite.config.d.ts","admin-web/vite.config.js","admin-web/vite.config.ts","ai-panel/build.gradle.kts","ai-panel/consumer-rules.pro","ai-panel/proguard-rules.pro","ai-panel/src/main/AndroidManifest.xml","ai-panel/src/main/java/com/haizhan/ime/panel/AiPanelManager.kt","ai-panel/src/main/java/com/haizhan/ime/panel/AiPanelModels.kt","ai-panel/src/main/java/com/haizhan/ime/panel/agentic/AgenticDecisionEngine.kt","ai-panel/src/main/java/com/haizhan/ime/panel/agentic/AgenticRouter.kt","ai-panel/src/main/java/com/haizhan/ime/panel/agentic/AgenticTypes.kt","ai-panel/src/main/java/com/haizhan/ime/panel/agentic/CostController.kt","ai-panel/src/main/java/com/haizhan/ime/panel/agentic/HybridSearchExecutor.kt","ai-panel/src/main/java/com/haizhan/ime/panel/agentic/di/AgenticModule.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/AvatarMatcher.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/ContactCache.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/ContactContextPreloader.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/ContactIndexes.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/ContactMatcher.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/ContactMatcherData.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/EnhancedContactMatcher.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/MatchedContact.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/NicknameMatcher.kt","ai-panel/src/main/java/com/haizhan/ime/panel/context/InputContextCollector.kt","ai-panel/src/main/java/com/haizhan/ime/panel/context/UnifiedContextManager.kt","ai-panel/src/main/java/com/haizhan/ime/panel/di/AiPanelModule.kt","ai-panel/src/main/java/com/haizhan/ime/panel/di/ContactModule.kt","ai-panel/src/main/java/com/haizhan/ime/panel/di/ContextModule.kt","ai-panel/src/main/java/com/haizhan/ime/panel/di/OcrModule.kt","ai-panel/src/main/java/com/haizhan/ime/panel/di/ReplyModule.kt","ai-panel/src/main/java/com/haizhan/ime/panel/di/ScreenshotModule.kt","ai-panel/src/main/java/com/haizhan/ime/panel/knowledge/KnowledgeService.kt","ai-panel/src/main/java/com/haizhan/ime/panel/memory/ContactMemoryModels.kt","ai-panel/src/main/java/com/haizhan/ime/panel/memory/ContactMemoryService.kt","ai-panel/src/main/java/com/haizhan/ime/panel/memory/MemoryDtoMapper.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/EnhancedSenderDetector.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/MessageParser.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/OcrReliabilityScore.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/OcrService.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/TitleBarParser.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/adapter/ChatMessageAdapter.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/adapter/DingTalkMessageAdapter.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/adapter/FeishuMessageAdapter.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/adapter/MessageAdapterFactory.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/adapter/WeChatMessageAdapter.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/adapter/WeWorkMessageAdapter.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/BatteryAwareManager.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/ClipboardHelper.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/FrequencyController.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/RagReplyGenerator.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/ReplyGenerator.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/ReplyStyle.kt","ai-panel/src/main/java/com/haizhan/ime/panel/screenshot/RegionDetector.kt","ai-panel/src/main/java/com/haizhan/ime/panel/screenshot/ScreenshotManager.kt","ai-panel/src/main/java/com/haizhan/ime/panel/service/ScreenshotForegroundService.kt","ai-panel/src/main/java/com/haizhan/ime/panel/trigger/AppDetector.kt","ai-panel/src/main/java/com/haizhan/ime/panel/trigger/TriggerDetector.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/AIPanelScreen.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/AiPanelTheme.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/Contact360View.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/ContactCard.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/ContactSelector.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/EmotionBadge.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/FunctionTabBar.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/IntentBadge.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/KnowledgeCard.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/KnowledgePanel.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/QuickReplyPanel.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/ReplyCard.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/ContactComponents.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/HistoryComponents.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/KnowledgeComponents.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/NoteComponents.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/OcrComponents.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/PanelCommon.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/ReplyComponents.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/TeamComponents.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/tabs/AiReplyTab.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/tabs/ContactsTab.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/tabs/HistoryTab.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/tabs/KnowledgeTab.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/tabs/NoteTab.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/tabs/OcrTab.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/tabs/TeamTab.kt","ai-panel/src/main/java/com/haizhan/ime/panel/weather/WeatherService.kt","ai-panel/src/main/res/drawable/ic_ai_reply.xml","ai-panel/src/main/res/drawable/ic_capture.xml","ai-panel/src/main/res/drawable/ic_contacts.xml","ai-panel/src/main/res/drawable/ic_knowledge.xml","ai-panel/src/main/res/drawable/ic_ocr.xml","ai-panel/src/main/res/drawable/ic_refresh.xml","ai-panel/src/main/res/drawable/ic_screenshot.xml","ai-panel/src/main/res/drawable/ic_stop.xml","ai-panel/src/test/java/com/haizhan/ime/panel/AiPanelManagerTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/agentic/AgenticDecisionEngineTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/agentic/AgenticRouterTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/agentic/AgenticTypesTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/agentic/CostControllerTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/agentic/ResultQualityEvaluatorTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactCacheTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactContextPreloaderTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactIndexPerformanceTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactIndexesTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactMatcherTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactMemoryServiceTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/MatchedContactTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/NicknameMatcherTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/context/InputContextCollectorTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/context/UnifiedContextManagerTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/knowledge/KnowledgeServiceTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/ocr/EnhancedSenderDetectorTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/ocr/MessageParserTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/ocr/OcrReliabilityScoreTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/ocr/OcrServiceTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/ocr/TitleBarParserTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/platform/DingTalkAdapterTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/platform/FeishuAdapterTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/platform/WeChatAdapterTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/platform/WeWorkAdapterTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/reply/BatteryAwareManagerTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/reply/ClipboardHelperTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/reply/FrequencyControllerTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/reply/RagReplyGeneratorTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/reply/ReplyGeneratorTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/reply/ReplyStyleTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/screenshot/RegionDetectorTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/screenshot/ScreenshotManagerTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/trigger/AppDetectorTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/trigger/TriggerDetectorTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/ui/AIPanelScreenTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/ui/ReplyCardTest.kt","api-clients/android/.openapi-generator-ignore","api-clients/android/.openapi-generator/FILES","api-clients/android/.openapi-generator/VERSION","api-clients/android/README.md","api-clients/android/build.gradle","api-clients/android/docs/AdminLoginDto.md","api-clients/android/docs/AiConfigApi.md","api-clients/android/docs/AuditLogsApi.md","api-clients/android/docs/AuthApi.md","api-clients/android/docs/BatchRemoveContactsDto.md","api-clients/android/docs/ChunkingConfigDto.md","api-clients/android/docs/Contact360ResponseDto.md","api-clients/android/docs/Contact360ViewDto.md","api-clients/android/docs/ContactDetailResponseDto.md","api-clients/android/docs/ContactDto.md","api-clients/android/docs/ContactEventDto.md","api-clients/android/docs/ContactListResponseDto.md","api-clients/android/docs/ContactProfileDto.md","api-clients/android/docs/ContactStatsDto.md","api-clients/android/docs/ContactTagDto.md","api-clients/android/docs/ContactsApi.md","api-clients/android/docs/ConversationSummaryDto.md","api-clients/android/docs/CreateContactDto.md","api-clients/android/docs/CreateContactEventDto.md","api-clients/android/docs/CreateKnowledgeBaseDto.md","api-clients/android/docs/CreateKnowledgeDocumentDto.md","api-clients/android/docs/CreateQwenModelDto.md","api-clients/android/docs/DefaultApi.md","api-clients/android/docs/EmbeddingConfigDto.md","api-clients/android/docs/EmbeddingModelDto.md","api-clients/android/docs/GenerationConfigDto.md","api-clients/android/docs/HealthApi.md","api-clients/android/docs/KnowledgeApi.md","api-clients/android/docs/KnowledgeBaseResponseDto.md","api-clients/android/docs/KnowledgeDocumentListResponseDto.md","api-clients/android/docs/KnowledgeDocumentResponseDto.md","api-clients/android/docs/LoginDto.md","api-clients/android/docs/MatchContactDto.md","api-clients/android/docs/MatchContactResponseDto.md","api-clients/android/docs/MobileCompatApi.md","api-clients/android/docs/PinyinApi.md","api-clients/android/docs/PipelineHealthDto.md","api-clients/android/docs/PipelineMetricsDto.md","api-clients/android/docs/PreviewChunkingDto.md","api-clients/android/docs/QwenModelConfigDto.md","api-clients/android/docs/QwenModelFeaturesDto.md","api-clients/android/docs/RagApi.md","api-clients/android/docs/RagConfigDto.md","api-clients/android/docs/RagMetricsDto.md","api-clients/android/docs/RagPipelineStatusDto.md","api-clients/android/docs/RagQueryDto.md","api-clients/android/docs/RebuildIndexDto.md","api-clients/android/docs/RefreshTokenDto.md","api-clients/android/docs/RetrievalConfigDto.md","api-clients/android/docs/SettingsApi.md","api-clients/android/docs/SyncContactsDto.md","api-clients/android/docs/SyncContactsResponseDto.md","api-clients/android/docs/TeamsApi.md","api-clients/android/docs/ToggleQwenModelDto.md","api-clients/android/docs/UpdateContactDto.md","api-clients/android/docs/UpdateKnowledgeBaseDto.md","api-clients/android/docs/UpdateKnowledgeDocumentDto.md","api-clients/android/docs/UpdateQwenModelDto.md","api-clients/android/docs/UpdateRagConfigDto.md","api-clients/android/docs/UsageApi.md","api-clients/android/docs/WeatherApi.md","api-clients/android/gradle/wrapper/gradle-wrapper.jar","api-clients/android/gradle/wrapper/gradle-wrapper.properties","api-clients/android/gradlew","api-clients/android/gradlew.bat","api-clients/android/settings.gradle","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/AiConfigApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/AuditLogsApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/AuthApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/ContactsApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/DefaultApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/HealthApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/KnowledgeApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/MobileCompatApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/PinyinApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/RagApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/SettingsApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/TeamsApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/UsageApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/WeatherApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/auth/HttpBearerAuth.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/ApiClient.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/BigDecimalAdapter.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/BigIntegerAdapter.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/ByteArrayAdapter.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/CollectionFormats.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/LocalDateAdapter.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/LocalDateTimeAdapter.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/OffsetDateTimeAdapter.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/ResponseExt.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/Serializer.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/URIAdapter.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/UUIDAdapter.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/AdminLoginDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/BatchRemoveContactsDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ChunkingConfigDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/Contact360ResponseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/Contact360ViewDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ContactDetailResponseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ContactDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ContactEventDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ContactListResponseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ContactProfileDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ContactStatsDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ContactTagDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ConversationSummaryDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/CreateContactDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/CreateContactEventDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/CreateKnowledgeBaseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/CreateKnowledgeDocumentDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/CreateQwenModelDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/EmbeddingConfigDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/EmbeddingModelDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/GenerationConfigDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/KnowledgeBaseResponseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/KnowledgeDocumentListResponseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/KnowledgeDocumentResponseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/LoginDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/MatchContactDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/MatchContactResponseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/PipelineHealthDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/PipelineMetricsDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/PreviewChunkingDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/QwenModelConfigDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/QwenModelFeaturesDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/RagConfigDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/RagMetricsDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/RagPipelineStatusDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/RagQueryDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/RebuildIndexDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/RefreshTokenDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/RetrievalConfigDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/SyncContactsDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/SyncContactsResponseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ToggleQwenModelDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/UpdateContactDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/UpdateKnowledgeBaseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/UpdateKnowledgeDocumentDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/UpdateQwenModelDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/UpdateRagConfigDto.kt","api-clients/flutter/.gitignore","api-clients/flutter/.openapi-generator-ignore","api-clients/flutter/.openapi-generator/FILES","api-clients/flutter/.openapi-generator/VERSION","api-clients/flutter/README.md","api-clients/flutter/analysis_options.yaml","api-clients/flutter/doc/AdminLoginDto.md","api-clients/flutter/doc/AiConfigApi.md","api-clients/flutter/doc/AuditLogsApi.md","api-clients/flutter/doc/AuthApi.md","api-clients/flutter/doc/BatchRemoveContactsDto.md","api-clients/flutter/doc/ChunkingConfigDto.md","api-clients/flutter/doc/Contact360ResponseDto.md","api-clients/flutter/doc/Contact360ViewDto.md","api-clients/flutter/doc/ContactDetailResponseDto.md","api-clients/flutter/doc/ContactDto.md","api-clients/flutter/doc/ContactEventDto.md","api-clients/flutter/doc/ContactListResponseDto.md","api-clients/flutter/doc/ContactProfileDto.md","api-clients/flutter/doc/ContactStatsDto.md","api-clients/flutter/doc/ContactTagDto.md","api-clients/flutter/doc/ContactsApi.md","api-clients/flutter/doc/ConversationSummaryDto.md","api-clients/flutter/doc/CreateContactDto.md","api-clients/flutter/doc/CreateContactEventDto.md","api-clients/flutter/doc/CreateKnowledgeBaseDto.md","api-clients/flutter/doc/CreateKnowledgeDocumentDto.md","api-clients/flutter/doc/CreateQwenModelDto.md","api-clients/flutter/doc/DefaultApi.md","api-clients/flutter/doc/EmbeddingConfigDto.md","api-clients/flutter/doc/EmbeddingModelDto.md","api-clients/flutter/doc/GenerationConfigDto.md","api-clients/flutter/doc/HealthApi.md","api-clients/flutter/doc/KnowledgeApi.md","api-clients/flutter/doc/KnowledgeBaseResponseDto.md","api-clients/flutter/doc/KnowledgeDocumentListResponseDto.md","api-clients/flutter/doc/KnowledgeDocumentResponseDto.md","api-clients/flutter/doc/LoginDto.md","api-clients/flutter/doc/MatchContactDto.md","api-clients/flutter/doc/MatchContactResponseDto.md","api-clients/flutter/doc/MobileCompatApi.md","api-clients/flutter/doc/PinyinApi.md","api-clients/flutter/doc/PipelineHealthDto.md","api-clients/flutter/doc/PipelineMetricsDto.md","api-clients/flutter/doc/PreviewChunkingDto.md","api-clients/flutter/doc/QwenModelConfigDto.md","api-clients/flutter/doc/QwenModelFeaturesDto.md","api-clients/flutter/doc/RagApi.md","api-clients/flutter/doc/RagConfigDto.md","api-clients/flutter/doc/RagMetricsDto.md","api-clients/flutter/doc/RagPipelineStatusDto.md","api-clients/flutter/doc/RagQueryDto.md","api-clients/flutter/doc/RebuildIndexDto.md","api-clients/flutter/doc/RefreshTokenDto.md","api-clients/flutter/doc/RetrievalConfigDto.md","api-clients/flutter/doc/SettingsApi.md","api-clients/flutter/doc/SyncContactsDto.md","api-clients/flutter/doc/SyncContactsResponseDto.md","api-clients/flutter/doc/TeamsApi.md","api-clients/flutter/doc/ToggleQwenModelDto.md","api-clients/flutter/doc/UpdateContactDto.md","api-clients/flutter/doc/UpdateKnowledgeBaseDto.md","api-clients/flutter/doc/UpdateKnowledgeDocumentDto.md","api-clients/flutter/doc/UpdateQwenModelDto.md","api-clients/flutter/doc/UpdateRagConfigDto.md","api-clients/flutter/doc/UsageApi.md","api-clients/flutter/doc/WeatherApi.md","api-clients/flutter/lib/haizhan_api.dart","api-clients/flutter/lib/src/api.dart","api-clients/flutter/lib/src/api/ai_config_api.dart","api-clients/flutter/lib/src/api/audit_logs_api.dart","api-clients/flutter/lib/src/api/auth_api.dart","api-clients/flutter/lib/src/api/contacts_api.dart","api-clients/flutter/lib/src/api/default_api.dart","api-clients/flutter/lib/src/api/health_api.dart","api-clients/flutter/lib/src/api/knowledge_api.dart","api-clients/flutter/lib/src/api/mobile_compat_api.dart","api-clients/flutter/lib/src/api/pinyin_api.dart","api-clients/flutter/lib/src/api/rag_api.dart","api-clients/flutter/lib/src/api/settings_api.dart","api-clients/flutter/lib/src/api/teams_api.dart","api-clients/flutter/lib/src/api/usage_api.dart","api-clients/flutter/lib/src/api/weather_api.dart","api-clients/flutter/lib/src/api_util.dart","api-clients/flutter/lib/src/auth/api_key_auth.dart","api-clients/flutter/lib/src/auth/auth.dart","api-clients/flutter/lib/src/auth/basic_auth.dart","api-clients/flutter/lib/src/auth/bearer_auth.dart","api-clients/flutter/lib/src/auth/oauth.dart","api-clients/flutter/lib/src/date_serializer.dart","api-clients/flutter/lib/src/model/admin_login_dto.dart","api-clients/flutter/lib/src/model/batch_remove_contacts_dto.dart","api-clients/flutter/lib/src/model/chunking_config_dto.dart","api-clients/flutter/lib/src/model/contact360_response_dto.dart","api-clients/flutter/lib/src/model/contact360_view_dto.dart","api-clients/flutter/lib/src/model/contact_detail_response_dto.dart","api-clients/flutter/lib/src/model/contact_dto.dart","api-clients/flutter/lib/src/model/contact_event_dto.dart","api-clients/flutter/lib/src/model/contact_list_response_dto.dart","api-clients/flutter/lib/src/model/contact_profile_dto.dart","api-clients/flutter/lib/src/model/contact_stats_dto.dart","api-clients/flutter/lib/src/model/contact_tag_dto.dart","api-clients/flutter/lib/src/model/conversation_summary_dto.dart","api-clients/flutter/lib/src/model/create_contact_dto.dart","api-clients/flutter/lib/src/model/create_contact_event_dto.dart","api-clients/flutter/lib/src/model/create_knowledge_base_dto.dart","api-clients/flutter/lib/src/model/create_knowledge_document_dto.dart","api-clients/flutter/lib/src/model/create_qwen_model_dto.dart","api-clients/flutter/lib/src/model/date.dart","api-clients/flutter/lib/src/model/embedding_config_dto.dart","api-clients/flutter/lib/src/model/embedding_model_dto.dart","api-clients/flutter/lib/src/model/generation_config_dto.dart","api-clients/flutter/lib/src/model/knowledge_base_response_dto.dart","api-clients/flutter/lib/src/model/knowledge_document_list_response_dto.dart","api-clients/flutter/lib/src/model/knowledge_document_response_dto.dart","api-clients/flutter/lib/src/model/login_dto.dart","api-clients/flutter/lib/src/model/match_contact_dto.dart","api-clients/flutter/lib/src/model/match_contact_response_dto.dart","api-clients/flutter/lib/src/model/pipeline_health_dto.dart","api-clients/flutter/lib/src/model/pipeline_metrics_dto.dart","api-clients/flutter/lib/src/model/preview_chunking_dto.dart","api-clients/flutter/lib/src/model/qwen_model_config_dto.dart","api-clients/flutter/lib/src/model/qwen_model_features_dto.dart","api-clients/flutter/lib/src/model/rag_config_dto.dart","api-clients/flutter/lib/src/model/rag_metrics_dto.dart","api-clients/flutter/lib/src/model/rag_pipeline_status_dto.dart","api-clients/flutter/lib/src/model/rag_query_dto.dart","api-clients/flutter/lib/src/model/rebuild_index_dto.dart","api-clients/flutter/lib/src/model/refresh_token_dto.dart","api-clients/flutter/lib/src/model/retrieval_config_dto.dart","api-clients/flutter/lib/src/model/sync_contacts_dto.dart","api-clients/flutter/lib/src/model/sync_contacts_response_dto.dart","api-clients/flutter/lib/src/model/toggle_qwen_model_dto.dart","api-clients/flutter/lib/src/model/update_contact_dto.dart","api-clients/flutter/lib/src/model/update_knowledge_base_dto.dart","api-clients/flutter/lib/src/model/update_knowledge_document_dto.dart","api-clients/flutter/lib/src/model/update_qwen_model_dto.dart","api-clients/flutter/lib/src/model/update_rag_config_dto.dart","api-clients/flutter/lib/src/serializers.dart","api-clients/flutter/pubspec.yaml","api-clients/flutter/test/admin_login_dto_test.dart","api-clients/flutter/test/ai_config_api_test.dart","api-clients/flutter/test/audit_logs_api_test.dart","api-clients/flutter/test/auth_api_test.dart","api-clients/flutter/test/batch_remove_contacts_dto_test.dart","api-clients/flutter/test/chunking_config_dto_test.dart","api-clients/flutter/test/contact360_response_dto_test.dart","api-clients/flutter/test/contact360_view_dto_test.dart","api-clients/flutter/test/contact_detail_response_dto_test.dart","api-clients/flutter/test/contact_dto_test.dart","api-clients/flutter/test/contact_event_dto_test.dart","api-clients/flutter/test/contact_list_response_dto_test.dart","api-clients/flutter/test/contact_profile_dto_test.dart","api-clients/flutter/test/contact_stats_dto_test.dart","api-clients/flutter/test/contact_tag_dto_test.dart","api-clients/flutter/test/contacts_api_test.dart","api-clients/flutter/test/conversation_summary_dto_test.dart","api-clients/flutter/test/create_contact_dto_test.dart","api-clients/flutter/test/create_contact_event_dto_test.dart","api-clients/flutter/test/create_knowledge_base_dto_test.dart","api-clients/flutter/test/create_knowledge_document_dto_test.dart","api-clients/flutter/test/create_qwen_model_dto_test.dart","api-clients/flutter/test/default_api_test.dart","api-clients/flutter/test/embedding_config_dto_test.dart","api-clients/flutter/test/embedding_model_dto_test.dart","api-clients/flutter/test/generation_config_dto_test.dart","api-clients/flutter/test/health_api_test.dart","api-clients/flutter/test/knowledge_api_test.dart","api-clients/flutter/test/knowledge_base_response_dto_test.dart","api-clients/flutter/test/knowledge_document_list_response_dto_test.dart","api-clients/flutter/test/knowledge_document_response_dto_test.dart","api-clients/flutter/test/login_dto_test.dart","api-clients/flutter/test/match_contact_dto_test.dart","api-clients/flutter/test/match_contact_response_dto_test.dart","api-clients/flutter/test/mobile_compat_api_test.dart","api-clients/flutter/test/pinyin_api_test.dart","api-clients/flutter/test/pipeline_health_dto_test.dart","api-clients/flutter/test/pipeline_metrics_dto_test.dart","api-clients/flutter/test/preview_chunking_dto_test.dart","api-clients/flutter/test/qwen_model_config_dto_test.dart","api-clients/flutter/test/qwen_model_features_dto_test.dart","api-clients/flutter/test/rag_api_test.dart","api-clients/flutter/test/rag_config_dto_test.dart","api-clients/flutter/test/rag_metrics_dto_test.dart","api-clients/flutter/test/rag_pipeline_status_dto_test.dart","api-clients/flutter/test/rag_query_dto_test.dart","api-clients/flutter/test/rebuild_index_dto_test.dart","api-clients/flutter/test/refresh_token_dto_test.dart","api-clients/flutter/test/retrieval_config_dto_test.dart","api-clients/flutter/test/settings_api_test.dart","api-clients/flutter/test/sync_contacts_dto_test.dart","api-clients/flutter/test/sync_contacts_response_dto_test.dart","api-clients/flutter/test/teams_api_test.dart","api-clients/flutter/test/toggle_qwen_model_dto_test.dart","api-clients/flutter/test/update_contact_dto_test.dart","api-clients/flutter/test/update_knowledge_base_dto_test.dart","api-clients/flutter/test/update_knowledge_document_dto_test.dart","api-clients/flutter/test/update_qwen_model_dto_test.dart","api-clients/flutter/test/update_rag_config_dto_test.dart","api-clients/flutter/test/usage_api_test.dart","api-clients/flutter/test/weather_api_test.dart","api-clients/ios/.gitignore","api-clients/ios/.openapi-generator-ignore","api-clients/ios/.openapi-generator/FILES","api-clients/ios/.openapi-generator/VERSION","api-clients/ios/.swiftformat","api-clients/ios/Cartfile","api-clients/ios/HaizhanAPI.podspec","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIHelper.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/AiConfigAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/AuditLogsAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/AuthAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/ContactsAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/DefaultAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/HealthAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/KnowledgeAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/MobileCompatAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/PinyinAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/RagAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/SettingsAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/TeamsAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/UsageAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/WeatherAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/CodableHelper.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Configuration.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Extensions.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/JSONDataEncoding.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/JSONEncodingHelper.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/AdminLoginDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/BatchRemoveContactsDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ChunkingConfigDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/Contact360ResponseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/Contact360ViewDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ContactDetailResponseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ContactDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ContactEventDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ContactListResponseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ContactProfileDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ContactStatsDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ContactTagDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ConversationSummaryDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/CreateContactDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/CreateContactEventDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/CreateKnowledgeBaseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/CreateKnowledgeDocumentDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/CreateQwenModelDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/EmbeddingConfigDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/EmbeddingModelDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/GenerationConfigDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/KnowledgeBaseResponseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/KnowledgeDocumentListResponseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/KnowledgeDocumentResponseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/LoginDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/MatchContactDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/MatchContactResponseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/PipelineHealthDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/PipelineMetricsDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/PreviewChunkingDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/QwenModelConfigDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/QwenModelFeaturesDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/RagConfigDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/RagMetricsDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/RagPipelineStatusDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/RagQueryDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/RebuildIndexDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/RefreshTokenDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/RetrievalConfigDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/SyncContactsDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/SyncContactsResponseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ToggleQwenModelDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/UpdateContactDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/UpdateKnowledgeBaseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/UpdateKnowledgeDocumentDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/UpdateQwenModelDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/UpdateRagConfigDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/OpenISO8601DateFormatter.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/SynchronizedDictionary.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/URLSessionImplementations.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Validation.swift","api-clients/ios/Package.swift","api-clients/ios/README.md","api-clients/ios/docs/AdminLoginDto.md","api-clients/ios/docs/AiConfigAPI.md","api-clients/ios/docs/AuditLogsAPI.md","api-clients/ios/docs/AuthAPI.md","api-clients/ios/docs/BatchRemoveContactsDto.md","api-clients/ios/docs/ChunkingConfigDto.md","api-clients/ios/docs/Contact360ResponseDto.md","api-clients/ios/docs/Contact360ViewDto.md","api-clients/ios/docs/ContactDetailResponseDto.md","api-clients/ios/docs/ContactDto.md","api-clients/ios/docs/ContactEventDto.md","api-clients/ios/docs/ContactListResponseDto.md","api-clients/ios/docs/ContactProfileDto.md","api-clients/ios/docs/ContactStatsDto.md","api-clients/ios/docs/ContactTagDto.md","api-clients/ios/docs/ContactsAPI.md","api-clients/ios/docs/ConversationSummaryDto.md","api-clients/ios/docs/CreateContactDto.md","api-clients/ios/docs/CreateContactEventDto.md","api-clients/ios/docs/CreateKnowledgeBaseDto.md","api-clients/ios/docs/CreateKnowledgeDocumentDto.md","api-clients/ios/docs/CreateQwenModelDto.md","api-clients/ios/docs/DefaultAPI.md","api-clients/ios/docs/EmbeddingConfigDto.md","api-clients/ios/docs/EmbeddingModelDto.md","api-clients/ios/docs/GenerationConfigDto.md","api-clients/ios/docs/HealthAPI.md","api-clients/ios/docs/KnowledgeAPI.md","api-clients/ios/docs/KnowledgeBaseResponseDto.md","api-clients/ios/docs/KnowledgeDocumentListResponseDto.md","api-clients/ios/docs/KnowledgeDocumentResponseDto.md","api-clients/ios/docs/LoginDto.md","api-clients/ios/docs/MatchContactDto.md","api-clients/ios/docs/MatchContactResponseDto.md","api-clients/ios/docs/MobileCompatAPI.md","api-clients/ios/docs/PinyinAPI.md","api-clients/ios/docs/PipelineHealthDto.md","api-clients/ios/docs/PipelineMetricsDto.md","api-clients/ios/docs/PreviewChunkingDto.md","api-clients/ios/docs/QwenModelConfigDto.md","api-clients/ios/docs/QwenModelFeaturesDto.md","api-clients/ios/docs/RagAPI.md","api-clients/ios/docs/RagConfigDto.md","api-clients/ios/docs/RagMetricsDto.md","api-clients/ios/docs/RagPipelineStatusDto.md","api-clients/ios/docs/RagQueryDto.md","api-clients/ios/docs/RebuildIndexDto.md","api-clients/ios/docs/RefreshTokenDto.md","api-clients/ios/docs/RetrievalConfigDto.md","api-clients/ios/docs/SettingsAPI.md","api-clients/ios/docs/SyncContactsDto.md","api-clients/ios/docs/SyncContactsResponseDto.md","api-clients/ios/docs/TeamsAPI.md","api-clients/ios/docs/ToggleQwenModelDto.md","api-clients/ios/docs/UpdateContactDto.md","api-clients/ios/docs/UpdateKnowledgeBaseDto.md","api-clients/ios/docs/UpdateKnowledgeDocumentDto.md","api-clients/ios/docs/UpdateQwenModelDto.md","api-clients/ios/docs/UpdateRagConfigDto.md","api-clients/ios/docs/UsageAPI.md","api-clients/ios/docs/WeatherAPI.md","api-clients/ios/git_push.sh","api-clients/ios/project.yml","app/build.gradle.kts","app/proguard-rules-release.pro","app/proguard-rules.pro","app/src/androidTest/java/com/haizhan/ime/ComposeUiTest.kt","app/src/androidTest/java/com/haizhan/ime/ExampleInstrumentedTest.kt","app/src/androidTest/java/com/haizhan/ime/e2e/SmokeE2ETest.kt","app/src/androidTest/java/com/haizhan/ime/integration/ImeIntegrationTest.kt","app/src/main/AndroidManifest.xml","app/src/main/assets/dictionaries/stroke-data.txt","app/src/main/assets/handwriting_labels.txt","app/src/main/assets/handwriting_labels_casia.txt","app/src/main/assets/handwriting_labels_clean.txt","app/src/main/assets/handwriting_labels_jp.txt","app/src/main/assets/paddle_models/handwriting_labels.txt","app/src/main/assets/paddle_models/ppocr_keys_v1.txt","app/src/main/assets/temp_clean.txt","app/src/main/assets/temp_labels.txt","app/src/main/java/com/haizhan/ime/HaizhanApplication.kt","app/src/main/java/com/haizhan/ime/about/ui/AboutScreen.kt","app/src/main/java/com/haizhan/ime/chat/model/Message.kt","app/src/main/java/com/haizhan/ime/chat/service/WebSocketService.kt","app/src/main/java/com/haizhan/ime/chat/ui/ChatMessageCard.kt","app/src/main/java/com/haizhan/ime/chat/ui/ChatScreen.kt","app/src/main/java/com/haizhan/ime/chat/ui/GroupChatScreen.kt","app/src/main/java/com/haizhan/ime/feedback/ui/FeedbackScreen.kt","app/src/main/java/com/haizhan/ime/help/ui/HelpCenterScreen.kt","app/src/main/java/com/haizhan/ime/note/model/Note.kt","app/src/main/java/com/haizhan/ime/note/service/NoteService.kt","app/src/main/java/com/haizhan/ime/note/ui/NoteEditorScreen.kt","app/src/main/java/com/haizhan/ime/note/ui/NoteListScreen.kt","app/src/main/java/com/haizhan/ime/profile/model/Profile.kt","app/src/main/java/com/haizhan/ime/profile/ui/ProfileScreen.kt","app/src/main/java/com/haizhan/ime/receiver/BootReceiver.kt","app/src/main/java/com/haizhan/ime/search/model/Search.kt","app/src/main/java/com/haizhan/ime/search/service/SearchService.kt","app/src/main/java/com/haizhan/ime/search/ui/GlobalSearchScreen.kt","app/src/main/java/com/haizhan/ime/security/EncryptionManager.kt","app/src/main/java/com/haizhan/ime/security/NetworkSecurityManager.kt","app/src/main/java/com/haizhan/ime/security/PrivacyComplianceManager.kt","app/src/main/java/com/haizhan/ime/security/SecurityAuditor.kt","app/src/main/java/com/haizhan/ime/service/AiProcessingService.kt","app/src/main/java/com/haizhan/ime/service/ContextCollector.kt","app/src/main/java/com/haizhan/ime/service/DataSyncService.kt","app/src/main/java/com/haizhan/ime/service/HaizhanInputMethodService.kt","app/src/main/java/com/haizhan/ime/service/InputTypeAnalysis.kt","app/src/main/java/com/haizhan/ime/service/KeyboardContentView.kt","app/src/main/java/com/haizhan/ime/service/OcrCaptureService.kt","app/src/main/java/com/haizhan/ime/service/VoiceInputDelegate.kt","app/src/main/java/com/haizhan/ime/session/model/Session.kt","app/src/main/java/com/haizhan/ime/session/service/SessionService.kt","app/src/main/java/com/haizhan/ime/session/ui/MessageCenterScreen.kt","app/src/main/java/com/haizhan/ime/session/ui/SessionCard.kt","app/src/main/java/com/haizhan/ime/session/ui/SessionListScreen.kt","app/src/main/java/com/haizhan/ime/stability/AnrWatchdog.kt","app/src/main/java/com/haizhan/ime/stability/CrashHandler.kt","app/src/main/java/com/haizhan/ime/stability/MemoryLeakDetector.kt","app/src/main/java/com/haizhan/ime/stability/StabilityManager.kt","app/src/main/java/com/haizhan/ime/statistics/model/Statistics.kt","app/src/main/java/com/haizhan/ime/statistics/ui/ChartComponents.kt","app/src/main/java/com/haizhan/ime/statistics/ui/StatisticsScreen.kt","app/src/main/java/com/haizhan/ime/subscription/model/Subscription.kt","app/src/main/java/com/haizhan/ime/subscription/service/SubscriptionService.kt","app/src/main/java/com/haizhan/ime/subscription/ui/SubscriptionScreen.kt","app/src/main/java/com/haizhan/ime/sync/ContactSyncTaskAdapter.kt","app/src/main/java/com/haizhan/ime/sync/KnowledgeSyncTaskAdapter.kt","app/src/main/java/com/haizhan/ime/sync/SyncContracts.kt","app/src/main/java/com/haizhan/ime/sync/SyncCoordinator.kt","app/src/main/java/com/haizhan/ime/sync/SyncScheduler.kt","app/src/main/java/com/haizhan/ime/team/model/Team.kt","app/src/main/java/com/haizhan/ime/team/service/TeamService.kt","app/src/main/java/com/haizhan/ime/team/ui/TeamScreen.kt","app/src/main/java/com/haizhan/ime/template/data/B2BTemplates.kt","app/src/main/java/com/haizhan/ime/template/data/ClosingTemplates.kt","app/src/main/java/com/haizhan/ime/template/data/CoreSalesTemplates.kt","app/src/main/java/com/haizhan/ime/template/data/DailyTemplates.kt","app/src/main/java/com/haizhan/ime/template/data/DefaultTemplates.kt","app/src/main/java/com/haizhan/ime/template/data/FollowUpTemplates.kt","app/src/main/java/com/haizhan/ime/template/data/QuickPhraseDefaults.kt","app/src/main/java/com/haizhan/ime/template/data/SeasonalTemplates.kt","app/src/main/java/com/haizhan/ime/template/data/TemplateDatabase.kt","app/src/main/java/com/haizhan/ime/template/data/TemplateImporter.kt","app/src/main/java/com/haizhan/ime/template/data/TemplateRepository.kt","app/src/main/java/com/haizhan/ime/template/di/TemplateModule.kt","app/src/main/java/com/haizhan/ime/template/model/Template.kt","app/src/main/java/com/haizhan/ime/template/service/TemplateService.kt","app/src/main/java/com/haizhan/ime/template/ui/FolderManagementDialog.kt","app/src/main/java/com/haizhan/ime/template/ui/TemplateListScreen.kt","app/src/main/java/com/haizhan/ime/template/ui/TemplateViewModel.kt","app/src/main/java/com/haizhan/ime/ui/MainActivity.kt","app/src/main/java/com/haizhan/ime/ui/management/DictionaryImportActivity.kt","app/src/main/java/com/haizhan/ime/ui/management/DictionaryImportScreen.kt","app/src/main/java/com/haizhan/ime/ui/management/DictionaryImportViewModel.kt","app/src/main/java/com/haizhan/ime/ui/management/DictionaryScreen.kt","app/src/main/java/com/haizhan/ime/ui/management/ManagementActivity.kt","app/src/main/java/com/haizhan/ime/ui/management/ManagementViewModel.kt","app/src/main/java/com/haizhan/ime/ui/management/PermissionScreen.kt","app/src/main/java/com/haizhan/ime/ui/management/SettingsScreen.kt","app/src/main/java/com/haizhan/ime/ui/permission/ScreenshotPermissionActivity.kt","app/src/main/java/com/haizhan/ime/ui/settings/ImeSettingsActivity.kt","app/src/main/java/com/haizhan/ime/ui/settings/SettingsViewModel.kt","app/src/main/java/com/haizhan/ime/ui/theme/Theme.kt","app/src/main/java/com/haizhan/ime/ui/theme/Type.kt","app/src/main/java/com/haizhan/ime/ux/AccessibilityHelper.kt","app/src/main/java/com/haizhan/ime/ux/AnimationUtils.kt","app/src/main/java/com/haizhan/ime/ux/ErrorHandler.kt","app/src/main/java/com/haizhan/ime/ux/OnboardingScreen.kt","app/src/main/java/com/haizhan/ime/ux/StartupOptimizer.kt","app/src/main/java/com/haizhan/ime/voice/service/VoiceService.kt","app/src/main/java/com/haizhan/ime/voice/ui/VoiceInputScreen.kt","app/src/main/res/drawable/ic_launcher_background.xml","app/src/main/res/drawable/ic_launcher_foreground.xml","app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml","app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml","app/src/main/res/values-night/colors.xml","app/src/main/res/values/colors.xml","app/src/main/res/values/strings.xml","app/src/main/res/values/themes.xml","app/src/main/res/xml/backup_rules.xml","app/src/main/res/xml/data_extraction_rules.xml","app/src/main/res/xml/file_paths.xml","app/src/main/res/xml/method.xml","app/src/main/res/xml/network_security_config.xml","app/src/test/java/com/haizhan/ime/ExampleUnitTest.kt","app/src/test/java/com/haizhan/ime/app/service/NotificationServiceTest.kt","app/src/test/java/com/haizhan/ime/app/service/SearchServiceTest.kt","app/src/test/java/com/haizhan/ime/app/service/SessionServiceTest.kt","app/src/test/java/com/haizhan/ime/app/service/SyncServiceTest.kt","app/src/test/java/com/haizhan/ime/app/service/WebSocketServiceTest.kt","app/src/test/java/com/haizhan/ime/benchmark/PerformanceBenchmarkTest.kt","app/src/test/java/com/haizhan/ime/security/EncryptionManagerTest.kt","app/src/test/java/com/haizhan/ime/security/PrivacyComplianceManagerTest.kt","app/src/test/java/com/haizhan/ime/security/SecurityAuditorTest.kt","app/src/test/java/com/haizhan/ime/service/HaizhanInputMethodServiceTest.kt","app/src/test/java/com/haizhan/ime/services/AiProcessingServiceTest.kt","app/src/test/java/com/haizhan/ime/services/NoteServiceTest.kt","app/src/test/java/com/haizhan/ime/services/OcrCaptureServiceTest.kt","app/src/test/java/com/haizhan/ime/services/SubscriptionServiceTest.kt","app/src/test/java/com/haizhan/ime/services/TeamServiceTest.kt","app/src/test/java/com/haizhan/ime/services/TemplateServiceTest.kt","app/src/test/java/com/haizhan/ime/services/VoiceServiceTest.kt","app/src/test/java/com/haizhan/ime/ui/management/ManagementViewModelTest.kt","app/src/test/java/com/haizhan/ime/ui/settings/SettingsViewModelTest.kt","app/src/test/java/com/haizhan/ime/ux/ErrorHandlerTest.kt","app/src/test/java/com/haizhan/ime/ux/StartupOptimizerTest.kt","app/src/test/java/com/haizhan/ime/viewmodel/DictionaryImportViewModelTest.kt","app/src/test/java/com/haizhan/ime/viewmodel/TemplateViewModelTest.kt","build.gradle.kts","common/build.gradle.kts","common/consumer-rules.pro","common/proguard-rules.pro","common/src/main/AndroidManifest.xml","common/src/main/java/com/haizhan/ime/common/ext/ContextExt.kt","common/src/main/java/com/haizhan/ime/common/ext/FlowExt.kt","common/src/main/java/com/haizhan/ime/common/ext/StringExt.kt","common/src/main/java/com/haizhan/ime/common/performance/ImePerformanceTracker.kt","common/src/main/java/com/haizhan/ime/common/theme/DesignTokens.kt","common/src/main/java/com/haizhan/ime/common/theme/KeyboardTheme.kt","common/src/main/java/com/haizhan/ime/common/util/DeviceUtils.kt","common/src/main/java/com/haizhan/ime/common/util/Logger.kt","common/src/main/java/com/haizhan/ime/common/util/LruCache.kt","common/src/main/java/com/haizhan/ime/common/util/MemoryMonitor.kt","common/src/test/java/com/haizhan/ime/common/StringExtTest.kt","common/src/test/java/com/haizhan/ime/common/ext/ResultTest.kt","common/src/test/java/com/haizhan/ime/common/util/DateUtilsTest.kt","common/src/test/java/com/haizhan/ime/common/util/LoggerTest.kt","common/src/test/java/com/haizhan/ime/common/util/MemoryStatsTest.kt","common/src/test/java/com/haizhan/ime/common/util/PinyinUtilsTest.kt","common/src/test/java/com/haizhan/ime/common/util/TextUtilsTest.kt","config/detekt/detekt.yml","data/build.gradle.kts","data/consumer-rules.pro","data/dictionaries/dictionary.config.json","data/dictionaries/fallback-words.txt","data/dictionaries/sensitive-words.txt","data/dictionaries/system/char-single.txt","data/dictionaries/system/core-char.txt","data/dictionaries/system/core-phrase.txt","data/dictionaries/system/core-word2.txt","data/dictionaries/system/core-word3.txt","data/dictionaries/system/core-word4.txt","data/dictionaries/system/idiom.txt","data/dictionaries/system/name-place.txt","data/dictionaries/system/word-common.txt","data/proguard-rules.pro","data/schemas/com.haizhan.ime.data.local.database.HaizhanDatabase/1.json","data/schemas/com.haizhan.ime.data.local.database.HaizhanDatabase/2.json","data/schemas/com.haizhan.ime.data.local.database.HaizhanDatabase/3.json","data/schemas/com.haizhan.ime.data.local.database.HaizhanDatabase/4.json","data/src/main/AndroidManifest.xml","data/src/main/java/com/haizhan/ime/data/auth/AuthInterceptor.kt","data/src/main/java/com/haizhan/ime/data/auth/AuthManager.kt","data/src/main/java/com/haizhan/ime/data/di/DataModule.kt","data/src/main/java/com/haizhan/ime/data/di/DatabaseModule.kt","data/src/main/java/com/haizhan/ime/data/di/NetworkModule.kt","data/src/main/java/com/haizhan/ime/data/di/RepositoryModule.kt","data/src/main/java/com/haizhan/ime/data/local/dao/ContactDao.kt","data/src/main/java/com/haizhan/ime/data/local/dao/KnowledgeDao.kt","data/src/main/java/com/haizhan/ime/data/local/dao/MessageDao.kt","data/src/main/java/com/haizhan/ime/data/local/dao/NoteDao.kt","data/src/main/java/com/haizhan/ime/data/local/dao/SearchDao.kt","data/src/main/java/com/haizhan/ime/data/local/dao/UserDictDao.kt","data/src/main/java/com/haizhan/ime/data/local/database/Converters.kt","data/src/main/java/com/haizhan/ime/data/local/database/HaizhanDatabase.kt","data/src/main/java/com/haizhan/ime/data/local/database/SecureDatabaseFactory.kt","data/src/main/java/com/haizhan/ime/data/local/entity/ContactEntity.kt","data/src/main/java/com/haizhan/ime/data/local/entity/KnowledgeEntity.kt","data/src/main/java/com/haizhan/ime/data/local/entity/MessageEntity.kt","data/src/main/java/com/haizhan/ime/data/local/entity/NoteEntity.kt","data/src/main/java/com/haizhan/ime/data/local/entity/SearchEntity.kt","data/src/main/java/com/haizhan/ime/data/local/entity/UserDictEntity.kt","data/src/main/java/com/haizhan/ime/data/remote/adapter/FlexibleTimestampAdapter.kt","data/src/main/java/com/haizhan/ime/data/remote/aliyun/AliyunSearchClient.kt","data/src/main/java/com/haizhan/ime/data/remote/aliyun/AliyunSearchConfig.kt","data/src/main/java/com/haizhan/ime/data/remote/aliyun/AliyunSearchConfigProvider.kt","data/src/main/java/com/haizhan/ime/data/remote/api/AuthApi.kt","data/src/main/java/com/haizhan/ime/data/remote/api/ContactApi.kt","data/src/main/java/com/haizhan/ime/data/remote/api/HaizhanApi.kt","data/src/main/java/com/haizhan/ime/data/remote/api/PinyinApi.kt","data/src/main/java/com/haizhan/ime/data/remote/api/RagSearchApi.kt","data/src/main/java/com/haizhan/ime/data/remote/api/ReplyApi.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/AiDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/AuthDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/CommonDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/ContactDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/KnowledgeDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/MemoryDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/MessageDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/NoteDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/ProfileDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/RagSearchDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/SearchDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/TeamDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/WeatherDto.kt","data/src/main/java/com/haizhan/ime/data/repository/ContactRepository.kt","data/src/main/java/com/haizhan/ime/data/repository/KnowledgeRepository.kt","data/src/main/java/com/haizhan/ime/data/repository/MessageRepository.kt","data/src/main/java/com/haizhan/ime/data/repository/RagSearchRepository.kt","data/src/main/java/com/haizhan/ime/data/repository/SettingsRepository.kt","data/src/main/java/com/haizhan/ime/data/repository/mapper/ContactMapper.kt","data/src/main/java/com/haizhan/ime/data/repository/mapper/KnowledgeMapper.kt","data/src/main/java/com/haizhan/ime/data/repository/mapper/MessageMapper.kt","data/src/main/java/com/haizhan/ime/data/repository/model/Contact.kt","data/src/main/java/com/haizhan/ime/data/repository/model/Knowledge.kt","data/src/main/java/com/haizhan/ime/data/repository/model/Message.kt","data/src/test/java/com/haizhan/ime/data/auth/AuthInterceptorTest.kt","data/src/test/java/com/haizhan/ime/data/auth/AuthManagerTest.kt","data/src/test/java/com/haizhan/ime/data/auth/AuthTypesTest.kt","data/src/test/java/com/haizhan/ime/data/local/dao/ContactDaoTest.kt","data/src/test/java/com/haizhan/ime/data/local/dao/KnowledgeDaoTest.kt","data/src/test/java/com/haizhan/ime/data/local/dao/MessageDaoTest.kt","data/src/test/java/com/haizhan/ime/data/local/dao/NoteDaoTest.kt","data/src/test/java/com/haizhan/ime/data/local/dao/SearchDaoTest.kt","data/src/test/java/com/haizhan/ime/data/local/dao/UserDictDaoTest.kt","data/src/test/java/com/haizhan/ime/data/local/dao/UserPreferencesDaoTest.kt","data/src/test/java/com/haizhan/ime/data/remote/api/HaizhanApiTest.kt","data/src/test/java/com/haizhan/ime/data/remote/dto/ContactDtoTest.kt","data/src/test/java/com/haizhan/ime/data/repository/ContactRepositoryTest.kt","data/src/test/java/com/haizhan/ime/data/repository/KnowledgeRepositoryTest.kt","data/src/test/java/com/haizhan/ime/data/repository/MessageRepositoryTest.kt","data/src/test/java/com/haizhan/ime/data/repository/SettingsRepositoryTest.kt","data/src/test/java/com/haizhan/ime/data/repository/mapper/ContactMapperTest.kt","data/src/test/java/com/haizhan/ime/data/repository/mapper/KnowledgeMapperTest.kt","data/src/test/java/com/haizhan/ime/data/repository/mapper/MessageMapperTest.kt","designs/exports/CLAUDE_CODE_DESIGN_GUIDE.md","designs/exports/DESIGN_MANIFEST.md","designs/exports/svg/Frame.svg","designs/exports/svg/P2-关于.svg","designs/exports/svg/P2-协议条款.svg","designs/exports/svg/P2-帮助中心.svg","designs/exports/svg/P2-意见反馈.svg","designs/exports/svg/P2-版本更新.svg","designs/exports/svg/__设计系统_-_组件库.svg","designs/exports/svg/功能面板_-_OCR识别.svg","designs/exports/svg/功能面板_-_历史.svg","designs/exports/svg/功能面板_-_团队.svg","designs/exports/svg/功能面板_-_知识库.svg","designs/exports/svg/功能面板_-_笔记.svg","designs/exports/svg/功能面板_-_联系人.svg","designs/exports/svg/嗨赞AI助手_-_AI回复选择.svg","designs/exports/svg/嗨赞AI助手_-_OCR结果确认.svg","designs/exports/svg/嗨赞AI助手_-_个人中心.svg","designs/exports/svg/嗨赞AI助手_-_主应用首页.svg","designs/exports/svg/嗨赞AI助手_-_主键盘界面.svg","designs/exports/svg/嗨赞AI助手_-_主键盘界面__深色_.svg","designs/exports/svg/嗨赞AI助手_-_交互式笔记.svg","designs/exports/svg/嗨赞AI助手_-_会员订阅.svg","designs/exports/svg/嗨赞AI助手_-_会话列表.svg","designs/exports/svg/嗨赞AI助手_-_单聊IM.svg","designs/exports/svg/嗨赞AI助手_-_历史记录页面.svg","designs/exports/svg/嗨赞AI助手_-_引导页1.svg","designs/exports/svg/嗨赞AI助手_-_引导页2.svg","designs/exports/svg/嗨赞AI助手_-_引导页3.svg","designs/exports/svg/嗨赞AI助手_-_忘记密码.svg","designs/exports/svg/嗨赞AI助手_-_我的页面.svg","designs/exports/svg/嗨赞AI助手_-_搜索.svg","designs/exports/svg/嗨赞AI助手_-_数据统计.svg","designs/exports/svg/嗨赞AI助手_-_新建联系人.svg","designs/exports/svg/嗨赞AI助手_-_注册页面.svg","designs/exports/svg/嗨赞AI助手_-_消息中心.svg","designs/exports/svg/嗨赞AI助手_-_登录页面.svg","designs/exports/svg/嗨赞AI助手_-_知识库列表.svg","designs/exports/svg/嗨赞AI助手_-_知识库详情.svg","designs/exports/svg/嗨赞AI助手_-_编辑个人信息.svg","designs/exports/svg/嗨赞AI助手_-_群聊IM.svg","designs/exports/svg/嗨赞AI助手_-_联系人列表.svg","designs/exports/svg/嗨赞AI助手_-_联系人详情.svg","designs/exports/svg/嗨赞AI助手_-_设置.svg","designs/exports/svg/嗨赞AI助手_-_设置页面.svg","designs/exports/svg/嗨赞AI助手_-_话术模板.svg","designs/exports/svg/嗨赞AI助手_-_话术模板详情.svg","designs/exports/svg/微交互规范文档.svg","designs/exports/svg/组件_-_悬浮球状态.svg","designs/exports/svg/组件_-_拼音候选词展开.svg","designs/exports/svg/组件_-_空状态.svg","designs/exports/svg/组件_-_语音输入状态.svg","designs/exports/svg/组件_-_错误状态.svg","designs/mobile-keyboard-design.md","designs/specs/COMPONENT_SPEC.md","designs/specs/KEYBOARD_DESIGN_SPEC.md","designs/specs/README.md","designs/specs/design-tokens.json","designs/templates/android/DesignTokens.kt","designs/templates/android/KeyboardTheme.kt","designs/templates/ios/DesignTokens.swift","designs/templates/ios/KeyboardTheme.swift","designs/嗨赞输入法.pen","docs/ANDROID_DEVELOPMENT.md","docs/API.md","docs/ARCHITECTURE.md","docs/BACKEND_API_REQUIREMENTS.md","docs/BACKEND_DESIGN.md","docs/CI_CD_PIPELINE.md","docs/CODING_STANDARDS.md","docs/COMPLETE_FEATURE_SPEC.md","docs/DATABASE.md","docs/DEPLOYMENT.md","docs/DESIGN_TO_DEV_SPEC.md","docs/DEVELOPMENT_GUIDE.md","docs/DEVELOPMENT_PLAN.md","docs/DOCS_SYNC.md","docs/ERROR_HANDLING.md","docs/FEATURE_ANALYSIS.md","docs/FLUTTER_DEVELOPMENT.md","docs/FRONTEND_DEV_REQUIREMENTS.md","docs/HANDWRITING_MODEL_UPGRADE.md","docs/IOS_DEVELOPMENT.md","docs/KMP_DEVELOPMENT.md","docs/LOGGING_STANDARDS.md","docs/MILESTONES.md","docs/MODULE_ANALYSIS.md","docs/MODULE_LIST.md","docs/PERFORMANCE_OPTIMIZATION.md","docs/PNPM_MIGRATION_NOTICE.md","docs/PRD.md","docs/PRIVACY_POLICY.md","docs/PRODUCT_ARCHITECTURE.md","docs/Phase_11_12_Final_Report.md","docs/RELEASE_CHECKLIST.md","docs/SECURITY_AUDIT.md","docs/SECURITY_GUIDELINES.md","docs/STORE_LISTING.md","docs/SYSTEM_ARCHITECTURE.md","docs/TASKS.md","docs/TECH_STACK.md","docs/TESTING_STRATEGY.md","docs/USER_MANUAL.md","docs/VOICE_API_DOCUMENTATION.md","docs/VOICE_MODULE_MIGRATION.md","docs/openapi.json","docs/skills/anthropic-official/.claude-plugin/marketplace.json","docs/skills/anthropic-official/.gitignore","docs/skills/anthropic-official/README.md","docs/skills/anthropic-official/THIRD_PARTY_NOTICES.md","docs/skills/anthropic-official/skills/algorithmic-art/LICENSE.txt","docs/skills/anthropic-official/skills/algorithmic-art/SKILL.md","docs/skills/anthropic-official/skills/algorithmic-art/templates/generator_template.js","docs/skills/anthropic-official/skills/algorithmic-art/templates/viewer.html","docs/skills/anthropic-official/skills/brand-guidelines/LICENSE.txt","docs/skills/anthropic-official/skills/brand-guidelines/SKILL.md","docs/skills/anthropic-official/skills/canvas-design/LICENSE.txt","docs/skills/anthropic-official/skills/canvas-design/SKILL.md","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/BigShoulders-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/BigShoulders-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Boldonse-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Boldonse-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/DMMono-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/DMMono-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/EricaOne-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/EricaOne-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/GeistMono-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/GeistMono-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/GeistMono-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Gloock-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Gloock-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Italiana-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Italiana-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Jura-Light.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Jura-Medium.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Jura-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Lora-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Lora-Italic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Lora-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Lora-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/NationalPark-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/NationalPark-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/NationalPark-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Outfit-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Outfit-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Outfit-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/PixelifySans-Medium.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/PoiretOne-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/PoiretOne-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/RedHatMono-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/RedHatMono-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Silkscreen-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/SmoochSans-Medium.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Tektur-Medium.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Tektur-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Tektur-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/WorkSans-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/WorkSans-Italic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/WorkSans-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/WorkSans-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf","docs/skills/anthropic-official/skills/doc-coauthoring/SKILL.md","docs/skills/anthropic-official/skills/docx/LICENSE.txt","docs/skills/anthropic-official/skills/docx/SKILL.md","docs/skills/anthropic-official/skills/docx/docx-js.md","docs/skills/anthropic-official/skills/docx/ooxml.md","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/mce/mc.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/microsoft/wml-2010.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/microsoft/wml-2012.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/microsoft/wml-2018.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd","docs/skills/anthropic-official/skills/docx/ooxml/scripts/pack.py","docs/skills/anthropic-official/skills/docx/ooxml/scripts/unpack.py","docs/skills/anthropic-official/skills/docx/ooxml/scripts/validate.py","docs/skills/anthropic-official/skills/docx/ooxml/scripts/validation/__init__.py","docs/skills/anthropic-official/skills/docx/ooxml/scripts/validation/base.py","docs/skills/anthropic-official/skills/docx/ooxml/scripts/validation/docx.py","docs/skills/anthropic-official/skills/docx/ooxml/scripts/validation/pptx.py","docs/skills/anthropic-official/skills/docx/ooxml/scripts/validation/redlining.py","docs/skills/anthropic-official/skills/docx/scripts/__init__.py","docs/skills/anthropic-official/skills/docx/scripts/document.py","docs/skills/anthropic-official/skills/docx/scripts/templates/comments.xml","docs/skills/anthropic-official/skills/docx/scripts/templates/commentsExtended.xml","docs/skills/anthropic-official/skills/docx/scripts/templates/commentsExtensible.xml","docs/skills/anthropic-official/skills/docx/scripts/templates/commentsIds.xml","docs/skills/anthropic-official/skills/docx/scripts/templates/people.xml","docs/skills/anthropic-official/skills/docx/scripts/utilities.py","docs/skills/anthropic-official/skills/frontend-design/LICENSE.txt","docs/skills/anthropic-official/skills/frontend-design/SKILL.md","docs/skills/anthropic-official/skills/internal-comms/LICENSE.txt","docs/skills/anthropic-official/skills/internal-comms/SKILL.md","docs/skills/anthropic-official/skills/internal-comms/examples/3p-updates.md","docs/skills/anthropic-official/skills/internal-comms/examples/company-newsletter.md","docs/skills/anthropic-official/skills/internal-comms/examples/faq-answers.md","docs/skills/anthropic-official/skills/internal-comms/examples/general-comms.md","docs/skills/anthropic-official/skills/mcp-builder/LICENSE.txt","docs/skills/anthropic-official/skills/mcp-builder/SKILL.md","docs/skills/anthropic-official/skills/mcp-builder/reference/evaluation.md","docs/skills/anthropic-official/skills/mcp-builder/reference/mcp_best_practices.md","docs/skills/anthropic-official/skills/mcp-builder/reference/node_mcp_server.md","docs/skills/anthropic-official/skills/mcp-builder/reference/python_mcp_server.md","docs/skills/anthropic-official/skills/mcp-builder/scripts/connections.py","docs/skills/anthropic-official/skills/mcp-builder/scripts/evaluation.py","docs/skills/anthropic-official/skills/mcp-builder/scripts/example_evaluation.xml","docs/skills/anthropic-official/skills/mcp-builder/scripts/requirements.txt","docs/skills/anthropic-official/skills/pdf/LICENSE.txt","docs/skills/anthropic-official/skills/pdf/SKILL.md","docs/skills/anthropic-official/skills/pdf/forms.md","docs/skills/anthropic-official/skills/pdf/reference.md","docs/skills/anthropic-official/skills/pdf/scripts/check_bounding_boxes.py","docs/skills/anthropic-official/skills/pdf/scripts/check_bounding_boxes_test.py","docs/skills/anthropic-official/skills/pdf/scripts/check_fillable_fields.py","docs/skills/anthropic-official/skills/pdf/scripts/convert_pdf_to_images.py","docs/skills/anthropic-official/skills/pdf/scripts/create_validation_image.py","docs/skills/anthropic-official/skills/pdf/scripts/extract_form_field_info.py","docs/skills/anthropic-official/skills/pdf/scripts/fill_fillable_fields.py","docs/skills/anthropic-official/skills/pdf/scripts/fill_pdf_form_with_annotations.py","docs/skills/anthropic-official/skills/pptx/LICENSE.txt","docs/skills/anthropic-official/skills/pptx/SKILL.md","docs/skills/anthropic-official/skills/pptx/html2pptx.md","docs/skills/anthropic-official/skills/pptx/ooxml.md","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/mce/mc.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/scripts/pack.py","docs/skills/anthropic-official/skills/pptx/ooxml/scripts/unpack.py","docs/skills/anthropic-official/skills/pptx/ooxml/scripts/validate.py","docs/skills/anthropic-official/skills/pptx/ooxml/scripts/validation/__init__.py","docs/skills/anthropic-official/skills/pptx/ooxml/scripts/validation/base.py","docs/skills/anthropic-official/skills/pptx/ooxml/scripts/validation/docx.py","docs/skills/anthropic-official/skills/pptx/ooxml/scripts/validation/pptx.py","docs/skills/anthropic-official/skills/pptx/ooxml/scripts/validation/redlining.py","docs/skills/anthropic-official/skills/pptx/scripts/html2pptx.js","docs/skills/anthropic-official/skills/pptx/scripts/inventory.py","docs/skills/anthropic-official/skills/pptx/scripts/rearrange.py","docs/skills/anthropic-official/skills/pptx/scripts/replace.py","docs/skills/anthropic-official/skills/pptx/scripts/thumbnail.py","docs/skills/anthropic-official/skills/skill-creator/LICENSE.txt","docs/skills/anthropic-official/skills/skill-creator/SKILL.md","docs/skills/anthropic-official/skills/skill-creator/references/output-patterns.md","docs/skills/anthropic-official/skills/skill-creator/references/workflows.md","docs/skills/anthropic-official/skills/skill-creator/scripts/init_skill.py","docs/skills/anthropic-official/skills/skill-creator/scripts/package_skill.py","docs/skills/anthropic-official/skills/skill-creator/scripts/quick_validate.py","docs/skills/anthropic-official/skills/slack-gif-creator/LICENSE.txt","docs/skills/anthropic-official/skills/slack-gif-creator/SKILL.md","docs/skills/anthropic-official/skills/slack-gif-creator/core/easing.py","docs/skills/anthropic-official/skills/slack-gif-creator/core/frame_composer.py","docs/skills/anthropic-official/skills/slack-gif-creator/core/gif_builder.py","docs/skills/anthropic-official/skills/slack-gif-creator/core/validators.py","docs/skills/anthropic-official/skills/slack-gif-creator/requirements.txt","docs/skills/anthropic-official/skills/theme-factory/LICENSE.txt","docs/skills/anthropic-official/skills/theme-factory/SKILL.md","docs/skills/anthropic-official/skills/theme-factory/theme-showcase.pdf","docs/skills/anthropic-official/skills/theme-factory/themes/arctic-frost.md","docs/skills/anthropic-official/skills/theme-factory/themes/botanical-garden.md","docs/skills/anthropic-official/skills/theme-factory/themes/desert-rose.md","docs/skills/anthropic-official/skills/theme-factory/themes/forest-canopy.md","docs/skills/anthropic-official/skills/theme-factory/themes/golden-hour.md","docs/skills/anthropic-official/skills/theme-factory/themes/midnight-galaxy.md","docs/skills/anthropic-official/skills/theme-factory/themes/modern-minimalist.md","docs/skills/anthropic-official/skills/theme-factory/themes/ocean-depths.md","docs/skills/anthropic-official/skills/theme-factory/themes/sunset-boulevard.md","docs/skills/anthropic-official/skills/theme-factory/themes/tech-innovation.md","docs/skills/anthropic-official/skills/web-artifacts-builder/LICENSE.txt","docs/skills/anthropic-official/skills/web-artifacts-builder/SKILL.md","docs/skills/anthropic-official/skills/web-artifacts-builder/scripts/bundle-artifact.sh","docs/skills/anthropic-official/skills/web-artifacts-builder/scripts/init-artifact.sh","docs/skills/anthropic-official/skills/web-artifacts-builder/scripts/shadcn-components.tar.gz","docs/skills/anthropic-official/skills/webapp-testing/LICENSE.txt","docs/skills/anthropic-official/skills/webapp-testing/SKILL.md","docs/skills/anthropic-official/skills/webapp-testing/examples/console_logging.py","docs/skills/anthropic-official/skills/webapp-testing/examples/element_discovery.py","docs/skills/anthropic-official/skills/webapp-testing/examples/static_html_automation.py","docs/skills/anthropic-official/skills/webapp-testing/scripts/with_server.py","docs/skills/anthropic-official/skills/xlsx/LICENSE.txt","docs/skills/anthropic-official/skills/xlsx/SKILL.md","docs/skills/anthropic-official/skills/xlsx/recalc.py","docs/skills/anthropic-official/spec/agent-skills-spec.md","docs/skills/anthropic-official/template/SKILL.md","docs/skills/awesome-skills/.gitignore","docs/skills/awesome-skills/CONTRIBUTING.md","docs/skills/awesome-skills/README.md","docs/skills/backend-patterns/SKILL.md","docs/skills/clickhouse-io/SKILL.md","docs/skills/coding-standards/SKILL.md","docs/skills/continuous-learning/SKILL.md","docs/skills/continuous-learning/config.json","docs/skills/continuous-learning/evaluate-session.sh","docs/skills/daymade-skills/.claude-plugin/marketplace.json","docs/skills/daymade-skills/.github/ISSUE_TEMPLATE/bug_report.md","docs/skills/daymade-skills/.github/ISSUE_TEMPLATE/feature_request.md","docs/skills/daymade-skills/.github/PULL_REQUEST_TEMPLATE.md","docs/skills/daymade-skills/.gitignore","docs/skills/daymade-skills/AGENTS.md","docs/skills/daymade-skills/CHANGELOG.md","docs/skills/daymade-skills/CLAUDE.md","docs/skills/daymade-skills/CONTRIBUTING.md","docs/skills/daymade-skills/LICENSE","docs/skills/daymade-skills/QUICKSTART.md","docs/skills/daymade-skills/QUICKSTART.zh-CN.md","docs/skills/daymade-skills/README.md","docs/skills/daymade-skills/README.zh-CN.md","docs/skills/daymade-skills/claude-code-history-files-finder/.INTEGRATION_SUMMARY.md","docs/skills/daymade-skills/claude-code-history-files-finder/.security-scan-passed","docs/skills/daymade-skills/claude-code-history-files-finder/SKILL.md","docs/skills/daymade-skills/claude-code-history-files-finder/references/session_file_format.md","docs/skills/daymade-skills/claude-code-history-files-finder/references/workflow_examples.md","docs/skills/daymade-skills/claude-code-history-files-finder/scripts/analyze_sessions.py","docs/skills/daymade-skills/claude-code-history-files-finder/scripts/recover_content.py","docs/skills/daymade-skills/claude-md-progressive-disclosurer/.security-scan-passed","docs/skills/daymade-skills/claude-md-progressive-disclosurer/SKILL.md","docs/skills/daymade-skills/claude-md-progressive-disclosurer/references/progressive_disclosure_principles.md","docs/skills/daymade-skills/cli-demo-generator/SKILL.md","docs/skills/daymade-skills/cli-demo-generator/assets/examples/batch-config.yaml","docs/skills/daymade-skills/cli-demo-generator/assets/templates/basic.tape","docs/skills/daymade-skills/cli-demo-generator/assets/templates/interactive.tape","docs/skills/daymade-skills/cli-demo-generator/references/best_practices.md","docs/skills/daymade-skills/cli-demo-generator/references/vhs_syntax.md","docs/skills/daymade-skills/cli-demo-generator/scripts/auto_generate_demo.py","docs/skills/daymade-skills/cli-demo-generator/scripts/batch_generate.py","docs/skills/daymade-skills/cli-demo-generator/scripts/record_interactive.sh","docs/skills/daymade-skills/cloudflare-troubleshooting/SKILL.md","docs/skills/daymade-skills/cloudflare-troubleshooting/references/api_overview.md","docs/skills/daymade-skills/cloudflare-troubleshooting/references/common_issues.md","docs/skills/daymade-skills/cloudflare-troubleshooting/references/ssl_modes.md","docs/skills/daymade-skills/cloudflare-troubleshooting/scripts/check_cloudflare_config.py","docs/skills/daymade-skills/cloudflare-troubleshooting/scripts/fix_ssl_mode.py","docs/skills/daymade-skills/demos/README.md","docs/skills/daymade-skills/demos/cli-demo-generator/generate-demo.gif","docs/skills/daymade-skills/demos/cli-demo-generator/generate-demo.tape","docs/skills/daymade-skills/demos/generate_all_demos.sh","docs/skills/daymade-skills/demos/github-ops/create-pr.gif","docs/skills/daymade-skills/demos/github-ops/create-pr.tape","docs/skills/daymade-skills/demos/index.html","docs/skills/daymade-skills/demos/llm-icon-finder/find-icons.gif","docs/skills/daymade-skills/demos/llm-icon-finder/find-icons.tape","docs/skills/daymade-skills/demos/markdown-tools/convert-docs.gif","docs/skills/daymade-skills/demos/markdown-tools/convert-docs.tape","docs/skills/daymade-skills/demos/mermaid-tools/extract-diagrams.gif","docs/skills/daymade-skills/demos/mermaid-tools/extract-diagrams.tape","docs/skills/daymade-skills/demos/ppt-creator/create-presentation.gif","docs/skills/daymade-skills/demos/ppt-creator/create-presentation.tape","docs/skills/daymade-skills/demos/repomix-unmixer/extract-repo.gif","docs/skills/daymade-skills/demos/repomix-unmixer/extract-repo.tape","docs/skills/daymade-skills/demos/skill-creator/init-skill.gif","docs/skills/daymade-skills/demos/skill-creator/init-skill.tape","docs/skills/daymade-skills/demos/skill-creator/package-skill.gif","docs/skills/daymade-skills/demos/skill-creator/package-skill.tape","docs/skills/daymade-skills/demos/skill-creator/validate-skill.gif","docs/skills/daymade-skills/demos/skill-creator/validate-skill.tape","docs/skills/daymade-skills/demos/statusline-generator/customize-statusline.gif","docs/skills/daymade-skills/demos/statusline-generator/customize-statusline.tape","docs/skills/daymade-skills/demos/teams-channel-post-writer/write-post.gif","docs/skills/daymade-skills/demos/teams-channel-post-writer/write-post.tape","docs/skills/daymade-skills/demos/ui-designer/extract-design-system.gif","docs/skills/daymade-skills/demos/ui-designer/extract-design-system.tape","docs/skills/daymade-skills/demos/youtube-downloader/download-video.gif","docs/skills/daymade-skills/demos/youtube-downloader/download-video.tape","docs/skills/daymade-skills/docs-cleaner/.security-scan-passed","docs/skills/daymade-skills/docs-cleaner/SKILL.md","docs/skills/daymade-skills/docs-cleaner/references/value_analysis_template.md","docs/skills/daymade-skills/fact-checker/.security-scan-passed","docs/skills/daymade-skills/fact-checker/README.md","docs/skills/daymade-skills/fact-checker/SKILL.md","docs/skills/daymade-skills/github-contributor/.security-scan-passed","docs/skills/daymade-skills/github-contributor/SKILL.md","docs/skills/daymade-skills/github-contributor/references/communication_templates.md","docs/skills/daymade-skills/github-contributor/references/pr_checklist.md","docs/skills/daymade-skills/github-contributor/references/project_evaluation.md","docs/skills/daymade-skills/github-ops/SKILL.md","docs/skills/daymade-skills/github-ops/references/api_reference.md","docs/skills/daymade-skills/github-ops/references/best_practices.md","docs/skills/daymade-skills/github-ops/references/issue_operations.md","docs/skills/daymade-skills/github-ops/references/pr_operations.md","docs/skills/daymade-skills/github-ops/references/workflow_operations.md","docs/skills/daymade-skills/iOS-APP-developer/.security-scan-passed","docs/skills/daymade-skills/iOS-APP-developer/SKILL.md","docs/skills/daymade-skills/iOS-APP-developer/references/camera-avfoundation.md","docs/skills/daymade-skills/iOS-APP-developer/references/swiftui-compatibility.md","docs/skills/daymade-skills/iOS-APP-developer/references/testing-mainactor.md","docs/skills/daymade-skills/iOS-APP-developer/references/xcodegen-full.md","docs/skills/daymade-skills/llm-icon-finder/SKILL.md","docs/skills/daymade-skills/llm-icon-finder/references/developer-info.md","docs/skills/daymade-skills/llm-icon-finder/references/icons-list.md","docs/skills/daymade-skills/macos-cleaner/.security-scan-passed","docs/skills/daymade-skills/macos-cleaner/SKILL.md","docs/skills/daymade-skills/macos-cleaner/references/cleanup_targets.md","docs/skills/daymade-skills/macos-cleaner/references/mole_integration.md","docs/skills/daymade-skills/macos-cleaner/references/safety_rules.md","docs/skills/daymade-skills/macos-cleaner/scripts/analyze_caches.py","docs/skills/daymade-skills/macos-cleaner/scripts/analyze_dev_env.py","docs/skills/daymade-skills/macos-cleaner/scripts/analyze_large_files.py","docs/skills/daymade-skills/macos-cleaner/scripts/cleanup_report.py","docs/skills/daymade-skills/macos-cleaner/scripts/find_app_remnants.py","docs/skills/daymade-skills/macos-cleaner/scripts/safe_delete.py","docs/skills/daymade-skills/markdown-tools/SKILL.md","docs/skills/daymade-skills/markdown-tools/references/conversion-examples.md","docs/skills/daymade-skills/markdown-tools/scripts/convert_path.py","docs/skills/daymade-skills/markdown-tools/scripts/extract_pdf_images.py","docs/skills/daymade-skills/mermaid-tools/SKILL.md","docs/skills/daymade-skills/mermaid-tools/references/setup_and_troubleshooting.md","docs/skills/daymade-skills/mermaid-tools/scripts/extract-and-generate.sh","docs/skills/daymade-skills/mermaid-tools/scripts/extract_diagrams.py","docs/skills/daymade-skills/mermaid-tools/scripts/puppeteer-config.json","docs/skills/daymade-skills/pdf-creator/.security-scan-passed","docs/skills/daymade-skills/pdf-creator/SKILL.md","docs/skills/daymade-skills/pdf-creator/scripts/batch_convert.py","docs/skills/daymade-skills/pdf-creator/scripts/md_to_pdf.py","docs/skills/daymade-skills/ppt-creator/SKILL.md","docs/skills/daymade-skills/ppt-creator/references/CHECKLIST.md","docs/skills/daymade-skills/ppt-creator/references/EXAMPLES.md","docs/skills/daymade-skills/ppt-creator/references/INTAKE.md","docs/skills/daymade-skills/ppt-creator/references/ORCHESTRATION_DATA_CHARTS.md","docs/skills/daymade-skills/ppt-creator/references/ORCHESTRATION_OVERVIEW.md","docs/skills/daymade-skills/ppt-creator/references/ORCHESTRATION_PPTX.md","docs/skills/daymade-skills/ppt-creator/references/RUBRIC.md","docs/skills/daymade-skills/ppt-creator/references/STYLE-GUIDE.md","docs/skills/daymade-skills/ppt-creator/references/TEMPLATES.md","docs/skills/daymade-skills/ppt-creator/references/VIS-GUIDE.md","docs/skills/daymade-skills/ppt-creator/references/WORKFLOW.md","docs/skills/daymade-skills/ppt-creator/scripts/chartkit.py","docs/skills/daymade-skills/prompt-optimizer/.security-scan-passed","docs/skills/daymade-skills/prompt-optimizer/SKILL.md","docs/skills/daymade-skills/prompt-optimizer/references/advanced_techniques.md","docs/skills/daymade-skills/prompt-optimizer/references/domain_theories.md","docs/skills/daymade-skills/prompt-optimizer/references/ears_syntax.md","docs/skills/daymade-skills/prompt-optimizer/references/examples.md","docs/skills/daymade-skills/promptfoo-evaluation/.security-scan-passed","docs/skills/daymade-skills/promptfoo-evaluation/SKILL.md","docs/skills/daymade-skills/promptfoo-evaluation/references/promptfoo_api.md","docs/skills/daymade-skills/qa-expert/.security-scan-passed","docs/skills/daymade-skills/qa-expert/SKILL.md","docs/skills/daymade-skills/qa-expert/assets/templates/TEST-CASE-TEMPLATE.md","docs/skills/daymade-skills/qa-expert/references/day1_onboarding.md","docs/skills/daymade-skills/qa-expert/references/google_testing_standards.md","docs/skills/daymade-skills/qa-expert/references/ground_truth_principle.md","docs/skills/daymade-skills/qa-expert/references/llm_prompts_library.md","docs/skills/daymade-skills/qa-expert/references/master_qa_prompt.md","docs/skills/daymade-skills/qa-expert/scripts/calculate_metrics.py","docs/skills/daymade-skills/qa-expert/scripts/init_qa_project.py","docs/skills/daymade-skills/repomix-safe-mixer/SKILL.md","docs/skills/daymade-skills/repomix-safe-mixer/references/common_secrets.md","docs/skills/daymade-skills/repomix-safe-mixer/scripts/safe_pack.py","docs/skills/daymade-skills/repomix-safe-mixer/scripts/scan_secrets.py","docs/skills/daymade-skills/repomix-unmixer/README.md","docs/skills/daymade-skills/repomix-unmixer/SKILL.md","docs/skills/daymade-skills/repomix-unmixer/references/repomix-format.md","docs/skills/daymade-skills/repomix-unmixer/references/validation-workflow.md","docs/skills/daymade-skills/repomix-unmixer/scripts/unmix_repomix.py","docs/skills/daymade-skills/scripts/install.ps1","docs/skills/daymade-skills/scripts/install.sh","docs/skills/daymade-skills/skill-creator/.gitignore","docs/skills/daymade-skills/skill-creator/LICENSE.txt","docs/skills/daymade-skills/skill-creator/SKILL.md","docs/skills/daymade-skills/skill-creator/scripts/init_skill.py","docs/skills/daymade-skills/skill-creator/scripts/package_skill.py","docs/skills/daymade-skills/skill-creator/scripts/quick_validate.py","docs/skills/daymade-skills/skill-creator/scripts/security_scan.py","docs/skills/daymade-skills/skill-reviewer/.security-scan-passed","docs/skills/daymade-skills/skill-reviewer/SKILL.md","docs/skills/daymade-skills/skill-reviewer/references/evaluation_checklist.md","docs/skills/daymade-skills/skill-reviewer/references/marketplace_template.json","docs/skills/daymade-skills/skill-reviewer/references/pr_template.md","docs/skills/daymade-skills/skills-search/.security-scan-passed","docs/skills/daymade-skills/skills-search/SKILL.md","docs/skills/daymade-skills/statusline-generator/SKILL.md","docs/skills/daymade-skills/statusline-generator/references/ccusage_integration.md","docs/skills/daymade-skills/statusline-generator/references/color_codes.md","docs/skills/daymade-skills/statusline-generator/scripts/generate_statusline.sh","docs/skills/daymade-skills/statusline-generator/scripts/install_statusline.sh","docs/skills/daymade-skills/teams-channel-post-writer/SKILL.md","docs/skills/daymade-skills/teams-channel-post-writer/assets/post-template.md","docs/skills/daymade-skills/teams-channel-post-writer/references/writing-guidelines.md","docs/skills/daymade-skills/transcript-fixer/.gitignore","docs/skills/daymade-skills/transcript-fixer/SKILL.md","docs/skills/daymade-skills/transcript-fixer/references/architecture.md","docs/skills/daymade-skills/transcript-fixer/references/best_practices.md","docs/skills/daymade-skills/transcript-fixer/references/database_schema.md","docs/skills/daymade-skills/transcript-fixer/references/dictionary_guide.md","docs/skills/daymade-skills/transcript-fixer/references/file_formats.md","docs/skills/daymade-skills/transcript-fixer/references/glm_api_setup.md","docs/skills/daymade-skills/transcript-fixer/references/installation_setup.md","docs/skills/daymade-skills/transcript-fixer/references/iteration_workflow.md","docs/skills/daymade-skills/transcript-fixer/references/quick_reference.md","docs/skills/daymade-skills/transcript-fixer/references/script_parameters.md","docs/skills/daymade-skills/transcript-fixer/references/sql_queries.md","docs/skills/daymade-skills/transcript-fixer/references/team_collaboration.md","docs/skills/daymade-skills/transcript-fixer/references/troubleshooting.md","docs/skills/daymade-skills/transcript-fixer/references/workflow_guide.md","docs/skills/daymade-skills/transcript-fixer/requirements.txt","docs/skills/daymade-skills/transcript-fixer/scripts/__init__.py","docs/skills/daymade-skills/transcript-fixer/scripts/check_type_hints.py","docs/skills/daymade-skills/transcript-fixer/scripts/cli/__init__.py","docs/skills/daymade-skills/transcript-fixer/scripts/cli/argument_parser.py","docs/skills/daymade-skills/transcript-fixer/scripts/cli/commands.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/__init__.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/ai_processor.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/ai_processor_async.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/change_extractor.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/connection_pool.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/correction_repository.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/correction_service.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/dictionary_processor.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/learning_engine.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/schema.sql","docs/skills/daymade-skills/transcript-fixer/scripts/ensure_deps.py","docs/skills/daymade-skills/transcript-fixer/scripts/examples/bulk_import.py","docs/skills/daymade-skills/transcript-fixer/scripts/fix_transcript_enhanced.py","docs/skills/daymade-skills/transcript-fixer/scripts/fix_transcription.py","docs/skills/daymade-skills/transcript-fixer/scripts/generate_word_diff.py","docs/skills/daymade-skills/transcript-fixer/scripts/tests/__init__.py","docs/skills/daymade-skills/transcript-fixer/scripts/tests/test_audit_log_retention.py","docs/skills/daymade-skills/transcript-fixer/scripts/tests/test_connection_pool.py","docs/skills/daymade-skills/transcript-fixer/scripts/tests/test_correction_service.py","docs/skills/daymade-skills/transcript-fixer/scripts/tests/test_domain_validator.py","docs/skills/daymade-skills/transcript-fixer/scripts/tests/test_error_recovery.py","docs/skills/daymade-skills/transcript-fixer/scripts/tests/test_learning_engine.py","docs/skills/daymade-skills/transcript-fixer/scripts/tests/test_path_validator.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/__init__.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/audit_log_retention.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/concurrency_manager.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/config.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/database_migration.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/db_migrations_cli.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/diff_formats/__init__.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/diff_formats/change_extractor.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/diff_formats/html_format.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/diff_formats/inline_format.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/diff_formats/markdown_format.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/diff_formats/text_splitter.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/diff_formats/unified_format.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/diff_generator.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/domain_validator.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/health_check.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/logging_config.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/metrics.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/migrations.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/path_validator.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/rate_limiter.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/retry_logic.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/security.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/validation.py","docs/skills/daymade-skills/twitter-reader/.security-scan-passed","docs/skills/daymade-skills/twitter-reader/SKILL.md","docs/skills/daymade-skills/twitter-reader/scripts/fetch_tweet.py","docs/skills/daymade-skills/twitter-reader/scripts/fetch_tweets.sh","docs/skills/daymade-skills/ui-designer/SKILL.md","docs/skills/daymade-skills/ui-designer/assets/app-overview-generator.md","docs/skills/daymade-skills/ui-designer/assets/design-system.md","docs/skills/daymade-skills/ui-designer/assets/vibe-design-template.md","docs/skills/daymade-skills/video-comparer/.security-scan-passed","docs/skills/daymade-skills/video-comparer/README.md","docs/skills/daymade-skills/video-comparer/SKILL.md","docs/skills/daymade-skills/video-comparer/assets/template.html","docs/skills/daymade-skills/video-comparer/references/configuration.md","docs/skills/daymade-skills/video-comparer/references/ffmpeg_commands.md","docs/skills/daymade-skills/video-comparer/references/video_metrics.md","docs/skills/daymade-skills/video-comparer/scripts/compare.py","docs/skills/daymade-skills/youtube-downloader/.security-scan-passed","docs/skills/daymade-skills/youtube-downloader/SKILL.md","docs/skills/daymade-skills/youtube-downloader/references/po-token-setup.md","docs/skills/daymade-skills/youtube-downloader/scripts/download_video.py","docs/skills/eval-harness/SKILL.md","docs/skills/frontend-patterns/SKILL.md","docs/skills/haizhan-ime-development.md","docs/skills/hizan-official/.claude-plugin/marketplace.json","docs/skills/hizan-official/skills/arch/SKILL.md","docs/skills/hizan-official/skills/game/SKILL.md","docs/skills/hizan-official/skills/quality/SKILL.md","docs/skills/hizan-official/skills/work/SKILL.md","docs/skills/juhi/tool-usage.md","docs/skills/mhattingpete-skills/.claude-plugin/marketplace.json","docs/skills/mhattingpete-skills/.claude/install-gh.sh","docs/skills/mhattingpete-skills/.claude/settings.json","docs/skills/mhattingpete-skills/.gitignore","docs/skills/mhattingpete-skills/CHANGELOG.md","docs/skills/mhattingpete-skills/CLAUDE.md","docs/skills/mhattingpete-skills/CONTRIBUTING.md","docs/skills/mhattingpete-skills/LICENSE","docs/skills/mhattingpete-skills/README.md","docs/skills/mhattingpete-skills/assets/skill-loading.gif","docs/skills/mhattingpete-skills/code-operations-plugin/.claude-plugin/plugin.json","docs/skills/mhattingpete-skills/code-operations-plugin/README.md","docs/skills/mhattingpete-skills/code-operations-plugin/skills/code-execution/SKILL.md","docs/skills/mhattingpete-skills/code-operations-plugin/skills/code-execution/examples/bulk_refactor.py","docs/skills/mhattingpete-skills/code-operations-plugin/skills/code-execution/examples/codebase_audit.py","docs/skills/mhattingpete-skills/code-operations-plugin/skills/code-execution/examples/extract_functions.py","docs/skills/mhattingpete-skills/code-operations-plugin/skills/code-refactor/SKILL.md","docs/skills/mhattingpete-skills/code-operations-plugin/skills/code-transfer/SKILL.md","docs/skills/mhattingpete-skills/code-operations-plugin/skills/code-transfer/scripts/line_insert.py","docs/skills/mhattingpete-skills/code-operations-plugin/skills/file-operations/SKILL.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/.claude-plugin/plugin.json","docs/skills/mhattingpete-skills/engineering-workflow-plugin/README.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/agents/ensemble-orchestrator/AGENT.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/agents/plan-implementer.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/commands/pr.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/skills/ensemble-solving/SKILL.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/skills/ensemble-solving/references/diversification-strategies.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/skills/ensemble-solving/references/evaluation-rubrics.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/skills/feature-planning/SKILL.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/skills/feature-planning/references/planning-best-practices.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/skills/git-pushing/SKILL.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/skills/git-pushing/scripts/smart_commit.sh","docs/skills/mhattingpete-skills/engineering-workflow-plugin/skills/review-implementing/SKILL.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/skills/test-fixing/SKILL.md","docs/skills/mhattingpete-skills/execution-runtime/.env.example","docs/skills/mhattingpete-skills/execution-runtime/README.md","docs/skills/mhattingpete-skills/execution-runtime/api/__init__.py","docs/skills/mhattingpete-skills/execution-runtime/api/code_analysis.py","docs/skills/mhattingpete-skills/execution-runtime/api/code_transform.py","docs/skills/mhattingpete-skills/execution-runtime/api/filesystem.py","docs/skills/mhattingpete-skills/execution-runtime/api/git_operations.py","docs/skills/mhattingpete-skills/execution-runtime/execution_runtime/__init__.py","docs/skills/mhattingpete-skills/execution-runtime/execution_runtime/security/__init__.py","docs/skills/mhattingpete-skills/execution-runtime/execution_runtime/security/import_guard.py","docs/skills/mhattingpete-skills/execution-runtime/execution_runtime/security/pii_detector.py","docs/skills/mhattingpete-skills/execution-runtime/execution_runtime/sessions.py","docs/skills/mhattingpete-skills/execution-runtime/execution_runtime/skills.py","docs/skills/mhattingpete-skills/execution-runtime/mcp-server/mcp_server.py","docs/skills/mhattingpete-skills/execution-runtime/mcp-server/security/pii_detector.py","docs/skills/mhattingpete-skills/execution-runtime/mcp-server/security/sandbox.py","docs/skills/mhattingpete-skills/execution-runtime/pyproject.toml","docs/skills/mhattingpete-skills/execution-runtime/setup.sh","docs/skills/mhattingpete-skills/productivity-skills-plugin/.claude-plugin/plugin.json","docs/skills/mhattingpete-skills/productivity-skills-plugin/README.md","docs/skills/mhattingpete-skills/productivity-skills-plugin/skills/code-auditor/SKILL.md","docs/skills/mhattingpete-skills/productivity-skills-plugin/skills/codebase-documenter/SKILL.md","docs/skills/mhattingpete-skills/productivity-skills-plugin/skills/conversation-analyzer/SKILL.md","docs/skills/mhattingpete-skills/productivity-skills-plugin/skills/conversation-analyzer/scripts/analyze_history.py","docs/skills/mhattingpete-skills/productivity-skills-plugin/skills/project-bootstrapper/SKILL.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/.claude-plugin/plugin.json","docs/skills/mhattingpete-skills/visual-documentation-plugin/EXAMPLES.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/README.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/architecture-diagram-creator/SKILL.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/architecture-diagram-creator/assets/templates/architecture_components.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/architecture-diagram-creator/assets/templates/base_template.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/architecture-diagram-creator/references/example_architecture.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/dashboard-creator/SKILL.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/dashboard-creator/assets/templates/base_template.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/dashboard-creator/assets/templates/dashboard_components.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/dashboard-creator/references/design_patterns.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/dashboard-creator/references/svg_library.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/flowchart-creator/SKILL.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/flowchart-creator/assets/templates/base_template.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/flowchart-creator/assets/templates/flowchart_components.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/flowchart-creator/references/design_patterns.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/flowchart-creator/references/svg_library.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/technical-doc-creator/SKILL.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/technical-doc-creator/assets/templates/base_template.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/technical-doc-creator/references/design_patterns.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/technical-doc-creator/references/svg_library.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/timeline-creator/SKILL.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/timeline-creator/assets/templates/base_template.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/timeline-creator/assets/templates/timeline_components.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/timeline-creator/references/design_patterns.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/timeline-creator/references/svg_library.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/test-outputs/dashboard-test-monitoring.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/test-outputs/flowchart-test-authentication.html","docs/skills/netresearch-marketplace/.claude-plugin/marketplace.json","docs/skills/netresearch-marketplace/.github/workflows/sync-skills.yml","docs/skills/netresearch-marketplace/.gitignore","docs/skills/netresearch-marketplace/.sync-config.json","docs/skills/netresearch-marketplace/README.md","docs/skills/netresearch-marketplace/SYNC-SETUP.md","docs/skills/netresearch-marketplace/VERSIONING.md","docs/skills/netresearch-marketplace/notify-marketplace.yml","docs/skills/netresearch-marketplace/plugins/coach/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/plugins/coach/LICENSE","docs/skills/netresearch-marketplace/plugins/coach/README.md","docs/skills/netresearch-marketplace/plugins/coach/assets/templates/antipattern.md","docs/skills/netresearch-marketplace/plugins/coach/assets/templates/checklist.md","docs/skills/netresearch-marketplace/plugins/coach/assets/templates/rule.md","docs/skills/netresearch-marketplace/plugins/coach/assets/templates/snippet.md","docs/skills/netresearch-marketplace/plugins/coach/commands/approve.md","docs/skills/netresearch-marketplace/plugins/coach/commands/edit.md","docs/skills/netresearch-marketplace/plugins/coach/commands/init.md","docs/skills/netresearch-marketplace/plugins/coach/commands/promote.md","docs/skills/netresearch-marketplace/plugins/coach/commands/reject.md","docs/skills/netresearch-marketplace/plugins/coach/commands/review.md","docs/skills/netresearch-marketplace/plugins/coach/commands/scan.md","docs/skills/netresearch-marketplace/plugins/coach/commands/status.md","docs/skills/netresearch-marketplace/plugins/coach/hooks/hooks.json","docs/skills/netresearch-marketplace/plugins/coach/references/architecture.md","docs/skills/netresearch-marketplace/plugins/coach/references/schema.md","docs/skills/netresearch-marketplace/plugins/coach/references/scope_heuristics.md","docs/skills/netresearch-marketplace/plugins/coach/references/signal_patterns.md","docs/skills/netresearch-marketplace/plugins/coach/scripts/aggregate.py","docs/skills/netresearch-marketplace/plugins/coach/scripts/apply.py","docs/skills/netresearch-marketplace/plugins/coach/scripts/detect_signals.py","docs/skills/netresearch-marketplace/plugins/coach/scripts/fingerprint.py","docs/skills/netresearch-marketplace/plugins/coach/scripts/init_coach.py","docs/skills/netresearch-marketplace/plugins/coach/scripts/ledger.py","docs/skills/netresearch-marketplace/plugins/coach/scripts/propose.py","docs/skills/netresearch-marketplace/plugins/coach/scripts/root_cause_analyzer.py","docs/skills/netresearch-marketplace/plugins/coach/scripts/scope_analyzer.py","docs/skills/netresearch-marketplace/plugins/coach/scripts/skill_analyzer.py","docs/skills/netresearch-marketplace/plugins/coach/skills/coach/SKILL.md","docs/skills/netresearch-marketplace/renovate.json","docs/skills/netresearch-marketplace/skills/agents/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/agents/LICENSE","docs/skills/netresearch-marketplace/skills/agents/README.md","docs/skills/netresearch-marketplace/skills/agents/STATUS.md","docs/skills/netresearch-marketplace/skills/agents/claudedocs/refactoring-summary.md","docs/skills/netresearch-marketplace/skills/agents/composer.json","docs/skills/netresearch-marketplace/skills/agents/docs/ROADMAP.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/SKILL.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/root-thin.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/root-verbose.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/scoped/backend-go.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/scoped/backend-php.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/scoped/cli.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/scoped/documentation.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/scoped/examples.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/scoped/frontend-typescript.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/scoped/resources.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/scoped/testing.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/analysis.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/directory-coverage.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/examples/coding-agent-cli/AGENTS.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/examples/coding-agent-cli/scripts-AGENTS.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/examples/ldap-selfservice/AGENTS.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/examples/ldap-selfservice/internal-AGENTS.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/examples/ldap-selfservice/internal-web-AGENTS.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/examples/simple-ldap-go/AGENTS.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/examples/simple-ldap-go/examples-AGENTS.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/examples/t3x-rte-ckeditor-image/AGENTS.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/examples/t3x-rte-ckeditor-image/Classes-AGENTS.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/analyze-git-history.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/check-freshness.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/detect-project.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/detect-scopes.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/extract-agent-configs.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/extract-ci-commands.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/extract-commands.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/extract-documentation.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/extract-ide-settings.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/extract-platform-files.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/extract-quality-configs.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/generate-agents.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/lib/summary.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/lib/template.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/validate-structure.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/verify-content.sh","docs/skills/netresearch-marketplace/skills/cli-tools/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/cli-tools/LICENSE","docs/skills/netresearch-marketplace/skills/cli-tools/README.md","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/ansible-core.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/ast-grep.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/aws.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/bandit.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/bat.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/black.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/claude.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/codex.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/compose.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/composer.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/ctags.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/curlie.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/dasel.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/delta.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/direnv.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/dive.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/docker.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/entr.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/eslint.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/fd.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/flake8.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/fx.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/fzf.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/gam.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/gem.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/gh.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/git-absorb.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/git-branchless.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/git-filter-repo.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/git-lfs.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/git.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/gitleaks.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/glab.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/go.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/golangci-lint.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/gosec.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/httpie.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/isort.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/jq.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/just.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/kubectl.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/ninja.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/node.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/npm.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/parallel.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/php.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/pip.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/pipx.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/pnpm.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/poetry.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/pre-commit.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/prename.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/prettier.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/python.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/rbenv.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/rename.ul.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/rga.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/ripgrep.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/ruby-build.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/ruby.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/ruff.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/rust.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/sd.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/semgrep.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/shellcheck.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/shfmt.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/sponge.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/terraform.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/tfsec.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/trivy.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/uv.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/watchexec.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/xsv.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/yarn.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/yq.json","docs/skills/netresearch-marketplace/skills/cli-tools/composer.json","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/SKILL.md","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/references/binary_to_tool_map.md","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/references/project_type_requirements.md","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/auto_update.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/check_environment.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/detect_project_type.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/install_composer.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/install_tool.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/installers/aws_installer.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/installers/dedicated_script.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/installers/github_clone.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/installers/github_release_binary.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/installers/hashicorp_zip.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/installers/npm_global.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/installers/npm_self_update.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/installers/package_manager.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/installers/uv_tool.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/lib/capability.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/lib/catalog.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/lib/common.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/lib/dependency.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/lib/install_strategy.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/lib/path_check.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/lib/policy.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/lib/reconcile.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/lib/scope_detection.sh","docs/skills/netresearch-marketplace/skills/context7/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/context7/LICENSE","docs/skills/netresearch-marketplace/skills/context7/README.md","docs/skills/netresearch-marketplace/skills/context7/skills/context7/SKILL.md","docs/skills/netresearch-marketplace/skills/context7/skills/context7/scripts/context7.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/enterprise-readiness/LICENSE","docs/skills/netresearch-marketplace/skills/enterprise-readiness/README.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/templates/ARCHITECTURE.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/templates/BADGE_EXCEPTIONS.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/templates/CODE_OF_CONDUCT.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/templates/GOVERNANCE.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/templates/ROADMAP.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/templates/SECURITY_AUDIT.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/workflows/codeql.yml","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/workflows/dco-check.yml","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/workflows/dependency-review.yml","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/workflows/scorecard.yml","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/workflows/slsa-provenance.yml","docs/skills/netresearch-marketplace/skills/enterprise-readiness/composer.json","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/SKILL.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/2fa-enforcement.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/badge-display.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/branch-coverage.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/dco-implementation.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/dynamic-analysis.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/general.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/github.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/go.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/openssf-badge-gold.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/openssf-badge-silver.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/quick-start-guide.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/reproducible-builds.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/security-hardening.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/signed-releases.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/solo-maintainer-guide.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/sonarcloud.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/test-invocation.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/add-spdx-headers.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/analyze-bus-factor.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/check-branch-coverage.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/check-coverage-threshold.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/check-tls-minimum.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/verify-badge-criteria.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/verify-reproducible-build.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/verify-review-requirements.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/verify-signed-tags.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/verify-spdx-headers.sh","docs/skills/netresearch-marketplace/skills/git-workflow/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/git-workflow/LICENSE","docs/skills/netresearch-marketplace/skills/git-workflow/README.md","docs/skills/netresearch-marketplace/skills/git-workflow/composer.json","docs/skills/netresearch-marketplace/skills/git-workflow/skills/git-workflow/SKILL.md","docs/skills/netresearch-marketplace/skills/git-workflow/skills/git-workflow/references/advanced-git.md","docs/skills/netresearch-marketplace/skills/git-workflow/skills/git-workflow/references/branching-strategies.md","docs/skills/netresearch-marketplace/skills/git-workflow/skills/git-workflow/references/ci-cd-integration.md","docs/skills/netresearch-marketplace/skills/git-workflow/skills/git-workflow/references/commit-conventions.md","docs/skills/netresearch-marketplace/skills/git-workflow/skills/git-workflow/references/github-releases.md","docs/skills/netresearch-marketplace/skills/git-workflow/skills/git-workflow/references/pull-request-workflow.md","docs/skills/netresearch-marketplace/skills/git-workflow/skills/git-workflow/scripts/verify-git-workflow.sh","docs/skills/netresearch-marketplace/skills/github-project/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/github-project/LICENSE","docs/skills/netresearch-marketplace/skills/github-project/README.md","docs/skills/netresearch-marketplace/skills/github-project/composer.json","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/SKILL.md","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/CODEOWNERS.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/CONTRIBUTING.md.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/PULL_REQUEST_TEMPLATE.md.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/SECURITY.md.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/auto-merge-direct.yml.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/auto-merge-queue.yml.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/auto-merge.yml.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/bug_report.md.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/dependabot.yml.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/feature_request.md.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/release-labeler.yml.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/renovate.json.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/references/branch-migration.md","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/references/dependency-management.md","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/references/release-labeling.md","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/references/repository-structure.md","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/references/sub-issues.md","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/scripts/verify-github-project.sh","docs/skills/netresearch-marketplace/skills/go-development/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/go-development/LICENSE","docs/skills/netresearch-marketplace/skills/go-development/README.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/SKILL.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/api-design.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/architecture.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/docker.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/fuzz-testing.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/ldap.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/linting.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/makefile.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/mutation-testing.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/resilience.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/testing.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/scripts/verify-go-project.sh","docs/skills/netresearch-marketplace/skills/jira-integration/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/jira-integration/AGENTS.md","docs/skills/netresearch-marketplace/skills/jira-integration/CHANGELOG.md","docs/skills/netresearch-marketplace/skills/jira-integration/CLAUDE.md","docs/skills/netresearch-marketplace/skills/jira-integration/LICENSE","docs/skills/netresearch-marketplace/skills/jira-integration/MIGRATION.md","docs/skills/netresearch-marketplace/skills/jira-integration/PRD.md","docs/skills/netresearch-marketplace/skills/jira-integration/README.md","docs/skills/netresearch-marketplace/skills/jira-integration/SKILL.md","docs/skills/netresearch-marketplace/skills/jira-integration/composer.json","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/AGENTS.md","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/SKILL.md","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/references/jql-quick-reference.md","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/references/troubleshooting.md","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/core/jira-attachment.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/core/jira-issue.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/core/jira-search.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/core/jira-setup.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/core/jira-validate.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/core/jira-worklog.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/lib/__init__.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/lib/client.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/lib/config.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/lib/output.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/utility/jira-fields.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/utility/jira-link.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/utility/jira-user.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/workflow/jira-board.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/workflow/jira-comment.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/workflow/jira-create.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/workflow/jira-sprint.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/workflow/jira-transition.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-syntax/AGENTS.md","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-syntax/SKILL.md","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-syntax/references/jira-syntax-quick-reference.md","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-syntax/scripts/validate-jira-syntax.sh","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-syntax/templates/bug-report-template.md","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-syntax/templates/feature-request-template.md","docs/skills/netresearch-marketplace/skills/netresearch-branding/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/netresearch-branding/LICENSE","docs/skills/netresearch-marketplace/skills/netresearch-branding/README.md","docs/skills/netresearch-marketplace/skills/netresearch-branding/assets/logos/netresearch-symbol-only.svg","docs/skills/netresearch-marketplace/skills/netresearch-branding/composer.json","docs/skills/netresearch-marketplace/skills/netresearch-branding/examples/components.html","docs/skills/netresearch-marketplace/skills/netresearch-branding/skills/netresearch-branding/SKILL.md","docs/skills/netresearch-marketplace/skills/netresearch-branding/skills/netresearch-branding/references/colors.md","docs/skills/netresearch-marketplace/skills/netresearch-branding/skills/netresearch-branding/references/typo3-extension-branding.md","docs/skills/netresearch-marketplace/skills/netresearch-branding/skills/netresearch-branding/references/typography.md","docs/skills/netresearch-marketplace/skills/netresearch-branding/skills/netresearch-branding/references/web-design.md","docs/skills/netresearch-marketplace/skills/netresearch-branding/skills/netresearch-branding/templates/landing-page.html","docs/skills/netresearch-marketplace/skills/netresearch-branding/skills/netresearch-branding/templates/styles.css","docs/skills/netresearch-marketplace/skills/php-modernization/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/php-modernization/LICENSE","docs/skills/netresearch-marketplace/skills/php-modernization/README.md","docs/skills/netresearch-marketplace/skills/php-modernization/composer.json","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/SKILL.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/references/adapter-registry-pattern.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/references/migration-strategies.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/references/php8-features.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/references/phpstan-compliance.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/references/psr-per-compliance.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/references/request-dtos.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/references/static-analysis-tools.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/references/symfony-patterns.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/references/type-safety.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/scripts/verify-php-project.sh","docs/skills/netresearch-marketplace/skills/security-audit/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/security-audit/LICENSE","docs/skills/netresearch-marketplace/skills/security-audit/README.md","docs/skills/netresearch-marketplace/skills/security-audit/composer.json","docs/skills/netresearch-marketplace/skills/security-audit/skills/security-audit/SKILL.md","docs/skills/netresearch-marketplace/skills/security-audit/skills/security-audit/references/api-key-encryption.md","docs/skills/netresearch-marketplace/skills/security-audit/skills/security-audit/references/cvss-scoring.md","docs/skills/netresearch-marketplace/skills/security-audit/skills/security-audit/references/owasp-top10.md","docs/skills/netresearch-marketplace/skills/security-audit/skills/security-audit/references/xxe-prevention.md","docs/skills/netresearch-marketplace/skills/security-audit/skills/security-audit/scripts/security-audit.sh","docs/skills/netresearch-marketplace/skills/skill-repo/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/skill-repo/LICENSE","docs/skills/netresearch-marketplace/skills/skill-repo/README.md","docs/skills/netresearch-marketplace/skills/skill-repo/composer.json","docs/skills/netresearch-marketplace/skills/skill-repo/renovate.json","docs/skills/netresearch-marketplace/skills/skill-repo/skills/skill-repo/SKILL.md","docs/skills/netresearch-marketplace/skills/skill-repo/skills/skill-repo/references/composer-setup.md","docs/skills/netresearch-marketplace/skills/skill-repo/skills/skill-repo/references/installation-methods.md","docs/skills/netresearch-marketplace/skills/skill-repo/skills/skill-repo/references/marketplace-integration.md","docs/skills/netresearch-marketplace/skills/skill-repo/skills/skill-repo/scripts/validate-skill.sh","docs/skills/netresearch-marketplace/skills/skill-repo/skills/skill-repo/templates/README.md.template","docs/skills/netresearch-marketplace/skills/skill-repo/skills/skill-repo/templates/composer.json.template","docs/skills/netresearch-marketplace/skills/skill-repo/skills/skill-repo/templates/release.yml.template","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/LICENSE","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/README.md","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/composer.json","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/skills/typo3-ckeditor5/SKILL.md","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/skills/typo3-ckeditor5/references/ckeditor5-architecture.md","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/skills/typo3-ckeditor5/references/migration-guide.md","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/skills/typo3-ckeditor5/references/plugin-development.md","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/skills/typo3-ckeditor5/references/typo3-integration.md","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/skills/typo3-ckeditor5/scripts/verify-ckeditor5.sh","docs/skills/netresearch-marketplace/skills/typo3-conformance/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/typo3-conformance/LICENSE","docs/skills/netresearch-marketplace/skills/typo3-conformance/README.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/composer.json","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/SKILL.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/assets/.github/workflows/publish-to-ter.yml","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/backend-module-v13.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/backend-wizard-patterns.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/best-practices.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/coding-guidelines.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/composer-validation.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/crowdin-integration.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/development-environment.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/directory-structure.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/dual-version-compatibility.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/excellence-indicators.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/ext-emconf-validation.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/ext-files-validation.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/extension-architecture.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/hooks-and-events.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/multi-tier-configuration.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/php-architecture.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/report-template.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/runtests-validation.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/ter-publishing.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/testing-standards.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/v13-deprecations.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/version-requirements.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/scripts/check-architecture.sh","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/scripts/check-coding-standards.sh","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/scripts/check-conformance.sh","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/scripts/check-documentation.sh","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/scripts/check-file-structure.sh","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/scripts/check-phpstan-baseline.sh","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/scripts/check-testing.sh","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/scripts/generate-report.sh","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/LICENSE","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/README.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/assets/commit-template.txt","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/claudedocs/refactoring-summary.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/composer.json","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/SKILL.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/references/account-setup.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/references/commit-message-format.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/references/commit-msg-hook.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/references/ddev-setup-workflow.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/references/forge-api.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/references/gerrit-review-patterns.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/references/gerrit-workflow.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/references/modern-typo3-patterns.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/references/troubleshooting.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/scripts/create-commit-message.py","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/scripts/create-forge-issue.sh","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/scripts/query-forge-metadata.sh","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/scripts/setup-typo3-coredev.sh","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/scripts/validate-commit-message.py","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/scripts/verify-prerequisites.sh","docs/skills/netresearch-marketplace/skills/typo3-ddev/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/typo3-ddev/LICENSE","docs/skills/netresearch-marketplace/skills/typo3-ddev/README.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/composer.json","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/SKILL.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/.envrc","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/Makefile.template","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/README-SERVICES.md.optional","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/apache/apache-site.conf","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/host/docs","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/host/pre-start-git-info","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/host/setup","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/install-all","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/install-v11","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/install-v12","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/install-v13","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/web/configure-extension.optional","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/web/generate-index","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/web/generate-makefile","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/web/install-introduction.optional","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/config.redis.php.example","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/config.yaml","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/docker-compose.git-info.yaml","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/docker-compose.ofelia.yaml.optional","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/docker-compose.services-redis.yaml.optional","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/docker-compose.services.yaml.optional","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/docker-compose.web.yaml","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/homeadditions/.bashrc_additions.optional","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/index.html.netresearch.template","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/index.html.typo3.template","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/web-build/Dockerfile","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/web-build/install-cron.sh.optional","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/web-entrypoint.d/10-cleanup-index.sh","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/0001-valkey-default-with-redis-alternative.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/0002-mariadb-default-with-database-alternatives.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/0003-php-version-management.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/advanced-options.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/documentation-rendering.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/index-page-generation.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/prerequisites-validation.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/quickstart.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/troubleshooting.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/typo3-12-cli-changes.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/windows-fixes.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/windows-optimizations.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/scripts/validate-prerequisites.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/typo3-docs/LICENSE","docs/skills/netresearch-marketplace/skills/typo3-docs/README.md","docs/skills/netresearch-marketplace/skills/typo3-docs/composer.json","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/SKILL.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/assets/AGENTS.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/architecture-decision-records.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/code-structure-elements.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/coding-guidelines.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/content-directives.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/documentation-coverage-analysis.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/extraction-patterns.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/file-structure.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/guides-xml.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/intercept-deployment.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/rendering.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/rst-syntax.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/screenshots.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/text-roles-inline-code.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/typo3-directives.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/typo3-extension-architecture.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/add-agents-md.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/analyze-docs.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/extract-all.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/extract-build-configs.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/extract-composer.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/extract-extension-config.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/extract-php.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/extract-project-files.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/extract-repo-metadata.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/render_docs.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/validate_docs.sh","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/LICENSE","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/README.md","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/composer.json","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/SKILL.md","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/assets/.php-cs-fixer.php","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/assets/fractor.php","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/assets/phpstan.neon","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/assets/phpunit.xml","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/assets/rector.php","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/references/api-changes.md","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/references/dual-compatibility.md","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/references/pre-upgrade.md","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/references/real-world-patterns.md","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/references/upgrade-v11-to-v12.md","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/references/upgrade-v12-to-v13.md","docs/skills/netresearch-marketplace/skills/typo3-testing/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/typo3-testing/LICENSE","docs/skills/netresearch-marketplace/skills/typo3-testing/README.md","docs/skills/netresearch-marketplace/skills/typo3-testing/composer.json","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/SKILL.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/.php-cs-fixer.dist.php","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/AGENTS.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/FunctionalTests.xml","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/FunctionalTestsBootstrap.php","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/Makefile","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/UnitTests.xml","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/UnitTestsBootstrap.php","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/bootstrap.php","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/codecov.yml","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/docker/codeception.yml","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/docker/docker-compose.yml","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/example-tests/ExampleAcceptanceCest.php","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/example-tests/ExampleFunctionalTest.php","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/example-tests/ExampleUnitTest.php","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/fixtures/README.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/fixtures/be_users.csv","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/fixtures/pages.csv","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/fixtures/sys_category.csv","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/fixtures/tt_content.csv","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/github-actions-e2e.yml","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/github-actions-tests.yml","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/infection.json5","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/phpat.neon","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/phpat.php","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/phpstan-baseline.neon","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/phpstan.neon","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/rector.php","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/accessibility-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/architecture-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/ci-cd.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/crypto-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/ddev-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/e2e-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/functional-test-patterns.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/functional-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/fuzz-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/integration-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/javascript-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/mutation-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/performance-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/quality-tools.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/sonarcloud.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/test-runners.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/typo3-v14-final-classes.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/unit-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/scripts/generate-test.sh","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/scripts/setup-testing.sh","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/scripts/validate-setup.sh","docs/skills/netresearch-marketplace/update-source-repos.sh","docs/skills/project-guidelines-example/SKILL.md","docs/skills/security-review/SKILL.md","docs/skills/strategic-compact/SKILL.md","docs/skills/strategic-compact/suggest-compact.sh","docs/skills/tdd-workflow/SKILL.md","docs/skills/verification-loop/SKILL.md","docs/话术库导出_20251231103252.xlsx","docs_archive/AI_INPUT_METHOD_BRAINSTORM.md","docs_archive/ANDROID_100_PERCENT_PLAN.md","docs_archive/ANDROID_NATIVE_REPLACEMENT_DETAILED_PLAN.md","docs_archive/ANDROID_NATIVE_REPLACEMENT_PLAN.md","docs_archive/API.md","docs_archive/APPLE_PLATFORM_DEVELOPMENT_PLAN.md","docs_archive/ARCHITECTURE.md","docs_archive/ARCHITECTURE_COMPACT.md","docs_archive/CLAUDE.md","docs_archive/COMPREHENSIVE_IMPROVEMENT_PLAN.md","docs_archive/DEPLOYMENT.md","docs_archive/DESIGN_BASED_DEVELOPMENT_PLAN.md","docs_archive/DEVELOPMENT_ROADMAP.md","docs_archive/DICTIONARY_IMPROVEMENT_PLAN.md","docs_archive/DOCS_INDEX.md","docs_archive/IMPLEMENTATION_PLAN.md","docs_archive/IMPROVEMENT_RECOMMENDATIONS.md","docs_archive/IOS_DEVELOPMENT_PLAN.md","docs_archive/NEXT_STEPS_PLAN.md","docs_archive/PINYIN_DEVELOPMENT_PLAN.md","docs_archive/PRD.md","docs_archive/PROGRESS_TRACKER.md","docs_archive/README.md","docs_archive/REDLINES.md","docs_archive/SMART_RECOGNITION_COMPACT.md","docs_archive/TECHNICAL_ARCHITECTURE.md","docs_archive/UI_DEVELOPMENT_PLAN.md","docs_archive/smart-recognition-design.md","flutter_app/assets/fonts/PingFang-Medium.ttf","flutter_app/assets/fonts/PingFang-Regular.ttf","flutter_app/assets/fonts/PingFang-Semibold.ttf","flutter_app/assets/icons/.gitkeep","flutter_app/assets/images/.gitkeep","flutter_app/lib/core/bridge/bridge_models.dart","flutter_app/lib/core/bridge/bridge_response_parser.dart","flutter_app/lib/core/bridge/haizhan_bridge.dart","flutter_app/lib/core/di/service_locator.dart","flutter_app/lib/core/router/app_router.dart","flutter_app/lib/core/router/routes.dart","flutter_app/lib/core/theme/app_colors.dart","flutter_app/lib/core/theme/app_theme.dart","flutter_app/lib/core/theme/app_typography.dart","flutter_app/lib/features/auth/data/auth_provider.dart","flutter_app/lib/features/auth/data/auth_repository.dart","flutter_app/lib/features/auth/domain/auth_models.dart","flutter_app/lib/features/auth/presentation/login_screen.dart","flutter_app/lib/features/auth/presentation/register_screen.dart","flutter_app/lib/features/chat/data/ai_provider.dart","flutter_app/lib/features/chat/data/ai_repository.dart","flutter_app/lib/features/chat/domain/ai_reply_models.dart","flutter_app/lib/features/chat/presentation/chat_screen.dart","flutter_app/lib/features/chat/presentation/conversation_screen.dart","flutter_app/lib/features/contacts/data/contact_360_provider.dart","flutter_app/lib/features/contacts/data/contacts_provider.dart","flutter_app/lib/features/contacts/data/contacts_repository.dart","flutter_app/lib/features/contacts/domain/contact_models.dart","flutter_app/lib/features/contacts/presentation/contact_detail_screen.dart","flutter_app/lib/features/contacts/presentation/contacts_screen.dart","flutter_app/lib/features/home/presentation/home_screen.dart","flutter_app/lib/features/home/presentation/main_shell.dart","flutter_app/lib/features/knowledge/data/knowledge_provider.dart","flutter_app/lib/features/knowledge/data/knowledge_repository.dart","flutter_app/lib/features/knowledge/domain/knowledge_models.dart","flutter_app/lib/features/knowledge/presentation/knowledge_screen.dart","flutter_app/lib/features/profile/presentation/profile_screen.dart","flutter_app/lib/features/search/data/models/search_metrics.dart","flutter_app/lib/features/search/presentation/widgets/search_metrics_indicator.dart","flutter_app/lib/features/settings/presentation/settings_screen.dart","flutter_app/lib/features/stats/presentation/stats_screen.dart","flutter_app/lib/features/stats/presentation/widgets/contact_stats_tab.dart","flutter_app/lib/features/stats/presentation/widgets/overview_tab.dart","flutter_app/lib/features/stats/presentation/widgets/reply_stats_tab.dart","flutter_app/lib/features/stats/presentation/widgets/stats_shared_widgets.dart","flutter_app/lib/features/support/presentation/about_screen.dart","flutter_app/lib/features/support/presentation/feedback_screen.dart","flutter_app/lib/features/support/presentation/help_screen.dart","flutter_app/lib/features/support/presentation/privacy_screen.dart","flutter_app/lib/features/support/presentation/terms_screen.dart","flutter_app/lib/main.dart","flutter_app/lib/shared/widgets/stat_card.dart","flutter_app/pigeons/haizhan_api.dart","flutter_app/pubspec.lock","flutter_app/pubspec.yaml","flutter_app/test/core/network/api_client_test.dart","flutter_app/test/core/theme/theme_provider_test.dart","flutter_app/test/features/auth/login_screen_test.dart","flutter_app/test/features/chat/chat_screen_test.dart","flutter_app/test/features/contacts/contacts_screen_test.dart","flutter_app/test/features/home/home_screen_test.dart","flutter_app/test/features/knowledge/knowledge_screen_test.dart","flutter_app/test/features/profile/profile_screen_test.dart","flutter_app/test/features/settings/settings_screen_test.dart","flutter_app/test/features/statistics/statistics_screen_test.dart","flutter_app/test/features/stats/stats_screen_test.dart","flutter_app/test/integration/app_integration_test.dart","flutter_app/test/providers/auth_provider_test.dart","flutter_app/test/services/api_service_test.dart","flutter_app/test/widgets/contact_card_test.dart","gradle.properties","gradle/libs.versions.toml","gradle/wrapper/gradle-wrapper.jar","gradle/wrapper/gradle-wrapper.properties","gradlew","gradlew.bat","ime-core/build.gradle.kts","ime-core/consumer-rules.pro","ime-core/proguard-rules.pro","ime-core/src/androidTest/java/com/haizhan/ime/core/handwriting/HandwritingIntegrationTest.kt","ime-core/src/androidTest/java/com/haizhan/ime/core/handwriting/HandwritingPerformanceTest.kt","ime-core/src/androidTest/java/com/haizhan/ime/core/handwriting/HandwritingViewTest.kt","ime-core/src/main/AndroidManifest.xml","ime-core/src/main/assets/dictionaries/system/core-char.txt","ime-core/src/main/assets/dictionaries/system/core-merged.txt","ime-core/src/main/assets/dictionaries/system/core-phrase.txt","ime-core/src/main/assets/dictionaries/system/core-word2.txt","ime-core/src/main/assets/dictionaries/system/core-word3.txt","ime-core/src/main/assets/dictionaries/system/core-word4.txt","ime-core/src/main/assets/handwriting_labels_casia.txt","ime-core/src/main/assets/paddle_models/ppocr_keys_v1.txt","ime-core/src/main/cpp/CMakeLists.txt","ime-core/src/main/cpp/include/paddle_api.h","ime-core/src/main/cpp/include/paddle_image_preprocess.h","ime-core/src/main/cpp/include/paddle_lite_factory_helper.h","ime-core/src/main/cpp/include/paddle_place.h","ime-core/src/main/cpp/include/paddle_use_kernels.h","ime-core/src/main/cpp/include/paddle_use_ops.h","ime-core/src/main/cpp/include/paddle_use_passes.h","ime-core/src/main/cpp/paddle_lite_jni.cpp","ime-core/src/main/cpp/paddle_ocr_jni.cpp","ime-core/src/main/java/com/haizhan/ime/core/context/ChatContext.kt","ime-core/src/main/java/com/haizhan/ime/core/context/ChatContextProvider.kt","ime-core/src/main/java/com/haizhan/ime/core/context/ContextAnalyzer.kt","ime-core/src/main/java/com/haizhan/ime/core/context/ContextAwareRanker.kt","ime-core/src/main/java/com/haizhan/ime/core/context/WordCategoryClassifier.kt","ime-core/src/main/java/com/haizhan/ime/core/di/ImeCoreModule.kt","ime-core/src/main/java/com/haizhan/ime/core/di/PerformanceModule.kt","ime-core/src/main/java/com/haizhan/ime/core/engine/ImeEngine.kt","ime-core/src/main/java/com/haizhan/ime/core/engine/handler/EnglishKeyHandler.kt","ime-core/src/main/java/com/haizhan/ime/core/engine/handler/HandwritingKeyHandler.kt","ime-core/src/main/java/com/haizhan/ime/core/engine/handler/KeyPressDispatcher.kt","ime-core/src/main/java/com/haizhan/ime/core/engine/handler/KeyPressHandler.kt","ime-core/src/main/java/com/haizhan/ime/core/engine/handler/PinyinKeyHandler.kt","ime-core/src/main/java/com/haizhan/ime/core/engine/handler/SymbolKeyHandler.kt","ime-core/src/main/java/com/haizhan/ime/core/engine/handler/VoiceKeyHandler.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HaizhanHandwritingApiClient.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingKeyboard.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingManager.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingToolbar.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingView.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/IHandwritingRecognizer.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/ModelDownloader.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/PaddleLiteRecognizer.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/RecognitionConfig.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/Stroke.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/StrokeCache.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/StrokePreprocessor.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/StrokeSegmenter.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/TFLiteRecognizer.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/UnifiedRecognitionEngine.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/di/HandwritingModule.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/CandidatesView.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/EnhancedCandidatesView.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/ImeContentLayout.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/ImeLayoutConstants.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/InputModeToolbar.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/KeyboardLayout.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/KeyboardView.kt","ime-core/src/main/java/com/haizhan/ime/core/ocr/IOcrEngine.kt","ime-core/src/main/java/com/haizhan/ime/core/ocr/OcrImageProcessor.kt","ime-core/src/main/java/com/haizhan/ime/core/ocr/OcrModels.kt","ime-core/src/main/java/com/haizhan/ime/core/ocr/PaddleOcrEngine.kt","ime-core/src/main/java/com/haizhan/ime/core/ocr/README.md","ime-core/src/main/java/com/haizhan/ime/core/ocr/di/OcrModule.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/BuiltinDictionary.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/Candidate.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/CloudPinyinService.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/CloudSyncService.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/DictModels.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/DictionaryFileParser.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/DictionaryHotReloader.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/DictionaryImporter.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/DictionaryReloader.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/EnterpriseDictionary.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/FuzzyPinyinConfig.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/HotWordService.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/ImportResult.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/InputPredictor.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/LocalDictionary.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/NgramData.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/NgramModel.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/NineGridMatcher.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/PinyinSegmenterImpl.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/PinyinService.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/PinyinServiceImpl.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/PinyinSplitter.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/SmartErrorCorrector.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/SystemDatDictionary.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/UserPreferenceStore.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/cloud/CloudPinyinApiImpl.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/cloud/CloudPinyinModule.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/cloud/ExponentialBackoff.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/converter/ChineseConverter.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/matcher/FullPinyinMatcher.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/matcher/InputMatcher.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/matcher/InputMatcherManager.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/matcher/NineGridMatcherAdapter.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/matcher/ShortcutMatcher.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/matcher/ShuangpinMatcher.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/matcher/di/MatcherModule.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/shuangpin/MicrosoftScheme.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/shuangpin/NaturalScheme.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/shuangpin/ShuangpinConverter.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/shuangpin/ShuangpinScheme.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/shuangpin/SogouScheme.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/shuangpin/XiaoheScheme.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/stroke/StrokeData.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/stroke/StrokeMatcher.kt","ime-core/src/main/java/com/haizhan/ime/core/theme/DesignTokens.kt","ime-core/src/main/java/com/haizhan/ime/core/theme/KeyboardTheme.kt","ime-core/src/main/java/com/haizhan/ime/core/theme/ThemeManager.kt","ime-core/src/main/java/com/haizhan/ime/core/voice/ui/VoicePanel.kt","ime-core/src/main/jniLibs/arm64-v8a/libpaddle_light_api_shared.so","ime-core/src/main/res/drawable/ic_backspace.xml","ime-core/src/main/res/drawable/ic_clear_all.xml","ime-core/src/main/res/drawable/ic_handwriting.xml","ime-core/src/main/res/drawable/ic_keyboard.xml","ime-core/src/test/java/com/haizhan/ime/core/ImeEngineTest.kt","ime-core/src/test/java/com/haizhan/ime/core/benchmark/ImeCorePerformanceTest.kt","ime-core/src/test/java/com/haizhan/ime/core/benchmark/MemoryBenchmarkTest.kt","ime-core/src/test/java/com/haizhan/ime/core/context/ContextAnalyzerTest.kt","ime-core/src/test/java/com/haizhan/ime/core/context/ContextAwareRankerTest.kt","ime-core/src/test/java/com/haizhan/ime/core/context/WordCategoryClassifierTest.kt","ime-core/src/test/java/com/haizhan/ime/core/decoder/UnifiedRankerTest.kt","ime-core/src/test/java/com/haizhan/ime/core/engine/ImeEngineTest.kt","ime-core/src/test/java/com/haizhan/ime/core/engine/handler/EnglishKeyHandlerExpandedTest.kt","ime-core/src/test/java/com/haizhan/ime/core/engine/handler/KeyPressDispatcherTest.kt","ime-core/src/test/java/com/haizhan/ime/core/engine/handler/KeyPressHandlerTest.kt","ime-core/src/test/java/com/haizhan/ime/core/engine/handler/PinyinKeyHandlerExpandedTest.kt","ime-core/src/test/java/com/haizhan/ime/core/engine/handler/SymbolKeyHandlerExpandedTest.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/HandwritingManagerAdvancedTest.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/HandwritingManagerTest.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/PaddleLiteRecognizerTest.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/StrokeCacheTest.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/StrokePreprocessorTest.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/TFLiteRecognizerTest.kt","ime-core/src/test/java/com/haizhan/ime/core/keyboard/CandidatesViewTest.kt","ime-core/src/test/java/com/haizhan/ime/core/keyboard/KeyboardLayoutTest.kt","ime-core/src/test/java/com/haizhan/ime/core/keyboard/KeyboardViewTest.kt","ime-core/src/test/java/com/haizhan/ime/core/ocr/OcrImageProcessorTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/CloudPinyinServiceTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/CloudSyncServiceTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/DictionaryFileParserTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/DictionaryImporterTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/DictionaryReloaderTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/EnterpriseDictionaryTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/FuzzyPinyinConfigTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/HotWordServiceTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/InputPredictorTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/LocalDictionaryTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/NgramModelTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/NineGridMatcherTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/PinyinSegmenterTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/PinyinServiceImplTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/PinyinServiceTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/PinyinSplitterTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/SmartErrorCorrectorTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/SystemDatDictionaryTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/UserPreferenceStoreTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/cloud/CloudPinyinApiImplTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/cloud/ExponentialBackoffTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/matcher/FullPinyinMatcherTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/matcher/ShuangpinMatcherTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/shuangpin/ShuangpinSchemeTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/shuangpin/SogouSchemeTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/shuangpin/XiaoheSchemeTest.kt","ime-core/src/test/java/com/haizhan/ime/core/theme/ThemeManagerTest.kt","ios_keyboard/APPSTORE_LISTING.md","ios_keyboard/HaizhanKeyboard/Info.plist","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboard.xcodeproj/project.pbxproj","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboard.xcodeproj/project.xcworkspace/contents.xcworkspacedata","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp.entitlements","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/HaizhanKeyboardApp.entitlements","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/HaizhanKeyboardApp.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/Info.plist","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/Models/AppSession.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/Services/KeyboardStatusService.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/Services/ScreenshotResponder.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/Views/AccountView.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/Views/AppSettingsView.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/Views/ContentView.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/Views/LoginView.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/Views/OnboardingView.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardExtension.entitlements","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardExtension/HaizhanKeyboardExtension.entitlements","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardExtension/Info.plist","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardExtension/KeyboardExtensionStub.swift","ios_keyboard/HaizhanKeyboardApp/Info.plist","ios_keyboard/HaizhanKeyboardApp/Models/AppSession.swift","ios_keyboard/HaizhanKeyboardApp/README.md","ios_keyboard/HaizhanKeyboardApp/Services/KeyboardStatusService.swift","ios_keyboard/HaizhanKeyboardApp/Services/ScreenshotResponder.swift","ios_keyboard/HaizhanKeyboardApp/Views/AccountView.swift","ios_keyboard/HaizhanKeyboardApp/Views/AppSettingsView.swift","ios_keyboard/HaizhanKeyboardApp/Views/ContentView.swift","ios_keyboard/HaizhanKeyboardApp/Views/LoginView.swift","ios_keyboard/HaizhanKeyboardApp/Views/OnboardingView.swift","ios_keyboard/HaizhanKeyboardApp/project.yml","ios_keyboard/HaizhanKeyboardExtension/Info.plist","ios_keyboard/HaizhanKeyboardExtension/KeyboardExtensionStub.swift","ios_keyboard/Package.swift","ios_keyboard/README.md","ios_keyboard/Sources/HaizhanKeyboard/AI/ContactMatcher.swift","ios_keyboard/Sources/HaizhanKeyboard/AI/ReplyService.swift","ios_keyboard/Sources/HaizhanKeyboard/AI/ScreenshotManager.swift","ios_keyboard/Sources/HaizhanKeyboard/Bridge/KMPBridge.swift","ios_keyboard/Sources/HaizhanKeyboard/Engine/KeyboardEngine.swift","ios_keyboard/Sources/HaizhanKeyboard/Engine/PinyinSegmenter.swift","ios_keyboard/Sources/HaizhanKeyboard/KeyboardViewController.swift","ios_keyboard/Sources/HaizhanKeyboard/Network/ApiClient.swift","ios_keyboard/Sources/HaizhanKeyboard/Network/AuthService.swift","ios_keyboard/Sources/HaizhanKeyboard/Storage/AppGroupStore.swift","ios_keyboard/Sources/HaizhanKeyboard/Storage/KeychainStore.swift","ios_keyboard/Sources/HaizhanKeyboard/Theme/ThemeManager.swift","ios_keyboard/Sources/HaizhanKeyboard/Utils/HapticManager.swift","ios_keyboard/Sources/HaizhanKeyboard/ViewModel/KeyboardViewModel.swift","ios_keyboard/Sources/HaizhanKeyboard/Views/AIPanelView.swift","ios_keyboard/Sources/HaizhanKeyboard/Views/KeyboardView.swift","ios_keyboard/Sources/HaizhanKeyboard/Views/NineGridKeyboard.swift","ios_keyboard/Sources/HaizhanKeyboard/Views/SettingsView.swift","ios_keyboard/Tests/HaizhanKeyboardTests/ApiClientTests.swift","ios_keyboard/Tests/HaizhanKeyboardTests/AppGroupStoreTests.swift","ios_keyboard/Tests/HaizhanKeyboardTests/ContactMatcherTests.swift","ios_keyboard/Tests/HaizhanKeyboardTests/HapticManagerTests.swift","ios_keyboard/Tests/HaizhanKeyboardTests/KeyboardEngineTests.swift","ios_keyboard/Tests/HaizhanKeyboardTests/KeychainStoreTests.swift","ios_keyboard/Tests/HaizhanKeyboardTests/PinyinSegmenterTests.swift","ios_keyboard/Tests/HaizhanKeyboardTests/ReplyServiceTests.swift","ios_keyboard/Tests/HaizhanKeyboardTests/ThemeManagerTests.swift","ios_keyboard/build_kmp_xcframework.sh","openapitools.json","package.json","pnpm-workspace.yaml","scripts/PACKAGE_MANAGER_SUMMARY.md","scripts/check-docs-sync.sh","scripts/download_paddle_ocr_models.sh","scripts/generate-design-tokens.py","scripts/package-manager-migration.md","scripts/pre-commit","server/.dockerignore","server/.env.example","server/.npmrc","server/Makefile","server/README.md","server/ai-service/.dockerignore","server/ai-service/Dockerfile","server/ai-service/jest.config.js","server/ai-service/nest-cli.json","server/ai-service/package.json","server/ai-service/poc-load-test-1770067946237.json","server/ai-service/poc-report-1770067953461.json","server/ai-service/poc-report-1770067953461.md","server/ai-service/poc-report-1771647201192.json","server/ai-service/poc-report-1771647201192.md","server/ai-service/scripts/poc/README.md","server/ai-service/scripts/poc/deploy-models.sh","server/ai-service/scripts/poc/generate-report.ts","server/ai-service/scripts/poc/load-test.ts","server/ai-service/scripts/poc/v1-int8-quality.ts","server/ai-service/scripts/poc/v2-router-accuracy.ts","server/ai-service/scripts/poc/v3-e2e-latency.ts","server/ai-service/scripts/seed-rag.ts","server/ai-service/src/app.module.ts","server/ai-service/src/common/decorators/current-tenant.decorator.ts","server/ai-service/src/common/decorators/public.decorator.ts","server/ai-service/src/common/guards/auth.guard.spec.ts","server/ai-service/src/common/guards/auth.guard.ts","server/ai-service/src/common/redis/index.ts","server/ai-service/src/common/redis/redis.module.ts","server/ai-service/src/common/redis/redis.service.ts","server/ai-service/src/main.ts","server/ai-service/src/modules/ai/ai.controller.ts","server/ai-service/src/modules/ai/ai.module.ts","server/ai-service/src/modules/ai/ai.service.spec.ts","server/ai-service/src/modules/ai/ai.service.ts","server/ai-service/src/modules/ai/dto/generate-reply.dto.ts","server/ai-service/src/modules/ai/legacy-reply.controller.ts","server/ai-service/src/modules/health/health.controller.ts","server/ai-service/src/modules/health/health.module.ts","server/ai-service/src/modules/memory/dto/memory.dto.ts","server/ai-service/src/modules/memory/event.service.spec.ts","server/ai-service/src/modules/memory/event.service.ts","server/ai-service/src/modules/memory/index.ts","server/ai-service/src/modules/memory/memory.controller.ts","server/ai-service/src/modules/memory/memory.module.ts","server/ai-service/src/modules/memory/memory.service.spec.ts","server/ai-service/src/modules/memory/memory.service.ts","server/ai-service/src/modules/memory/profile.service.spec.ts","server/ai-service/src/modules/memory/profile.service.ts","server/ai-service/src/modules/memory/schemas/contact-event.schema.ts","server/ai-service/src/modules/memory/schemas/contact-profile.schema.ts","server/ai-service/src/modules/memory/schemas/conversation-summary.schema.ts","server/ai-service/src/modules/memory/summary.service.spec.ts","server/ai-service/src/modules/memory/summary.service.ts","server/ai-service/src/modules/memory/vector.service.ts","server/ai-service/src/modules/privacy/index.ts","server/ai-service/src/modules/privacy/pii-scrubber.service.ts","server/ai-service/src/modules/privacy/privacy.module.ts","server/ai-service/src/modules/search/agentic/agentic-loop.controller.ts","server/ai-service/src/modules/search/agentic/answer-synthesizer.service.ts","server/ai-service/src/modules/search/agentic/answer-synthesizer.spec.ts","server/ai-service/src/modules/search/agentic/index.ts","server/ai-service/src/modules/search/agentic/query-decomposer.service.ts","server/ai-service/src/modules/search/agentic/query-decomposer.spec.ts","server/ai-service/src/modules/search/agentic/result-evaluator.service.ts","server/ai-service/src/modules/search/agentic/result-evaluator.spec.ts","server/ai-service/src/modules/search/cache/index.ts","server/ai-service/src/modules/search/cache/multi-level-cache.service.ts","server/ai-service/src/modules/search/cache/multi-level-cache.spec.ts","server/ai-service/src/modules/search/config/search.config.ts","server/ai-service/src/modules/search/dto/index.ts","server/ai-service/src/modules/search/dto/search-request.dto.ts","server/ai-service/src/modules/search/dto/search-response.dto.ts","server/ai-service/src/modules/search/experiment/ab-testing.service.ts","server/ai-service/src/modules/search/experiment/experiment.controller.ts","server/ai-service/src/modules/search/experiment/gradual-release.service.ts","server/ai-service/src/modules/search/experiment/index.ts","server/ai-service/src/modules/search/gateway/unified-search-gateway.service.ts","server/ai-service/src/modules/search/gateway/unified-search-gateway.spec.ts","server/ai-service/src/modules/search/index.ts","server/ai-service/src/modules/search/layers/agentic-layer.service.spec.ts","server/ai-service/src/modules/search/layers/agentic-layer.service.ts","server/ai-service/src/modules/search/layers/cache-layer.service.spec.ts","server/ai-service/src/modules/search/layers/cache-layer.service.ts","server/ai-service/src/modules/search/layers/rag-layer.service.spec.ts","server/ai-service/src/modules/search/layers/rag-layer.service.ts","server/ai-service/src/modules/search/monitoring/alert.service.ts","server/ai-service/src/modules/search/monitoring/grafana-dashboard.json","server/ai-service/src/modules/search/monitoring/index.ts","server/ai-service/src/modules/search/monitoring/metrics.service.ts","server/ai-service/src/modules/search/optimization/index.ts","server/ai-service/src/modules/search/optimization/parallel-retriever.service.ts","server/ai-service/src/modules/search/optimization/parallel-retriever.spec.ts","server/ai-service/src/modules/search/router/pure-rule-router.spec.ts","server/ai-service/src/modules/search/router/pure-rule-router.ts","server/ai-service/src/modules/search/router/router.types.ts","server/ai-service/src/modules/search/search.controller.ts","server/ai-service/src/modules/search/search.integration.spec.ts","server/ai-service/src/modules/search/search.module.ts","server/ai-service/src/modules/search/services/elasticsearch.service.ts","server/ai-service/src/modules/search/services/embedding.service.spec.ts","server/ai-service/src/modules/search/services/embedding.service.ts","server/ai-service/src/modules/search/services/index.ts","server/ai-service/src/modules/search/services/llm.service.spec.ts","server/ai-service/src/modules/search/services/llm.service.ts","server/ai-service/src/modules/search/services/milvus.service.ts","server/ai-service/src/modules/search/services/reranker.service.spec.ts","server/ai-service/src/modules/search/services/reranker.service.ts","server/ai-service/src/modules/search/streaming/index.ts","server/ai-service/src/modules/search/streaming/stream-optimizer.service.ts","server/ai-service/src/modules/search/vip/index.ts","server/ai-service/src/modules/search/vip/vip-tier.service.ts","server/ai-service/tsconfig.json","server/api-gateway/.dockerignore","server/api-gateway/Dockerfile","server/api-gateway/logs/.3fa4d5e91883ce1217f62a49f94203b42caa131d-audit.json","server/api-gateway/logs/.92dabeadf9708ae538f84c8892e853b5a8f57f04-audit.json","server/api-gateway/nest-cli.json","server/api-gateway/package.json","server/api-gateway/prisma/README.md","server/api-gateway/prisma/migrations/20260203065715_init/migration.sql","server/api-gateway/prisma/migrations/20260203160000_add_360_view_models/migration.sql","server/api-gateway/prisma/migrations/20260203170000_add_admin_modules/migration.sql","server/api-gateway/prisma/migrations/20260203180000_add_config_and_usage_stats/migration.sql","server/api-gateway/prisma/migrations/20260213000000_add_contact_geo_fields/migration.sql","server/api-gateway/prisma/migrations/20260213100000_expand_prompt_template/migration.sql","server/api-gateway/prisma/migrations/migration_lock.toml","server/api-gateway/prisma/schema.prisma","server/api-gateway/prisma/seed.ts","server/api-gateway/scripts/generate-openapi.ts","server/api-gateway/src/app.module.ts","server/api-gateway/src/common/logger/global-logger.module.ts","server/api-gateway/src/common/logger/global-logger.service.ts","server/api-gateway/src/main.ts","server/api-gateway/src/modules/ai-config/ai-config.controller.ts","server/api-gateway/src/modules/ai-config/ai-config.module.ts","server/api-gateway/src/modules/ai-config/ai-config.service.ts","server/api-gateway/src/modules/ai-config/dto/ai-config.dto.ts","server/api-gateway/src/modules/ai/ai.controller.ts","server/api-gateway/src/modules/ai/ai.module.ts","server/api-gateway/src/modules/ai/ai.service.ts","server/api-gateway/src/modules/audit-logs/audit-logs.controller.ts","server/api-gateway/src/modules/audit-logs/audit-logs.module.ts","server/api-gateway/src/modules/audit-logs/audit-logs.service.ts","server/api-gateway/src/modules/audit-logs/dto/audit-logs.dto.ts","server/api-gateway/src/modules/auth/auth.controller.spec.ts","server/api-gateway/src/modules/auth/auth.controller.ts","server/api-gateway/src/modules/auth/auth.module.ts","server/api-gateway/src/modules/auth/auth.service.spec.ts","server/api-gateway/src/modules/auth/auth.service.ts","server/api-gateway/src/modules/auth/decorators/roles.decorator.ts","server/api-gateway/src/modules/auth/dto/admin-login.dto.ts","server/api-gateway/src/modules/auth/dto/login.dto.ts","server/api-gateway/src/modules/auth/dto/refresh-token.dto.ts","server/api-gateway/src/modules/auth/guards/jwt-auth.guard.ts","server/api-gateway/src/modules/auth/guards/roles.guard.ts","server/api-gateway/src/modules/auth/strategies/jwt.strategy.ts","server/api-gateway/src/modules/contacts/contacts.controller.spec.ts","server/api-gateway/src/modules/contacts/contacts.controller.ts","server/api-gateway/src/modules/contacts/contacts.module.ts","server/api-gateway/src/modules/contacts/contacts.service.spec.ts","server/api-gateway/src/modules/contacts/contacts.service.ts","server/api-gateway/src/modules/contacts/dto/match-contact.dto.ts","server/api-gateway/src/modules/health/health.controller.spec.ts","server/api-gateway/src/modules/health/health.controller.ts","server/api-gateway/src/modules/health/health.module.ts","server/api-gateway/src/modules/knowledge/dto/knowledge-base.dto.ts","server/api-gateway/src/modules/knowledge/dto/search-knowledge.dto.ts","server/api-gateway/src/modules/knowledge/knowledge.controller.spec.ts","server/api-gateway/src/modules/knowledge/knowledge.controller.ts","server/api-gateway/src/modules/knowledge/knowledge.module.ts","server/api-gateway/src/modules/knowledge/knowledge.service.spec.ts","server/api-gateway/src/modules/knowledge/knowledge.service.ts","server/api-gateway/src/modules/mobile-compat/mobile-compat.controller.ts","server/api-gateway/src/modules/mobile-compat/mobile-compat.module.ts","server/api-gateway/src/modules/ocr/ocr.controller.ts","server/api-gateway/src/modules/ocr/ocr.module.ts","server/api-gateway/src/modules/ocr/ocr.service.ts","server/api-gateway/src/modules/pinyin/pinyin.controller.spec.ts","server/api-gateway/src/modules/pinyin/pinyin.controller.ts","server/api-gateway/src/modules/pinyin/pinyin.module.ts","server/api-gateway/src/modules/pinyin/pinyin.service.spec.ts","server/api-gateway/src/modules/pinyin/pinyin.service.ts","server/api-gateway/src/modules/rag/dto/rag.dto.ts","server/api-gateway/src/modules/rag/rag.controller.spec.ts","server/api-gateway/src/modules/rag/rag.controller.ts","server/api-gateway/src/modules/rag/rag.module.ts","server/api-gateway/src/modules/rag/rag.service.runtime.spec.ts","server/api-gateway/src/modules/rag/rag.service.spec.ts","server/api-gateway/src/modules/rag/rag.service.ts","server/api-gateway/src/modules/settings/dto/settings.dto.ts","server/api-gateway/src/modules/settings/settings.controller.spec.ts","server/api-gateway/src/modules/settings/settings.controller.ts","server/api-gateway/src/modules/settings/settings.module.ts","server/api-gateway/src/modules/settings/settings.service.spec.ts","server/api-gateway/src/modules/settings/settings.service.ts","server/api-gateway/src/modules/teams/dto/teams.dto.ts","server/api-gateway/src/modules/teams/teams.controller.spec.ts","server/api-gateway/src/modules/teams/teams.controller.ts","server/api-gateway/src/modules/teams/teams.module.ts","server/api-gateway/src/modules/teams/teams.service.spec.ts","server/api-gateway/src/modules/teams/teams.service.ts","server/api-gateway/src/modules/templates/dto/template.dto.ts","server/api-gateway/src/modules/templates/templates.controller.spec.ts","server/api-gateway/src/modules/templates/templates.controller.ts","server/api-gateway/src/modules/templates/templates.module.ts","server/api-gateway/src/modules/templates/templates.service.spec.ts","server/api-gateway/src/modules/templates/templates.service.ts","server/api-gateway/src/modules/usage/dto/usage.dto.ts","server/api-gateway/src/modules/usage/usage.controller.ts","server/api-gateway/src/modules/usage/usage.module.ts","server/api-gateway/src/modules/usage/usage.service.spec.ts","server/api-gateway/src/modules/usage/usage.service.ts","server/api-gateway/src/modules/users/users.controller.spec.ts","server/api-gateway/src/modules/users/users.controller.ts","server/api-gateway/src/modules/users/users.module.ts","server/api-gateway/src/modules/users/users.service.spec.ts","server/api-gateway/src/modules/users/users.service.ts","server/api-gateway/src/modules/weather/weather.controller.spec.ts","server/api-gateway/src/modules/weather/weather.controller.ts","server/api-gateway/src/modules/weather/weather.module.ts","server/api-gateway/src/modules/weather/weather.service.spec.ts","server/api-gateway/src/modules/weather/weather.service.ts","server/api-gateway/src/shared/prisma/prisma.module.ts","server/api-gateway/src/shared/prisma/prisma.service.ts","server/api-gateway/src/shared/redis/redis.module.ts","server/api-gateway/src/shared/redis/redis.service.ts","server/api-gateway/src/shared/sms/sms.module.ts","server/api-gateway/src/shared/sms/sms.service.spec.ts","server/api-gateway/src/shared/sms/sms.service.ts","server/api-gateway/tsconfig.json","server/docker-compose.override.yml","server/docker-compose.prod.yml","server/docker-compose.yml","server/docker/grafana/provisioning/dashboards/dashboards.yml","server/docker/grafana/provisioning/dashboards/json/api-gateway.json","server/docker/grafana/provisioning/datasources/datasources.yml","server/docker/loki/loki-config.yml","server/docker/mongodb/init.js","server/docker/nginx/conf.d/default.conf","server/docker/nginx/nginx.conf","server/docker/nginx/ssl/.gitkeep","server/docker/nginx/ssl/README.md","server/docker/postgres/init.sql","server/docker/prometheus/alert.rules.yml","server/docker/prometheus/prometheus.yml","server/docker/promtail/promtail-config.yml","server/k8s/vllm/deployment.yaml","server/k8s/vllm/hpa.yaml","server/k8s/vllm/service.yaml","server/model-services/reranker/Dockerfile","server/model-services/reranker/requirements.txt","server/model-services/reranker/reranker_server.py","server/ocr-service/.dockerignore","server/ocr-service/Dockerfile","server/ocr-service/jest.config.js","server/ocr-service/nest-cli.json","server/ocr-service/package.json","server/ocr-service/src/app.module.ts","server/ocr-service/src/main.ts","server/ocr-service/src/modules/health/health.controller.ts","server/ocr-service/src/modules/health/health.module.ts","server/ocr-service/src/modules/ocr/chat-parser.service.spec.ts","server/ocr-service/src/modules/ocr/chat-parser.service.ts","server/ocr-service/src/modules/ocr/dto/chat-screenshot.dto.ts","server/ocr-service/src/modules/ocr/ocr.controller.ts","server/ocr-service/src/modules/ocr/ocr.module.ts","server/ocr-service/src/modules/ocr/ocr.service.spec.ts","server/ocr-service/src/modules/ocr/ocr.service.ts","server/ocr-service/tsconfig.json","server/scripts/backup.sh","server/scripts/check-mobile-api-coverage.js","server/scripts/check-mobile-response-compat.js","server/scripts/deploy.sh","server/scripts/deploy/deploy-infrastructure.sh","server/scripts/deploy/deploy-models.sh","server/scripts/deploy/final-deploy.sh","server/scripts/deploy/stop-models.sh","server/scripts/e2e-smoke.js","server/scripts/health-check.sh","server/scripts/mobile-api-smoke.js","server/scripts/setup-ssl.sh","settings.gradle.kts","shared/README.md","shared/build.gradle.kts","shared/src/androidInstrumentedTest/kotlin/com/haizhan/ime/shared/auth/AndroidTokenStorageTest.kt","shared/src/androidInstrumentedTest/kotlin/com/haizhan/ime/shared/auth/SharedAuthManagerIntegrationTest.kt","shared/src/androidInstrumentedTest/kotlin/com/haizhan/ime/shared/database/DatabaseIntegrationTest.kt","shared/src/androidInstrumentedTest/kotlin/com/haizhan/ime/shared/pinyin/CandidateRankerIntegrationTest.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/BuildConfig.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/Platform.android.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/auth/AndroidTokenStorage.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/auth/CurrentTime.android.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/database/DatabaseDriverFactory.android.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/database/SharedDatabaseKeyManager.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/di/PlatformModule.android.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/migration/RoomToSqlDelightMigrator.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/platform/Connectivity.android.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/platform/DeviceInfo.android.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/platform/DictionaryLoader.android.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/platform/FileSystem.android.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/Platform.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/analytics/AnalyticsTracker.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/ApiClient.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/AuthApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/ContactApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/DashboardApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/FeedbackApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/KnowledgeApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/MemoryApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/NoteApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/OcrApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/PinyinApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/RagSearchApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/ReplyApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/ScriptApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/SearchApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/SessionApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/SettingsApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/SubscriptionApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/UserApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/WeatherApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/auth/AuthManager.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/auth/AuthModels.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/database/DatabaseDriverFactory.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/database/DatabaseExtensions.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/di/SharedModule.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/matcher/NicknameMatcher.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/ContactModel.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/KnowledgeModel.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/AiDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/ApiResponse.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/AuthDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/ContactDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/DashboardDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/FeedbackDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/KnowledgeDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/MemoryDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/MessageDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/NoteDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/OcrDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/PinyinDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/ProfileDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/RagSearchDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/ReplyDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/ScriptDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/SearchDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/SessionDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/SettingsDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/SubscriptionDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/WeatherDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/Candidate.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/CandidateRanker.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/DictEntry.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/NineGridMatcher.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/PinyinConstants.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/PinyinService.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/PinyinSplitter.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/algorithm/CloudSynergyEngine.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/algorithm/DoubleArrayTrie.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/algorithm/DoubleArrayTrieImpl.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/algorithm/DynamicWeightRanker.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/algorithm/PinyinDAG.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/algorithm/ViterbiDecoder.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/platform/Connectivity.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/platform/DeviceInfo.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/platform/DictionaryLoader.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/platform/FileSystem.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/repository/ContactRepository.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/repository/KnowledgeRepository.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/repository/MessageRepository.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/repository/NoteRepository.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/repository/PinyinRepository.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/repository/SearchRepository.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/repository/SettingsRepository.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/repository/UserDictRepository.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/service/MessageChainMatcher.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/service/OcrMatchService.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/service/OfflineFallbackService.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/service/ReplyService.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/service/ScriptService.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/service/SessionService.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/sync/SyncManager.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/util/FlowExt.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/util/LevenshteinDistance.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/util/LruCache.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/util/StringExt.kt","shared/src/commonMain/sqldelight/com/haizhan/ime/shared/database/Contact.sq","shared/src/commonMain/sqldelight/com/haizhan/ime/shared/database/Knowledge.sq","shared/src/commonMain/sqldelight/com/haizhan/ime/shared/database/Message.sq","shared/src/commonMain/sqldelight/com/haizhan/ime/shared/database/Note.sq","shared/src/commonMain/sqldelight/com/haizhan/ime/shared/database/Search.sq","shared/src/commonMain/sqldelight/com/haizhan/ime/shared/database/Settings.sq","shared/src/commonMain/sqldelight/com/haizhan/ime/shared/database/UserDict.sq","shared/src/commonMain/sqldelight/migrations/1.sqm","shared/src/commonTest/kotlin/com/haizhan/ime/shared/analytics/AnalyticsTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/api/ApiClientTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/auth/AuthModelsTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/matcher/NicknameMatcherTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/model/ContactModelTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/model/KnowledgeModelTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/network/NetworkClientTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/CandidateRankerTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/CandidateTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/NineGridMatcherTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/PinyinConstantsTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/PinyinSplitterTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/algorithm/CloudSynergyEngineTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/algorithm/DoubleArrayTrieImplTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/algorithm/DynamicWeightRankerTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/algorithm/PinyinDAGTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/algorithm/ViterbiDecoderTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/repository/ContactRepositoryTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/sync/SyncTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/util/LevenshteinDistanceTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/util/PinyinConverterTest.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/Platform.ios.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/auth/CurrentTime.ios.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/auth/IosTokenStorage.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/database/DatabaseDriverFactory.ios.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/di/PlatformModule.ios.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/platform/Connectivity.ios.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/platform/DeviceInfo.ios.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/platform/DictionaryLoader.ios.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/platform/FileSystem.ios.kt","voice/build.gradle.kts","voice/consumer-rules.pro","voice/proguard-rules.pro","voice/src/androidTest/java/com/haizhan/ime/voice/integration/VoiceModuleIntegrationTest.kt","voice/src/androidTest/java/com/haizhan/ime/voice/integration/WakeWordServiceIntegrationTest.kt","voice/src/main/AndroidManifest.xml","voice/src/main/java/com/haizhan/ime/voice/api/AudioPipeline.kt","voice/src/main/java/com/haizhan/ime/voice/api/SpeechRecognitionService.kt","voice/src/main/java/com/haizhan/ime/voice/api/VoiceCoordinator.kt","voice/src/main/java/com/haizhan/ime/voice/api/VoiceErrors.kt","voice/src/main/java/com/haizhan/ime/voice/api/VoiceTypes.kt","voice/src/main/java/com/haizhan/ime/voice/api/WakeWordConfigManager.kt","voice/src/main/java/com/haizhan/ime/voice/api/WakeWordDetectionService.kt","voice/src/main/java/com/haizhan/ime/voice/audio/AudioPipelineImpl.kt","voice/src/main/java/com/haizhan/ime/voice/audio/di/AudioModule.kt","voice/src/main/java/com/haizhan/ime/voice/coordinator/VoiceCoordinatorImpl.kt","voice/src/main/java/com/haizhan/ime/voice/coordinator/di/CoordinatorModule.kt","voice/src/main/java/com/haizhan/ime/voice/denoise/DenoiseAudioConsumer.kt","voice/src/main/java/com/haizhan/ime/voice/denoise/DenoiseManager.kt","voice/src/main/java/com/haizhan/ime/voice/denoise/MusicAwareAEC.kt","voice/src/main/java/com/haizhan/ime/voice/denoise/NoiseEstimator.kt","voice/src/main/java/com/haizhan/ime/voice/denoise/SpectralSubtractor.kt","voice/src/main/java/com/haizhan/ime/voice/denoise/VoiceActivityDetector.kt","voice/src/main/java/com/haizhan/ime/voice/denoise/di/DenoiseModule.kt","voice/src/main/java/com/haizhan/ime/voice/di/VoiceModule.kt","voice/src/main/java/com/haizhan/ime/voice/engine/VoiceInputEngine.kt","voice/src/main/java/com/haizhan/ime/voice/model/MultiModelManager.kt","voice/src/main/java/com/haizhan/ime/voice/model/VoiceModelManager.kt","voice/src/main/java/com/haizhan/ime/voice/monitoring/VoicePerformanceMonitor.kt","voice/src/main/java/com/haizhan/ime/voice/monitoring/di/MonitoringModule.kt","voice/src/main/java/com/haizhan/ime/voice/recognition/AudioDiagnostics.kt","voice/src/main/java/com/haizhan/ime/voice/recognition/SpeechRecognitionServiceImpl.kt","voice/src/main/java/com/haizhan/ime/voice/recognition/VoskGrammarBuilder.kt","voice/src/main/java/com/haizhan/ime/voice/recognition/VoskRecognizer.kt","voice/src/main/java/com/haizhan/ime/voice/recognition/di/SpeechModule.kt","voice/src/main/java/com/haizhan/ime/voice/ui/VoiceUiTypes.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/WakeWordDetectionServiceImpl.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/analytics/WakeWordAnalytics.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/config/WakeWordConfigManagerImpl.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/config/di/ConfigModule.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/confirmation/WakeWordConfirmation.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/detector/IWakeWordDetector.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/detector/VoskWakeWordDetector.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/di/ConfirmationModule.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/di/MatcherModule.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/di/ParserModule.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/di/RepositoryModule.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/di/WakeWordModule.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/filter/FalseWakeFilter.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/matcher/PinyinData.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/matcher/PinyinMatcher.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/matcher/TrieWordMatcher.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/parser/WakeWordCommandParser.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/EnergyPatternMatcher.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/PitchExtractor.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/QuickWakeDetector.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/SingingModeDetector.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/SpectralAnalyzer.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/SyllableDetector.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/VibratoDetector.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/VoiceCharacteristicAnalyzer.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/VoiceProfileAnalyzer.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/di/PredetectModule.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/repository/WakeWordRepository.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/sensitivity/AdaptiveSensitivity.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/service/WakeWordService.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/util/PinyinUtils.kt","voice/src/test/java/com/haizhan/ime/voice/api/HotwordConfigTest.kt","voice/src/test/java/com/haizhan/ime/voice/audio/AudioPipelineImplTest.kt","voice/src/test/java/com/haizhan/ime/voice/coordinator/VoiceCoordinatorImplTest.kt","voice/src/test/java/com/haizhan/ime/voice/denoise/DenoiseManagerTest.kt","voice/src/test/java/com/haizhan/ime/voice/denoise/MusicAwareAECTest.kt","voice/src/test/java/com/haizhan/ime/voice/denoise/SpectralSubtractorTest.kt","voice/src/test/java/com/haizhan/ime/voice/denoise/VoiceActivityDetectorTest.kt.bak","voice/src/test/java/com/haizhan/ime/voice/model/MultiModelManagerTest.kt","voice/src/test/java/com/haizhan/ime/voice/monitoring/VoicePerformanceMonitorTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/config/WakeWordConfigManagerTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/confirmation/WakeWordConfirmationTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/filter/FalseWakeFilterTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/matcher/PinyinDataTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/matcher/PinyinMatcherTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/matcher/TrieWordMatcherTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/parser/WakeWordCommandParserTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/predetect/QuickWakeDetectorTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/predetect/SingingModeDetectorTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/predetect/SyllableDetectorTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/predetect/VibratoDetectorTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/predetect/VoiceCharacteristicAnalyzerTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/predetect/VoiceProfileAnalyzerTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/repository/WakeWordRepositorySerializationTest.kt"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"893022bfd17ce1f2e75e75651551cf8ceaacfe45","message":"feat: 嗨赞AI输入法Android版初始提交\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/893022bfd17ce1f2e75e75651551cf8ceaacfe45","author":{"name":"luoanwu","email":"law@g-hi.com","username":"luoanwu"},"committer":{"name":"luoanwu","email":"law@g-hi.com","username":"luoanwu"},"verification":null,"timestamp":"2026-02-27T15:28:58+08:00","added":[".claude/skills/haizhan-ime-development.md",".claude/worktrees/charming-zhukovsky",".editorconfig",".github/workflows/ci.yml",".github/workflows/frontend-backend-ci.yml",".github/workflows/ios-ci.yml",".github/workflows/performance-check.yml",".github/workflows/pr-check.yml",".github/workflows/release.yml",".gitignore",".npmrc","CHANGELOG.md","CLAUDE.md","MIGRATION_COMPLETE_REPORT.md","README.md","admin-web/.env.development","admin-web/.eslintrc.cjs","admin-web/.gitignore","admin-web/.npmrc","admin-web/README.md","admin-web/e2e/all-pages.spec.ts","admin-web/e2e/crud-tests.spec.ts","admin-web/e2e/dashboard.spec.ts","admin-web/e2e/interactive-click.spec.ts","admin-web/e2e/login.spec.ts","admin-web/e2e/templates.spec.ts","admin-web/index.html","admin-web/package.json","admin-web/playwright.config.ts","admin-web/postcss.config.js","admin-web/public/favicon.svg","admin-web/src/App.vue","admin-web/src/api/ai-config.ts","admin-web/src/api/audit.ts","admin-web/src/api/auth.ts","admin-web/src/api/contact.ts","admin-web/src/api/knowledge.ts","admin-web/src/api/rag.ts","admin-web/src/api/settings.ts","admin-web/src/api/team.ts","admin-web/src/api/template.ts","admin-web/src/api/usage.ts","admin-web/src/api/user.ts","admin-web/src/assets/logo.svg","admin-web/src/components/UserCard.vue","admin-web/src/components/index.ts","admin-web/src/composables/usePermission.ts","admin-web/src/composables/useResponsive.ts","admin-web/src/composables/useTable.ts","admin-web/src/directives/index.ts","admin-web/src/directives/permission.ts","admin-web/src/env.d.ts","admin-web/src/layouts/MainLayout.vue","admin-web/src/layouts/components/HeaderBar.vue","admin-web/src/layouts/components/MobileDrawer.vue","admin-web/src/layouts/components/SidebarMenu.vue","admin-web/src/main.ts","admin-web/src/router/index.ts","admin-web/src/stores/app.ts","admin-web/src/stores/user.ts","admin-web/src/styles/index.scss","admin-web/src/styles/variables.scss","admin-web/src/types/ai-config.ts","admin-web/src/types/api.ts","admin-web/src/types/audit.ts","admin-web/src/types/contact.ts","admin-web/src/types/knowledge.ts","admin-web/src/types/permission.ts","admin-web/src/types/rag.ts","admin-web/src/types/settings.ts","admin-web/src/types/team.ts","admin-web/src/types/template.ts","admin-web/src/types/usage.ts","admin-web/src/types/user.ts","admin-web/src/utils/request.ts","admin-web/src/views/ai-config/index.vue","admin-web/src/views/audit/index.vue","admin-web/src/views/contacts/index.vue","admin-web/src/views/contacts/profile.vue","admin-web/src/views/dashboard/index.vue","admin-web/src/views/error/403.vue","admin-web/src/views/error/404.vue","admin-web/src/views/knowledge/index.vue","admin-web/src/views/login/index.vue","admin-web/src/views/profile/index.vue","admin-web/src/views/rag/index.vue","admin-web/src/views/settings/index.vue","admin-web/src/views/teams/index.vue","admin-web/src/views/templates/index.vue","admin-web/src/views/usage/index.vue","admin-web/src/views/users/index.vue","admin-web/tailwind.config.js","admin-web/test-results/.last-run.json","admin-web/tsconfig.app.json","admin-web/tsconfig.json","admin-web/tsconfig.node.json","admin-web/vite.config.d.ts","admin-web/vite.config.js","admin-web/vite.config.ts","ai-panel/build.gradle.kts","ai-panel/consumer-rules.pro","ai-panel/proguard-rules.pro","ai-panel/src/main/AndroidManifest.xml","ai-panel/src/main/java/com/haizhan/ime/panel/AiPanelManager.kt","ai-panel/src/main/java/com/haizhan/ime/panel/AiPanelModels.kt","ai-panel/src/main/java/com/haizhan/ime/panel/agentic/AgenticDecisionEngine.kt","ai-panel/src/main/java/com/haizhan/ime/panel/agentic/AgenticRouter.kt","ai-panel/src/main/java/com/haizhan/ime/panel/agentic/AgenticTypes.kt","ai-panel/src/main/java/com/haizhan/ime/panel/agentic/CostController.kt","ai-panel/src/main/java/com/haizhan/ime/panel/agentic/HybridSearchExecutor.kt","ai-panel/src/main/java/com/haizhan/ime/panel/agentic/di/AgenticModule.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/AvatarMatcher.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/ContactCache.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/ContactContextPreloader.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/ContactIndexes.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/ContactMatcher.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/ContactMatcherData.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/EnhancedContactMatcher.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/MatchedContact.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/NicknameMatcher.kt","ai-panel/src/main/java/com/haizhan/ime/panel/context/InputContextCollector.kt","ai-panel/src/main/java/com/haizhan/ime/panel/context/UnifiedContextManager.kt","ai-panel/src/main/java/com/haizhan/ime/panel/di/AiPanelModule.kt","ai-panel/src/main/java/com/haizhan/ime/panel/di/ContactModule.kt","ai-panel/src/main/java/com/haizhan/ime/panel/di/ContextModule.kt","ai-panel/src/main/java/com/haizhan/ime/panel/di/OcrModule.kt","ai-panel/src/main/java/com/haizhan/ime/panel/di/ReplyModule.kt","ai-panel/src/main/java/com/haizhan/ime/panel/di/ScreenshotModule.kt","ai-panel/src/main/java/com/haizhan/ime/panel/knowledge/KnowledgeService.kt","ai-panel/src/main/java/com/haizhan/ime/panel/memory/ContactMemoryModels.kt","ai-panel/src/main/java/com/haizhan/ime/panel/memory/ContactMemoryService.kt","ai-panel/src/main/java/com/haizhan/ime/panel/memory/MemoryDtoMapper.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/EnhancedSenderDetector.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/MessageParser.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/OcrReliabilityScore.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/OcrService.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/TitleBarParser.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/adapter/ChatMessageAdapter.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/adapter/DingTalkMessageAdapter.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/adapter/FeishuMessageAdapter.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/adapter/MessageAdapterFactory.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/adapter/WeChatMessageAdapter.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/adapter/WeWorkMessageAdapter.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/BatteryAwareManager.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/ClipboardHelper.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/FrequencyController.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/RagReplyGenerator.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/ReplyGenerator.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/ReplyStyle.kt","ai-panel/src/main/java/com/haizhan/ime/panel/screenshot/RegionDetector.kt","ai-panel/src/main/java/com/haizhan/ime/panel/screenshot/ScreenshotManager.kt","ai-panel/src/main/java/com/haizhan/ime/panel/service/ScreenshotForegroundService.kt","ai-panel/src/main/java/com/haizhan/ime/panel/trigger/AppDetector.kt","ai-panel/src/main/java/com/haizhan/ime/panel/trigger/TriggerDetector.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/AIPanelScreen.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/AiPanelTheme.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/Contact360View.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/ContactCard.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/ContactSelector.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/EmotionBadge.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/FunctionTabBar.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/IntentBadge.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/KnowledgeCard.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/KnowledgePanel.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/QuickReplyPanel.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/ReplyCard.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/ContactComponents.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/HistoryComponents.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/KnowledgeComponents.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/NoteComponents.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/OcrComponents.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/PanelCommon.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/ReplyComponents.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/TeamComponents.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/tabs/AiReplyTab.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/tabs/ContactsTab.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/tabs/HistoryTab.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/tabs/KnowledgeTab.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/tabs/NoteTab.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/tabs/OcrTab.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/tabs/TeamTab.kt","ai-panel/src/main/java/com/haizhan/ime/panel/weather/WeatherService.kt","ai-panel/src/main/res/drawable/ic_ai_reply.xml","ai-panel/src/main/res/drawable/ic_capture.xml","ai-panel/src/main/res/drawable/ic_contacts.xml","ai-panel/src/main/res/drawable/ic_knowledge.xml","ai-panel/src/main/res/drawable/ic_ocr.xml","ai-panel/src/main/res/drawable/ic_refresh.xml","ai-panel/src/main/res/drawable/ic_screenshot.xml","ai-panel/src/main/res/drawable/ic_stop.xml","ai-panel/src/test/java/com/haizhan/ime/panel/AiPanelManagerTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/agentic/AgenticDecisionEngineTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/agentic/AgenticRouterTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/agentic/AgenticTypesTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/agentic/CostControllerTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/agentic/ResultQualityEvaluatorTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactCacheTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactContextPreloaderTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactIndexPerformanceTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactIndexesTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactMatcherTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactMemoryServiceTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/MatchedContactTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/NicknameMatcherTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/context/InputContextCollectorTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/context/UnifiedContextManagerTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/knowledge/KnowledgeServiceTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/ocr/EnhancedSenderDetectorTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/ocr/MessageParserTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/ocr/OcrReliabilityScoreTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/ocr/OcrServiceTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/ocr/TitleBarParserTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/platform/DingTalkAdapterTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/platform/FeishuAdapterTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/platform/WeChatAdapterTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/platform/WeWorkAdapterTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/reply/BatteryAwareManagerTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/reply/ClipboardHelperTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/reply/FrequencyControllerTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/reply/RagReplyGeneratorTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/reply/ReplyGeneratorTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/reply/ReplyStyleTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/screenshot/RegionDetectorTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/screenshot/ScreenshotManagerTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/trigger/AppDetectorTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/trigger/TriggerDetectorTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/ui/AIPanelScreenTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/ui/ReplyCardTest.kt","api-clients/android/.openapi-generator-ignore","api-clients/android/.openapi-generator/FILES","api-clients/android/.openapi-generator/VERSION","api-clients/android/README.md","api-clients/android/build.gradle","api-clients/android/docs/AdminLoginDto.md","api-clients/android/docs/AiConfigApi.md","api-clients/android/docs/AuditLogsApi.md","api-clients/android/docs/AuthApi.md","api-clients/android/docs/BatchRemoveContactsDto.md","api-clients/android/docs/ChunkingConfigDto.md","api-clients/android/docs/Contact360ResponseDto.md","api-clients/android/docs/Contact360ViewDto.md","api-clients/android/docs/ContactDetailResponseDto.md","api-clients/android/docs/ContactDto.md","api-clients/android/docs/ContactEventDto.md","api-clients/android/docs/ContactListResponseDto.md","api-clients/android/docs/ContactProfileDto.md","api-clients/android/docs/ContactStatsDto.md","api-clients/android/docs/ContactTagDto.md","api-clients/android/docs/ContactsApi.md","api-clients/android/docs/ConversationSummaryDto.md","api-clients/android/docs/CreateContactDto.md","api-clients/android/docs/CreateContactEventDto.md","api-clients/android/docs/CreateKnowledgeBaseDto.md","api-clients/android/docs/CreateKnowledgeDocumentDto.md","api-clients/android/docs/CreateQwenModelDto.md","api-clients/android/docs/DefaultApi.md","api-clients/android/docs/EmbeddingConfigDto.md","api-clients/android/docs/EmbeddingModelDto.md","api-clients/android/docs/GenerationConfigDto.md","api-clients/android/docs/HealthApi.md","api-clients/android/docs/KnowledgeApi.md","api-clients/android/docs/KnowledgeBaseResponseDto.md","api-clients/android/docs/KnowledgeDocumentListResponseDto.md","api-clients/android/docs/KnowledgeDocumentResponseDto.md","api-clients/android/docs/LoginDto.md","api-clients/android/docs/MatchContactDto.md","api-clients/android/docs/MatchContactResponseDto.md","api-clients/android/docs/MobileCompatApi.md","api-clients/android/docs/PinyinApi.md","api-clients/android/docs/PipelineHealthDto.md","api-clients/android/docs/PipelineMetricsDto.md","api-clients/android/docs/PreviewChunkingDto.md","api-clients/android/docs/QwenModelConfigDto.md","api-clients/android/docs/QwenModelFeaturesDto.md","api-clients/android/docs/RagApi.md","api-clients/android/docs/RagConfigDto.md","api-clients/android/docs/RagMetricsDto.md","api-clients/android/docs/RagPipelineStatusDto.md","api-clients/android/docs/RagQueryDto.md","api-clients/android/docs/RebuildIndexDto.md","api-clients/android/docs/RefreshTokenDto.md","api-clients/android/docs/RetrievalConfigDto.md","api-clients/android/docs/SettingsApi.md","api-clients/android/docs/SyncContactsDto.md","api-clients/android/docs/SyncContactsResponseDto.md","api-clients/android/docs/TeamsApi.md","api-clients/android/docs/ToggleQwenModelDto.md","api-clients/android/docs/UpdateContactDto.md","api-clients/android/docs/UpdateKnowledgeBaseDto.md","api-clients/android/docs/UpdateKnowledgeDocumentDto.md","api-clients/android/docs/UpdateQwenModelDto.md","api-clients/android/docs/UpdateRagConfigDto.md","api-clients/android/docs/UsageApi.md","api-clients/android/docs/WeatherApi.md","api-clients/android/gradle/wrapper/gradle-wrapper.jar","api-clients/android/gradle/wrapper/gradle-wrapper.properties","api-clients/android/gradlew","api-clients/android/gradlew.bat","api-clients/android/settings.gradle","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/AiConfigApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/AuditLogsApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/AuthApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/ContactsApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/DefaultApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/HealthApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/KnowledgeApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/MobileCompatApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/PinyinApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/RagApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/SettingsApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/TeamsApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/UsageApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/WeatherApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/auth/HttpBearerAuth.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/ApiClient.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/BigDecimalAdapter.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/BigIntegerAdapter.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/ByteArrayAdapter.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/CollectionFormats.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/LocalDateAdapter.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/LocalDateTimeAdapter.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/OffsetDateTimeAdapter.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/ResponseExt.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/Serializer.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/URIAdapter.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/UUIDAdapter.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/AdminLoginDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/BatchRemoveContactsDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ChunkingConfigDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/Contact360ResponseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/Contact360ViewDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ContactDetailResponseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ContactDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ContactEventDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ContactListResponseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ContactProfileDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ContactStatsDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ContactTagDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ConversationSummaryDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/CreateContactDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/CreateContactEventDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/CreateKnowledgeBaseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/CreateKnowledgeDocumentDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/CreateQwenModelDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/EmbeddingConfigDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/EmbeddingModelDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/GenerationConfigDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/KnowledgeBaseResponseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/KnowledgeDocumentListResponseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/KnowledgeDocumentResponseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/LoginDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/MatchContactDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/MatchContactResponseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/PipelineHealthDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/PipelineMetricsDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/PreviewChunkingDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/QwenModelConfigDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/QwenModelFeaturesDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/RagConfigDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/RagMetricsDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/RagPipelineStatusDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/RagQueryDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/RebuildIndexDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/RefreshTokenDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/RetrievalConfigDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/SyncContactsDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/SyncContactsResponseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ToggleQwenModelDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/UpdateContactDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/UpdateKnowledgeBaseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/UpdateKnowledgeDocumentDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/UpdateQwenModelDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/UpdateRagConfigDto.kt","api-clients/flutter/.gitignore","api-clients/flutter/.openapi-generator-ignore","api-clients/flutter/.openapi-generator/FILES","api-clients/flutter/.openapi-generator/VERSION","api-clients/flutter/README.md","api-clients/flutter/analysis_options.yaml","api-clients/flutter/doc/AdminLoginDto.md","api-clients/flutter/doc/AiConfigApi.md","api-clients/flutter/doc/AuditLogsApi.md","api-clients/flutter/doc/AuthApi.md","api-clients/flutter/doc/BatchRemoveContactsDto.md","api-clients/flutter/doc/ChunkingConfigDto.md","api-clients/flutter/doc/Contact360ResponseDto.md","api-clients/flutter/doc/Contact360ViewDto.md","api-clients/flutter/doc/ContactDetailResponseDto.md","api-clients/flutter/doc/ContactDto.md","api-clients/flutter/doc/ContactEventDto.md","api-clients/flutter/doc/ContactListResponseDto.md","api-clients/flutter/doc/ContactProfileDto.md","api-clients/flutter/doc/ContactStatsDto.md","api-clients/flutter/doc/ContactTagDto.md","api-clients/flutter/doc/ContactsApi.md","api-clients/flutter/doc/ConversationSummaryDto.md","api-clients/flutter/doc/CreateContactDto.md","api-clients/flutter/doc/CreateContactEventDto.md","api-clients/flutter/doc/CreateKnowledgeBaseDto.md","api-clients/flutter/doc/CreateKnowledgeDocumentDto.md","api-clients/flutter/doc/CreateQwenModelDto.md","api-clients/flutter/doc/DefaultApi.md","api-clients/flutter/doc/EmbeddingConfigDto.md","api-clients/flutter/doc/EmbeddingModelDto.md","api-clients/flutter/doc/GenerationConfigDto.md","api-clients/flutter/doc/HealthApi.md","api-clients/flutter/doc/KnowledgeApi.md","api-clients/flutter/doc/KnowledgeBaseResponseDto.md","api-clients/flutter/doc/KnowledgeDocumentListResponseDto.md","api-clients/flutter/doc/KnowledgeDocumentResponseDto.md","api-clients/flutter/doc/LoginDto.md","api-clients/flutter/doc/MatchContactDto.md","api-clients/flutter/doc/MatchContactResponseDto.md","api-clients/flutter/doc/MobileCompatApi.md","api-clients/flutter/doc/PinyinApi.md","api-clients/flutter/doc/PipelineHealthDto.md","api-clients/flutter/doc/PipelineMetricsDto.md","api-clients/flutter/doc/PreviewChunkingDto.md","api-clients/flutter/doc/QwenModelConfigDto.md","api-clients/flutter/doc/QwenModelFeaturesDto.md","api-clients/flutter/doc/RagApi.md","api-clients/flutter/doc/RagConfigDto.md","api-clients/flutter/doc/RagMetricsDto.md","api-clients/flutter/doc/RagPipelineStatusDto.md","api-clients/flutter/doc/RagQueryDto.md","api-clients/flutter/doc/RebuildIndexDto.md","api-clients/flutter/doc/RefreshTokenDto.md","api-clients/flutter/doc/RetrievalConfigDto.md","api-clients/flutter/doc/SettingsApi.md","api-clients/flutter/doc/SyncContactsDto.md","api-clients/flutter/doc/SyncContactsResponseDto.md","api-clients/flutter/doc/TeamsApi.md","api-clients/flutter/doc/ToggleQwenModelDto.md","api-clients/flutter/doc/UpdateContactDto.md","api-clients/flutter/doc/UpdateKnowledgeBaseDto.md","api-clients/flutter/doc/UpdateKnowledgeDocumentDto.md","api-clients/flutter/doc/UpdateQwenModelDto.md","api-clients/flutter/doc/UpdateRagConfigDto.md","api-clients/flutter/doc/UsageApi.md","api-clients/flutter/doc/WeatherApi.md","api-clients/flutter/lib/haizhan_api.dart","api-clients/flutter/lib/src/api.dart","api-clients/flutter/lib/src/api/ai_config_api.dart","api-clients/flutter/lib/src/api/audit_logs_api.dart","api-clients/flutter/lib/src/api/auth_api.dart","api-clients/flutter/lib/src/api/contacts_api.dart","api-clients/flutter/lib/src/api/default_api.dart","api-clients/flutter/lib/src/api/health_api.dart","api-clients/flutter/lib/src/api/knowledge_api.dart","api-clients/flutter/lib/src/api/mobile_compat_api.dart","api-clients/flutter/lib/src/api/pinyin_api.dart","api-clients/flutter/lib/src/api/rag_api.dart","api-clients/flutter/lib/src/api/settings_api.dart","api-clients/flutter/lib/src/api/teams_api.dart","api-clients/flutter/lib/src/api/usage_api.dart","api-clients/flutter/lib/src/api/weather_api.dart","api-clients/flutter/lib/src/api_util.dart","api-clients/flutter/lib/src/auth/api_key_auth.dart","api-clients/flutter/lib/src/auth/auth.dart","api-clients/flutter/lib/src/auth/basic_auth.dart","api-clients/flutter/lib/src/auth/bearer_auth.dart","api-clients/flutter/lib/src/auth/oauth.dart","api-clients/flutter/lib/src/date_serializer.dart","api-clients/flutter/lib/src/model/admin_login_dto.dart","api-clients/flutter/lib/src/model/batch_remove_contacts_dto.dart","api-clients/flutter/lib/src/model/chunking_config_dto.dart","api-clients/flutter/lib/src/model/contact360_response_dto.dart","api-clients/flutter/lib/src/model/contact360_view_dto.dart","api-clients/flutter/lib/src/model/contact_detail_response_dto.dart","api-clients/flutter/lib/src/model/contact_dto.dart","api-clients/flutter/lib/src/model/contact_event_dto.dart","api-clients/flutter/lib/src/model/contact_list_response_dto.dart","api-clients/flutter/lib/src/model/contact_profile_dto.dart","api-clients/flutter/lib/src/model/contact_stats_dto.dart","api-clients/flutter/lib/src/model/contact_tag_dto.dart","api-clients/flutter/lib/src/model/conversation_summary_dto.dart","api-clients/flutter/lib/src/model/create_contact_dto.dart","api-clients/flutter/lib/src/model/create_contact_event_dto.dart","api-clients/flutter/lib/src/model/create_knowledge_base_dto.dart","api-clients/flutter/lib/src/model/create_knowledge_document_dto.dart","api-clients/flutter/lib/src/model/create_qwen_model_dto.dart","api-clients/flutter/lib/src/model/date.dart","api-clients/flutter/lib/src/model/embedding_config_dto.dart","api-clients/flutter/lib/src/model/embedding_model_dto.dart","api-clients/flutter/lib/src/model/generation_config_dto.dart","api-clients/flutter/lib/src/model/knowledge_base_response_dto.dart","api-clients/flutter/lib/src/model/knowledge_document_list_response_dto.dart","api-clients/flutter/lib/src/model/knowledge_document_response_dto.dart","api-clients/flutter/lib/src/model/login_dto.dart","api-clients/flutter/lib/src/model/match_contact_dto.dart","api-clients/flutter/lib/src/model/match_contact_response_dto.dart","api-clients/flutter/lib/src/model/pipeline_health_dto.dart","api-clients/flutter/lib/src/model/pipeline_metrics_dto.dart","api-clients/flutter/lib/src/model/preview_chunking_dto.dart","api-clients/flutter/lib/src/model/qwen_model_config_dto.dart","api-clients/flutter/lib/src/model/qwen_model_features_dto.dart","api-clients/flutter/lib/src/model/rag_config_dto.dart","api-clients/flutter/lib/src/model/rag_metrics_dto.dart","api-clients/flutter/lib/src/model/rag_pipeline_status_dto.dart","api-clients/flutter/lib/src/model/rag_query_dto.dart","api-clients/flutter/lib/src/model/rebuild_index_dto.dart","api-clients/flutter/lib/src/model/refresh_token_dto.dart","api-clients/flutter/lib/src/model/retrieval_config_dto.dart","api-clients/flutter/lib/src/model/sync_contacts_dto.dart","api-clients/flutter/lib/src/model/sync_contacts_response_dto.dart","api-clients/flutter/lib/src/model/toggle_qwen_model_dto.dart","api-clients/flutter/lib/src/model/update_contact_dto.dart","api-clients/flutter/lib/src/model/update_knowledge_base_dto.dart","api-clients/flutter/lib/src/model/update_knowledge_document_dto.dart","api-clients/flutter/lib/src/model/update_qwen_model_dto.dart","api-clients/flutter/lib/src/model/update_rag_config_dto.dart","api-clients/flutter/lib/src/serializers.dart","api-clients/flutter/pubspec.yaml","api-clients/flutter/test/admin_login_dto_test.dart","api-clients/flutter/test/ai_config_api_test.dart","api-clients/flutter/test/audit_logs_api_test.dart","api-clients/flutter/test/auth_api_test.dart","api-clients/flutter/test/batch_remove_contacts_dto_test.dart","api-clients/flutter/test/chunking_config_dto_test.dart","api-clients/flutter/test/contact360_response_dto_test.dart","api-clients/flutter/test/contact360_view_dto_test.dart","api-clients/flutter/test/contact_detail_response_dto_test.dart","api-clients/flutter/test/contact_dto_test.dart","api-clients/flutter/test/contact_event_dto_test.dart","api-clients/flutter/test/contact_list_response_dto_test.dart","api-clients/flutter/test/contact_profile_dto_test.dart","api-clients/flutter/test/contact_stats_dto_test.dart","api-clients/flutter/test/contact_tag_dto_test.dart","api-clients/flutter/test/contacts_api_test.dart","api-clients/flutter/test/conversation_summary_dto_test.dart","api-clients/flutter/test/create_contact_dto_test.dart","api-clients/flutter/test/create_contact_event_dto_test.dart","api-clients/flutter/test/create_knowledge_base_dto_test.dart","api-clients/flutter/test/create_knowledge_document_dto_test.dart","api-clients/flutter/test/create_qwen_model_dto_test.dart","api-clients/flutter/test/default_api_test.dart","api-clients/flutter/test/embedding_config_dto_test.dart","api-clients/flutter/test/embedding_model_dto_test.dart","api-clients/flutter/test/generation_config_dto_test.dart","api-clients/flutter/test/health_api_test.dart","api-clients/flutter/test/knowledge_api_test.dart","api-clients/flutter/test/knowledge_base_response_dto_test.dart","api-clients/flutter/test/knowledge_document_list_response_dto_test.dart","api-clients/flutter/test/knowledge_document_response_dto_test.dart","api-clients/flutter/test/login_dto_test.dart","api-clients/flutter/test/match_contact_dto_test.dart","api-clients/flutter/test/match_contact_response_dto_test.dart","api-clients/flutter/test/mobile_compat_api_test.dart","api-clients/flutter/test/pinyin_api_test.dart","api-clients/flutter/test/pipeline_health_dto_test.dart","api-clients/flutter/test/pipeline_metrics_dto_test.dart","api-clients/flutter/test/preview_chunking_dto_test.dart","api-clients/flutter/test/qwen_model_config_dto_test.dart","api-clients/flutter/test/qwen_model_features_dto_test.dart","api-clients/flutter/test/rag_api_test.dart","api-clients/flutter/test/rag_config_dto_test.dart","api-clients/flutter/test/rag_metrics_dto_test.dart","api-clients/flutter/test/rag_pipeline_status_dto_test.dart","api-clients/flutter/test/rag_query_dto_test.dart","api-clients/flutter/test/rebuild_index_dto_test.dart","api-clients/flutter/test/refresh_token_dto_test.dart","api-clients/flutter/test/retrieval_config_dto_test.dart","api-clients/flutter/test/settings_api_test.dart","api-clients/flutter/test/sync_contacts_dto_test.dart","api-clients/flutter/test/sync_contacts_response_dto_test.dart","api-clients/flutter/test/teams_api_test.dart","api-clients/flutter/test/toggle_qwen_model_dto_test.dart","api-clients/flutter/test/update_contact_dto_test.dart","api-clients/flutter/test/update_knowledge_base_dto_test.dart","api-clients/flutter/test/update_knowledge_document_dto_test.dart","api-clients/flutter/test/update_qwen_model_dto_test.dart","api-clients/flutter/test/update_rag_config_dto_test.dart","api-clients/flutter/test/usage_api_test.dart","api-clients/flutter/test/weather_api_test.dart","api-clients/ios/.gitignore","api-clients/ios/.openapi-generator-ignore","api-clients/ios/.openapi-generator/FILES","api-clients/ios/.openapi-generator/VERSION","api-clients/ios/.swiftformat","api-clients/ios/Cartfile","api-clients/ios/HaizhanAPI.podspec","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIHelper.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/AiConfigAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/AuditLogsAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/AuthAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/ContactsAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/DefaultAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/HealthAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/KnowledgeAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/MobileCompatAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/PinyinAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/RagAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/SettingsAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/TeamsAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/UsageAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/WeatherAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/CodableHelper.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Configuration.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Extensions.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/JSONDataEncoding.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/JSONEncodingHelper.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/AdminLoginDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/BatchRemoveContactsDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ChunkingConfigDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/Contact360ResponseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/Contact360ViewDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ContactDetailResponseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ContactDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ContactEventDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ContactListResponseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ContactProfileDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ContactStatsDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ContactTagDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ConversationSummaryDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/CreateContactDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/CreateContactEventDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/CreateKnowledgeBaseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/CreateKnowledgeDocumentDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/CreateQwenModelDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/EmbeddingConfigDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/EmbeddingModelDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/GenerationConfigDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/KnowledgeBaseResponseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/KnowledgeDocumentListResponseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/KnowledgeDocumentResponseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/LoginDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/MatchContactDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/MatchContactResponseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/PipelineHealthDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/PipelineMetricsDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/PreviewChunkingDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/QwenModelConfigDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/QwenModelFeaturesDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/RagConfigDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/RagMetricsDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/RagPipelineStatusDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/RagQueryDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/RebuildIndexDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/RefreshTokenDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/RetrievalConfigDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/SyncContactsDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/SyncContactsResponseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ToggleQwenModelDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/UpdateContactDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/UpdateKnowledgeBaseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/UpdateKnowledgeDocumentDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/UpdateQwenModelDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/UpdateRagConfigDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/OpenISO8601DateFormatter.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/SynchronizedDictionary.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/URLSessionImplementations.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Validation.swift","api-clients/ios/Package.swift","api-clients/ios/README.md","api-clients/ios/docs/AdminLoginDto.md","api-clients/ios/docs/AiConfigAPI.md","api-clients/ios/docs/AuditLogsAPI.md","api-clients/ios/docs/AuthAPI.md","api-clients/ios/docs/BatchRemoveContactsDto.md","api-clients/ios/docs/ChunkingConfigDto.md","api-clients/ios/docs/Contact360ResponseDto.md","api-clients/ios/docs/Contact360ViewDto.md","api-clients/ios/docs/ContactDetailResponseDto.md","api-clients/ios/docs/ContactDto.md","api-clients/ios/docs/ContactEventDto.md","api-clients/ios/docs/ContactListResponseDto.md","api-clients/ios/docs/ContactProfileDto.md","api-clients/ios/docs/ContactStatsDto.md","api-clients/ios/docs/ContactTagDto.md","api-clients/ios/docs/ContactsAPI.md","api-clients/ios/docs/ConversationSummaryDto.md","api-clients/ios/docs/CreateContactDto.md","api-clients/ios/docs/CreateContactEventDto.md","api-clients/ios/docs/CreateKnowledgeBaseDto.md","api-clients/ios/docs/CreateKnowledgeDocumentDto.md","api-clients/ios/docs/CreateQwenModelDto.md","api-clients/ios/docs/DefaultAPI.md","api-clients/ios/docs/EmbeddingConfigDto.md","api-clients/ios/docs/EmbeddingModelDto.md","api-clients/ios/docs/GenerationConfigDto.md","api-clients/ios/docs/HealthAPI.md","api-clients/ios/docs/KnowledgeAPI.md","api-clients/ios/docs/KnowledgeBaseResponseDto.md","api-clients/ios/docs/KnowledgeDocumentListResponseDto.md","api-clients/ios/docs/KnowledgeDocumentResponseDto.md","api-clients/ios/docs/LoginDto.md","api-clients/ios/docs/MatchContactDto.md","api-clients/ios/docs/MatchContactResponseDto.md","api-clients/ios/docs/MobileCompatAPI.md","api-clients/ios/docs/PinyinAPI.md","api-clients/ios/docs/PipelineHealthDto.md","api-clients/ios/docs/PipelineMetricsDto.md","api-clients/ios/docs/PreviewChunkingDto.md","api-clients/ios/docs/QwenModelConfigDto.md","api-clients/ios/docs/QwenModelFeaturesDto.md","api-clients/ios/docs/RagAPI.md","api-clients/ios/docs/RagConfigDto.md","api-clients/ios/docs/RagMetricsDto.md","api-clients/ios/docs/RagPipelineStatusDto.md","api-clients/ios/docs/RagQueryDto.md","api-clients/ios/docs/RebuildIndexDto.md","api-clients/ios/docs/RefreshTokenDto.md","api-clients/ios/docs/RetrievalConfigDto.md","api-clients/ios/docs/SettingsAPI.md","api-clients/ios/docs/SyncContactsDto.md","api-clients/ios/docs/SyncContactsResponseDto.md","api-clients/ios/docs/TeamsAPI.md","api-clients/ios/docs/ToggleQwenModelDto.md","api-clients/ios/docs/UpdateContactDto.md","api-clients/ios/docs/UpdateKnowledgeBaseDto.md","api-clients/ios/docs/UpdateKnowledgeDocumentDto.md","api-clients/ios/docs/UpdateQwenModelDto.md","api-clients/ios/docs/UpdateRagConfigDto.md","api-clients/ios/docs/UsageAPI.md","api-clients/ios/docs/WeatherAPI.md","api-clients/ios/git_push.sh","api-clients/ios/project.yml","app/build.gradle.kts","app/proguard-rules-release.pro","app/proguard-rules.pro","app/src/androidTest/java/com/haizhan/ime/ComposeUiTest.kt","app/src/androidTest/java/com/haizhan/ime/ExampleInstrumentedTest.kt","app/src/androidTest/java/com/haizhan/ime/e2e/SmokeE2ETest.kt","app/src/androidTest/java/com/haizhan/ime/integration/ImeIntegrationTest.kt","app/src/main/AndroidManifest.xml","app/src/main/assets/dictionaries/stroke-data.txt","app/src/main/assets/handwriting_labels.txt","app/src/main/assets/handwriting_labels_casia.txt","app/src/main/assets/handwriting_labels_clean.txt","app/src/main/assets/handwriting_labels_jp.txt","app/src/main/assets/paddle_models/handwriting_labels.txt","app/src/main/assets/paddle_models/ppocr_keys_v1.txt","app/src/main/assets/temp_clean.txt","app/src/main/assets/temp_labels.txt","app/src/main/java/com/haizhan/ime/HaizhanApplication.kt","app/src/main/java/com/haizhan/ime/about/ui/AboutScreen.kt","app/src/main/java/com/haizhan/ime/chat/model/Message.kt","app/src/main/java/com/haizhan/ime/chat/service/WebSocketService.kt","app/src/main/java/com/haizhan/ime/chat/ui/ChatMessageCard.kt","app/src/main/java/com/haizhan/ime/chat/ui/ChatScreen.kt","app/src/main/java/com/haizhan/ime/chat/ui/GroupChatScreen.kt","app/src/main/java/com/haizhan/ime/feedback/ui/FeedbackScreen.kt","app/src/main/java/com/haizhan/ime/help/ui/HelpCenterScreen.kt","app/src/main/java/com/haizhan/ime/note/model/Note.kt","app/src/main/java/com/haizhan/ime/note/service/NoteService.kt","app/src/main/java/com/haizhan/ime/note/ui/NoteEditorScreen.kt","app/src/main/java/com/haizhan/ime/note/ui/NoteListScreen.kt","app/src/main/java/com/haizhan/ime/profile/model/Profile.kt","app/src/main/java/com/haizhan/ime/profile/ui/ProfileScreen.kt","app/src/main/java/com/haizhan/ime/receiver/BootReceiver.kt","app/src/main/java/com/haizhan/ime/search/model/Search.kt","app/src/main/java/com/haizhan/ime/search/service/SearchService.kt","app/src/main/java/com/haizhan/ime/search/ui/GlobalSearchScreen.kt","app/src/main/java/com/haizhan/ime/security/EncryptionManager.kt","app/src/main/java/com/haizhan/ime/security/NetworkSecurityManager.kt","app/src/main/java/com/haizhan/ime/security/PrivacyComplianceManager.kt","app/src/main/java/com/haizhan/ime/security/SecurityAuditor.kt","app/src/main/java/com/haizhan/ime/service/AiProcessingService.kt","app/src/main/java/com/haizhan/ime/service/ContextCollector.kt","app/src/main/java/com/haizhan/ime/service/DataSyncService.kt","app/src/main/java/com/haizhan/ime/service/HaizhanInputMethodService.kt","app/src/main/java/com/haizhan/ime/service/InputTypeAnalysis.kt","app/src/main/java/com/haizhan/ime/service/KeyboardContentView.kt","app/src/main/java/com/haizhan/ime/service/OcrCaptureService.kt","app/src/main/java/com/haizhan/ime/service/VoiceInputDelegate.kt","app/src/main/java/com/haizhan/ime/session/model/Session.kt","app/src/main/java/com/haizhan/ime/session/service/SessionService.kt","app/src/main/java/com/haizhan/ime/session/ui/MessageCenterScreen.kt","app/src/main/java/com/haizhan/ime/session/ui/SessionCard.kt","app/src/main/java/com/haizhan/ime/session/ui/SessionListScreen.kt","app/src/main/java/com/haizhan/ime/stability/AnrWatchdog.kt","app/src/main/java/com/haizhan/ime/stability/CrashHandler.kt","app/src/main/java/com/haizhan/ime/stability/MemoryLeakDetector.kt","app/src/main/java/com/haizhan/ime/stability/StabilityManager.kt","app/src/main/java/com/haizhan/ime/statistics/model/Statistics.kt","app/src/main/java/com/haizhan/ime/statistics/ui/ChartComponents.kt","app/src/main/java/com/haizhan/ime/statistics/ui/StatisticsScreen.kt","app/src/main/java/com/haizhan/ime/subscription/model/Subscription.kt","app/src/main/java/com/haizhan/ime/subscription/service/SubscriptionService.kt","app/src/main/java/com/haizhan/ime/subscription/ui/SubscriptionScreen.kt","app/src/main/java/com/haizhan/ime/sync/ContactSyncTaskAdapter.kt","app/src/main/java/com/haizhan/ime/sync/KnowledgeSyncTaskAdapter.kt","app/src/main/java/com/haizhan/ime/sync/SyncContracts.kt","app/src/main/java/com/haizhan/ime/sync/SyncCoordinator.kt","app/src/main/java/com/haizhan/ime/sync/SyncScheduler.kt","app/src/main/java/com/haizhan/ime/team/model/Team.kt","app/src/main/java/com/haizhan/ime/team/service/TeamService.kt","app/src/main/java/com/haizhan/ime/team/ui/TeamScreen.kt","app/src/main/java/com/haizhan/ime/template/data/B2BTemplates.kt","app/src/main/java/com/haizhan/ime/template/data/ClosingTemplates.kt","app/src/main/java/com/haizhan/ime/template/data/CoreSalesTemplates.kt","app/src/main/java/com/haizhan/ime/template/data/DailyTemplates.kt","app/src/main/java/com/haizhan/ime/template/data/DefaultTemplates.kt","app/src/main/java/com/haizhan/ime/template/data/FollowUpTemplates.kt","app/src/main/java/com/haizhan/ime/template/data/QuickPhraseDefaults.kt","app/src/main/java/com/haizhan/ime/template/data/SeasonalTemplates.kt","app/src/main/java/com/haizhan/ime/template/data/TemplateDatabase.kt","app/src/main/java/com/haizhan/ime/template/data/TemplateImporter.kt","app/src/main/java/com/haizhan/ime/template/data/TemplateRepository.kt","app/src/main/java/com/haizhan/ime/template/di/TemplateModule.kt","app/src/main/java/com/haizhan/ime/template/model/Template.kt","app/src/main/java/com/haizhan/ime/template/service/TemplateService.kt","app/src/main/java/com/haizhan/ime/template/ui/FolderManagementDialog.kt","app/src/main/java/com/haizhan/ime/template/ui/TemplateListScreen.kt","app/src/main/java/com/haizhan/ime/template/ui/TemplateViewModel.kt","app/src/main/java/com/haizhan/ime/ui/MainActivity.kt","app/src/main/java/com/haizhan/ime/ui/management/DictionaryImportActivity.kt","app/src/main/java/com/haizhan/ime/ui/management/DictionaryImportScreen.kt","app/src/main/java/com/haizhan/ime/ui/management/DictionaryImportViewModel.kt","app/src/main/java/com/haizhan/ime/ui/management/DictionaryScreen.kt","app/src/main/java/com/haizhan/ime/ui/management/ManagementActivity.kt","app/src/main/java/com/haizhan/ime/ui/management/ManagementViewModel.kt","app/src/main/java/com/haizhan/ime/ui/management/PermissionScreen.kt","app/src/main/java/com/haizhan/ime/ui/management/SettingsScreen.kt","app/src/main/java/com/haizhan/ime/ui/permission/ScreenshotPermissionActivity.kt","app/src/main/java/com/haizhan/ime/ui/settings/ImeSettingsActivity.kt","app/src/main/java/com/haizhan/ime/ui/settings/SettingsViewModel.kt","app/src/main/java/com/haizhan/ime/ui/theme/Theme.kt","app/src/main/java/com/haizhan/ime/ui/theme/Type.kt","app/src/main/java/com/haizhan/ime/ux/AccessibilityHelper.kt","app/src/main/java/com/haizhan/ime/ux/AnimationUtils.kt","app/src/main/java/com/haizhan/ime/ux/ErrorHandler.kt","app/src/main/java/com/haizhan/ime/ux/OnboardingScreen.kt","app/src/main/java/com/haizhan/ime/ux/StartupOptimizer.kt","app/src/main/java/com/haizhan/ime/voice/service/VoiceService.kt","app/src/main/java/com/haizhan/ime/voice/ui/VoiceInputScreen.kt","app/src/main/res/drawable/ic_launcher_background.xml","app/src/main/res/drawable/ic_launcher_foreground.xml","app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml","app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml","app/src/main/res/values-night/colors.xml","app/src/main/res/values/colors.xml","app/src/main/res/values/strings.xml","app/src/main/res/values/themes.xml","app/src/main/res/xml/backup_rules.xml","app/src/main/res/xml/data_extraction_rules.xml","app/src/main/res/xml/file_paths.xml","app/src/main/res/xml/method.xml","app/src/main/res/xml/network_security_config.xml","app/src/test/java/com/haizhan/ime/ExampleUnitTest.kt","app/src/test/java/com/haizhan/ime/app/service/NotificationServiceTest.kt","app/src/test/java/com/haizhan/ime/app/service/SearchServiceTest.kt","app/src/test/java/com/haizhan/ime/app/service/SessionServiceTest.kt","app/src/test/java/com/haizhan/ime/app/service/SyncServiceTest.kt","app/src/test/java/com/haizhan/ime/app/service/WebSocketServiceTest.kt","app/src/test/java/com/haizhan/ime/benchmark/PerformanceBenchmarkTest.kt","app/src/test/java/com/haizhan/ime/security/EncryptionManagerTest.kt","app/src/test/java/com/haizhan/ime/security/PrivacyComplianceManagerTest.kt","app/src/test/java/com/haizhan/ime/security/SecurityAuditorTest.kt","app/src/test/java/com/haizhan/ime/service/HaizhanInputMethodServiceTest.kt","app/src/test/java/com/haizhan/ime/services/AiProcessingServiceTest.kt","app/src/test/java/com/haizhan/ime/services/NoteServiceTest.kt","app/src/test/java/com/haizhan/ime/services/OcrCaptureServiceTest.kt","app/src/test/java/com/haizhan/ime/services/SubscriptionServiceTest.kt","app/src/test/java/com/haizhan/ime/services/TeamServiceTest.kt","app/src/test/java/com/haizhan/ime/services/TemplateServiceTest.kt","app/src/test/java/com/haizhan/ime/services/VoiceServiceTest.kt","app/src/test/java/com/haizhan/ime/ui/management/ManagementViewModelTest.kt","app/src/test/java/com/haizhan/ime/ui/settings/SettingsViewModelTest.kt","app/src/test/java/com/haizhan/ime/ux/ErrorHandlerTest.kt","app/src/test/java/com/haizhan/ime/ux/StartupOptimizerTest.kt","app/src/test/java/com/haizhan/ime/viewmodel/DictionaryImportViewModelTest.kt","app/src/test/java/com/haizhan/ime/viewmodel/TemplateViewModelTest.kt","build.gradle.kts","common/build.gradle.kts","common/consumer-rules.pro","common/proguard-rules.pro","common/src/main/AndroidManifest.xml","common/src/main/java/com/haizhan/ime/common/ext/ContextExt.kt","common/src/main/java/com/haizhan/ime/common/ext/FlowExt.kt","common/src/main/java/com/haizhan/ime/common/ext/StringExt.kt","common/src/main/java/com/haizhan/ime/common/performance/ImePerformanceTracker.kt","common/src/main/java/com/haizhan/ime/common/theme/DesignTokens.kt","common/src/main/java/com/haizhan/ime/common/theme/KeyboardTheme.kt","common/src/main/java/com/haizhan/ime/common/util/DeviceUtils.kt","common/src/main/java/com/haizhan/ime/common/util/Logger.kt","common/src/main/java/com/haizhan/ime/common/util/LruCache.kt","common/src/main/java/com/haizhan/ime/common/util/MemoryMonitor.kt","common/src/test/java/com/haizhan/ime/common/StringExtTest.kt","common/src/test/java/com/haizhan/ime/common/ext/ResultTest.kt","common/src/test/java/com/haizhan/ime/common/util/DateUtilsTest.kt","common/src/test/java/com/haizhan/ime/common/util/LoggerTest.kt","common/src/test/java/com/haizhan/ime/common/util/MemoryStatsTest.kt","common/src/test/java/com/haizhan/ime/common/util/PinyinUtilsTest.kt","common/src/test/java/com/haizhan/ime/common/util/TextUtilsTest.kt","config/detekt/detekt.yml","data/build.gradle.kts","data/consumer-rules.pro","data/dictionaries/dictionary.config.json","data/dictionaries/fallback-words.txt","data/dictionaries/sensitive-words.txt","data/dictionaries/system/char-single.txt","data/dictionaries/system/core-char.txt","data/dictionaries/system/core-phrase.txt","data/dictionaries/system/core-word2.txt","data/dictionaries/system/core-word3.txt","data/dictionaries/system/core-word4.txt","data/dictionaries/system/idiom.txt","data/dictionaries/system/name-place.txt","data/dictionaries/system/word-common.txt","data/proguard-rules.pro","data/schemas/com.haizhan.ime.data.local.database.HaizhanDatabase/1.json","data/schemas/com.haizhan.ime.data.local.database.HaizhanDatabase/2.json","data/schemas/com.haizhan.ime.data.local.database.HaizhanDatabase/3.json","data/schemas/com.haizhan.ime.data.local.database.HaizhanDatabase/4.json","data/src/main/AndroidManifest.xml","data/src/main/java/com/haizhan/ime/data/auth/AuthInterceptor.kt","data/src/main/java/com/haizhan/ime/data/auth/AuthManager.kt","data/src/main/java/com/haizhan/ime/data/di/DataModule.kt","data/src/main/java/com/haizhan/ime/data/di/DatabaseModule.kt","data/src/main/java/com/haizhan/ime/data/di/NetworkModule.kt","data/src/main/java/com/haizhan/ime/data/di/RepositoryModule.kt","data/src/main/java/com/haizhan/ime/data/local/dao/ContactDao.kt","data/src/main/java/com/haizhan/ime/data/local/dao/KnowledgeDao.kt","data/src/main/java/com/haizhan/ime/data/local/dao/MessageDao.kt","data/src/main/java/com/haizhan/ime/data/local/dao/NoteDao.kt","data/src/main/java/com/haizhan/ime/data/local/dao/SearchDao.kt","data/src/main/java/com/haizhan/ime/data/local/dao/UserDictDao.kt","data/src/main/java/com/haizhan/ime/data/local/database/Converters.kt","data/src/main/java/com/haizhan/ime/data/local/database/HaizhanDatabase.kt","data/src/main/java/com/haizhan/ime/data/local/database/SecureDatabaseFactory.kt","data/src/main/java/com/haizhan/ime/data/local/entity/ContactEntity.kt","data/src/main/java/com/haizhan/ime/data/local/entity/KnowledgeEntity.kt","data/src/main/java/com/haizhan/ime/data/local/entity/MessageEntity.kt","data/src/main/java/com/haizhan/ime/data/local/entity/NoteEntity.kt","data/src/main/java/com/haizhan/ime/data/local/entity/SearchEntity.kt","data/src/main/java/com/haizhan/ime/data/local/entity/UserDictEntity.kt","data/src/main/java/com/haizhan/ime/data/remote/adapter/FlexibleTimestampAdapter.kt","data/src/main/java/com/haizhan/ime/data/remote/aliyun/AliyunSearchClient.kt","data/src/main/java/com/haizhan/ime/data/remote/aliyun/AliyunSearchConfig.kt","data/src/main/java/com/haizhan/ime/data/remote/aliyun/AliyunSearchConfigProvider.kt","data/src/main/java/com/haizhan/ime/data/remote/api/AuthApi.kt","data/src/main/java/com/haizhan/ime/data/remote/api/ContactApi.kt","data/src/main/java/com/haizhan/ime/data/remote/api/HaizhanApi.kt","data/src/main/java/com/haizhan/ime/data/remote/api/PinyinApi.kt","data/src/main/java/com/haizhan/ime/data/remote/api/RagSearchApi.kt","data/src/main/java/com/haizhan/ime/data/remote/api/ReplyApi.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/AiDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/AuthDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/CommonDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/ContactDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/KnowledgeDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/MemoryDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/MessageDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/NoteDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/ProfileDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/RagSearchDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/SearchDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/TeamDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/WeatherDto.kt","data/src/main/java/com/haizhan/ime/data/repository/ContactRepository.kt","data/src/main/java/com/haizhan/ime/data/repository/KnowledgeRepository.kt","data/src/main/java/com/haizhan/ime/data/repository/MessageRepository.kt","data/src/main/java/com/haizhan/ime/data/repository/RagSearchRepository.kt","data/src/main/java/com/haizhan/ime/data/repository/SettingsRepository.kt","data/src/main/java/com/haizhan/ime/data/repository/mapper/ContactMapper.kt","data/src/main/java/com/haizhan/ime/data/repository/mapper/KnowledgeMapper.kt","data/src/main/java/com/haizhan/ime/data/repository/mapper/MessageMapper.kt","data/src/main/java/com/haizhan/ime/data/repository/model/Contact.kt","data/src/main/java/com/haizhan/ime/data/repository/model/Knowledge.kt","data/src/main/java/com/haizhan/ime/data/repository/model/Message.kt","data/src/test/java/com/haizhan/ime/data/auth/AuthInterceptorTest.kt","data/src/test/java/com/haizhan/ime/data/auth/AuthManagerTest.kt","data/src/test/java/com/haizhan/ime/data/auth/AuthTypesTest.kt","data/src/test/java/com/haizhan/ime/data/local/dao/ContactDaoTest.kt","data/src/test/java/com/haizhan/ime/data/local/dao/KnowledgeDaoTest.kt","data/src/test/java/com/haizhan/ime/data/local/dao/MessageDaoTest.kt","data/src/test/java/com/haizhan/ime/data/local/dao/NoteDaoTest.kt","data/src/test/java/com/haizhan/ime/data/local/dao/SearchDaoTest.kt","data/src/test/java/com/haizhan/ime/data/local/dao/UserDictDaoTest.kt","data/src/test/java/com/haizhan/ime/data/local/dao/UserPreferencesDaoTest.kt","data/src/test/java/com/haizhan/ime/data/remote/api/HaizhanApiTest.kt","data/src/test/java/com/haizhan/ime/data/remote/dto/ContactDtoTest.kt","data/src/test/java/com/haizhan/ime/data/repository/ContactRepositoryTest.kt","data/src/test/java/com/haizhan/ime/data/repository/KnowledgeRepositoryTest.kt","data/src/test/java/com/haizhan/ime/data/repository/MessageRepositoryTest.kt","data/src/test/java/com/haizhan/ime/data/repository/SettingsRepositoryTest.kt","data/src/test/java/com/haizhan/ime/data/repository/mapper/ContactMapperTest.kt","data/src/test/java/com/haizhan/ime/data/repository/mapper/KnowledgeMapperTest.kt","data/src/test/java/com/haizhan/ime/data/repository/mapper/MessageMapperTest.kt","designs/exports/CLAUDE_CODE_DESIGN_GUIDE.md","designs/exports/DESIGN_MANIFEST.md","designs/exports/svg/Frame.svg","designs/exports/svg/P2-关于.svg","designs/exports/svg/P2-协议条款.svg","designs/exports/svg/P2-帮助中心.svg","designs/exports/svg/P2-意见反馈.svg","designs/exports/svg/P2-版本更新.svg","designs/exports/svg/__设计系统_-_组件库.svg","designs/exports/svg/功能面板_-_OCR识别.svg","designs/exports/svg/功能面板_-_历史.svg","designs/exports/svg/功能面板_-_团队.svg","designs/exports/svg/功能面板_-_知识库.svg","designs/exports/svg/功能面板_-_笔记.svg","designs/exports/svg/功能面板_-_联系人.svg","designs/exports/svg/嗨赞AI助手_-_AI回复选择.svg","designs/exports/svg/嗨赞AI助手_-_OCR结果确认.svg","designs/exports/svg/嗨赞AI助手_-_个人中心.svg","designs/exports/svg/嗨赞AI助手_-_主应用首页.svg","designs/exports/svg/嗨赞AI助手_-_主键盘界面.svg","designs/exports/svg/嗨赞AI助手_-_主键盘界面__深色_.svg","designs/exports/svg/嗨赞AI助手_-_交互式笔记.svg","designs/exports/svg/嗨赞AI助手_-_会员订阅.svg","designs/exports/svg/嗨赞AI助手_-_会话列表.svg","designs/exports/svg/嗨赞AI助手_-_单聊IM.svg","designs/exports/svg/嗨赞AI助手_-_历史记录页面.svg","designs/exports/svg/嗨赞AI助手_-_引导页1.svg","designs/exports/svg/嗨赞AI助手_-_引导页2.svg","designs/exports/svg/嗨赞AI助手_-_引导页3.svg","designs/exports/svg/嗨赞AI助手_-_忘记密码.svg","designs/exports/svg/嗨赞AI助手_-_我的页面.svg","designs/exports/svg/嗨赞AI助手_-_搜索.svg","designs/exports/svg/嗨赞AI助手_-_数据统计.svg","designs/exports/svg/嗨赞AI助手_-_新建联系人.svg","designs/exports/svg/嗨赞AI助手_-_注册页面.svg","designs/exports/svg/嗨赞AI助手_-_消息中心.svg","designs/exports/svg/嗨赞AI助手_-_登录页面.svg","designs/exports/svg/嗨赞AI助手_-_知识库列表.svg","designs/exports/svg/嗨赞AI助手_-_知识库详情.svg","designs/exports/svg/嗨赞AI助手_-_编辑个人信息.svg","designs/exports/svg/嗨赞AI助手_-_群聊IM.svg","designs/exports/svg/嗨赞AI助手_-_联系人列表.svg","designs/exports/svg/嗨赞AI助手_-_联系人详情.svg","designs/exports/svg/嗨赞AI助手_-_设置.svg","designs/exports/svg/嗨赞AI助手_-_设置页面.svg","designs/exports/svg/嗨赞AI助手_-_话术模板.svg","designs/exports/svg/嗨赞AI助手_-_话术模板详情.svg","designs/exports/svg/微交互规范文档.svg","designs/exports/svg/组件_-_悬浮球状态.svg","designs/exports/svg/组件_-_拼音候选词展开.svg","designs/exports/svg/组件_-_空状态.svg","designs/exports/svg/组件_-_语音输入状态.svg","designs/exports/svg/组件_-_错误状态.svg","designs/mobile-keyboard-design.md","designs/specs/COMPONENT_SPEC.md","designs/specs/KEYBOARD_DESIGN_SPEC.md","designs/specs/README.md","designs/specs/design-tokens.json","designs/templates/android/DesignTokens.kt","designs/templates/android/KeyboardTheme.kt","designs/templates/ios/DesignTokens.swift","designs/templates/ios/KeyboardTheme.swift","designs/嗨赞输入法.pen","docs/ANDROID_DEVELOPMENT.md","docs/API.md","docs/ARCHITECTURE.md","docs/BACKEND_API_REQUIREMENTS.md","docs/BACKEND_DESIGN.md","docs/CI_CD_PIPELINE.md","docs/CODING_STANDARDS.md","docs/COMPLETE_FEATURE_SPEC.md","docs/DATABASE.md","docs/DEPLOYMENT.md","docs/DESIGN_TO_DEV_SPEC.md","docs/DEVELOPMENT_GUIDE.md","docs/DEVELOPMENT_PLAN.md","docs/DOCS_SYNC.md","docs/ERROR_HANDLING.md","docs/FEATURE_ANALYSIS.md","docs/FLUTTER_DEVELOPMENT.md","docs/FRONTEND_DEV_REQUIREMENTS.md","docs/HANDWRITING_MODEL_UPGRADE.md","docs/IOS_DEVELOPMENT.md","docs/KMP_DEVELOPMENT.md","docs/LOGGING_STANDARDS.md","docs/MILESTONES.md","docs/MODULE_ANALYSIS.md","docs/MODULE_LIST.md","docs/PERFORMANCE_OPTIMIZATION.md","docs/PNPM_MIGRATION_NOTICE.md","docs/PRD.md","docs/PRIVACY_POLICY.md","docs/PRODUCT_ARCHITECTURE.md","docs/Phase_11_12_Final_Report.md","docs/RELEASE_CHECKLIST.md","docs/SECURITY_AUDIT.md","docs/SECURITY_GUIDELINES.md","docs/STORE_LISTING.md","docs/SYSTEM_ARCHITECTURE.md","docs/TASKS.md","docs/TECH_STACK.md","docs/TESTING_STRATEGY.md","docs/USER_MANUAL.md","docs/VOICE_API_DOCUMENTATION.md","docs/VOICE_MODULE_MIGRATION.md","docs/openapi.json","docs/skills/anthropic-official/.claude-plugin/marketplace.json","docs/skills/anthropic-official/.gitignore","docs/skills/anthropic-official/README.md","docs/skills/anthropic-official/THIRD_PARTY_NOTICES.md","docs/skills/anthropic-official/skills/algorithmic-art/LICENSE.txt","docs/skills/anthropic-official/skills/algorithmic-art/SKILL.md","docs/skills/anthropic-official/skills/algorithmic-art/templates/generator_template.js","docs/skills/anthropic-official/skills/algorithmic-art/templates/viewer.html","docs/skills/anthropic-official/skills/brand-guidelines/LICENSE.txt","docs/skills/anthropic-official/skills/brand-guidelines/SKILL.md","docs/skills/anthropic-official/skills/canvas-design/LICENSE.txt","docs/skills/anthropic-official/skills/canvas-design/SKILL.md","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/BigShoulders-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/BigShoulders-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Boldonse-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Boldonse-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/DMMono-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/DMMono-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/EricaOne-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/EricaOne-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/GeistMono-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/GeistMono-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/GeistMono-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Gloock-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Gloock-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Italiana-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Italiana-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Jura-Light.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Jura-Medium.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Jura-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Lora-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Lora-Italic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Lora-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Lora-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/NationalPark-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/NationalPark-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/NationalPark-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Outfit-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Outfit-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Outfit-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/PixelifySans-Medium.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/PoiretOne-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/PoiretOne-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/RedHatMono-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/RedHatMono-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Silkscreen-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/SmoochSans-Medium.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Tektur-Medium.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Tektur-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Tektur-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/WorkSans-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/WorkSans-Italic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/WorkSans-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/WorkSans-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf","docs/skills/anthropic-official/skills/doc-coauthoring/SKILL.md","docs/skills/anthropic-official/skills/docx/LICENSE.txt","docs/skills/anthropic-official/skills/docx/SKILL.md","docs/skills/anthropic-official/skills/docx/docx-js.md","docs/skills/anthropic-official/skills/docx/ooxml.md","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/mce/mc.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/microsoft/wml-2010.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/microsoft/wml-2012.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/microsoft/wml-2018.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd","docs/skills/anthropic-official/skills/docx/ooxml/scripts/pack.py","docs/skills/anthropic-official/skills/docx/ooxml/scripts/unpack.py","docs/skills/anthropic-official/skills/docx/ooxml/scripts/validate.py","docs/skills/anthropic-official/skills/docx/ooxml/scripts/validation/__init__.py","docs/skills/anthropic-official/skills/docx/ooxml/scripts/validation/base.py","docs/skills/anthropic-official/skills/docx/ooxml/scripts/validation/docx.py","docs/skills/anthropic-official/skills/docx/ooxml/scripts/validation/pptx.py","docs/skills/anthropic-official/skills/docx/ooxml/scripts/validation/redlining.py","docs/skills/anthropic-official/skills/docx/scripts/__init__.py","docs/skills/anthropic-official/skills/docx/scripts/document.py","docs/skills/anthropic-official/skills/docx/scripts/templates/comments.xml","docs/skills/anthropic-official/skills/docx/scripts/templates/commentsExtended.xml","docs/skills/anthropic-official/skills/docx/scripts/templates/commentsExtensible.xml","docs/skills/anthropic-official/skills/docx/scripts/templates/commentsIds.xml","docs/skills/anthropic-official/skills/docx/scripts/templates/people.xml","docs/skills/anthropic-official/skills/docx/scripts/utilities.py","docs/skills/anthropic-official/skills/frontend-design/LICENSE.txt","docs/skills/anthropic-official/skills/frontend-design/SKILL.md","docs/skills/anthropic-official/skills/internal-comms/LICENSE.txt","docs/skills/anthropic-official/skills/internal-comms/SKILL.md","docs/skills/anthropic-official/skills/internal-comms/examples/3p-updates.md","docs/skills/anthropic-official/skills/internal-comms/examples/company-newsletter.md","docs/skills/anthropic-official/skills/internal-comms/examples/faq-answers.md","docs/skills/anthropic-official/skills/internal-comms/examples/general-comms.md","docs/skills/anthropic-official/skills/mcp-builder/LICENSE.txt","docs/skills/anthropic-official/skills/mcp-builder/SKILL.md","docs/skills/anthropic-official/skills/mcp-builder/reference/evaluation.md","docs/skills/anthropic-official/skills/mcp-builder/reference/mcp_best_practices.md","docs/skills/anthropic-official/skills/mcp-builder/reference/node_mcp_server.md","docs/skills/anthropic-official/skills/mcp-builder/reference/python_mcp_server.md","docs/skills/anthropic-official/skills/mcp-builder/scripts/connections.py","docs/skills/anthropic-official/skills/mcp-builder/scripts/evaluation.py","docs/skills/anthropic-official/skills/mcp-builder/scripts/example_evaluation.xml","docs/skills/anthropic-official/skills/mcp-builder/scripts/requirements.txt","docs/skills/anthropic-official/skills/pdf/LICENSE.txt","docs/skills/anthropic-official/skills/pdf/SKILL.md","docs/skills/anthropic-official/skills/pdf/forms.md","docs/skills/anthropic-official/skills/pdf/reference.md","docs/skills/anthropic-official/skills/pdf/scripts/check_bounding_boxes.py","docs/skills/anthropic-official/skills/pdf/scripts/check_bounding_boxes_test.py","docs/skills/anthropic-official/skills/pdf/scripts/check_fillable_fields.py","docs/skills/anthropic-official/skills/pdf/scripts/convert_pdf_to_images.py","docs/skills/anthropic-official/skills/pdf/scripts/create_validation_image.py","docs/skills/anthropic-official/skills/pdf/scripts/extract_form_field_info.py","docs/skills/anthropic-official/skills/pdf/scripts/fill_fillable_fields.py","docs/skills/anthropic-official/skills/pdf/scripts/fill_pdf_form_with_annotations.py","docs/skills/anthropic-official/skills/pptx/LICENSE.txt","docs/skills/anthropic-official/skills/pptx/SKILL.md","docs/skills/anthropic-official/skills/pptx/html2pptx.md","docs/skills/anthropic-official/skills/pptx/ooxml.md","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/mce/mc.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/scripts/pack.py","docs/skills/anthropic-official/skills/pptx/ooxml/scripts/unpack.py","docs/skills/anthropic-official/skills/pptx/ooxml/scripts/validate.py","docs/skills/anthropic-official/skills/pptx/ooxml/scripts/validation/__init__.py","docs/skills/anthropic-official/skills/pptx/ooxml/scripts/validation/base.py","docs/skills/anthropic-official/skills/pptx/ooxml/scripts/validation/docx.py","docs/skills/anthropic-official/skills/pptx/ooxml/scripts/validation/pptx.py","docs/skills/anthropic-official/skills/pptx/ooxml/scripts/validation/redlining.py","docs/skills/anthropic-official/skills/pptx/scripts/html2pptx.js","docs/skills/anthropic-official/skills/pptx/scripts/inventory.py","docs/skills/anthropic-official/skills/pptx/scripts/rearrange.py","docs/skills/anthropic-official/skills/pptx/scripts/replace.py","docs/skills/anthropic-official/skills/pptx/scripts/thumbnail.py","docs/skills/anthropic-official/skills/skill-creator/LICENSE.txt","docs/skills/anthropic-official/skills/skill-creator/SKILL.md","docs/skills/anthropic-official/skills/skill-creator/references/output-patterns.md","docs/skills/anthropic-official/skills/skill-creator/references/workflows.md","docs/skills/anthropic-official/skills/skill-creator/scripts/init_skill.py","docs/skills/anthropic-official/skills/skill-creator/scripts/package_skill.py","docs/skills/anthropic-official/skills/skill-creator/scripts/quick_validate.py","docs/skills/anthropic-official/skills/slack-gif-creator/LICENSE.txt","docs/skills/anthropic-official/skills/slack-gif-creator/SKILL.md","docs/skills/anthropic-official/skills/slack-gif-creator/core/easing.py","docs/skills/anthropic-official/skills/slack-gif-creator/core/frame_composer.py","docs/skills/anthropic-official/skills/slack-gif-creator/core/gif_builder.py","docs/skills/anthropic-official/skills/slack-gif-creator/core/validators.py","docs/skills/anthropic-official/skills/slack-gif-creator/requirements.txt","docs/skills/anthropic-official/skills/theme-factory/LICENSE.txt","docs/skills/anthropic-official/skills/theme-factory/SKILL.md","docs/skills/anthropic-official/skills/theme-factory/theme-showcase.pdf","docs/skills/anthropic-official/skills/theme-factory/themes/arctic-frost.md","docs/skills/anthropic-official/skills/theme-factory/themes/botanical-garden.md","docs/skills/anthropic-official/skills/theme-factory/themes/desert-rose.md","docs/skills/anthropic-official/skills/theme-factory/themes/forest-canopy.md","docs/skills/anthropic-official/skills/theme-factory/themes/golden-hour.md","docs/skills/anthropic-official/skills/theme-factory/themes/midnight-galaxy.md","docs/skills/anthropic-official/skills/theme-factory/themes/modern-minimalist.md","docs/skills/anthropic-official/skills/theme-factory/themes/ocean-depths.md","docs/skills/anthropic-official/skills/theme-factory/themes/sunset-boulevard.md","docs/skills/anthropic-official/skills/theme-factory/themes/tech-innovation.md","docs/skills/anthropic-official/skills/web-artifacts-builder/LICENSE.txt","docs/skills/anthropic-official/skills/web-artifacts-builder/SKILL.md","docs/skills/anthropic-official/skills/web-artifacts-builder/scripts/bundle-artifact.sh","docs/skills/anthropic-official/skills/web-artifacts-builder/scripts/init-artifact.sh","docs/skills/anthropic-official/skills/web-artifacts-builder/scripts/shadcn-components.tar.gz","docs/skills/anthropic-official/skills/webapp-testing/LICENSE.txt","docs/skills/anthropic-official/skills/webapp-testing/SKILL.md","docs/skills/anthropic-official/skills/webapp-testing/examples/console_logging.py","docs/skills/anthropic-official/skills/webapp-testing/examples/element_discovery.py","docs/skills/anthropic-official/skills/webapp-testing/examples/static_html_automation.py","docs/skills/anthropic-official/skills/webapp-testing/scripts/with_server.py","docs/skills/anthropic-official/skills/xlsx/LICENSE.txt","docs/skills/anthropic-official/skills/xlsx/SKILL.md","docs/skills/anthropic-official/skills/xlsx/recalc.py","docs/skills/anthropic-official/spec/agent-skills-spec.md","docs/skills/anthropic-official/template/SKILL.md","docs/skills/awesome-skills/.gitignore","docs/skills/awesome-skills/CONTRIBUTING.md","docs/skills/awesome-skills/README.md","docs/skills/backend-patterns/SKILL.md","docs/skills/clickhouse-io/SKILL.md","docs/skills/coding-standards/SKILL.md","docs/skills/continuous-learning/SKILL.md","docs/skills/continuous-learning/config.json","docs/skills/continuous-learning/evaluate-session.sh","docs/skills/daymade-skills/.claude-plugin/marketplace.json","docs/skills/daymade-skills/.github/ISSUE_TEMPLATE/bug_report.md","docs/skills/daymade-skills/.github/ISSUE_TEMPLATE/feature_request.md","docs/skills/daymade-skills/.github/PULL_REQUEST_TEMPLATE.md","docs/skills/daymade-skills/.gitignore","docs/skills/daymade-skills/AGENTS.md","docs/skills/daymade-skills/CHANGELOG.md","docs/skills/daymade-skills/CLAUDE.md","docs/skills/daymade-skills/CONTRIBUTING.md","docs/skills/daymade-skills/LICENSE","docs/skills/daymade-skills/QUICKSTART.md","docs/skills/daymade-skills/QUICKSTART.zh-CN.md","docs/skills/daymade-skills/README.md","docs/skills/daymade-skills/README.zh-CN.md","docs/skills/daymade-skills/claude-code-history-files-finder/.INTEGRATION_SUMMARY.md","docs/skills/daymade-skills/claude-code-history-files-finder/.security-scan-passed","docs/skills/daymade-skills/claude-code-history-files-finder/SKILL.md","docs/skills/daymade-skills/claude-code-history-files-finder/references/session_file_format.md","docs/skills/daymade-skills/claude-code-history-files-finder/references/workflow_examples.md","docs/skills/daymade-skills/claude-code-history-files-finder/scripts/analyze_sessions.py","docs/skills/daymade-skills/claude-code-history-files-finder/scripts/recover_content.py","docs/skills/daymade-skills/claude-md-progressive-disclosurer/.security-scan-passed","docs/skills/daymade-skills/claude-md-progressive-disclosurer/SKILL.md","docs/skills/daymade-skills/claude-md-progressive-disclosurer/references/progressive_disclosure_principles.md","docs/skills/daymade-skills/cli-demo-generator/SKILL.md","docs/skills/daymade-skills/cli-demo-generator/assets/examples/batch-config.yaml","docs/skills/daymade-skills/cli-demo-generator/assets/templates/basic.tape","docs/skills/daymade-skills/cli-demo-generator/assets/templates/interactive.tape","docs/skills/daymade-skills/cli-demo-generator/references/best_practices.md","docs/skills/daymade-skills/cli-demo-generator/references/vhs_syntax.md","docs/skills/daymade-skills/cli-demo-generator/scripts/auto_generate_demo.py","docs/skills/daymade-skills/cli-demo-generator/scripts/batch_generate.py","docs/skills/daymade-skills/cli-demo-generator/scripts/record_interactive.sh","docs/skills/daymade-skills/cloudflare-troubleshooting/SKILL.md","docs/skills/daymade-skills/cloudflare-troubleshooting/references/api_overview.md","docs/skills/daymade-skills/cloudflare-troubleshooting/references/common_issues.md","docs/skills/daymade-skills/cloudflare-troubleshooting/references/ssl_modes.md","docs/skills/daymade-skills/cloudflare-troubleshooting/scripts/check_cloudflare_config.py","docs/skills/daymade-skills/cloudflare-troubleshooting/scripts/fix_ssl_mode.py","docs/skills/daymade-skills/demos/README.md","docs/skills/daymade-skills/demos/cli-demo-generator/generate-demo.gif","docs/skills/daymade-skills/demos/cli-demo-generator/generate-demo.tape","docs/skills/daymade-skills/demos/generate_all_demos.sh","docs/skills/daymade-skills/demos/github-ops/create-pr.gif","docs/skills/daymade-skills/demos/github-ops/create-pr.tape","docs/skills/daymade-skills/demos/index.html","docs/skills/daymade-skills/demos/llm-icon-finder/find-icons.gif","docs/skills/daymade-skills/demos/llm-icon-finder/find-icons.tape","docs/skills/daymade-skills/demos/markdown-tools/convert-docs.gif","docs/skills/daymade-skills/demos/markdown-tools/convert-docs.tape","docs/skills/daymade-skills/demos/mermaid-tools/extract-diagrams.gif","docs/skills/daymade-skills/demos/mermaid-tools/extract-diagrams.tape","docs/skills/daymade-skills/demos/ppt-creator/create-presentation.gif","docs/skills/daymade-skills/demos/ppt-creator/create-presentation.tape","docs/skills/daymade-skills/demos/repomix-unmixer/extract-repo.gif","docs/skills/daymade-skills/demos/repomix-unmixer/extract-repo.tape","docs/skills/daymade-skills/demos/skill-creator/init-skill.gif","docs/skills/daymade-skills/demos/skill-creator/init-skill.tape","docs/skills/daymade-skills/demos/skill-creator/package-skill.gif","docs/skills/daymade-skills/demos/skill-creator/package-skill.tape","docs/skills/daymade-skills/demos/skill-creator/validate-skill.gif","docs/skills/daymade-skills/demos/skill-creator/validate-skill.tape","docs/skills/daymade-skills/demos/statusline-generator/customize-statusline.gif","docs/skills/daymade-skills/demos/statusline-generator/customize-statusline.tape","docs/skills/daymade-skills/demos/teams-channel-post-writer/write-post.gif","docs/skills/daymade-skills/demos/teams-channel-post-writer/write-post.tape","docs/skills/daymade-skills/demos/ui-designer/extract-design-system.gif","docs/skills/daymade-skills/demos/ui-designer/extract-design-system.tape","docs/skills/daymade-skills/demos/youtube-downloader/download-video.gif","docs/skills/daymade-skills/demos/youtube-downloader/download-video.tape","docs/skills/daymade-skills/docs-cleaner/.security-scan-passed","docs/skills/daymade-skills/docs-cleaner/SKILL.md","docs/skills/daymade-skills/docs-cleaner/references/value_analysis_template.md","docs/skills/daymade-skills/fact-checker/.security-scan-passed","docs/skills/daymade-skills/fact-checker/README.md","docs/skills/daymade-skills/fact-checker/SKILL.md","docs/skills/daymade-skills/github-contributor/.security-scan-passed","docs/skills/daymade-skills/github-contributor/SKILL.md","docs/skills/daymade-skills/github-contributor/references/communication_templates.md","docs/skills/daymade-skills/github-contributor/references/pr_checklist.md","docs/skills/daymade-skills/github-contributor/references/project_evaluation.md","docs/skills/daymade-skills/github-ops/SKILL.md","docs/skills/daymade-skills/github-ops/references/api_reference.md","docs/skills/daymade-skills/github-ops/references/best_practices.md","docs/skills/daymade-skills/github-ops/references/issue_operations.md","docs/skills/daymade-skills/github-ops/references/pr_operations.md","docs/skills/daymade-skills/github-ops/references/workflow_operations.md","docs/skills/daymade-skills/iOS-APP-developer/.security-scan-passed","docs/skills/daymade-skills/iOS-APP-developer/SKILL.md","docs/skills/daymade-skills/iOS-APP-developer/references/camera-avfoundation.md","docs/skills/daymade-skills/iOS-APP-developer/references/swiftui-compatibility.md","docs/skills/daymade-skills/iOS-APP-developer/references/testing-mainactor.md","docs/skills/daymade-skills/iOS-APP-developer/references/xcodegen-full.md","docs/skills/daymade-skills/llm-icon-finder/SKILL.md","docs/skills/daymade-skills/llm-icon-finder/references/developer-info.md","docs/skills/daymade-skills/llm-icon-finder/references/icons-list.md","docs/skills/daymade-skills/macos-cleaner/.security-scan-passed","docs/skills/daymade-skills/macos-cleaner/SKILL.md","docs/skills/daymade-skills/macos-cleaner/references/cleanup_targets.md","docs/skills/daymade-skills/macos-cleaner/references/mole_integration.md","docs/skills/daymade-skills/macos-cleaner/references/safety_rules.md","docs/skills/daymade-skills/macos-cleaner/scripts/analyze_caches.py","docs/skills/daymade-skills/macos-cleaner/scripts/analyze_dev_env.py","docs/skills/daymade-skills/macos-cleaner/scripts/analyze_large_files.py","docs/skills/daymade-skills/macos-cleaner/scripts/cleanup_report.py","docs/skills/daymade-skills/macos-cleaner/scripts/find_app_remnants.py","docs/skills/daymade-skills/macos-cleaner/scripts/safe_delete.py","docs/skills/daymade-skills/markdown-tools/SKILL.md","docs/skills/daymade-skills/markdown-tools/references/conversion-examples.md","docs/skills/daymade-skills/markdown-tools/scripts/convert_path.py","docs/skills/daymade-skills/markdown-tools/scripts/extract_pdf_images.py","docs/skills/daymade-skills/mermaid-tools/SKILL.md","docs/skills/daymade-skills/mermaid-tools/references/setup_and_troubleshooting.md","docs/skills/daymade-skills/mermaid-tools/scripts/extract-and-generate.sh","docs/skills/daymade-skills/mermaid-tools/scripts/extract_diagrams.py","docs/skills/daymade-skills/mermaid-tools/scripts/puppeteer-config.json","docs/skills/daymade-skills/pdf-creator/.security-scan-passed","docs/skills/daymade-skills/pdf-creator/SKILL.md","docs/skills/daymade-skills/pdf-creator/scripts/batch_convert.py","docs/skills/daymade-skills/pdf-creator/scripts/md_to_pdf.py","docs/skills/daymade-skills/ppt-creator/SKILL.md","docs/skills/daymade-skills/ppt-creator/references/CHECKLIST.md","docs/skills/daymade-skills/ppt-creator/references/EXAMPLES.md","docs/skills/daymade-skills/ppt-creator/references/INTAKE.md","docs/skills/daymade-skills/ppt-creator/references/ORCHESTRATION_DATA_CHARTS.md","docs/skills/daymade-skills/ppt-creator/references/ORCHESTRATION_OVERVIEW.md","docs/skills/daymade-skills/ppt-creator/references/ORCHESTRATION_PPTX.md","docs/skills/daymade-skills/ppt-creator/references/RUBRIC.md","docs/skills/daymade-skills/ppt-creator/references/STYLE-GUIDE.md","docs/skills/daymade-skills/ppt-creator/references/TEMPLATES.md","docs/skills/daymade-skills/ppt-creator/references/VIS-GUIDE.md","docs/skills/daymade-skills/ppt-creator/references/WORKFLOW.md","docs/skills/daymade-skills/ppt-creator/scripts/chartkit.py","docs/skills/daymade-skills/prompt-optimizer/.security-scan-passed","docs/skills/daymade-skills/prompt-optimizer/SKILL.md","docs/skills/daymade-skills/prompt-optimizer/references/advanced_techniques.md","docs/skills/daymade-skills/prompt-optimizer/references/domain_theories.md","docs/skills/daymade-skills/prompt-optimizer/references/ears_syntax.md","docs/skills/daymade-skills/prompt-optimizer/references/examples.md","docs/skills/daymade-skills/promptfoo-evaluation/.security-scan-passed","docs/skills/daymade-skills/promptfoo-evaluation/SKILL.md","docs/skills/daymade-skills/promptfoo-evaluation/references/promptfoo_api.md","docs/skills/daymade-skills/qa-expert/.security-scan-passed","docs/skills/daymade-skills/qa-expert/SKILL.md","docs/skills/daymade-skills/qa-expert/assets/templates/TEST-CASE-TEMPLATE.md","docs/skills/daymade-skills/qa-expert/references/day1_onboarding.md","docs/skills/daymade-skills/qa-expert/references/google_testing_standards.md","docs/skills/daymade-skills/qa-expert/references/ground_truth_principle.md","docs/skills/daymade-skills/qa-expert/references/llm_prompts_library.md","docs/skills/daymade-skills/qa-expert/references/master_qa_prompt.md","docs/skills/daymade-skills/qa-expert/scripts/calculate_metrics.py","docs/skills/daymade-skills/qa-expert/scripts/init_qa_project.py","docs/skills/daymade-skills/repomix-safe-mixer/SKILL.md","docs/skills/daymade-skills/repomix-safe-mixer/references/common_secrets.md","docs/skills/daymade-skills/repomix-safe-mixer/scripts/safe_pack.py","docs/skills/daymade-skills/repomix-safe-mixer/scripts/scan_secrets.py","docs/skills/daymade-skills/repomix-unmixer/README.md","docs/skills/daymade-skills/repomix-unmixer/SKILL.md","docs/skills/daymade-skills/repomix-unmixer/references/repomix-format.md","docs/skills/daymade-skills/repomix-unmixer/references/validation-workflow.md","docs/skills/daymade-skills/repomix-unmixer/scripts/unmix_repomix.py","docs/skills/daymade-skills/scripts/install.ps1","docs/skills/daymade-skills/scripts/install.sh","docs/skills/daymade-skills/skill-creator/.gitignore","docs/skills/daymade-skills/skill-creator/LICENSE.txt","docs/skills/daymade-skills/skill-creator/SKILL.md","docs/skills/daymade-skills/skill-creator/scripts/init_skill.py","docs/skills/daymade-skills/skill-creator/scripts/package_skill.py","docs/skills/daymade-skills/skill-creator/scripts/quick_validate.py","docs/skills/daymade-skills/skill-creator/scripts/security_scan.py","docs/skills/daymade-skills/skill-reviewer/.security-scan-passed","docs/skills/daymade-skills/skill-reviewer/SKILL.md","docs/skills/daymade-skills/skill-reviewer/references/evaluation_checklist.md","docs/skills/daymade-skills/skill-reviewer/references/marketplace_template.json","docs/skills/daymade-skills/skill-reviewer/references/pr_template.md","docs/skills/daymade-skills/skills-search/.security-scan-passed","docs/skills/daymade-skills/skills-search/SKILL.md","docs/skills/daymade-skills/statusline-generator/SKILL.md","docs/skills/daymade-skills/statusline-generator/references/ccusage_integration.md","docs/skills/daymade-skills/statusline-generator/references/color_codes.md","docs/skills/daymade-skills/statusline-generator/scripts/generate_statusline.sh","docs/skills/daymade-skills/statusline-generator/scripts/install_statusline.sh","docs/skills/daymade-skills/teams-channel-post-writer/SKILL.md","docs/skills/daymade-skills/teams-channel-post-writer/assets/post-template.md","docs/skills/daymade-skills/teams-channel-post-writer/references/writing-guidelines.md","docs/skills/daymade-skills/transcript-fixer/.gitignore","docs/skills/daymade-skills/transcript-fixer/SKILL.md","docs/skills/daymade-skills/transcript-fixer/references/architecture.md","docs/skills/daymade-skills/transcript-fixer/references/best_practices.md","docs/skills/daymade-skills/transcript-fixer/references/database_schema.md","docs/skills/daymade-skills/transcript-fixer/references/dictionary_guide.md","docs/skills/daymade-skills/transcript-fixer/references/file_formats.md","docs/skills/daymade-skills/transcript-fixer/references/glm_api_setup.md","docs/skills/daymade-skills/transcript-fixer/references/installation_setup.md","docs/skills/daymade-skills/transcript-fixer/references/iteration_workflow.md","docs/skills/daymade-skills/transcript-fixer/references/quick_reference.md","docs/skills/daymade-skills/transcript-fixer/references/script_parameters.md","docs/skills/daymade-skills/transcript-fixer/references/sql_queries.md","docs/skills/daymade-skills/transcript-fixer/references/team_collaboration.md","docs/skills/daymade-skills/transcript-fixer/references/troubleshooting.md","docs/skills/daymade-skills/transcript-fixer/references/workflow_guide.md","docs/skills/daymade-skills/transcript-fixer/requirements.txt","docs/skills/daymade-skills/transcript-fixer/scripts/__init__.py","docs/skills/daymade-skills/transcript-fixer/scripts/check_type_hints.py","docs/skills/daymade-skills/transcript-fixer/scripts/cli/__init__.py","docs/skills/daymade-skills/transcript-fixer/scripts/cli/argument_parser.py","docs/skills/daymade-skills/transcript-fixer/scripts/cli/commands.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/__init__.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/ai_processor.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/ai_processor_async.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/change_extractor.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/connection_pool.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/correction_repository.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/correction_service.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/dictionary_processor.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/learning_engine.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/schema.sql","docs/skills/daymade-skills/transcript-fixer/scripts/ensure_deps.py","docs/skills/daymade-skills/transcript-fixer/scripts/examples/bulk_import.py","docs/skills/daymade-skills/transcript-fixer/scripts/fix_transcript_enhanced.py","docs/skills/daymade-skills/transcript-fixer/scripts/fix_transcription.py","docs/skills/daymade-skills/transcript-fixer/scripts/generate_word_diff.py","docs/skills/daymade-skills/transcript-fixer/scripts/tests/__init__.py","docs/skills/daymade-skills/transcript-fixer/scripts/tests/test_audit_log_retention.py","docs/skills/daymade-skills/transcript-fixer/scripts/tests/test_connection_pool.py","docs/skills/daymade-skills/transcript-fixer/scripts/tests/test_correction_service.py","docs/skills/daymade-skills/transcript-fixer/scripts/tests/test_domain_validator.py","docs/skills/daymade-skills/transcript-fixer/scripts/tests/test_error_recovery.py","docs/skills/daymade-skills/transcript-fixer/scripts/tests/test_learning_engine.py","docs/skills/daymade-skills/transcript-fixer/scripts/tests/test_path_validator.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/__init__.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/audit_log_retention.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/concurrency_manager.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/config.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/database_migration.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/db_migrations_cli.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/diff_formats/__init__.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/diff_formats/change_extractor.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/diff_formats/html_format.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/diff_formats/inline_format.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/diff_formats/markdown_format.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/diff_formats/text_splitter.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/diff_formats/unified_format.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/diff_generator.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/domain_validator.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/health_check.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/logging_config.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/metrics.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/migrations.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/path_validator.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/rate_limiter.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/retry_logic.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/security.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/validation.py","docs/skills/daymade-skills/twitter-reader/.security-scan-passed","docs/skills/daymade-skills/twitter-reader/SKILL.md","docs/skills/daymade-skills/twitter-reader/scripts/fetch_tweet.py","docs/skills/daymade-skills/twitter-reader/scripts/fetch_tweets.sh","docs/skills/daymade-skills/ui-designer/SKILL.md","docs/skills/daymade-skills/ui-designer/assets/app-overview-generator.md","docs/skills/daymade-skills/ui-designer/assets/design-system.md","docs/skills/daymade-skills/ui-designer/assets/vibe-design-template.md","docs/skills/daymade-skills/video-comparer/.security-scan-passed","docs/skills/daymade-skills/video-comparer/README.md","docs/skills/daymade-skills/video-comparer/SKILL.md","docs/skills/daymade-skills/video-comparer/assets/template.html","docs/skills/daymade-skills/video-comparer/references/configuration.md","docs/skills/daymade-skills/video-comparer/references/ffmpeg_commands.md","docs/skills/daymade-skills/video-comparer/references/video_metrics.md","docs/skills/daymade-skills/video-comparer/scripts/compare.py","docs/skills/daymade-skills/youtube-downloader/.security-scan-passed","docs/skills/daymade-skills/youtube-downloader/SKILL.md","docs/skills/daymade-skills/youtube-downloader/references/po-token-setup.md","docs/skills/daymade-skills/youtube-downloader/scripts/download_video.py","docs/skills/eval-harness/SKILL.md","docs/skills/frontend-patterns/SKILL.md","docs/skills/haizhan-ime-development.md","docs/skills/hizan-official/.claude-plugin/marketplace.json","docs/skills/hizan-official/skills/arch/SKILL.md","docs/skills/hizan-official/skills/game/SKILL.md","docs/skills/hizan-official/skills/quality/SKILL.md","docs/skills/hizan-official/skills/work/SKILL.md","docs/skills/juhi/tool-usage.md","docs/skills/mhattingpete-skills/.claude-plugin/marketplace.json","docs/skills/mhattingpete-skills/.claude/install-gh.sh","docs/skills/mhattingpete-skills/.claude/settings.json","docs/skills/mhattingpete-skills/.gitignore","docs/skills/mhattingpete-skills/CHANGELOG.md","docs/skills/mhattingpete-skills/CLAUDE.md","docs/skills/mhattingpete-skills/CONTRIBUTING.md","docs/skills/mhattingpete-skills/LICENSE","docs/skills/mhattingpete-skills/README.md","docs/skills/mhattingpete-skills/assets/skill-loading.gif","docs/skills/mhattingpete-skills/code-operations-plugin/.claude-plugin/plugin.json","docs/skills/mhattingpete-skills/code-operations-plugin/README.md","docs/skills/mhattingpete-skills/code-operations-plugin/skills/code-execution/SKILL.md","docs/skills/mhattingpete-skills/code-operations-plugin/skills/code-execution/examples/bulk_refactor.py","docs/skills/mhattingpete-skills/code-operations-plugin/skills/code-execution/examples/codebase_audit.py","docs/skills/mhattingpete-skills/code-operations-plugin/skills/code-execution/examples/extract_functions.py","docs/skills/mhattingpete-skills/code-operations-plugin/skills/code-refactor/SKILL.md","docs/skills/mhattingpete-skills/code-operations-plugin/skills/code-transfer/SKILL.md","docs/skills/mhattingpete-skills/code-operations-plugin/skills/code-transfer/scripts/line_insert.py","docs/skills/mhattingpete-skills/code-operations-plugin/skills/file-operations/SKILL.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/.claude-plugin/plugin.json","docs/skills/mhattingpete-skills/engineering-workflow-plugin/README.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/agents/ensemble-orchestrator/AGENT.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/agents/plan-implementer.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/commands/pr.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/skills/ensemble-solving/SKILL.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/skills/ensemble-solving/references/diversification-strategies.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/skills/ensemble-solving/references/evaluation-rubrics.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/skills/feature-planning/SKILL.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/skills/feature-planning/references/planning-best-practices.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/skills/git-pushing/SKILL.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/skills/git-pushing/scripts/smart_commit.sh","docs/skills/mhattingpete-skills/engineering-workflow-plugin/skills/review-implementing/SKILL.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/skills/test-fixing/SKILL.md","docs/skills/mhattingpete-skills/execution-runtime/.env.example","docs/skills/mhattingpete-skills/execution-runtime/README.md","docs/skills/mhattingpete-skills/execution-runtime/api/__init__.py","docs/skills/mhattingpete-skills/execution-runtime/api/code_analysis.py","docs/skills/mhattingpete-skills/execution-runtime/api/code_transform.py","docs/skills/mhattingpete-skills/execution-runtime/api/filesystem.py","docs/skills/mhattingpete-skills/execution-runtime/api/git_operations.py","docs/skills/mhattingpete-skills/execution-runtime/execution_runtime/__init__.py","docs/skills/mhattingpete-skills/execution-runtime/execution_runtime/security/__init__.py","docs/skills/mhattingpete-skills/execution-runtime/execution_runtime/security/import_guard.py","docs/skills/mhattingpete-skills/execution-runtime/execution_runtime/security/pii_detector.py","docs/skills/mhattingpete-skills/execution-runtime/execution_runtime/sessions.py","docs/skills/mhattingpete-skills/execution-runtime/execution_runtime/skills.py","docs/skills/mhattingpete-skills/execution-runtime/mcp-server/mcp_server.py","docs/skills/mhattingpete-skills/execution-runtime/mcp-server/security/pii_detector.py","docs/skills/mhattingpete-skills/execution-runtime/mcp-server/security/sandbox.py","docs/skills/mhattingpete-skills/execution-runtime/pyproject.toml","docs/skills/mhattingpete-skills/execution-runtime/setup.sh","docs/skills/mhattingpete-skills/productivity-skills-plugin/.claude-plugin/plugin.json","docs/skills/mhattingpete-skills/productivity-skills-plugin/README.md","docs/skills/mhattingpete-skills/productivity-skills-plugin/skills/code-auditor/SKILL.md","docs/skills/mhattingpete-skills/productivity-skills-plugin/skills/codebase-documenter/SKILL.md","docs/skills/mhattingpete-skills/productivity-skills-plugin/skills/conversation-analyzer/SKILL.md","docs/skills/mhattingpete-skills/productivity-skills-plugin/skills/conversation-analyzer/scripts/analyze_history.py","docs/skills/mhattingpete-skills/productivity-skills-plugin/skills/project-bootstrapper/SKILL.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/.claude-plugin/plugin.json","docs/skills/mhattingpete-skills/visual-documentation-plugin/EXAMPLES.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/README.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/architecture-diagram-creator/SKILL.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/architecture-diagram-creator/assets/templates/architecture_components.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/architecture-diagram-creator/assets/templates/base_template.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/architecture-diagram-creator/references/example_architecture.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/dashboard-creator/SKILL.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/dashboard-creator/assets/templates/base_template.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/dashboard-creator/assets/templates/dashboard_components.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/dashboard-creator/references/design_patterns.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/dashboard-creator/references/svg_library.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/flowchart-creator/SKILL.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/flowchart-creator/assets/templates/base_template.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/flowchart-creator/assets/templates/flowchart_components.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/flowchart-creator/references/design_patterns.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/flowchart-creator/references/svg_library.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/technical-doc-creator/SKILL.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/technical-doc-creator/assets/templates/base_template.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/technical-doc-creator/references/design_patterns.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/technical-doc-creator/references/svg_library.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/timeline-creator/SKILL.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/timeline-creator/assets/templates/base_template.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/timeline-creator/assets/templates/timeline_components.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/timeline-creator/references/design_patterns.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/timeline-creator/references/svg_library.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/test-outputs/dashboard-test-monitoring.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/test-outputs/flowchart-test-authentication.html","docs/skills/netresearch-marketplace/.claude-plugin/marketplace.json","docs/skills/netresearch-marketplace/.github/workflows/sync-skills.yml","docs/skills/netresearch-marketplace/.gitignore","docs/skills/netresearch-marketplace/.sync-config.json","docs/skills/netresearch-marketplace/README.md","docs/skills/netresearch-marketplace/SYNC-SETUP.md","docs/skills/netresearch-marketplace/VERSIONING.md","docs/skills/netresearch-marketplace/notify-marketplace.yml","docs/skills/netresearch-marketplace/plugins/coach/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/plugins/coach/LICENSE","docs/skills/netresearch-marketplace/plugins/coach/README.md","docs/skills/netresearch-marketplace/plugins/coach/assets/templates/antipattern.md","docs/skills/netresearch-marketplace/plugins/coach/assets/templates/checklist.md","docs/skills/netresearch-marketplace/plugins/coach/assets/templates/rule.md","docs/skills/netresearch-marketplace/plugins/coach/assets/templates/snippet.md","docs/skills/netresearch-marketplace/plugins/coach/commands/approve.md","docs/skills/netresearch-marketplace/plugins/coach/commands/edit.md","docs/skills/netresearch-marketplace/plugins/coach/commands/init.md","docs/skills/netresearch-marketplace/plugins/coach/commands/promote.md","docs/skills/netresearch-marketplace/plugins/coach/commands/reject.md","docs/skills/netresearch-marketplace/plugins/coach/commands/review.md","docs/skills/netresearch-marketplace/plugins/coach/commands/scan.md","docs/skills/netresearch-marketplace/plugins/coach/commands/status.md","docs/skills/netresearch-marketplace/plugins/coach/hooks/hooks.json","docs/skills/netresearch-marketplace/plugins/coach/references/architecture.md","docs/skills/netresearch-marketplace/plugins/coach/references/schema.md","docs/skills/netresearch-marketplace/plugins/coach/references/scope_heuristics.md","docs/skills/netresearch-marketplace/plugins/coach/references/signal_patterns.md","docs/skills/netresearch-marketplace/plugins/coach/scripts/aggregate.py","docs/skills/netresearch-marketplace/plugins/coach/scripts/apply.py","docs/skills/netresearch-marketplace/plugins/coach/scripts/detect_signals.py","docs/skills/netresearch-marketplace/plugins/coach/scripts/fingerprint.py","docs/skills/netresearch-marketplace/plugins/coach/scripts/init_coach.py","docs/skills/netresearch-marketplace/plugins/coach/scripts/ledger.py","docs/skills/netresearch-marketplace/plugins/coach/scripts/propose.py","docs/skills/netresearch-marketplace/plugins/coach/scripts/root_cause_analyzer.py","docs/skills/netresearch-marketplace/plugins/coach/scripts/scope_analyzer.py","docs/skills/netresearch-marketplace/plugins/coach/scripts/skill_analyzer.py","docs/skills/netresearch-marketplace/plugins/coach/skills/coach/SKILL.md","docs/skills/netresearch-marketplace/renovate.json","docs/skills/netresearch-marketplace/skills/agents/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/agents/LICENSE","docs/skills/netresearch-marketplace/skills/agents/README.md","docs/skills/netresearch-marketplace/skills/agents/STATUS.md","docs/skills/netresearch-marketplace/skills/agents/claudedocs/refactoring-summary.md","docs/skills/netresearch-marketplace/skills/agents/composer.json","docs/skills/netresearch-marketplace/skills/agents/docs/ROADMAP.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/SKILL.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/root-thin.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/root-verbose.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/scoped/backend-go.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/scoped/backend-php.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/scoped/cli.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/scoped/documentation.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/scoped/examples.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/scoped/frontend-typescript.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/scoped/resources.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/scoped/testing.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/analysis.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/directory-coverage.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/examples/coding-agent-cli/AGENTS.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/examples/coding-agent-cli/scripts-AGENTS.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/examples/ldap-selfservice/AGENTS.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/examples/ldap-selfservice/internal-AGENTS.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/examples/ldap-selfservice/internal-web-AGENTS.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/examples/simple-ldap-go/AGENTS.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/examples/simple-ldap-go/examples-AGENTS.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/examples/t3x-rte-ckeditor-image/AGENTS.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/examples/t3x-rte-ckeditor-image/Classes-AGENTS.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/analyze-git-history.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/check-freshness.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/detect-project.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/detect-scopes.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/extract-agent-configs.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/extract-ci-commands.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/extract-commands.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/extract-documentation.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/extract-ide-settings.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/extract-platform-files.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/extract-quality-configs.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/generate-agents.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/lib/summary.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/lib/template.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/validate-structure.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/verify-content.sh","docs/skills/netresearch-marketplace/skills/cli-tools/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/cli-tools/LICENSE","docs/skills/netresearch-marketplace/skills/cli-tools/README.md","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/ansible-core.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/ast-grep.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/aws.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/bandit.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/bat.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/black.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/claude.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/codex.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/compose.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/composer.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/ctags.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/curlie.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/dasel.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/delta.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/direnv.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/dive.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/docker.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/entr.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/eslint.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/fd.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/flake8.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/fx.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/fzf.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/gam.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/gem.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/gh.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/git-absorb.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/git-branchless.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/git-filter-repo.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/git-lfs.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/git.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/gitleaks.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/glab.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/go.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/golangci-lint.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/gosec.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/httpie.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/isort.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/jq.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/just.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/kubectl.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/ninja.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/node.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/npm.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/parallel.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/php.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/pip.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/pipx.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/pnpm.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/poetry.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/pre-commit.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/prename.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/prettier.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/python.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/rbenv.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/rename.ul.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/rga.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/ripgrep.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/ruby-build.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/ruby.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/ruff.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/rust.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/sd.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/semgrep.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/shellcheck.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/shfmt.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/sponge.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/terraform.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/tfsec.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/trivy.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/uv.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/watchexec.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/xsv.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/yarn.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/yq.json","docs/skills/netresearch-marketplace/skills/cli-tools/composer.json","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/SKILL.md","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/references/binary_to_tool_map.md","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/references/project_type_requirements.md","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/auto_update.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/check_environment.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/detect_project_type.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/install_composer.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/install_tool.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/installers/aws_installer.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/installers/dedicated_script.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/installers/github_clone.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/installers/github_release_binary.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/installers/hashicorp_zip.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/installers/npm_global.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/installers/npm_self_update.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/installers/package_manager.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/installers/uv_tool.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/lib/capability.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/lib/catalog.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/lib/common.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/lib/dependency.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/lib/install_strategy.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/lib/path_check.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/lib/policy.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/lib/reconcile.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/lib/scope_detection.sh","docs/skills/netresearch-marketplace/skills/context7/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/context7/LICENSE","docs/skills/netresearch-marketplace/skills/context7/README.md","docs/skills/netresearch-marketplace/skills/context7/skills/context7/SKILL.md","docs/skills/netresearch-marketplace/skills/context7/skills/context7/scripts/context7.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/enterprise-readiness/LICENSE","docs/skills/netresearch-marketplace/skills/enterprise-readiness/README.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/templates/ARCHITECTURE.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/templates/BADGE_EXCEPTIONS.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/templates/CODE_OF_CONDUCT.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/templates/GOVERNANCE.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/templates/ROADMAP.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/templates/SECURITY_AUDIT.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/workflows/codeql.yml","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/workflows/dco-check.yml","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/workflows/dependency-review.yml","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/workflows/scorecard.yml","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/workflows/slsa-provenance.yml","docs/skills/netresearch-marketplace/skills/enterprise-readiness/composer.json","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/SKILL.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/2fa-enforcement.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/badge-display.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/branch-coverage.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/dco-implementation.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/dynamic-analysis.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/general.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/github.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/go.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/openssf-badge-gold.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/openssf-badge-silver.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/quick-start-guide.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/reproducible-builds.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/security-hardening.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/signed-releases.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/solo-maintainer-guide.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/sonarcloud.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/test-invocation.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/add-spdx-headers.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/analyze-bus-factor.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/check-branch-coverage.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/check-coverage-threshold.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/check-tls-minimum.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/verify-badge-criteria.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/verify-reproducible-build.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/verify-review-requirements.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/verify-signed-tags.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/verify-spdx-headers.sh","docs/skills/netresearch-marketplace/skills/git-workflow/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/git-workflow/LICENSE","docs/skills/netresearch-marketplace/skills/git-workflow/README.md","docs/skills/netresearch-marketplace/skills/git-workflow/composer.json","docs/skills/netresearch-marketplace/skills/git-workflow/skills/git-workflow/SKILL.md","docs/skills/netresearch-marketplace/skills/git-workflow/skills/git-workflow/references/advanced-git.md","docs/skills/netresearch-marketplace/skills/git-workflow/skills/git-workflow/references/branching-strategies.md","docs/skills/netresearch-marketplace/skills/git-workflow/skills/git-workflow/references/ci-cd-integration.md","docs/skills/netresearch-marketplace/skills/git-workflow/skills/git-workflow/references/commit-conventions.md","docs/skills/netresearch-marketplace/skills/git-workflow/skills/git-workflow/references/github-releases.md","docs/skills/netresearch-marketplace/skills/git-workflow/skills/git-workflow/references/pull-request-workflow.md","docs/skills/netresearch-marketplace/skills/git-workflow/skills/git-workflow/scripts/verify-git-workflow.sh","docs/skills/netresearch-marketplace/skills/github-project/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/github-project/LICENSE","docs/skills/netresearch-marketplace/skills/github-project/README.md","docs/skills/netresearch-marketplace/skills/github-project/composer.json","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/SKILL.md","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/CODEOWNERS.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/CONTRIBUTING.md.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/PULL_REQUEST_TEMPLATE.md.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/SECURITY.md.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/auto-merge-direct.yml.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/auto-merge-queue.yml.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/auto-merge.yml.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/bug_report.md.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/dependabot.yml.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/feature_request.md.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/release-labeler.yml.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/renovate.json.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/references/branch-migration.md","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/references/dependency-management.md","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/references/release-labeling.md","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/references/repository-structure.md","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/references/sub-issues.md","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/scripts/verify-github-project.sh","docs/skills/netresearch-marketplace/skills/go-development/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/go-development/LICENSE","docs/skills/netresearch-marketplace/skills/go-development/README.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/SKILL.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/api-design.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/architecture.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/docker.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/fuzz-testing.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/ldap.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/linting.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/makefile.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/mutation-testing.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/resilience.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/testing.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/scripts/verify-go-project.sh","docs/skills/netresearch-marketplace/skills/jira-integration/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/jira-integration/AGENTS.md","docs/skills/netresearch-marketplace/skills/jira-integration/CHANGELOG.md","docs/skills/netresearch-marketplace/skills/jira-integration/CLAUDE.md","docs/skills/netresearch-marketplace/skills/jira-integration/LICENSE","docs/skills/netresearch-marketplace/skills/jira-integration/MIGRATION.md","docs/skills/netresearch-marketplace/skills/jira-integration/PRD.md","docs/skills/netresearch-marketplace/skills/jira-integration/README.md","docs/skills/netresearch-marketplace/skills/jira-integration/SKILL.md","docs/skills/netresearch-marketplace/skills/jira-integration/composer.json","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/AGENTS.md","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/SKILL.md","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/references/jql-quick-reference.md","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/references/troubleshooting.md","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/core/jira-attachment.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/core/jira-issue.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/core/jira-search.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/core/jira-setup.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/core/jira-validate.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/core/jira-worklog.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/lib/__init__.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/lib/client.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/lib/config.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/lib/output.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/utility/jira-fields.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/utility/jira-link.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/utility/jira-user.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/workflow/jira-board.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/workflow/jira-comment.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/workflow/jira-create.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/workflow/jira-sprint.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/workflow/jira-transition.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-syntax/AGENTS.md","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-syntax/SKILL.md","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-syntax/references/jira-syntax-quick-reference.md","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-syntax/scripts/validate-jira-syntax.sh","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-syntax/templates/bug-report-template.md","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-syntax/templates/feature-request-template.md","docs/skills/netresearch-marketplace/skills/netresearch-branding/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/netresearch-branding/LICENSE","docs/skills/netresearch-marketplace/skills/netresearch-branding/README.md","docs/skills/netresearch-marketplace/skills/netresearch-branding/assets/logos/netresearch-symbol-only.svg","docs/skills/netresearch-marketplace/skills/netresearch-branding/composer.json","docs/skills/netresearch-marketplace/skills/netresearch-branding/examples/components.html","docs/skills/netresearch-marketplace/skills/netresearch-branding/skills/netresearch-branding/SKILL.md","docs/skills/netresearch-marketplace/skills/netresearch-branding/skills/netresearch-branding/references/colors.md","docs/skills/netresearch-marketplace/skills/netresearch-branding/skills/netresearch-branding/references/typo3-extension-branding.md","docs/skills/netresearch-marketplace/skills/netresearch-branding/skills/netresearch-branding/references/typography.md","docs/skills/netresearch-marketplace/skills/netresearch-branding/skills/netresearch-branding/references/web-design.md","docs/skills/netresearch-marketplace/skills/netresearch-branding/skills/netresearch-branding/templates/landing-page.html","docs/skills/netresearch-marketplace/skills/netresearch-branding/skills/netresearch-branding/templates/styles.css","docs/skills/netresearch-marketplace/skills/php-modernization/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/php-modernization/LICENSE","docs/skills/netresearch-marketplace/skills/php-modernization/README.md","docs/skills/netresearch-marketplace/skills/php-modernization/composer.json","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/SKILL.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/references/adapter-registry-pattern.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/references/migration-strategies.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/references/php8-features.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/references/phpstan-compliance.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/references/psr-per-compliance.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/references/request-dtos.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/references/static-analysis-tools.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/references/symfony-patterns.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/references/type-safety.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/scripts/verify-php-project.sh","docs/skills/netresearch-marketplace/skills/security-audit/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/security-audit/LICENSE","docs/skills/netresearch-marketplace/skills/security-audit/README.md","docs/skills/netresearch-marketplace/skills/security-audit/composer.json","docs/skills/netresearch-marketplace/skills/security-audit/skills/security-audit/SKILL.md","docs/skills/netresearch-marketplace/skills/security-audit/skills/security-audit/references/api-key-encryption.md","docs/skills/netresearch-marketplace/skills/security-audit/skills/security-audit/references/cvss-scoring.md","docs/skills/netresearch-marketplace/skills/security-audit/skills/security-audit/references/owasp-top10.md","docs/skills/netresearch-marketplace/skills/security-audit/skills/security-audit/references/xxe-prevention.md","docs/skills/netresearch-marketplace/skills/security-audit/skills/security-audit/scripts/security-audit.sh","docs/skills/netresearch-marketplace/skills/skill-repo/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/skill-repo/LICENSE","docs/skills/netresearch-marketplace/skills/skill-repo/README.md","docs/skills/netresearch-marketplace/skills/skill-repo/composer.json","docs/skills/netresearch-marketplace/skills/skill-repo/renovate.json","docs/skills/netresearch-marketplace/skills/skill-repo/skills/skill-repo/SKILL.md","docs/skills/netresearch-marketplace/skills/skill-repo/skills/skill-repo/references/composer-setup.md","docs/skills/netresearch-marketplace/skills/skill-repo/skills/skill-repo/references/installation-methods.md","docs/skills/netresearch-marketplace/skills/skill-repo/skills/skill-repo/references/marketplace-integration.md","docs/skills/netresearch-marketplace/skills/skill-repo/skills/skill-repo/scripts/validate-skill.sh","docs/skills/netresearch-marketplace/skills/skill-repo/skills/skill-repo/templates/README.md.template","docs/skills/netresearch-marketplace/skills/skill-repo/skills/skill-repo/templates/composer.json.template","docs/skills/netresearch-marketplace/skills/skill-repo/skills/skill-repo/templates/release.yml.template","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/LICENSE","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/README.md","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/composer.json","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/skills/typo3-ckeditor5/SKILL.md","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/skills/typo3-ckeditor5/references/ckeditor5-architecture.md","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/skills/typo3-ckeditor5/references/migration-guide.md","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/skills/typo3-ckeditor5/references/plugin-development.md","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/skills/typo3-ckeditor5/references/typo3-integration.md","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/skills/typo3-ckeditor5/scripts/verify-ckeditor5.sh","docs/skills/netresearch-marketplace/skills/typo3-conformance/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/typo3-conformance/LICENSE","docs/skills/netresearch-marketplace/skills/typo3-conformance/README.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/composer.json","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/SKILL.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/assets/.github/workflows/publish-to-ter.yml","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/backend-module-v13.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/backend-wizard-patterns.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/best-practices.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/coding-guidelines.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/composer-validation.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/crowdin-integration.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/development-environment.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/directory-structure.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/dual-version-compatibility.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/excellence-indicators.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/ext-emconf-validation.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/ext-files-validation.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/extension-architecture.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/hooks-and-events.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/multi-tier-configuration.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/php-architecture.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/report-template.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/runtests-validation.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/ter-publishing.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/testing-standards.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/v13-deprecations.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/version-requirements.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/scripts/check-architecture.sh","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/scripts/check-coding-standards.sh","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/scripts/check-conformance.sh","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/scripts/check-documentation.sh","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/scripts/check-file-structure.sh","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/scripts/check-phpstan-baseline.sh","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/scripts/check-testing.sh","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/scripts/generate-report.sh","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/LICENSE","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/README.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/assets/commit-template.txt","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/claudedocs/refactoring-summary.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/composer.json","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/SKILL.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/references/account-setup.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/references/commit-message-format.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/references/commit-msg-hook.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/references/ddev-setup-workflow.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/references/forge-api.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/references/gerrit-review-patterns.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/references/gerrit-workflow.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/references/modern-typo3-patterns.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/references/troubleshooting.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/scripts/create-commit-message.py","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/scripts/create-forge-issue.sh","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/scripts/query-forge-metadata.sh","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/scripts/setup-typo3-coredev.sh","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/scripts/validate-commit-message.py","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/scripts/verify-prerequisites.sh","docs/skills/netresearch-marketplace/skills/typo3-ddev/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/typo3-ddev/LICENSE","docs/skills/netresearch-marketplace/skills/typo3-ddev/README.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/composer.json","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/SKILL.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/.envrc","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/Makefile.template","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/README-SERVICES.md.optional","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/apache/apache-site.conf","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/host/docs","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/host/pre-start-git-info","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/host/setup","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/install-all","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/install-v11","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/install-v12","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/install-v13","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/web/configure-extension.optional","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/web/generate-index","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/web/generate-makefile","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/web/install-introduction.optional","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/config.redis.php.example","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/config.yaml","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/docker-compose.git-info.yaml","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/docker-compose.ofelia.yaml.optional","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/docker-compose.services-redis.yaml.optional","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/docker-compose.services.yaml.optional","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/docker-compose.web.yaml","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/homeadditions/.bashrc_additions.optional","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/index.html.netresearch.template","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/index.html.typo3.template","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/web-build/Dockerfile","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/web-build/install-cron.sh.optional","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/web-entrypoint.d/10-cleanup-index.sh","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/0001-valkey-default-with-redis-alternative.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/0002-mariadb-default-with-database-alternatives.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/0003-php-version-management.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/advanced-options.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/documentation-rendering.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/index-page-generation.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/prerequisites-validation.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/quickstart.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/troubleshooting.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/typo3-12-cli-changes.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/windows-fixes.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/windows-optimizations.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/scripts/validate-prerequisites.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/typo3-docs/LICENSE","docs/skills/netresearch-marketplace/skills/typo3-docs/README.md","docs/skills/netresearch-marketplace/skills/typo3-docs/composer.json","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/SKILL.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/assets/AGENTS.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/architecture-decision-records.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/code-structure-elements.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/coding-guidelines.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/content-directives.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/documentation-coverage-analysis.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/extraction-patterns.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/file-structure.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/guides-xml.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/intercept-deployment.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/rendering.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/rst-syntax.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/screenshots.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/text-roles-inline-code.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/typo3-directives.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/typo3-extension-architecture.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/add-agents-md.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/analyze-docs.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/extract-all.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/extract-build-configs.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/extract-composer.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/extract-extension-config.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/extract-php.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/extract-project-files.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/extract-repo-metadata.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/render_docs.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/validate_docs.sh","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/LICENSE","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/README.md","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/composer.json","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/SKILL.md","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/assets/.php-cs-fixer.php","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/assets/fractor.php","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/assets/phpstan.neon","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/assets/phpunit.xml","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/assets/rector.php","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/references/api-changes.md","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/references/dual-compatibility.md","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/references/pre-upgrade.md","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/references/real-world-patterns.md","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/references/upgrade-v11-to-v12.md","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/references/upgrade-v12-to-v13.md","docs/skills/netresearch-marketplace/skills/typo3-testing/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/typo3-testing/LICENSE","docs/skills/netresearch-marketplace/skills/typo3-testing/README.md","docs/skills/netresearch-marketplace/skills/typo3-testing/composer.json","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/SKILL.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/.php-cs-fixer.dist.php","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/AGENTS.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/FunctionalTests.xml","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/FunctionalTestsBootstrap.php","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/Makefile","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/UnitTests.xml","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/UnitTestsBootstrap.php","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/bootstrap.php","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/codecov.yml","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/docker/codeception.yml","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/docker/docker-compose.yml","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/example-tests/ExampleAcceptanceCest.php","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/example-tests/ExampleFunctionalTest.php","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/example-tests/ExampleUnitTest.php","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/fixtures/README.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/fixtures/be_users.csv","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/fixtures/pages.csv","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/fixtures/sys_category.csv","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/fixtures/tt_content.csv","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/github-actions-e2e.yml","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/github-actions-tests.yml","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/infection.json5","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/phpat.neon","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/phpat.php","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/phpstan-baseline.neon","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/phpstan.neon","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/rector.php","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/accessibility-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/architecture-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/ci-cd.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/crypto-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/ddev-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/e2e-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/functional-test-patterns.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/functional-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/fuzz-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/integration-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/javascript-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/mutation-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/performance-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/quality-tools.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/sonarcloud.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/test-runners.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/typo3-v14-final-classes.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/unit-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/scripts/generate-test.sh","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/scripts/setup-testing.sh","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/scripts/validate-setup.sh","docs/skills/netresearch-marketplace/update-source-repos.sh","docs/skills/project-guidelines-example/SKILL.md","docs/skills/security-review/SKILL.md","docs/skills/strategic-compact/SKILL.md","docs/skills/strategic-compact/suggest-compact.sh","docs/skills/tdd-workflow/SKILL.md","docs/skills/verification-loop/SKILL.md","docs/话术库导出_20251231103252.xlsx","docs_archive/AI_INPUT_METHOD_BRAINSTORM.md","docs_archive/ANDROID_100_PERCENT_PLAN.md","docs_archive/ANDROID_NATIVE_REPLACEMENT_DETAILED_PLAN.md","docs_archive/ANDROID_NATIVE_REPLACEMENT_PLAN.md","docs_archive/API.md","docs_archive/APPLE_PLATFORM_DEVELOPMENT_PLAN.md","docs_archive/ARCHITECTURE.md","docs_archive/ARCHITECTURE_COMPACT.md","docs_archive/CLAUDE.md","docs_archive/COMPREHENSIVE_IMPROVEMENT_PLAN.md","docs_archive/DEPLOYMENT.md","docs_archive/DESIGN_BASED_DEVELOPMENT_PLAN.md","docs_archive/DEVELOPMENT_ROADMAP.md","docs_archive/DICTIONARY_IMPROVEMENT_PLAN.md","docs_archive/DOCS_INDEX.md","docs_archive/IMPLEMENTATION_PLAN.md","docs_archive/IMPROVEMENT_RECOMMENDATIONS.md","docs_archive/IOS_DEVELOPMENT_PLAN.md","docs_archive/NEXT_STEPS_PLAN.md","docs_archive/PINYIN_DEVELOPMENT_PLAN.md","docs_archive/PRD.md","docs_archive/PROGRESS_TRACKER.md","docs_archive/README.md","docs_archive/REDLINES.md","docs_archive/SMART_RECOGNITION_COMPACT.md","docs_archive/TECHNICAL_ARCHITECTURE.md","docs_archive/UI_DEVELOPMENT_PLAN.md","docs_archive/smart-recognition-design.md","flutter_app/assets/fonts/PingFang-Medium.ttf","flutter_app/assets/fonts/PingFang-Regular.ttf","flutter_app/assets/fonts/PingFang-Semibold.ttf","flutter_app/assets/icons/.gitkeep","flutter_app/assets/images/.gitkeep","flutter_app/lib/core/bridge/bridge_models.dart","flutter_app/lib/core/bridge/bridge_response_parser.dart","flutter_app/lib/core/bridge/haizhan_bridge.dart","flutter_app/lib/core/di/service_locator.dart","flutter_app/lib/core/router/app_router.dart","flutter_app/lib/core/router/routes.dart","flutter_app/lib/core/theme/app_colors.dart","flutter_app/lib/core/theme/app_theme.dart","flutter_app/lib/core/theme/app_typography.dart","flutter_app/lib/features/auth/data/auth_provider.dart","flutter_app/lib/features/auth/data/auth_repository.dart","flutter_app/lib/features/auth/domain/auth_models.dart","flutter_app/lib/features/auth/presentation/login_screen.dart","flutter_app/lib/features/auth/presentation/register_screen.dart","flutter_app/lib/features/chat/data/ai_provider.dart","flutter_app/lib/features/chat/data/ai_repository.dart","flutter_app/lib/features/chat/domain/ai_reply_models.dart","flutter_app/lib/features/chat/presentation/chat_screen.dart","flutter_app/lib/features/chat/presentation/conversation_screen.dart","flutter_app/lib/features/contacts/data/contact_360_provider.dart","flutter_app/lib/features/contacts/data/contacts_provider.dart","flutter_app/lib/features/contacts/data/contacts_repository.dart","flutter_app/lib/features/contacts/domain/contact_models.dart","flutter_app/lib/features/contacts/presentation/contact_detail_screen.dart","flutter_app/lib/features/contacts/presentation/contacts_screen.dart","flutter_app/lib/features/home/presentation/home_screen.dart","flutter_app/lib/features/home/presentation/main_shell.dart","flutter_app/lib/features/knowledge/data/knowledge_provider.dart","flutter_app/lib/features/knowledge/data/knowledge_repository.dart","flutter_app/lib/features/knowledge/domain/knowledge_models.dart","flutter_app/lib/features/knowledge/presentation/knowledge_screen.dart","flutter_app/lib/features/profile/presentation/profile_screen.dart","flutter_app/lib/features/search/data/models/search_metrics.dart","flutter_app/lib/features/search/presentation/widgets/search_metrics_indicator.dart","flutter_app/lib/features/settings/presentation/settings_screen.dart","flutter_app/lib/features/stats/presentation/stats_screen.dart","flutter_app/lib/features/stats/presentation/widgets/contact_stats_tab.dart","flutter_app/lib/features/stats/presentation/widgets/overview_tab.dart","flutter_app/lib/features/stats/presentation/widgets/reply_stats_tab.dart","flutter_app/lib/features/stats/presentation/widgets/stats_shared_widgets.dart","flutter_app/lib/features/support/presentation/about_screen.dart","flutter_app/lib/features/support/presentation/feedback_screen.dart","flutter_app/lib/features/support/presentation/help_screen.dart","flutter_app/lib/features/support/presentation/privacy_screen.dart","flutter_app/lib/features/support/presentation/terms_screen.dart","flutter_app/lib/main.dart","flutter_app/lib/shared/widgets/stat_card.dart","flutter_app/pigeons/haizhan_api.dart","flutter_app/pubspec.lock","flutter_app/pubspec.yaml","flutter_app/test/core/network/api_client_test.dart","flutter_app/test/core/theme/theme_provider_test.dart","flutter_app/test/features/auth/login_screen_test.dart","flutter_app/test/features/chat/chat_screen_test.dart","flutter_app/test/features/contacts/contacts_screen_test.dart","flutter_app/test/features/home/home_screen_test.dart","flutter_app/test/features/knowledge/knowledge_screen_test.dart","flutter_app/test/features/profile/profile_screen_test.dart","flutter_app/test/features/settings/settings_screen_test.dart","flutter_app/test/features/statistics/statistics_screen_test.dart","flutter_app/test/features/stats/stats_screen_test.dart","flutter_app/test/integration/app_integration_test.dart","flutter_app/test/providers/auth_provider_test.dart","flutter_app/test/services/api_service_test.dart","flutter_app/test/widgets/contact_card_test.dart","gradle.properties","gradle/libs.versions.toml","gradle/wrapper/gradle-wrapper.jar","gradle/wrapper/gradle-wrapper.properties","gradlew","gradlew.bat","ime-core/build.gradle.kts","ime-core/consumer-rules.pro","ime-core/proguard-rules.pro","ime-core/src/androidTest/java/com/haizhan/ime/core/handwriting/HandwritingIntegrationTest.kt","ime-core/src/androidTest/java/com/haizhan/ime/core/handwriting/HandwritingPerformanceTest.kt","ime-core/src/androidTest/java/com/haizhan/ime/core/handwriting/HandwritingViewTest.kt","ime-core/src/main/AndroidManifest.xml","ime-core/src/main/assets/dictionaries/system/core-char.txt","ime-core/src/main/assets/dictionaries/system/core-merged.txt","ime-core/src/main/assets/dictionaries/system/core-phrase.txt","ime-core/src/main/assets/dictionaries/system/core-word2.txt","ime-core/src/main/assets/dictionaries/system/core-word3.txt","ime-core/src/main/assets/dictionaries/system/core-word4.txt","ime-core/src/main/assets/handwriting_labels_casia.txt","ime-core/src/main/assets/paddle_models/ppocr_keys_v1.txt","ime-core/src/main/cpp/CMakeLists.txt","ime-core/src/main/cpp/include/paddle_api.h","ime-core/src/main/cpp/include/paddle_image_preprocess.h","ime-core/src/main/cpp/include/paddle_lite_factory_helper.h","ime-core/src/main/cpp/include/paddle_place.h","ime-core/src/main/cpp/include/paddle_use_kernels.h","ime-core/src/main/cpp/include/paddle_use_ops.h","ime-core/src/main/cpp/include/paddle_use_passes.h","ime-core/src/main/cpp/paddle_lite_jni.cpp","ime-core/src/main/cpp/paddle_ocr_jni.cpp","ime-core/src/main/java/com/haizhan/ime/core/context/ChatContext.kt","ime-core/src/main/java/com/haizhan/ime/core/context/ChatContextProvider.kt","ime-core/src/main/java/com/haizhan/ime/core/context/ContextAnalyzer.kt","ime-core/src/main/java/com/haizhan/ime/core/context/ContextAwareRanker.kt","ime-core/src/main/java/com/haizhan/ime/core/context/WordCategoryClassifier.kt","ime-core/src/main/java/com/haizhan/ime/core/di/ImeCoreModule.kt","ime-core/src/main/java/com/haizhan/ime/core/di/PerformanceModule.kt","ime-core/src/main/java/com/haizhan/ime/core/engine/ImeEngine.kt","ime-core/src/main/java/com/haizhan/ime/core/engine/handler/EnglishKeyHandler.kt","ime-core/src/main/java/com/haizhan/ime/core/engine/handler/HandwritingKeyHandler.kt","ime-core/src/main/java/com/haizhan/ime/core/engine/handler/KeyPressDispatcher.kt","ime-core/src/main/java/com/haizhan/ime/core/engine/handler/KeyPressHandler.kt","ime-core/src/main/java/com/haizhan/ime/core/engine/handler/PinyinKeyHandler.kt","ime-core/src/main/java/com/haizhan/ime/core/engine/handler/SymbolKeyHandler.kt","ime-core/src/main/java/com/haizhan/ime/core/engine/handler/VoiceKeyHandler.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HaizhanHandwritingApiClient.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingKeyboard.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingManager.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingToolbar.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingView.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/IHandwritingRecognizer.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/ModelDownloader.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/PaddleLiteRecognizer.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/RecognitionConfig.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/Stroke.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/StrokeCache.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/StrokePreprocessor.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/StrokeSegmenter.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/TFLiteRecognizer.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/UnifiedRecognitionEngine.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/di/HandwritingModule.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/CandidatesView.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/EnhancedCandidatesView.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/ImeContentLayout.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/ImeLayoutConstants.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/InputModeToolbar.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/KeyboardLayout.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/KeyboardView.kt","ime-core/src/main/java/com/haizhan/ime/core/ocr/IOcrEngine.kt","ime-core/src/main/java/com/haizhan/ime/core/ocr/OcrImageProcessor.kt","ime-core/src/main/java/com/haizhan/ime/core/ocr/OcrModels.kt","ime-core/src/main/java/com/haizhan/ime/core/ocr/PaddleOcrEngine.kt","ime-core/src/main/java/com/haizhan/ime/core/ocr/README.md","ime-core/src/main/java/com/haizhan/ime/core/ocr/di/OcrModule.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/BuiltinDictionary.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/Candidate.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/CloudPinyinService.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/CloudSyncService.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/DictModels.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/DictionaryFileParser.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/DictionaryHotReloader.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/DictionaryImporter.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/DictionaryReloader.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/EnterpriseDictionary.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/FuzzyPinyinConfig.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/HotWordService.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/ImportResult.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/InputPredictor.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/LocalDictionary.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/NgramData.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/NgramModel.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/NineGridMatcher.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/PinyinSegmenterImpl.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/PinyinService.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/PinyinServiceImpl.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/PinyinSplitter.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/SmartErrorCorrector.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/SystemDatDictionary.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/UserPreferenceStore.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/cloud/CloudPinyinApiImpl.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/cloud/CloudPinyinModule.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/cloud/ExponentialBackoff.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/converter/ChineseConverter.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/matcher/FullPinyinMatcher.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/matcher/InputMatcher.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/matcher/InputMatcherManager.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/matcher/NineGridMatcherAdapter.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/matcher/ShortcutMatcher.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/matcher/ShuangpinMatcher.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/matcher/di/MatcherModule.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/shuangpin/MicrosoftScheme.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/shuangpin/NaturalScheme.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/shuangpin/ShuangpinConverter.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/shuangpin/ShuangpinScheme.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/shuangpin/SogouScheme.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/shuangpin/XiaoheScheme.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/stroke/StrokeData.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/stroke/StrokeMatcher.kt","ime-core/src/main/java/com/haizhan/ime/core/theme/DesignTokens.kt","ime-core/src/main/java/com/haizhan/ime/core/theme/KeyboardTheme.kt","ime-core/src/main/java/com/haizhan/ime/core/theme/ThemeManager.kt","ime-core/src/main/java/com/haizhan/ime/core/voice/ui/VoicePanel.kt","ime-core/src/main/jniLibs/arm64-v8a/libpaddle_light_api_shared.so","ime-core/src/main/res/drawable/ic_backspace.xml","ime-core/src/main/res/drawable/ic_clear_all.xml","ime-core/src/main/res/drawable/ic_handwriting.xml","ime-core/src/main/res/drawable/ic_keyboard.xml","ime-core/src/test/java/com/haizhan/ime/core/ImeEngineTest.kt","ime-core/src/test/java/com/haizhan/ime/core/benchmark/ImeCorePerformanceTest.kt","ime-core/src/test/java/com/haizhan/ime/core/benchmark/MemoryBenchmarkTest.kt","ime-core/src/test/java/com/haizhan/ime/core/context/ContextAnalyzerTest.kt","ime-core/src/test/java/com/haizhan/ime/core/context/ContextAwareRankerTest.kt","ime-core/src/test/java/com/haizhan/ime/core/context/WordCategoryClassifierTest.kt","ime-core/src/test/java/com/haizhan/ime/core/decoder/UnifiedRankerTest.kt","ime-core/src/test/java/com/haizhan/ime/core/engine/ImeEngineTest.kt","ime-core/src/test/java/com/haizhan/ime/core/engine/handler/EnglishKeyHandlerExpandedTest.kt","ime-core/src/test/java/com/haizhan/ime/core/engine/handler/KeyPressDispatcherTest.kt","ime-core/src/test/java/com/haizhan/ime/core/engine/handler/KeyPressHandlerTest.kt","ime-core/src/test/java/com/haizhan/ime/core/engine/handler/PinyinKeyHandlerExpandedTest.kt","ime-core/src/test/java/com/haizhan/ime/core/engine/handler/SymbolKeyHandlerExpandedTest.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/HandwritingManagerAdvancedTest.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/HandwritingManagerTest.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/PaddleLiteRecognizerTest.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/StrokeCacheTest.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/StrokePreprocessorTest.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/TFLiteRecognizerTest.kt","ime-core/src/test/java/com/haizhan/ime/core/keyboard/CandidatesViewTest.kt","ime-core/src/test/java/com/haizhan/ime/core/keyboard/KeyboardLayoutTest.kt","ime-core/src/test/java/com/haizhan/ime/core/keyboard/KeyboardViewTest.kt","ime-core/src/test/java/com/haizhan/ime/core/ocr/OcrImageProcessorTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/CloudPinyinServiceTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/CloudSyncServiceTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/DictionaryFileParserTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/DictionaryImporterTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/DictionaryReloaderTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/EnterpriseDictionaryTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/FuzzyPinyinConfigTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/HotWordServiceTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/InputPredictorTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/LocalDictionaryTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/NgramModelTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/NineGridMatcherTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/PinyinSegmenterTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/PinyinServiceImplTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/PinyinServiceTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/PinyinSplitterTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/SmartErrorCorrectorTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/SystemDatDictionaryTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/UserPreferenceStoreTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/cloud/CloudPinyinApiImplTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/cloud/ExponentialBackoffTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/matcher/FullPinyinMatcherTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/matcher/ShuangpinMatcherTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/shuangpin/ShuangpinSchemeTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/shuangpin/SogouSchemeTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/shuangpin/XiaoheSchemeTest.kt","ime-core/src/test/java/com/haizhan/ime/core/theme/ThemeManagerTest.kt","ios_keyboard/APPSTORE_LISTING.md","ios_keyboard/HaizhanKeyboard/Info.plist","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboard.xcodeproj/project.pbxproj","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboard.xcodeproj/project.xcworkspace/contents.xcworkspacedata","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp.entitlements","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/HaizhanKeyboardApp.entitlements","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/HaizhanKeyboardApp.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/Info.plist","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/Models/AppSession.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/Services/KeyboardStatusService.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/Services/ScreenshotResponder.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/Views/AccountView.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/Views/AppSettingsView.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/Views/ContentView.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/Views/LoginView.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/Views/OnboardingView.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardExtension.entitlements","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardExtension/HaizhanKeyboardExtension.entitlements","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardExtension/Info.plist","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardExtension/KeyboardExtensionStub.swift","ios_keyboard/HaizhanKeyboardApp/Info.plist","ios_keyboard/HaizhanKeyboardApp/Models/AppSession.swift","ios_keyboard/HaizhanKeyboardApp/README.md","ios_keyboard/HaizhanKeyboardApp/Services/KeyboardStatusService.swift","ios_keyboard/HaizhanKeyboardApp/Services/ScreenshotResponder.swift","ios_keyboard/HaizhanKeyboardApp/Views/AccountView.swift","ios_keyboard/HaizhanKeyboardApp/Views/AppSettingsView.swift","ios_keyboard/HaizhanKeyboardApp/Views/ContentView.swift","ios_keyboard/HaizhanKeyboardApp/Views/LoginView.swift","ios_keyboard/HaizhanKeyboardApp/Views/OnboardingView.swift","ios_keyboard/HaizhanKeyboardApp/project.yml","ios_keyboard/HaizhanKeyboardExtension/Info.plist","ios_keyboard/HaizhanKeyboardExtension/KeyboardExtensionStub.swift","ios_keyboard/Package.swift","ios_keyboard/README.md","ios_keyboard/Sources/HaizhanKeyboard/AI/ContactMatcher.swift","ios_keyboard/Sources/HaizhanKeyboard/AI/ReplyService.swift","ios_keyboard/Sources/HaizhanKeyboard/AI/ScreenshotManager.swift","ios_keyboard/Sources/HaizhanKeyboard/Bridge/KMPBridge.swift","ios_keyboard/Sources/HaizhanKeyboard/Engine/KeyboardEngine.swift","ios_keyboard/Sources/HaizhanKeyboard/Engine/PinyinSegmenter.swift","ios_keyboard/Sources/HaizhanKeyboard/KeyboardViewController.swift","ios_keyboard/Sources/HaizhanKeyboard/Network/ApiClient.swift","ios_keyboard/Sources/HaizhanKeyboard/Network/AuthService.swift","ios_keyboard/Sources/HaizhanKeyboard/Storage/AppGroupStore.swift","ios_keyboard/Sources/HaizhanKeyboard/Storage/KeychainStore.swift","ios_keyboard/Sources/HaizhanKeyboard/Theme/ThemeManager.swift","ios_keyboard/Sources/HaizhanKeyboard/Utils/HapticManager.swift","ios_keyboard/Sources/HaizhanKeyboard/ViewModel/KeyboardViewModel.swift","ios_keyboard/Sources/HaizhanKeyboard/Views/AIPanelView.swift","ios_keyboard/Sources/HaizhanKeyboard/Views/KeyboardView.swift","ios_keyboard/Sources/HaizhanKeyboard/Views/NineGridKeyboard.swift","ios_keyboard/Sources/HaizhanKeyboard/Views/SettingsView.swift","ios_keyboard/Tests/HaizhanKeyboardTests/ApiClientTests.swift","ios_keyboard/Tests/HaizhanKeyboardTests/AppGroupStoreTests.swift","ios_keyboard/Tests/HaizhanKeyboardTests/ContactMatcherTests.swift","ios_keyboard/Tests/HaizhanKeyboardTests/HapticManagerTests.swift","ios_keyboard/Tests/HaizhanKeyboardTests/KeyboardEngineTests.swift","ios_keyboard/Tests/HaizhanKeyboardTests/KeychainStoreTests.swift","ios_keyboard/Tests/HaizhanKeyboardTests/PinyinSegmenterTests.swift","ios_keyboard/Tests/HaizhanKeyboardTests/ReplyServiceTests.swift","ios_keyboard/Tests/HaizhanKeyboardTests/ThemeManagerTests.swift","ios_keyboard/build_kmp_xcframework.sh","openapitools.json","package.json","pnpm-workspace.yaml","scripts/PACKAGE_MANAGER_SUMMARY.md","scripts/check-docs-sync.sh","scripts/download_paddle_ocr_models.sh","scripts/generate-design-tokens.py","scripts/package-manager-migration.md","scripts/pre-commit","server/.dockerignore","server/.env.example","server/.npmrc","server/Makefile","server/README.md","server/ai-service/.dockerignore","server/ai-service/Dockerfile","server/ai-service/jest.config.js","server/ai-service/nest-cli.json","server/ai-service/package.json","server/ai-service/poc-load-test-1770067946237.json","server/ai-service/poc-report-1770067953461.json","server/ai-service/poc-report-1770067953461.md","server/ai-service/poc-report-1771647201192.json","server/ai-service/poc-report-1771647201192.md","server/ai-service/scripts/poc/README.md","server/ai-service/scripts/poc/deploy-models.sh","server/ai-service/scripts/poc/generate-report.ts","server/ai-service/scripts/poc/load-test.ts","server/ai-service/scripts/poc/v1-int8-quality.ts","server/ai-service/scripts/poc/v2-router-accuracy.ts","server/ai-service/scripts/poc/v3-e2e-latency.ts","server/ai-service/scripts/seed-rag.ts","server/ai-service/src/app.module.ts","server/ai-service/src/common/decorators/current-tenant.decorator.ts","server/ai-service/src/common/decorators/public.decorator.ts","server/ai-service/src/common/guards/auth.guard.spec.ts","server/ai-service/src/common/guards/auth.guard.ts","server/ai-service/src/common/redis/index.ts","server/ai-service/src/common/redis/redis.module.ts","server/ai-service/src/common/redis/redis.service.ts","server/ai-service/src/main.ts","server/ai-service/src/modules/ai/ai.controller.ts","server/ai-service/src/modules/ai/ai.module.ts","server/ai-service/src/modules/ai/ai.service.spec.ts","server/ai-service/src/modules/ai/ai.service.ts","server/ai-service/src/modules/ai/dto/generate-reply.dto.ts","server/ai-service/src/modules/ai/legacy-reply.controller.ts","server/ai-service/src/modules/health/health.controller.ts","server/ai-service/src/modules/health/health.module.ts","server/ai-service/src/modules/memory/dto/memory.dto.ts","server/ai-service/src/modules/memory/event.service.spec.ts","server/ai-service/src/modules/memory/event.service.ts","server/ai-service/src/modules/memory/index.ts","server/ai-service/src/modules/memory/memory.controller.ts","server/ai-service/src/modules/memory/memory.module.ts","server/ai-service/src/modules/memory/memory.service.spec.ts","server/ai-service/src/modules/memory/memory.service.ts","server/ai-service/src/modules/memory/profile.service.spec.ts","server/ai-service/src/modules/memory/profile.service.ts","server/ai-service/src/modules/memory/schemas/contact-event.schema.ts","server/ai-service/src/modules/memory/schemas/contact-profile.schema.ts","server/ai-service/src/modules/memory/schemas/conversation-summary.schema.ts","server/ai-service/src/modules/memory/summary.service.spec.ts","server/ai-service/src/modules/memory/summary.service.ts","server/ai-service/src/modules/memory/vector.service.ts","server/ai-service/src/modules/privacy/index.ts","server/ai-service/src/modules/privacy/pii-scrubber.service.ts","server/ai-service/src/modules/privacy/privacy.module.ts","server/ai-service/src/modules/search/agentic/agentic-loop.controller.ts","server/ai-service/src/modules/search/agentic/answer-synthesizer.service.ts","server/ai-service/src/modules/search/agentic/answer-synthesizer.spec.ts","server/ai-service/src/modules/search/agentic/index.ts","server/ai-service/src/modules/search/agentic/query-decomposer.service.ts","server/ai-service/src/modules/search/agentic/query-decomposer.spec.ts","server/ai-service/src/modules/search/agentic/result-evaluator.service.ts","server/ai-service/src/modules/search/agentic/result-evaluator.spec.ts","server/ai-service/src/modules/search/cache/index.ts","server/ai-service/src/modules/search/cache/multi-level-cache.service.ts","server/ai-service/src/modules/search/cache/multi-level-cache.spec.ts","server/ai-service/src/modules/search/config/search.config.ts","server/ai-service/src/modules/search/dto/index.ts","server/ai-service/src/modules/search/dto/search-request.dto.ts","server/ai-service/src/modules/search/dto/search-response.dto.ts","server/ai-service/src/modules/search/experiment/ab-testing.service.ts","server/ai-service/src/modules/search/experiment/experiment.controller.ts","server/ai-service/src/modules/search/experiment/gradual-release.service.ts","server/ai-service/src/modules/search/experiment/index.ts","server/ai-service/src/modules/search/gateway/unified-search-gateway.service.ts","server/ai-service/src/modules/search/gateway/unified-search-gateway.spec.ts","server/ai-service/src/modules/search/index.ts","server/ai-service/src/modules/search/layers/agentic-layer.service.spec.ts","server/ai-service/src/modules/search/layers/agentic-layer.service.ts","server/ai-service/src/modules/search/layers/cache-layer.service.spec.ts","server/ai-service/src/modules/search/layers/cache-layer.service.ts","server/ai-service/src/modules/search/layers/rag-layer.service.spec.ts","server/ai-service/src/modules/search/layers/rag-layer.service.ts","server/ai-service/src/modules/search/monitoring/alert.service.ts","server/ai-service/src/modules/search/monitoring/grafana-dashboard.json","server/ai-service/src/modules/search/monitoring/index.ts","server/ai-service/src/modules/search/monitoring/metrics.service.ts","server/ai-service/src/modules/search/optimization/index.ts","server/ai-service/src/modules/search/optimization/parallel-retriever.service.ts","server/ai-service/src/modules/search/optimization/parallel-retriever.spec.ts","server/ai-service/src/modules/search/router/pure-rule-router.spec.ts","server/ai-service/src/modules/search/router/pure-rule-router.ts","server/ai-service/src/modules/search/router/router.types.ts","server/ai-service/src/modules/search/search.controller.ts","server/ai-service/src/modules/search/search.integration.spec.ts","server/ai-service/src/modules/search/search.module.ts","server/ai-service/src/modules/search/services/elasticsearch.service.ts","server/ai-service/src/modules/search/services/embedding.service.spec.ts","server/ai-service/src/modules/search/services/embedding.service.ts","server/ai-service/src/modules/search/services/index.ts","server/ai-service/src/modules/search/services/llm.service.spec.ts","server/ai-service/src/modules/search/services/llm.service.ts","server/ai-service/src/modules/search/services/milvus.service.ts","server/ai-service/src/modules/search/services/reranker.service.spec.ts","server/ai-service/src/modules/search/services/reranker.service.ts","server/ai-service/src/modules/search/streaming/index.ts","server/ai-service/src/modules/search/streaming/stream-optimizer.service.ts","server/ai-service/src/modules/search/vip/index.ts","server/ai-service/src/modules/search/vip/vip-tier.service.ts","server/ai-service/tsconfig.json","server/api-gateway/.dockerignore","server/api-gateway/Dockerfile","server/api-gateway/logs/.3fa4d5e91883ce1217f62a49f94203b42caa131d-audit.json","server/api-gateway/logs/.92dabeadf9708ae538f84c8892e853b5a8f57f04-audit.json","server/api-gateway/nest-cli.json","server/api-gateway/package.json","server/api-gateway/prisma/README.md","server/api-gateway/prisma/migrations/20260203065715_init/migration.sql","server/api-gateway/prisma/migrations/20260203160000_add_360_view_models/migration.sql","server/api-gateway/prisma/migrations/20260203170000_add_admin_modules/migration.sql","server/api-gateway/prisma/migrations/20260203180000_add_config_and_usage_stats/migration.sql","server/api-gateway/prisma/migrations/20260213000000_add_contact_geo_fields/migration.sql","server/api-gateway/prisma/migrations/20260213100000_expand_prompt_template/migration.sql","server/api-gateway/prisma/migrations/migration_lock.toml","server/api-gateway/prisma/schema.prisma","server/api-gateway/prisma/seed.ts","server/api-gateway/scripts/generate-openapi.ts","server/api-gateway/src/app.module.ts","server/api-gateway/src/common/logger/global-logger.module.ts","server/api-gateway/src/common/logger/global-logger.service.ts","server/api-gateway/src/main.ts","server/api-gateway/src/modules/ai-config/ai-config.controller.ts","server/api-gateway/src/modules/ai-config/ai-config.module.ts","server/api-gateway/src/modules/ai-config/ai-config.service.ts","server/api-gateway/src/modules/ai-config/dto/ai-config.dto.ts","server/api-gateway/src/modules/ai/ai.controller.ts","server/api-gateway/src/modules/ai/ai.module.ts","server/api-gateway/src/modules/ai/ai.service.ts","server/api-gateway/src/modules/audit-logs/audit-logs.controller.ts","server/api-gateway/src/modules/audit-logs/audit-logs.module.ts","server/api-gateway/src/modules/audit-logs/audit-logs.service.ts","server/api-gateway/src/modules/audit-logs/dto/audit-logs.dto.ts","server/api-gateway/src/modules/auth/auth.controller.spec.ts","server/api-gateway/src/modules/auth/auth.controller.ts","server/api-gateway/src/modules/auth/auth.module.ts","server/api-gateway/src/modules/auth/auth.service.spec.ts","server/api-gateway/src/modules/auth/auth.service.ts","server/api-gateway/src/modules/auth/decorators/roles.decorator.ts","server/api-gateway/src/modules/auth/dto/admin-login.dto.ts","server/api-gateway/src/modules/auth/dto/login.dto.ts","server/api-gateway/src/modules/auth/dto/refresh-token.dto.ts","server/api-gateway/src/modules/auth/guards/jwt-auth.guard.ts","server/api-gateway/src/modules/auth/guards/roles.guard.ts","server/api-gateway/src/modules/auth/strategies/jwt.strategy.ts","server/api-gateway/src/modules/contacts/contacts.controller.spec.ts","server/api-gateway/src/modules/contacts/contacts.controller.ts","server/api-gateway/src/modules/contacts/contacts.module.ts","server/api-gateway/src/modules/contacts/contacts.service.spec.ts","server/api-gateway/src/modules/contacts/contacts.service.ts","server/api-gateway/src/modules/contacts/dto/match-contact.dto.ts","server/api-gateway/src/modules/health/health.controller.spec.ts","server/api-gateway/src/modules/health/health.controller.ts","server/api-gateway/src/modules/health/health.module.ts","server/api-gateway/src/modules/knowledge/dto/knowledge-base.dto.ts","server/api-gateway/src/modules/knowledge/dto/search-knowledge.dto.ts","server/api-gateway/src/modules/knowledge/knowledge.controller.spec.ts","server/api-gateway/src/modules/knowledge/knowledge.controller.ts","server/api-gateway/src/modules/knowledge/knowledge.module.ts","server/api-gateway/src/modules/knowledge/knowledge.service.spec.ts","server/api-gateway/src/modules/knowledge/knowledge.service.ts","server/api-gateway/src/modules/mobile-compat/mobile-compat.controller.ts","server/api-gateway/src/modules/mobile-compat/mobile-compat.module.ts","server/api-gateway/src/modules/ocr/ocr.controller.ts","server/api-gateway/src/modules/ocr/ocr.module.ts","server/api-gateway/src/modules/ocr/ocr.service.ts","server/api-gateway/src/modules/pinyin/pinyin.controller.spec.ts","server/api-gateway/src/modules/pinyin/pinyin.controller.ts","server/api-gateway/src/modules/pinyin/pinyin.module.ts","server/api-gateway/src/modules/pinyin/pinyin.service.spec.ts","server/api-gateway/src/modules/pinyin/pinyin.service.ts","server/api-gateway/src/modules/rag/dto/rag.dto.ts","server/api-gateway/src/modules/rag/rag.controller.spec.ts","server/api-gateway/src/modules/rag/rag.controller.ts","server/api-gateway/src/modules/rag/rag.module.ts","server/api-gateway/src/modules/rag/rag.service.runtime.spec.ts","server/api-gateway/src/modules/rag/rag.service.spec.ts","server/api-gateway/src/modules/rag/rag.service.ts","server/api-gateway/src/modules/settings/dto/settings.dto.ts","server/api-gateway/src/modules/settings/settings.controller.spec.ts","server/api-gateway/src/modules/settings/settings.controller.ts","server/api-gateway/src/modules/settings/settings.module.ts","server/api-gateway/src/modules/settings/settings.service.spec.ts","server/api-gateway/src/modules/settings/settings.service.ts","server/api-gateway/src/modules/teams/dto/teams.dto.ts","server/api-gateway/src/modules/teams/teams.controller.spec.ts","server/api-gateway/src/modules/teams/teams.controller.ts","server/api-gateway/src/modules/teams/teams.module.ts","server/api-gateway/src/modules/teams/teams.service.spec.ts","server/api-gateway/src/modules/teams/teams.service.ts","server/api-gateway/src/modules/templates/dto/template.dto.ts","server/api-gateway/src/modules/templates/templates.controller.spec.ts","server/api-gateway/src/modules/templates/templates.controller.ts","server/api-gateway/src/modules/templates/templates.module.ts","server/api-gateway/src/modules/templates/templates.service.spec.ts","server/api-gateway/src/modules/templates/templates.service.ts","server/api-gateway/src/modules/usage/dto/usage.dto.ts","server/api-gateway/src/modules/usage/usage.controller.ts","server/api-gateway/src/modules/usage/usage.module.ts","server/api-gateway/src/modules/usage/usage.service.spec.ts","server/api-gateway/src/modules/usage/usage.service.ts","server/api-gateway/src/modules/users/users.controller.spec.ts","server/api-gateway/src/modules/users/users.controller.ts","server/api-gateway/src/modules/users/users.module.ts","server/api-gateway/src/modules/users/users.service.spec.ts","server/api-gateway/src/modules/users/users.service.ts","server/api-gateway/src/modules/weather/weather.controller.spec.ts","server/api-gateway/src/modules/weather/weather.controller.ts","server/api-gateway/src/modules/weather/weather.module.ts","server/api-gateway/src/modules/weather/weather.service.spec.ts","server/api-gateway/src/modules/weather/weather.service.ts","server/api-gateway/src/shared/prisma/prisma.module.ts","server/api-gateway/src/shared/prisma/prisma.service.ts","server/api-gateway/src/shared/redis/redis.module.ts","server/api-gateway/src/shared/redis/redis.service.ts","server/api-gateway/src/shared/sms/sms.module.ts","server/api-gateway/src/shared/sms/sms.service.spec.ts","server/api-gateway/src/shared/sms/sms.service.ts","server/api-gateway/tsconfig.json","server/docker-compose.override.yml","server/docker-compose.prod.yml","server/docker-compose.yml","server/docker/grafana/provisioning/dashboards/dashboards.yml","server/docker/grafana/provisioning/dashboards/json/api-gateway.json","server/docker/grafana/provisioning/datasources/datasources.yml","server/docker/loki/loki-config.yml","server/docker/mongodb/init.js","server/docker/nginx/conf.d/default.conf","server/docker/nginx/nginx.conf","server/docker/nginx/ssl/.gitkeep","server/docker/nginx/ssl/README.md","server/docker/postgres/init.sql","server/docker/prometheus/alert.rules.yml","server/docker/prometheus/prometheus.yml","server/docker/promtail/promtail-config.yml","server/k8s/vllm/deployment.yaml","server/k8s/vllm/hpa.yaml","server/k8s/vllm/service.yaml","server/model-services/reranker/Dockerfile","server/model-services/reranker/requirements.txt","server/model-services/reranker/reranker_server.py","server/ocr-service/.dockerignore","server/ocr-service/Dockerfile","server/ocr-service/jest.config.js","server/ocr-service/nest-cli.json","server/ocr-service/package.json","server/ocr-service/src/app.module.ts","server/ocr-service/src/main.ts","server/ocr-service/src/modules/health/health.controller.ts","server/ocr-service/src/modules/health/health.module.ts","server/ocr-service/src/modules/ocr/chat-parser.service.spec.ts","server/ocr-service/src/modules/ocr/chat-parser.service.ts","server/ocr-service/src/modules/ocr/dto/chat-screenshot.dto.ts","server/ocr-service/src/modules/ocr/ocr.controller.ts","server/ocr-service/src/modules/ocr/ocr.module.ts","server/ocr-service/src/modules/ocr/ocr.service.spec.ts","server/ocr-service/src/modules/ocr/ocr.service.ts","server/ocr-service/tsconfig.json","server/scripts/backup.sh","server/scripts/check-mobile-api-coverage.js","server/scripts/check-mobile-response-compat.js","server/scripts/deploy.sh","server/scripts/deploy/deploy-infrastructure.sh","server/scripts/deploy/deploy-models.sh","server/scripts/deploy/final-deploy.sh","server/scripts/deploy/stop-models.sh","server/scripts/e2e-smoke.js","server/scripts/health-check.sh","server/scripts/mobile-api-smoke.js","server/scripts/setup-ssl.sh","settings.gradle.kts","shared/README.md","shared/build.gradle.kts","shared/src/androidInstrumentedTest/kotlin/com/haizhan/ime/shared/auth/AndroidTokenStorageTest.kt","shared/src/androidInstrumentedTest/kotlin/com/haizhan/ime/shared/auth/SharedAuthManagerIntegrationTest.kt","shared/src/androidInstrumentedTest/kotlin/com/haizhan/ime/shared/database/DatabaseIntegrationTest.kt","shared/src/androidInstrumentedTest/kotlin/com/haizhan/ime/shared/pinyin/CandidateRankerIntegrationTest.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/BuildConfig.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/Platform.android.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/auth/AndroidTokenStorage.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/auth/CurrentTime.android.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/database/DatabaseDriverFactory.android.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/database/SharedDatabaseKeyManager.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/di/PlatformModule.android.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/migration/RoomToSqlDelightMigrator.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/platform/Connectivity.android.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/platform/DeviceInfo.android.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/platform/DictionaryLoader.android.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/platform/FileSystem.android.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/Platform.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/analytics/AnalyticsTracker.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/ApiClient.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/AuthApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/ContactApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/DashboardApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/FeedbackApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/KnowledgeApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/MemoryApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/NoteApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/OcrApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/PinyinApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/RagSearchApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/ReplyApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/ScriptApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/SearchApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/SessionApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/SettingsApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/SubscriptionApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/UserApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/WeatherApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/auth/AuthManager.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/auth/AuthModels.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/database/DatabaseDriverFactory.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/database/DatabaseExtensions.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/di/SharedModule.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/matcher/NicknameMatcher.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/ContactModel.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/KnowledgeModel.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/AiDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/ApiResponse.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/AuthDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/ContactDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/DashboardDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/FeedbackDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/KnowledgeDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/MemoryDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/MessageDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/NoteDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/OcrDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/PinyinDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/ProfileDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/RagSearchDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/ReplyDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/ScriptDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/SearchDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/SessionDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/SettingsDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/SubscriptionDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/WeatherDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/Candidate.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/CandidateRanker.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/DictEntry.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/NineGridMatcher.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/PinyinConstants.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/PinyinService.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/PinyinSplitter.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/algorithm/CloudSynergyEngine.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/algorithm/DoubleArrayTrie.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/algorithm/DoubleArrayTrieImpl.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/algorithm/DynamicWeightRanker.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/algorithm/PinyinDAG.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/algorithm/ViterbiDecoder.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/platform/Connectivity.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/platform/DeviceInfo.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/platform/DictionaryLoader.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/platform/FileSystem.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/repository/ContactRepository.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/repository/KnowledgeRepository.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/repository/MessageRepository.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/repository/NoteRepository.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/repository/PinyinRepository.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/repository/SearchRepository.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/repository/SettingsRepository.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/repository/UserDictRepository.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/service/MessageChainMatcher.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/service/OcrMatchService.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/service/OfflineFallbackService.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/service/ReplyService.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/service/ScriptService.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/service/SessionService.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/sync/SyncManager.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/util/FlowExt.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/util/LevenshteinDistance.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/util/LruCache.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/util/StringExt.kt","shared/src/commonMain/sqldelight/com/haizhan/ime/shared/database/Contact.sq","shared/src/commonMain/sqldelight/com/haizhan/ime/shared/database/Knowledge.sq","shared/src/commonMain/sqldelight/com/haizhan/ime/shared/database/Message.sq","shared/src/commonMain/sqldelight/com/haizhan/ime/shared/database/Note.sq","shared/src/commonMain/sqldelight/com/haizhan/ime/shared/database/Search.sq","shared/src/commonMain/sqldelight/com/haizhan/ime/shared/database/Settings.sq","shared/src/commonMain/sqldelight/com/haizhan/ime/shared/database/UserDict.sq","shared/src/commonMain/sqldelight/migrations/1.sqm","shared/src/commonTest/kotlin/com/haizhan/ime/shared/analytics/AnalyticsTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/api/ApiClientTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/auth/AuthModelsTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/matcher/NicknameMatcherTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/model/ContactModelTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/model/KnowledgeModelTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/network/NetworkClientTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/CandidateRankerTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/CandidateTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/NineGridMatcherTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/PinyinConstantsTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/PinyinSplitterTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/algorithm/CloudSynergyEngineTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/algorithm/DoubleArrayTrieImplTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/algorithm/DynamicWeightRankerTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/algorithm/PinyinDAGTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/algorithm/ViterbiDecoderTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/repository/ContactRepositoryTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/sync/SyncTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/util/LevenshteinDistanceTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/util/PinyinConverterTest.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/Platform.ios.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/auth/CurrentTime.ios.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/auth/IosTokenStorage.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/database/DatabaseDriverFactory.ios.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/di/PlatformModule.ios.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/platform/Connectivity.ios.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/platform/DeviceInfo.ios.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/platform/DictionaryLoader.ios.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/platform/FileSystem.ios.kt","voice/build.gradle.kts","voice/consumer-rules.pro","voice/proguard-rules.pro","voice/src/androidTest/java/com/haizhan/ime/voice/integration/VoiceModuleIntegrationTest.kt","voice/src/androidTest/java/com/haizhan/ime/voice/integration/WakeWordServiceIntegrationTest.kt","voice/src/main/AndroidManifest.xml","voice/src/main/java/com/haizhan/ime/voice/api/AudioPipeline.kt","voice/src/main/java/com/haizhan/ime/voice/api/SpeechRecognitionService.kt","voice/src/main/java/com/haizhan/ime/voice/api/VoiceCoordinator.kt","voice/src/main/java/com/haizhan/ime/voice/api/VoiceErrors.kt","voice/src/main/java/com/haizhan/ime/voice/api/VoiceTypes.kt","voice/src/main/java/com/haizhan/ime/voice/api/WakeWordConfigManager.kt","voice/src/main/java/com/haizhan/ime/voice/api/WakeWordDetectionService.kt","voice/src/main/java/com/haizhan/ime/voice/audio/AudioPipelineImpl.kt","voice/src/main/java/com/haizhan/ime/voice/audio/di/AudioModule.kt","voice/src/main/java/com/haizhan/ime/voice/coordinator/VoiceCoordinatorImpl.kt","voice/src/main/java/com/haizhan/ime/voice/coordinator/di/CoordinatorModule.kt","voice/src/main/java/com/haizhan/ime/voice/denoise/DenoiseAudioConsumer.kt","voice/src/main/java/com/haizhan/ime/voice/denoise/DenoiseManager.kt","voice/src/main/java/com/haizhan/ime/voice/denoise/MusicAwareAEC.kt","voice/src/main/java/com/haizhan/ime/voice/denoise/NoiseEstimator.kt","voice/src/main/java/com/haizhan/ime/voice/denoise/SpectralSubtractor.kt","voice/src/main/java/com/haizhan/ime/voice/denoise/VoiceActivityDetector.kt","voice/src/main/java/com/haizhan/ime/voice/denoise/di/DenoiseModule.kt","voice/src/main/java/com/haizhan/ime/voice/di/VoiceModule.kt","voice/src/main/java/com/haizhan/ime/voice/engine/VoiceInputEngine.kt","voice/src/main/java/com/haizhan/ime/voice/model/MultiModelManager.kt","voice/src/main/java/com/haizhan/ime/voice/model/VoiceModelManager.kt","voice/src/main/java/com/haizhan/ime/voice/monitoring/VoicePerformanceMonitor.kt","voice/src/main/java/com/haizhan/ime/voice/monitoring/di/MonitoringModule.kt","voice/src/main/java/com/haizhan/ime/voice/recognition/AudioDiagnostics.kt","voice/src/main/java/com/haizhan/ime/voice/recognition/SpeechRecognitionServiceImpl.kt","voice/src/main/java/com/haizhan/ime/voice/recognition/VoskGrammarBuilder.kt","voice/src/main/java/com/haizhan/ime/voice/recognition/VoskRecognizer.kt","voice/src/main/java/com/haizhan/ime/voice/recognition/di/SpeechModule.kt","voice/src/main/java/com/haizhan/ime/voice/ui/VoiceUiTypes.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/WakeWordDetectionServiceImpl.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/analytics/WakeWordAnalytics.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/config/WakeWordConfigManagerImpl.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/config/di/ConfigModule.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/confirmation/WakeWordConfirmation.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/detector/IWakeWordDetector.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/detector/VoskWakeWordDetector.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/di/ConfirmationModule.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/di/MatcherModule.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/di/ParserModule.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/di/RepositoryModule.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/di/WakeWordModule.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/filter/FalseWakeFilter.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/matcher/PinyinData.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/matcher/PinyinMatcher.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/matcher/TrieWordMatcher.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/parser/WakeWordCommandParser.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/EnergyPatternMatcher.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/PitchExtractor.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/QuickWakeDetector.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/SingingModeDetector.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/SpectralAnalyzer.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/SyllableDetector.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/VibratoDetector.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/VoiceCharacteristicAnalyzer.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/VoiceProfileAnalyzer.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/di/PredetectModule.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/repository/WakeWordRepository.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/sensitivity/AdaptiveSensitivity.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/service/WakeWordService.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/util/PinyinUtils.kt","voice/src/test/java/com/haizhan/ime/voice/api/HotwordConfigTest.kt","voice/src/test/java/com/haizhan/ime/voice/audio/AudioPipelineImplTest.kt","voice/src/test/java/com/haizhan/ime/voice/coordinator/VoiceCoordinatorImplTest.kt","voice/src/test/java/com/haizhan/ime/voice/denoise/DenoiseManagerTest.kt","voice/src/test/java/com/haizhan/ime/voice/denoise/MusicAwareAECTest.kt","voice/src/test/java/com/haizhan/ime/voice/denoise/SpectralSubtractorTest.kt","voice/src/test/java/com/haizhan/ime/voice/denoise/VoiceActivityDetectorTest.kt.bak","voice/src/test/java/com/haizhan/ime/voice/model/MultiModelManagerTest.kt","voice/src/test/java/com/haizhan/ime/voice/monitoring/VoicePerformanceMonitorTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/config/WakeWordConfigManagerTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/confirmation/WakeWordConfirmationTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/filter/FalseWakeFilterTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/matcher/PinyinDataTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/matcher/PinyinMatcherTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/matcher/TrieWordMatcherTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/parser/WakeWordCommandParserTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/predetect/QuickWakeDetectorTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/predetect/SingingModeDetectorTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/predetect/SyllableDetectorTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/predetect/VibratoDetectorTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/predetect/VoiceCharacteristicAnalyzerTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/predetect/VoiceProfileAnalyzerTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/repository/WakeWordRepositorySerializationTest.kt"],"removed":[],"modified":[]},"repository":{"id":9,"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":"haizhan-ime-android","full_name":"luoanwu/haizhan-ime-android","description":"嗨赞AI输入法 Android版","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":29,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizhan-ime-android/languages","html_url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizhan-ime-android","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/haizhan-ime-android.git","clone_url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android.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-27T15:27:17+08:00","updated_at":"2026-02-27T15:27:32+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
|
3
|
1772178120
|
1772178609
|
0
|
1772177363
|
1772178609
|
NULL
|
|
0
|
Edit
Delete
|
|
43
|
feat: 新增门店管理模块,补充门店维度营销分析端点
|
6
|
5
|
quality-check.yml
|
4
|
5
|
0
|
refs/heads/main
|
89209aba1afe21133399ce0db0a47c2729c9a4b4
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"abd8cdd0283c96dc4a62fbf753d2aca2e68aa379","after":"89209aba1afe21133399ce0db0a47c2729c9a4b4","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/abd8cdd0283c96dc4a62fbf753d2aca2e68aa379...89209aba1afe21133399ce0db0a47c2729c9a4b4","commits":[{"id":"89209aba1afe21133399ce0db0a47c2729c9a4b4","message":"feat: 新增门店管理模块,补充门店维度营销分析端点\n\n一、门店管理模块 (stores)\n- 门店 CRUD:创建、更新、删除、状态管理\n- 门店类型:旗舰店、标准店、加盟店、合作店、迷你店、快闪店\n- 状态机:pending → active → suspended/renovating → closed\n\n二、门店维度营销分析端点\n- GET /stores/:id/marketing-analytics - 门店营销分析(活动、直播、团购、订单汇总)\n- GET /stores/:id/roi-analytics - 门店 ROI 分析(投入产出比、渠道分解、同比环比)\n- GET /stores/:id/livestream-stats - 门店直播统计(场次、时长、观众、GMV)\n- GET /stores/:id/campaigns - 门店活动列表\n\n三、门店对比和排行\n- POST /stores/compare - 多门店横向对比\n- GET /stores/ranking - 门店排行榜(营收、订单、评分、直播GMV)\n\n四、门店营销配置\n- PATCH /stores/:id/marketing-config - 团购/直播/促销开关、平台配置、预算设置\n\n五、前端 API 模块\n- stores.ts:完整类型定义 + API 封装 + 状态配置 + 工具函数\n\n严格遵循8条开发红线\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89209aba1afe21133399ce0db0a47c2729c9a4b4","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-01-11T07:36:12Z","added":["backend/src/modules/stores/index.ts","backend/src/modules/stores/store.controller.ts","backend/src/modules/stores/store.routes.ts","backend/src/modules/stores/store.schema.ts","backend/src/modules/stores/store.service.ts","frontend/src/api/modules/stores.ts"],"removed":[],"modified":["backend/src/shared/constants/modules.ts"]},{"id":"bd02a7f3eefc8d114499177151ddde0a410c4065","message":"feat: 完善 KTV 智慧营销域模块代码实现 - 19个后端模块 + 19个前端API模块\n\n一、分析类模块 (3个)\n- social-analytics: 社交媒体分析(账号概览、内容表现、粉丝画像、竞品对比、趋势分析)\n- content-analytics: 内容分析(表现概览、热门内容、分类表现、发布时间分析)\n- livestream-gifts: 直播礼物(礼物配置、赠送记录、礼物统计、排行榜)\n\n二、商家联盟域模块 (5个)\n- alliance-partners: 联盟商家(入驻审核、等级管理、状态机驱动)\n- alliance-agreements: 联盟协议(协议模板、审批流、续签终止)\n- alliance-campaigns: 联盟活动(多商家参与、效果追踪、奖励配置)\n- alliance-coupons: 联盟优惠券(发放核销、成本分摊、使用规则)\n- alliance-packages: 联盟套餐(多商家组合、分成模式、有效期管理)\n\n三、社群运营域模块 (4个)\n- community-materials: 社群素材(素材库、审核流程、使用追踪)\n- community-tasks: 社群任务(任务配置、执行管理、状态机驱动)\n- community-fission: 社群裂变(邀请奖励、拼团助力、排行榜)\n- community-bots: 社群机器人(多平台支持、自动回复、消息日志)\n\n四、团购运营域模块 (7个)\n- groupbuy-platforms: 团购平台(平台接入、同步配置、对账管理)\n- groupbuy-promotions: 团购促销(促销配置、状态管理、批量操作)\n- groupbuy-inventory: 团购库存(库存管理、预警机制、调拨盘点)\n- groupbuy-redemptions: 团购核销(券码验证、核销记录、统计分析)\n- groupbuy-reviews: 团购评价(评价管理、商家回复、审核分析)\n- groupbuy-commissions: 团购佣金(佣金规则、结算审批、对账报表)\n- groupbuy-influencers: 团购达人(招募审核、等级体系、带货数据)\n\n技术规范:\n- 后端:5层标准结构(schema/service/controller/routes/index)\n- 前端:完整 TypeScript 类型定义 + API 封装\n- 严格遵循8条开发红线(多租户隔离、状态机、事件驱动等)\n\n文件统计:\n- 后端模块:19个目录,95个文件\n- 前端API:19个TypeScript模块,总计约10,000+行代码\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/bd02a7f3eefc8d114499177151ddde0a410c4065","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-01-11T07:21:51Z","added":["backend/src/modules/alliance-agreements/alliance-agreement.controller.ts","backend/src/modules/alliance-agreements/alliance-agreement.routes.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-agreements/alliance-agreement.service.ts","backend/src/modules/alliance-agreements/index.ts","backend/src/modules/alliance-campaigns/alliance-campaign.controller.ts","backend/src/modules/alliance-campaigns/alliance-campaign.routes.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.service.ts","backend/src/modules/alliance-campaigns/index.ts","backend/src/modules/alliance-coupons/alliance-coupon.controller.ts","backend/src/modules/alliance-coupons/alliance-coupon.routes.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.service.ts","backend/src/modules/alliance-coupons/index.ts","backend/src/modules/alliance-packages/alliance-package.controller.ts","backend/src/modules/alliance-packages/alliance-package.routes.ts","backend/src/modules/alliance-packages/alliance-package.schema.ts","backend/src/modules/alliance-packages/alliance-package.service.ts","backend/src/modules/alliance-packages/index.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/alliance-partners/index.ts","backend/src/modules/community-bots/community-bot.controller.ts","backend/src/modules/community-bots/community-bot.routes.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-bots/community-bot.service.ts","backend/src/modules/community-bots/index.ts","backend/src/modules/community-fission/community-fission.controller.ts","backend/src/modules/community-fission/community-fission.routes.ts","backend/src/modules/community-fission/community-fission.schema.ts","backend/src/modules/community-fission/community-fission.service.ts","backend/src/modules/community-fission/index.ts","backend/src/modules/community-materials/community-material.controller.ts","backend/src/modules/community-materials/community-material.routes.ts","backend/src/modules/community-materials/community-material.schema.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-materials/index.ts","backend/src/modules/community-tasks/community-task.controller.ts","backend/src/modules/community-tasks/community-task.routes.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/community-tasks/community-task.service.ts","backend/src/modules/community-tasks/index.ts","backend/src/modules/content-analytics/content-analytics.controller.ts","backend/src/modules/content-analytics/content-analytics.routes.ts","backend/src/modules/content-analytics/content-analytics.schema.ts","backend/src/modules/content-analytics/content-analytics.service.ts","backend/src/modules/content-analytics/index.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.controller.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.routes.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.schema.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.service.ts","backend/src/modules/groupbuy-commissions/index.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.controller.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.routes.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.service.ts","backend/src/modules/groupbuy-influencers/index.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.controller.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.routes.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.schema.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-inventory/index.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.controller.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.routes.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.schema.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.service.ts","backend/src/modules/groupbuy-platforms/index.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.controller.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.routes.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-promotions/index.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.controller.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.routes.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.schema.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/groupbuy-redemptions/index.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.controller.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.routes.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.schema.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.service.ts","backend/src/modules/groupbuy-reviews/index.ts","backend/src/modules/livestream-gifts/index.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/livestream-gifts/livestream-gifts.routes.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.service.ts","backend/src/modules/social-analytics/index.ts","backend/src/modules/social-analytics/social-analytics.controller.ts","backend/src/modules/social-analytics/social-analytics.routes.ts","backend/src/modules/social-analytics/social-analytics.schema.ts","backend/src/modules/social-analytics/social-analytics.service.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-fission.ts","frontend/src/api/modules/community-materials.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/groupbuy-commissions.ts","frontend/src/api/modules/groupbuy-influencers.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-platforms.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/groupbuy-redemptions.ts","frontend/src/api/modules/groupbuy-reviews.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/social-analytics.ts"],"removed":[],"modified":[]},{"id":"5c0e2a9ccc614bb1dac8ed3875f4eeddb1bed80d","message":"feat: 完善 modules.ts 模块元数据定义,覆盖全部142个已部署模块\n\n主要变更:\n1. 新增 ModuleCategory 类型:\n - hr (人力资源域)\n - marketing-customer (营销客户维度)\n - ktv-content, ktv-social, ktv-geo, ktv-adflow, ktv-livestream, ktv-alliance, ktv-community, ktv-groupbuy (KTV智慧营销域)\n\n2. 补充缺失的模块定义:\n - 营销客户维度:campaign-targets, segments, customer-marketing\n - 系统核心模块:auth, scheduled-jobs, event-logs, event-subscriptions, realtime, ai-copilot\n - 服务域:service, service-monitor\n - 履约域:maintenance, workflow-generator\n - 财务域:customer-profit\n - HR域:hr\n\n3. 新增KTV智慧营销域模块(未来规划):\n - 内容管理、社交媒体、GEO优化、投流管理、直播运营、商家联盟、社群运营、团购运营等34个模块\n\n4. 清理重复模块定义:\n - 删除 users, roles, departments, notifications, files, events, approvals, analytics, dashboard, reports, im 的重复定义\n\n模块统计:\n- 已部署模块:142个(全部覆盖)\n- 总定义模块:176个(含34个未来规划模块)\n\n严格遵循8条开发红线\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5c0e2a9ccc614bb1dac8ed3875f4eeddb1bed80d","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-01-11T06:14:38Z","added":[],"removed":[],"modified":["backend/src/shared/constants/modules.ts"]},{"id":"b7ed9e35d5ce2b9182dd507c95aa9c675335c3b3","message":"feat: 营销模块客户/门店维度增强 - 活动定向、客户分群、营销分析\n\n核心功能:\n- 新增4个数据库表:campaign_targets、audience_segments、segment_members、campaign_performance\n- 新增3个后端模块:campaign-targets(活动定向)、segments(客户分群)、customer-marketing(营销分析)\n- 新增3个前端API模块,包含完整类型定义和工具函数\n- 新增18个权限配置,归入营销客户维度分组\n\n技术亮点:\n- 分群状态机:draft → active → paused → archived\n- 营销衍生指标:CTR、CVR、ROI、CPA、ROAS 自动计算\n- 多维度分析:客户、门店、活动、分群四个维度\n- 严格遵循8条开发红线\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/b7ed9e35d5ce2b9182dd507c95aa9c675335c3b3","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-01-11T06:00:53Z","added":["backend/src/modules/campaign-targets/index.ts","backend/src/modules/customer-marketing/index.ts","backend/src/modules/segments/index.ts","frontend/src/api/modules/campaign-targets.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/segments.ts"],"removed":[],"modified":["backend/prisma/schema.prisma","backend/src/main.ts","backend/src/shared/constants/permissions.ts"]},{"id":"fb6039939f7601cf35179127a6b8205e787342aa","message":"feat: 完善社交账号、广告人群、广告报表等6个核心模块,严格遵循8条开发红线\n\n完善模块:\n- social-accounts: 8平台账号授权、数据同步、指标追踪、健康度评估\n- social-interactions: 6种互动类型、4种状态、情感分析、自动回复\n- livestream-analytics: 10+分析维度、房间/商品/主播/话术效果分析\n- livestream-scripts: 7种话术类型、6种场景、AI生成优化、结构化模板\n- ad-audiences: 6种人群类型、6种数据源、相似人群、规则验证\n- ad-reports: 8种报表API、10种指标计算、预算预警、效果建议\n\n特性:\n- 状态机驱动:所有状态变更通过POST动作接口\n- 类型安全:禁用any,完整类型定义与后端严格匹配\n- 四层架构:智库层/数链层/SOP层/IM层交互文档\n- 工具函数:格式化、验证、健康度计算、图表数据生成\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb6039939f7601cf35179127a6b8205e787342aa","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-01-11T05:02:28Z","added":[],"removed":[],"modified":["frontend/src/api/modules/ad-audiences.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/livestream-analytics.ts","frontend/src/api/modules/livestream-scripts.ts","frontend/src/api/modules/social-accounts.ts","frontend/src/api/modules/social-interactions.ts"]}],"total_commits":0,"head_commit":{"id":"89209aba1afe21133399ce0db0a47c2729c9a4b4","message":"feat: 新增门店管理模块,补充门店维度营销分析端点\n\n一、门店管理模块 (stores)\n- 门店 CRUD:创建、更新、删除、状态管理\n- 门店类型:旗舰店、标准店、加盟店、合作店、迷你店、快闪店\n- 状态机:pending → active → suspended/renovating → closed\n\n二、门店维度营销分析端点\n- GET /stores/:id/marketing-analytics - 门店营销分析(活动、直播、团购、订单汇总)\n- GET /stores/:id/roi-analytics - 门店 ROI 分析(投入产出比、渠道分解、同比环比)\n- GET /stores/:id/livestream-stats - 门店直播统计(场次、时长、观众、GMV)\n- GET /stores/:id/campaigns - 门店活动列表\n\n三、门店对比和排行\n- POST /stores/compare - 多门店横向对比\n- GET /stores/ranking - 门店排行榜(营收、订单、评分、直播GMV)\n\n四、门店营销配置\n- PATCH /stores/:id/marketing-config - 团购/直播/促销开关、平台配置、预算设置\n\n五、前端 API 模块\n- stores.ts:完整类型定义 + API 封装 + 状态配置 + 工具函数\n\n严格遵循8条开发红线\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89209aba1afe21133399ce0db0a47c2729c9a4b4","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-01-11T07:36:12Z","added":["backend/src/modules/stores/index.ts","backend/src/modules/stores/store.controller.ts","backend/src/modules/stores/store.routes.ts","backend/src/modules/stores/store.schema.ts","backend/src/modules/stores/store.service.ts","frontend/src/api/modules/stores.ts"],"removed":[],"modified":["backend/src/shared/constants/modules.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":true,"fork":false,"template":false,"parent":null,"mirror":false,"size":9503,"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-23T23:59:28+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
|
2
|
0
|
1771862412
|
0
|
1771862389
|
1771862412
|
NULL
|
|
0
|
Edit
Delete
|
|
5
|
测试修改
|
2
|
2
|
hello-world.yaml
|
4
|
1
|
0
|
refs/heads/main
|
7d4d920368182d2222ed4f7dd18933b433f88ec2
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"648e5d31ec4f94695fa3cb16e919fa6f6b504503","after":"7d4d920368182d2222ed4f7dd18933b433f88ec2","compare_url":"https://gitea.g-hi.com/juhai/testpc/compare/648e5d31ec4f94695fa3cb16e919fa6f6b504503...7d4d920368182d2222ed4f7dd18933b433f88ec2","commits":[{"id":"7d4d920368182d2222ed4f7dd18933b433f88ec2","message":"测试修改\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/7d4d920368182d2222ed4f7dd18933b433f88ec2","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-11T16:57:25+08:00","added":[],"removed":[],"modified":[".gitea/workflows/hello-world.yaml"]}],"total_commits":0,"head_commit":{"id":"7d4d920368182d2222ed4f7dd18933b433f88ec2","message":"测试修改\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/7d4d920368182d2222ed4f7dd18933b433f88ec2","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-11T16:57:25+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":17700,"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-06T15:50:38+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
|
1770800269
|
1770800277
|
0
|
1770800268
|
1770800277
|
NULL
|
|
0
|
Edit
Delete
|
|
1860
|
build: 完善Release版本构建配置
|
13
|
5
|
codeql-analysis.yml
|
3
|
-2
|
46
|
refs/heads/main
|
6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","compare_url":"https://gitea.g-hi.com/luoanwu/printer-server/compare/c254333cc45c082124d3d4fd01a4a3fc3fda7296...6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","commits":[{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},{"id":"b44b6415c67f54b2d1bcd688757fec2aaf1686f4","message":"fix: 修复PrintJob状态转换和数据库初始化崩溃问题\n\n1. PrinterDatabase.optimizeDatabase()\n - 将PRAGMA命令从execSQL改为query()方法\n - Room的SupportSQLiteDatabase对PRAGMA有限制\n - 添加异常处理确保数据库优化失败不影响启动\n\n2. PrinterService.onTaskFailed()\n - 添加状态检查逻辑,根据当前状态决定处理方式\n - FAILED状态:执行重试逻辑\n - PRINTING状态:先转换为FAILED再重试\n - 其他状态:直接重新调度执行\n\n3. PrintingApplicationService.executePrintJob()\n - 新增prepareJobForPrinting()确保状态正确转换\n - CREATED -\u003e QUEUED -\u003e PRINTING 状态流转\n - 新增handleJobFailure()安全处理失败\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/b44b6415c67f54b2d1bcd688757fec2aaf1686f4","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:54:24+08:00","added":[],"removed":[],"modified":["printer-redesign/application/service/PrinterService.java","printer-redesign/application/service/PrintingApplicationService.java","printer-redesign/infrastructure/database/PrinterDatabase.java","printer-redesign/scripts/build-release.sh"]},{"id":"d2d0385e8b5c1b06d7e59f108c6e9f845905c841","message":"fix: 修复编译错误并成功构建APK\n\n修复内容:\n- PrintTestActivity: 重写以修复API兼容性问题\n - observeEnabled()替代getEnabledPrinters()\n - 移除PrinterApplication依赖\n - 修复Priority/PrintType方法调用\n - 修复rawContent类型(String→byte[])\n- OrderFormatterService: 补充shouldBeep()方法闭合括号\n- TemplateRenderEngine: 修复方法调用\n - getSummary()→toString()\n - setFontSize()→setSize()\n - setWidth()→setLength()\n- PrintJobDao: 添加getActiveJobs()方法\n- QueueViewModel: 修复RxJava包装和cancel()参数\n- MainViewModel: 移除totalCount()调用\n- PrinterConfigDTO: 修复fromEntity()方法兼容性\n\n构建结果:APK 7.8MB\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/d2d0385e8b5c1b06d7e59f108c6e9f845905c841","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:38:29+08:00","added":[],"removed":[],"modified":["printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/domain/service/OrderFormatterService.java","printer-redesign/infrastructure/database/dao/PrintJobDao.java","printer-redesign/infrastructure/device/EscPosExecutor.java","printer-redesign/infrastructure/device/PrinterCommandExecutor.java","printer-redesign/infrastructure/device/TsplExecutor.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java"]},{"id":"f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","message":"feat: 增强应用架构与测试功能\n\n- 新增 CQRS 模式支持 (command/query/dto)\n- 添加 PrintTestActivity 测试界面\n- 新增 MainViewModel 和 QueueViewModel\n- 完善 build.gradle 配置与签名设置\n- 优化 MainActivity 功能与交互\n- 增强 PrintTaskAdapter 适配逻辑\n- 添加 proguard 混淆规则和构建脚本\n- 更新 UI 资源文件\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:28:57+08:00","added":["printer-redesign/application/command/ConfigurePrinterCommand.java","printer-redesign/application/command/RecoverDeadLetterCommand.java","printer-redesign/application/command/SubmitPrintJobCommand.java","printer-redesign/application/dto/PrintJobDTO.java","printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/dto/QueueStatsDTO.java","printer-redesign/application/query/GetPrintJobsQuery.java","printer-redesign/application/query/GetQueueStatsQuery.java","printer-redesign/keystore.properties.template","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java","printer-redesign/proguard-rules.pro","printer-redesign/scripts/build-release.sh","printer-redesign/scripts/generate-keystore.sh","printer-redesign/src/main/res/drawable/ic_help.xml","printer-redesign/src/main/res/layout/activity_print_test.xml"],"removed":[],"modified":[".gitignore","printer-redesign/build.gradle","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/migration/BillStyleAdapter.java","printer-redesign/migration/PrintTaskAdapter.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/values/colors.xml","printer-redesign/src/main/res/values/strings.xml"]},{"id":"4052be41183584c726cd84d2f9d9cb5c371da83b","message":"feat: 完善模板引擎系统与UI优化\n\n模板引擎增强:\n- 新增 ExpressionEvaluator 表达式求值器,支持复杂条件判断\n- 新增 FormatPipeline 格式化管道,支持货币/日期/截断等格式化\n- 新增 ContextDataEnhanced 增强上下文,支持嵌套路径和管道\n- 新增 GroupElement 分组元素,支持条件渲染和循环渲染\n- 新增 TableElementEnhanced 增强表格,支持分组/小计/合计\n- 新增 ImageElement 图片元素,支持URL/Base64/本地文件\n- 新增 TemplateValidator 模板验证器\n- 新增 TemplateRenderEngineEnhanced 增强渲染引擎\n- 完善 TemplateManager 模板管理器\n\nUI和功能优化:\n- 新增 HealthCheckActivity 健康检查详情页\n- 新增 LogViewerActivity 日志查看页面\n- 新增 QueueDetailActivity 队列详情页面\n- 优化 MainActivity 界面布局和状态显示\n- 精简 SystemPrintDriver 代码结构\n- 新增相关资源文件和菜单\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/4052be41183584c726cd84d2f9d9cb5c371da83b","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:12:50+08:00","added":["printer-redesign/application/engine/TemplateRenderEngineEnhanced.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/docs/TEMPLATE_ENHANCEMENT_GUIDE.md","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/domain/service/formatter/StrategyRegistry.java","printer-redesign/domain/template/ContextDataEnhanced.java","printer-redesign/domain/template/CutElement.java","printer-redesign/domain/template/FormatPipeline.java","printer-redesign/domain/template/GroupElement.java","printer-redesign/domain/template/ImageElement.java","printer-redesign/domain/template/QRCodeElement.java","printer-redesign/domain/template/SpacerElement.java","printer-redesign/domain/template/TableElementEnhanced.java","printer-redesign/infrastructure/device/utils/BitmapToEscPosUtil.java","printer-redesign/presentation/HealthCheckActivity.java","printer-redesign/presentation/LogViewerActivity.java","printer-redesign/presentation/QueueDetailActivity.java","printer-redesign/src/main/res/drawable/bg_error_message.xml","printer-redesign/src/main/res/drawable/bg_status_chip.xml","printer-redesign/src/main/res/drawable/ic_check_circle.xml","printer-redesign/src/main/res/drawable/ic_error.xml","printer-redesign/src/main/res/drawable/ic_print_type.xml","printer-redesign/src/main/res/drawable/ic_recover.xml","printer-redesign/src/main/res/drawable/ic_warning.xml","printer-redesign/src/main/res/layout/activity_health_check.xml","printer-redesign/src/main/res/layout/activity_log_viewer.xml","printer-redesign/src/main/res/layout/activity_queue_detail.xml","printer-redesign/src/main/res/layout/item_health_component.xml","printer-redesign/src/main/res/layout/item_print_log.xml","printer-redesign/src/main/res/layout/item_queue_job.xml","printer-redesign/src/main/res/menu/menu_log_viewer.xml","printer-redesign/src/main/res/menu/menu_queue_detail.xml"],"removed":[],"modified":["ARCHITECTURE_COMPARISON.md","CLAUDE.md","printer-redesign/ARCHITECTURE.md","printer-redesign/application/engine/TemplateManager.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/build.gradle","printer-redesign/domain/template/BarcodeElement.java","printer-redesign/domain/template/BaseElement.java","printer-redesign/domain/template/ContextData.java","printer-redesign/domain/template/LineElement.java","printer-redesign/domain/template/PrintElement.java","printer-redesign/domain/template/TableElement.java","printer-redesign/domain/template/TextElement.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/layout/activity_main.xml","printer-redesign/src/main/res/values/colors.xml"]}],"total_commits":0,"head_commit":{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},"repository":{"id":13,"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":"printer-server","full_name":"luoanwu/printer-server","description":"KTV打印服务器 - DDD架构重构","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server/languages","html_url":"https://gitea.g-hi.com/luoanwu/printer-server","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/printer-server.git","clone_url":"https://gitea.g-hi.com/luoanwu/printer-server.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-28T11:06:40+08:00","updated_at":"2026-02-28T11:06:54+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
|
2
|
3
|
1772391612
|
1772391704
|
0
|
1772391612
|
1772391704
|
NULL
|
|
0
|
Edit
Delete
|
|
1133
|
feat: 嗨赞AI输入法Android版初始提交
|
9
|
5
|
ios-ci.yml
|
3
|
5
|
0
|
refs/heads/main
|
893022bfd17ce1f2e75e75651551cf8ceaacfe45
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"a8f0a86b4c1d4422bfe5c002b8c5307111d317bb","after":"893022bfd17ce1f2e75e75651551cf8ceaacfe45","compare_url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/compare/a8f0a86b4c1d4422bfe5c002b8c5307111d317bb...893022bfd17ce1f2e75e75651551cf8ceaacfe45","commits":[{"id":"893022bfd17ce1f2e75e75651551cf8ceaacfe45","message":"feat: 嗨赞AI输入法Android版初始提交\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/893022bfd17ce1f2e75e75651551cf8ceaacfe45","author":{"name":"luoanwu","email":"law@g-hi.com","username":"luoanwu"},"committer":{"name":"luoanwu","email":"law@g-hi.com","username":"luoanwu"},"verification":null,"timestamp":"2026-02-27T15:28:58+08:00","added":[".claude/skills/haizhan-ime-development.md",".claude/worktrees/charming-zhukovsky",".editorconfig",".github/workflows/ci.yml",".github/workflows/frontend-backend-ci.yml",".github/workflows/ios-ci.yml",".github/workflows/performance-check.yml",".github/workflows/pr-check.yml",".github/workflows/release.yml",".gitignore",".npmrc","CHANGELOG.md","CLAUDE.md","MIGRATION_COMPLETE_REPORT.md","README.md","admin-web/.env.development","admin-web/.eslintrc.cjs","admin-web/.gitignore","admin-web/.npmrc","admin-web/README.md","admin-web/e2e/all-pages.spec.ts","admin-web/e2e/crud-tests.spec.ts","admin-web/e2e/dashboard.spec.ts","admin-web/e2e/interactive-click.spec.ts","admin-web/e2e/login.spec.ts","admin-web/e2e/templates.spec.ts","admin-web/index.html","admin-web/package.json","admin-web/playwright.config.ts","admin-web/postcss.config.js","admin-web/public/favicon.svg","admin-web/src/App.vue","admin-web/src/api/ai-config.ts","admin-web/src/api/audit.ts","admin-web/src/api/auth.ts","admin-web/src/api/contact.ts","admin-web/src/api/knowledge.ts","admin-web/src/api/rag.ts","admin-web/src/api/settings.ts","admin-web/src/api/team.ts","admin-web/src/api/template.ts","admin-web/src/api/usage.ts","admin-web/src/api/user.ts","admin-web/src/assets/logo.svg","admin-web/src/components/UserCard.vue","admin-web/src/components/index.ts","admin-web/src/composables/usePermission.ts","admin-web/src/composables/useResponsive.ts","admin-web/src/composables/useTable.ts","admin-web/src/directives/index.ts","admin-web/src/directives/permission.ts","admin-web/src/env.d.ts","admin-web/src/layouts/MainLayout.vue","admin-web/src/layouts/components/HeaderBar.vue","admin-web/src/layouts/components/MobileDrawer.vue","admin-web/src/layouts/components/SidebarMenu.vue","admin-web/src/main.ts","admin-web/src/router/index.ts","admin-web/src/stores/app.ts","admin-web/src/stores/user.ts","admin-web/src/styles/index.scss","admin-web/src/styles/variables.scss","admin-web/src/types/ai-config.ts","admin-web/src/types/api.ts","admin-web/src/types/audit.ts","admin-web/src/types/contact.ts","admin-web/src/types/knowledge.ts","admin-web/src/types/permission.ts","admin-web/src/types/rag.ts","admin-web/src/types/settings.ts","admin-web/src/types/team.ts","admin-web/src/types/template.ts","admin-web/src/types/usage.ts","admin-web/src/types/user.ts","admin-web/src/utils/request.ts","admin-web/src/views/ai-config/index.vue","admin-web/src/views/audit/index.vue","admin-web/src/views/contacts/index.vue","admin-web/src/views/contacts/profile.vue","admin-web/src/views/dashboard/index.vue","admin-web/src/views/error/403.vue","admin-web/src/views/error/404.vue","admin-web/src/views/knowledge/index.vue","admin-web/src/views/login/index.vue","admin-web/src/views/profile/index.vue","admin-web/src/views/rag/index.vue","admin-web/src/views/settings/index.vue","admin-web/src/views/teams/index.vue","admin-web/src/views/templates/index.vue","admin-web/src/views/usage/index.vue","admin-web/src/views/users/index.vue","admin-web/tailwind.config.js","admin-web/test-results/.last-run.json","admin-web/tsconfig.app.json","admin-web/tsconfig.json","admin-web/tsconfig.node.json","admin-web/vite.config.d.ts","admin-web/vite.config.js","admin-web/vite.config.ts","ai-panel/build.gradle.kts","ai-panel/consumer-rules.pro","ai-panel/proguard-rules.pro","ai-panel/src/main/AndroidManifest.xml","ai-panel/src/main/java/com/haizhan/ime/panel/AiPanelManager.kt","ai-panel/src/main/java/com/haizhan/ime/panel/AiPanelModels.kt","ai-panel/src/main/java/com/haizhan/ime/panel/agentic/AgenticDecisionEngine.kt","ai-panel/src/main/java/com/haizhan/ime/panel/agentic/AgenticRouter.kt","ai-panel/src/main/java/com/haizhan/ime/panel/agentic/AgenticTypes.kt","ai-panel/src/main/java/com/haizhan/ime/panel/agentic/CostController.kt","ai-panel/src/main/java/com/haizhan/ime/panel/agentic/HybridSearchExecutor.kt","ai-panel/src/main/java/com/haizhan/ime/panel/agentic/di/AgenticModule.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/AvatarMatcher.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/ContactCache.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/ContactContextPreloader.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/ContactIndexes.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/ContactMatcher.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/ContactMatcherData.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/EnhancedContactMatcher.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/MatchedContact.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/NicknameMatcher.kt","ai-panel/src/main/java/com/haizhan/ime/panel/context/InputContextCollector.kt","ai-panel/src/main/java/com/haizhan/ime/panel/context/UnifiedContextManager.kt","ai-panel/src/main/java/com/haizhan/ime/panel/di/AiPanelModule.kt","ai-panel/src/main/java/com/haizhan/ime/panel/di/ContactModule.kt","ai-panel/src/main/java/com/haizhan/ime/panel/di/ContextModule.kt","ai-panel/src/main/java/com/haizhan/ime/panel/di/OcrModule.kt","ai-panel/src/main/java/com/haizhan/ime/panel/di/ReplyModule.kt","ai-panel/src/main/java/com/haizhan/ime/panel/di/ScreenshotModule.kt","ai-panel/src/main/java/com/haizhan/ime/panel/knowledge/KnowledgeService.kt","ai-panel/src/main/java/com/haizhan/ime/panel/memory/ContactMemoryModels.kt","ai-panel/src/main/java/com/haizhan/ime/panel/memory/ContactMemoryService.kt","ai-panel/src/main/java/com/haizhan/ime/panel/memory/MemoryDtoMapper.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/EnhancedSenderDetector.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/MessageParser.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/OcrReliabilityScore.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/OcrService.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/TitleBarParser.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/adapter/ChatMessageAdapter.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/adapter/DingTalkMessageAdapter.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/adapter/FeishuMessageAdapter.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/adapter/MessageAdapterFactory.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/adapter/WeChatMessageAdapter.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/adapter/WeWorkMessageAdapter.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/BatteryAwareManager.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/ClipboardHelper.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/FrequencyController.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/RagReplyGenerator.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/ReplyGenerator.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/ReplyStyle.kt","ai-panel/src/main/java/com/haizhan/ime/panel/screenshot/RegionDetector.kt","ai-panel/src/main/java/com/haizhan/ime/panel/screenshot/ScreenshotManager.kt","ai-panel/src/main/java/com/haizhan/ime/panel/service/ScreenshotForegroundService.kt","ai-panel/src/main/java/com/haizhan/ime/panel/trigger/AppDetector.kt","ai-panel/src/main/java/com/haizhan/ime/panel/trigger/TriggerDetector.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/AIPanelScreen.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/AiPanelTheme.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/Contact360View.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/ContactCard.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/ContactSelector.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/EmotionBadge.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/FunctionTabBar.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/IntentBadge.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/KnowledgeCard.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/KnowledgePanel.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/QuickReplyPanel.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/ReplyCard.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/ContactComponents.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/HistoryComponents.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/KnowledgeComponents.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/NoteComponents.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/OcrComponents.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/PanelCommon.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/ReplyComponents.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/TeamComponents.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/tabs/AiReplyTab.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/tabs/ContactsTab.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/tabs/HistoryTab.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/tabs/KnowledgeTab.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/tabs/NoteTab.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/tabs/OcrTab.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/tabs/TeamTab.kt","ai-panel/src/main/java/com/haizhan/ime/panel/weather/WeatherService.kt","ai-panel/src/main/res/drawable/ic_ai_reply.xml","ai-panel/src/main/res/drawable/ic_capture.xml","ai-panel/src/main/res/drawable/ic_contacts.xml","ai-panel/src/main/res/drawable/ic_knowledge.xml","ai-panel/src/main/res/drawable/ic_ocr.xml","ai-panel/src/main/res/drawable/ic_refresh.xml","ai-panel/src/main/res/drawable/ic_screenshot.xml","ai-panel/src/main/res/drawable/ic_stop.xml","ai-panel/src/test/java/com/haizhan/ime/panel/AiPanelManagerTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/agentic/AgenticDecisionEngineTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/agentic/AgenticRouterTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/agentic/AgenticTypesTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/agentic/CostControllerTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/agentic/ResultQualityEvaluatorTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactCacheTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactContextPreloaderTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactIndexPerformanceTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactIndexesTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactMatcherTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactMemoryServiceTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/MatchedContactTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/NicknameMatcherTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/context/InputContextCollectorTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/context/UnifiedContextManagerTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/knowledge/KnowledgeServiceTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/ocr/EnhancedSenderDetectorTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/ocr/MessageParserTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/ocr/OcrReliabilityScoreTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/ocr/OcrServiceTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/ocr/TitleBarParserTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/platform/DingTalkAdapterTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/platform/FeishuAdapterTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/platform/WeChatAdapterTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/platform/WeWorkAdapterTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/reply/BatteryAwareManagerTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/reply/ClipboardHelperTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/reply/FrequencyControllerTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/reply/RagReplyGeneratorTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/reply/ReplyGeneratorTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/reply/ReplyStyleTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/screenshot/RegionDetectorTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/screenshot/ScreenshotManagerTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/trigger/AppDetectorTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/trigger/TriggerDetectorTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/ui/AIPanelScreenTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/ui/ReplyCardTest.kt","api-clients/android/.openapi-generator-ignore","api-clients/android/.openapi-generator/FILES","api-clients/android/.openapi-generator/VERSION","api-clients/android/README.md","api-clients/android/build.gradle","api-clients/android/docs/AdminLoginDto.md","api-clients/android/docs/AiConfigApi.md","api-clients/android/docs/AuditLogsApi.md","api-clients/android/docs/AuthApi.md","api-clients/android/docs/BatchRemoveContactsDto.md","api-clients/android/docs/ChunkingConfigDto.md","api-clients/android/docs/Contact360ResponseDto.md","api-clients/android/docs/Contact360ViewDto.md","api-clients/android/docs/ContactDetailResponseDto.md","api-clients/android/docs/ContactDto.md","api-clients/android/docs/ContactEventDto.md","api-clients/android/docs/ContactListResponseDto.md","api-clients/android/docs/ContactProfileDto.md","api-clients/android/docs/ContactStatsDto.md","api-clients/android/docs/ContactTagDto.md","api-clients/android/docs/ContactsApi.md","api-clients/android/docs/ConversationSummaryDto.md","api-clients/android/docs/CreateContactDto.md","api-clients/android/docs/CreateContactEventDto.md","api-clients/android/docs/CreateKnowledgeBaseDto.md","api-clients/android/docs/CreateKnowledgeDocumentDto.md","api-clients/android/docs/CreateQwenModelDto.md","api-clients/android/docs/DefaultApi.md","api-clients/android/docs/EmbeddingConfigDto.md","api-clients/android/docs/EmbeddingModelDto.md","api-clients/android/docs/GenerationConfigDto.md","api-clients/android/docs/HealthApi.md","api-clients/android/docs/KnowledgeApi.md","api-clients/android/docs/KnowledgeBaseResponseDto.md","api-clients/android/docs/KnowledgeDocumentListResponseDto.md","api-clients/android/docs/KnowledgeDocumentResponseDto.md","api-clients/android/docs/LoginDto.md","api-clients/android/docs/MatchContactDto.md","api-clients/android/docs/MatchContactResponseDto.md","api-clients/android/docs/MobileCompatApi.md","api-clients/android/docs/PinyinApi.md","api-clients/android/docs/PipelineHealthDto.md","api-clients/android/docs/PipelineMetricsDto.md","api-clients/android/docs/PreviewChunkingDto.md","api-clients/android/docs/QwenModelConfigDto.md","api-clients/android/docs/QwenModelFeaturesDto.md","api-clients/android/docs/RagApi.md","api-clients/android/docs/RagConfigDto.md","api-clients/android/docs/RagMetricsDto.md","api-clients/android/docs/RagPipelineStatusDto.md","api-clients/android/docs/RagQueryDto.md","api-clients/android/docs/RebuildIndexDto.md","api-clients/android/docs/RefreshTokenDto.md","api-clients/android/docs/RetrievalConfigDto.md","api-clients/android/docs/SettingsApi.md","api-clients/android/docs/SyncContactsDto.md","api-clients/android/docs/SyncContactsResponseDto.md","api-clients/android/docs/TeamsApi.md","api-clients/android/docs/ToggleQwenModelDto.md","api-clients/android/docs/UpdateContactDto.md","api-clients/android/docs/UpdateKnowledgeBaseDto.md","api-clients/android/docs/UpdateKnowledgeDocumentDto.md","api-clients/android/docs/UpdateQwenModelDto.md","api-clients/android/docs/UpdateRagConfigDto.md","api-clients/android/docs/UsageApi.md","api-clients/android/docs/WeatherApi.md","api-clients/android/gradle/wrapper/gradle-wrapper.jar","api-clients/android/gradle/wrapper/gradle-wrapper.properties","api-clients/android/gradlew","api-clients/android/gradlew.bat","api-clients/android/settings.gradle","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/AiConfigApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/AuditLogsApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/AuthApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/ContactsApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/DefaultApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/HealthApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/KnowledgeApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/MobileCompatApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/PinyinApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/RagApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/SettingsApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/TeamsApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/UsageApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/WeatherApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/auth/HttpBearerAuth.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/ApiClient.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/BigDecimalAdapter.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/BigIntegerAdapter.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/ByteArrayAdapter.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/CollectionFormats.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/LocalDateAdapter.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/LocalDateTimeAdapter.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/OffsetDateTimeAdapter.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/ResponseExt.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/Serializer.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/URIAdapter.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/UUIDAdapter.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/AdminLoginDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/BatchRemoveContactsDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ChunkingConfigDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/Contact360ResponseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/Contact360ViewDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ContactDetailResponseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ContactDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ContactEventDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ContactListResponseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ContactProfileDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ContactStatsDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ContactTagDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ConversationSummaryDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/CreateContactDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/CreateContactEventDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/CreateKnowledgeBaseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/CreateKnowledgeDocumentDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/CreateQwenModelDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/EmbeddingConfigDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/EmbeddingModelDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/GenerationConfigDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/KnowledgeBaseResponseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/KnowledgeDocumentListResponseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/KnowledgeDocumentResponseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/LoginDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/MatchContactDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/MatchContactResponseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/PipelineHealthDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/PipelineMetricsDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/PreviewChunkingDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/QwenModelConfigDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/QwenModelFeaturesDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/RagConfigDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/RagMetricsDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/RagPipelineStatusDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/RagQueryDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/RebuildIndexDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/RefreshTokenDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/RetrievalConfigDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/SyncContactsDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/SyncContactsResponseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ToggleQwenModelDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/UpdateContactDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/UpdateKnowledgeBaseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/UpdateKnowledgeDocumentDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/UpdateQwenModelDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/UpdateRagConfigDto.kt","api-clients/flutter/.gitignore","api-clients/flutter/.openapi-generator-ignore","api-clients/flutter/.openapi-generator/FILES","api-clients/flutter/.openapi-generator/VERSION","api-clients/flutter/README.md","api-clients/flutter/analysis_options.yaml","api-clients/flutter/doc/AdminLoginDto.md","api-clients/flutter/doc/AiConfigApi.md","api-clients/flutter/doc/AuditLogsApi.md","api-clients/flutter/doc/AuthApi.md","api-clients/flutter/doc/BatchRemoveContactsDto.md","api-clients/flutter/doc/ChunkingConfigDto.md","api-clients/flutter/doc/Contact360ResponseDto.md","api-clients/flutter/doc/Contact360ViewDto.md","api-clients/flutter/doc/ContactDetailResponseDto.md","api-clients/flutter/doc/ContactDto.md","api-clients/flutter/doc/ContactEventDto.md","api-clients/flutter/doc/ContactListResponseDto.md","api-clients/flutter/doc/ContactProfileDto.md","api-clients/flutter/doc/ContactStatsDto.md","api-clients/flutter/doc/ContactTagDto.md","api-clients/flutter/doc/ContactsApi.md","api-clients/flutter/doc/ConversationSummaryDto.md","api-clients/flutter/doc/CreateContactDto.md","api-clients/flutter/doc/CreateContactEventDto.md","api-clients/flutter/doc/CreateKnowledgeBaseDto.md","api-clients/flutter/doc/CreateKnowledgeDocumentDto.md","api-clients/flutter/doc/CreateQwenModelDto.md","api-clients/flutter/doc/DefaultApi.md","api-clients/flutter/doc/EmbeddingConfigDto.md","api-clients/flutter/doc/EmbeddingModelDto.md","api-clients/flutter/doc/GenerationConfigDto.md","api-clients/flutter/doc/HealthApi.md","api-clients/flutter/doc/KnowledgeApi.md","api-clients/flutter/doc/KnowledgeBaseResponseDto.md","api-clients/flutter/doc/KnowledgeDocumentListResponseDto.md","api-clients/flutter/doc/KnowledgeDocumentResponseDto.md","api-clients/flutter/doc/LoginDto.md","api-clients/flutter/doc/MatchContactDto.md","api-clients/flutter/doc/MatchContactResponseDto.md","api-clients/flutter/doc/MobileCompatApi.md","api-clients/flutter/doc/PinyinApi.md","api-clients/flutter/doc/PipelineHealthDto.md","api-clients/flutter/doc/PipelineMetricsDto.md","api-clients/flutter/doc/PreviewChunkingDto.md","api-clients/flutter/doc/QwenModelConfigDto.md","api-clients/flutter/doc/QwenModelFeaturesDto.md","api-clients/flutter/doc/RagApi.md","api-clients/flutter/doc/RagConfigDto.md","api-clients/flutter/doc/RagMetricsDto.md","api-clients/flutter/doc/RagPipelineStatusDto.md","api-clients/flutter/doc/RagQueryDto.md","api-clients/flutter/doc/RebuildIndexDto.md","api-clients/flutter/doc/RefreshTokenDto.md","api-clients/flutter/doc/RetrievalConfigDto.md","api-clients/flutter/doc/SettingsApi.md","api-clients/flutter/doc/SyncContactsDto.md","api-clients/flutter/doc/SyncContactsResponseDto.md","api-clients/flutter/doc/TeamsApi.md","api-clients/flutter/doc/ToggleQwenModelDto.md","api-clients/flutter/doc/UpdateContactDto.md","api-clients/flutter/doc/UpdateKnowledgeBaseDto.md","api-clients/flutter/doc/UpdateKnowledgeDocumentDto.md","api-clients/flutter/doc/UpdateQwenModelDto.md","api-clients/flutter/doc/UpdateRagConfigDto.md","api-clients/flutter/doc/UsageApi.md","api-clients/flutter/doc/WeatherApi.md","api-clients/flutter/lib/haizhan_api.dart","api-clients/flutter/lib/src/api.dart","api-clients/flutter/lib/src/api/ai_config_api.dart","api-clients/flutter/lib/src/api/audit_logs_api.dart","api-clients/flutter/lib/src/api/auth_api.dart","api-clients/flutter/lib/src/api/contacts_api.dart","api-clients/flutter/lib/src/api/default_api.dart","api-clients/flutter/lib/src/api/health_api.dart","api-clients/flutter/lib/src/api/knowledge_api.dart","api-clients/flutter/lib/src/api/mobile_compat_api.dart","api-clients/flutter/lib/src/api/pinyin_api.dart","api-clients/flutter/lib/src/api/rag_api.dart","api-clients/flutter/lib/src/api/settings_api.dart","api-clients/flutter/lib/src/api/teams_api.dart","api-clients/flutter/lib/src/api/usage_api.dart","api-clients/flutter/lib/src/api/weather_api.dart","api-clients/flutter/lib/src/api_util.dart","api-clients/flutter/lib/src/auth/api_key_auth.dart","api-clients/flutter/lib/src/auth/auth.dart","api-clients/flutter/lib/src/auth/basic_auth.dart","api-clients/flutter/lib/src/auth/bearer_auth.dart","api-clients/flutter/lib/src/auth/oauth.dart","api-clients/flutter/lib/src/date_serializer.dart","api-clients/flutter/lib/src/model/admin_login_dto.dart","api-clients/flutter/lib/src/model/batch_remove_contacts_dto.dart","api-clients/flutter/lib/src/model/chunking_config_dto.dart","api-clients/flutter/lib/src/model/contact360_response_dto.dart","api-clients/flutter/lib/src/model/contact360_view_dto.dart","api-clients/flutter/lib/src/model/contact_detail_response_dto.dart","api-clients/flutter/lib/src/model/contact_dto.dart","api-clients/flutter/lib/src/model/contact_event_dto.dart","api-clients/flutter/lib/src/model/contact_list_response_dto.dart","api-clients/flutter/lib/src/model/contact_profile_dto.dart","api-clients/flutter/lib/src/model/contact_stats_dto.dart","api-clients/flutter/lib/src/model/contact_tag_dto.dart","api-clients/flutter/lib/src/model/conversation_summary_dto.dart","api-clients/flutter/lib/src/model/create_contact_dto.dart","api-clients/flutter/lib/src/model/create_contact_event_dto.dart","api-clients/flutter/lib/src/model/create_knowledge_base_dto.dart","api-clients/flutter/lib/src/model/create_knowledge_document_dto.dart","api-clients/flutter/lib/src/model/create_qwen_model_dto.dart","api-clients/flutter/lib/src/model/date.dart","api-clients/flutter/lib/src/model/embedding_config_dto.dart","api-clients/flutter/lib/src/model/embedding_model_dto.dart","api-clients/flutter/lib/src/model/generation_config_dto.dart","api-clients/flutter/lib/src/model/knowledge_base_response_dto.dart","api-clients/flutter/lib/src/model/knowledge_document_list_response_dto.dart","api-clients/flutter/lib/src/model/knowledge_document_response_dto.dart","api-clients/flutter/lib/src/model/login_dto.dart","api-clients/flutter/lib/src/model/match_contact_dto.dart","api-clients/flutter/lib/src/model/match_contact_response_dto.dart","api-clients/flutter/lib/src/model/pipeline_health_dto.dart","api-clients/flutter/lib/src/model/pipeline_metrics_dto.dart","api-clients/flutter/lib/src/model/preview_chunking_dto.dart","api-clients/flutter/lib/src/model/qwen_model_config_dto.dart","api-clients/flutter/lib/src/model/qwen_model_features_dto.dart","api-clients/flutter/lib/src/model/rag_config_dto.dart","api-clients/flutter/lib/src/model/rag_metrics_dto.dart","api-clients/flutter/lib/src/model/rag_pipeline_status_dto.dart","api-clients/flutter/lib/src/model/rag_query_dto.dart","api-clients/flutter/lib/src/model/rebuild_index_dto.dart","api-clients/flutter/lib/src/model/refresh_token_dto.dart","api-clients/flutter/lib/src/model/retrieval_config_dto.dart","api-clients/flutter/lib/src/model/sync_contacts_dto.dart","api-clients/flutter/lib/src/model/sync_contacts_response_dto.dart","api-clients/flutter/lib/src/model/toggle_qwen_model_dto.dart","api-clients/flutter/lib/src/model/update_contact_dto.dart","api-clients/flutter/lib/src/model/update_knowledge_base_dto.dart","api-clients/flutter/lib/src/model/update_knowledge_document_dto.dart","api-clients/flutter/lib/src/model/update_qwen_model_dto.dart","api-clients/flutter/lib/src/model/update_rag_config_dto.dart","api-clients/flutter/lib/src/serializers.dart","api-clients/flutter/pubspec.yaml","api-clients/flutter/test/admin_login_dto_test.dart","api-clients/flutter/test/ai_config_api_test.dart","api-clients/flutter/test/audit_logs_api_test.dart","api-clients/flutter/test/auth_api_test.dart","api-clients/flutter/test/batch_remove_contacts_dto_test.dart","api-clients/flutter/test/chunking_config_dto_test.dart","api-clients/flutter/test/contact360_response_dto_test.dart","api-clients/flutter/test/contact360_view_dto_test.dart","api-clients/flutter/test/contact_detail_response_dto_test.dart","api-clients/flutter/test/contact_dto_test.dart","api-clients/flutter/test/contact_event_dto_test.dart","api-clients/flutter/test/contact_list_response_dto_test.dart","api-clients/flutter/test/contact_profile_dto_test.dart","api-clients/flutter/test/contact_stats_dto_test.dart","api-clients/flutter/test/contact_tag_dto_test.dart","api-clients/flutter/test/contacts_api_test.dart","api-clients/flutter/test/conversation_summary_dto_test.dart","api-clients/flutter/test/create_contact_dto_test.dart","api-clients/flutter/test/create_contact_event_dto_test.dart","api-clients/flutter/test/create_knowledge_base_dto_test.dart","api-clients/flutter/test/create_knowledge_document_dto_test.dart","api-clients/flutter/test/create_qwen_model_dto_test.dart","api-clients/flutter/test/default_api_test.dart","api-clients/flutter/test/embedding_config_dto_test.dart","api-clients/flutter/test/embedding_model_dto_test.dart","api-clients/flutter/test/generation_config_dto_test.dart","api-clients/flutter/test/health_api_test.dart","api-clients/flutter/test/knowledge_api_test.dart","api-clients/flutter/test/knowledge_base_response_dto_test.dart","api-clients/flutter/test/knowledge_document_list_response_dto_test.dart","api-clients/flutter/test/knowledge_document_response_dto_test.dart","api-clients/flutter/test/login_dto_test.dart","api-clients/flutter/test/match_contact_dto_test.dart","api-clients/flutter/test/match_contact_response_dto_test.dart","api-clients/flutter/test/mobile_compat_api_test.dart","api-clients/flutter/test/pinyin_api_test.dart","api-clients/flutter/test/pipeline_health_dto_test.dart","api-clients/flutter/test/pipeline_metrics_dto_test.dart","api-clients/flutter/test/preview_chunking_dto_test.dart","api-clients/flutter/test/qwen_model_config_dto_test.dart","api-clients/flutter/test/qwen_model_features_dto_test.dart","api-clients/flutter/test/rag_api_test.dart","api-clients/flutter/test/rag_config_dto_test.dart","api-clients/flutter/test/rag_metrics_dto_test.dart","api-clients/flutter/test/rag_pipeline_status_dto_test.dart","api-clients/flutter/test/rag_query_dto_test.dart","api-clients/flutter/test/rebuild_index_dto_test.dart","api-clients/flutter/test/refresh_token_dto_test.dart","api-clients/flutter/test/retrieval_config_dto_test.dart","api-clients/flutter/test/settings_api_test.dart","api-clients/flutter/test/sync_contacts_dto_test.dart","api-clients/flutter/test/sync_contacts_response_dto_test.dart","api-clients/flutter/test/teams_api_test.dart","api-clients/flutter/test/toggle_qwen_model_dto_test.dart","api-clients/flutter/test/update_contact_dto_test.dart","api-clients/flutter/test/update_knowledge_base_dto_test.dart","api-clients/flutter/test/update_knowledge_document_dto_test.dart","api-clients/flutter/test/update_qwen_model_dto_test.dart","api-clients/flutter/test/update_rag_config_dto_test.dart","api-clients/flutter/test/usage_api_test.dart","api-clients/flutter/test/weather_api_test.dart","api-clients/ios/.gitignore","api-clients/ios/.openapi-generator-ignore","api-clients/ios/.openapi-generator/FILES","api-clients/ios/.openapi-generator/VERSION","api-clients/ios/.swiftformat","api-clients/ios/Cartfile","api-clients/ios/HaizhanAPI.podspec","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIHelper.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/AiConfigAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/AuditLogsAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/AuthAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/ContactsAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/DefaultAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/HealthAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/KnowledgeAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/MobileCompatAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/PinyinAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/RagAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/SettingsAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/TeamsAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/UsageAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/WeatherAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/CodableHelper.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Configuration.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Extensions.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/JSONDataEncoding.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/JSONEncodingHelper.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/AdminLoginDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/BatchRemoveContactsDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ChunkingConfigDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/Contact360ResponseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/Contact360ViewDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ContactDetailResponseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ContactDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ContactEventDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ContactListResponseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ContactProfileDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ContactStatsDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ContactTagDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ConversationSummaryDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/CreateContactDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/CreateContactEventDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/CreateKnowledgeBaseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/CreateKnowledgeDocumentDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/CreateQwenModelDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/EmbeddingConfigDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/EmbeddingModelDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/GenerationConfigDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/KnowledgeBaseResponseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/KnowledgeDocumentListResponseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/KnowledgeDocumentResponseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/LoginDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/MatchContactDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/MatchContactResponseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/PipelineHealthDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/PipelineMetricsDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/PreviewChunkingDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/QwenModelConfigDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/QwenModelFeaturesDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/RagConfigDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/RagMetricsDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/RagPipelineStatusDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/RagQueryDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/RebuildIndexDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/RefreshTokenDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/RetrievalConfigDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/SyncContactsDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/SyncContactsResponseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ToggleQwenModelDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/UpdateContactDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/UpdateKnowledgeBaseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/UpdateKnowledgeDocumentDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/UpdateQwenModelDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/UpdateRagConfigDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/OpenISO8601DateFormatter.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/SynchronizedDictionary.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/URLSessionImplementations.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Validation.swift","api-clients/ios/Package.swift","api-clients/ios/README.md","api-clients/ios/docs/AdminLoginDto.md","api-clients/ios/docs/AiConfigAPI.md","api-clients/ios/docs/AuditLogsAPI.md","api-clients/ios/docs/AuthAPI.md","api-clients/ios/docs/BatchRemoveContactsDto.md","api-clients/ios/docs/ChunkingConfigDto.md","api-clients/ios/docs/Contact360ResponseDto.md","api-clients/ios/docs/Contact360ViewDto.md","api-clients/ios/docs/ContactDetailResponseDto.md","api-clients/ios/docs/ContactDto.md","api-clients/ios/docs/ContactEventDto.md","api-clients/ios/docs/ContactListResponseDto.md","api-clients/ios/docs/ContactProfileDto.md","api-clients/ios/docs/ContactStatsDto.md","api-clients/ios/docs/ContactTagDto.md","api-clients/ios/docs/ContactsAPI.md","api-clients/ios/docs/ConversationSummaryDto.md","api-clients/ios/docs/CreateContactDto.md","api-clients/ios/docs/CreateContactEventDto.md","api-clients/ios/docs/CreateKnowledgeBaseDto.md","api-clients/ios/docs/CreateKnowledgeDocumentDto.md","api-clients/ios/docs/CreateQwenModelDto.md","api-clients/ios/docs/DefaultAPI.md","api-clients/ios/docs/EmbeddingConfigDto.md","api-clients/ios/docs/EmbeddingModelDto.md","api-clients/ios/docs/GenerationConfigDto.md","api-clients/ios/docs/HealthAPI.md","api-clients/ios/docs/KnowledgeAPI.md","api-clients/ios/docs/KnowledgeBaseResponseDto.md","api-clients/ios/docs/KnowledgeDocumentListResponseDto.md","api-clients/ios/docs/KnowledgeDocumentResponseDto.md","api-clients/ios/docs/LoginDto.md","api-clients/ios/docs/MatchContactDto.md","api-clients/ios/docs/MatchContactResponseDto.md","api-clients/ios/docs/MobileCompatAPI.md","api-clients/ios/docs/PinyinAPI.md","api-clients/ios/docs/PipelineHealthDto.md","api-clients/ios/docs/PipelineMetricsDto.md","api-clients/ios/docs/PreviewChunkingDto.md","api-clients/ios/docs/QwenModelConfigDto.md","api-clients/ios/docs/QwenModelFeaturesDto.md","api-clients/ios/docs/RagAPI.md","api-clients/ios/docs/RagConfigDto.md","api-clients/ios/docs/RagMetricsDto.md","api-clients/ios/docs/RagPipelineStatusDto.md","api-clients/ios/docs/RagQueryDto.md","api-clients/ios/docs/RebuildIndexDto.md","api-clients/ios/docs/RefreshTokenDto.md","api-clients/ios/docs/RetrievalConfigDto.md","api-clients/ios/docs/SettingsAPI.md","api-clients/ios/docs/SyncContactsDto.md","api-clients/ios/docs/SyncContactsResponseDto.md","api-clients/ios/docs/TeamsAPI.md","api-clients/ios/docs/ToggleQwenModelDto.md","api-clients/ios/docs/UpdateContactDto.md","api-clients/ios/docs/UpdateKnowledgeBaseDto.md","api-clients/ios/docs/UpdateKnowledgeDocumentDto.md","api-clients/ios/docs/UpdateQwenModelDto.md","api-clients/ios/docs/UpdateRagConfigDto.md","api-clients/ios/docs/UsageAPI.md","api-clients/ios/docs/WeatherAPI.md","api-clients/ios/git_push.sh","api-clients/ios/project.yml","app/build.gradle.kts","app/proguard-rules-release.pro","app/proguard-rules.pro","app/src/androidTest/java/com/haizhan/ime/ComposeUiTest.kt","app/src/androidTest/java/com/haizhan/ime/ExampleInstrumentedTest.kt","app/src/androidTest/java/com/haizhan/ime/e2e/SmokeE2ETest.kt","app/src/androidTest/java/com/haizhan/ime/integration/ImeIntegrationTest.kt","app/src/main/AndroidManifest.xml","app/src/main/assets/dictionaries/stroke-data.txt","app/src/main/assets/handwriting_labels.txt","app/src/main/assets/handwriting_labels_casia.txt","app/src/main/assets/handwriting_labels_clean.txt","app/src/main/assets/handwriting_labels_jp.txt","app/src/main/assets/paddle_models/handwriting_labels.txt","app/src/main/assets/paddle_models/ppocr_keys_v1.txt","app/src/main/assets/temp_clean.txt","app/src/main/assets/temp_labels.txt","app/src/main/java/com/haizhan/ime/HaizhanApplication.kt","app/src/main/java/com/haizhan/ime/about/ui/AboutScreen.kt","app/src/main/java/com/haizhan/ime/chat/model/Message.kt","app/src/main/java/com/haizhan/ime/chat/service/WebSocketService.kt","app/src/main/java/com/haizhan/ime/chat/ui/ChatMessageCard.kt","app/src/main/java/com/haizhan/ime/chat/ui/ChatScreen.kt","app/src/main/java/com/haizhan/ime/chat/ui/GroupChatScreen.kt","app/src/main/java/com/haizhan/ime/feedback/ui/FeedbackScreen.kt","app/src/main/java/com/haizhan/ime/help/ui/HelpCenterScreen.kt","app/src/main/java/com/haizhan/ime/note/model/Note.kt","app/src/main/java/com/haizhan/ime/note/service/NoteService.kt","app/src/main/java/com/haizhan/ime/note/ui/NoteEditorScreen.kt","app/src/main/java/com/haizhan/ime/note/ui/NoteListScreen.kt","app/src/main/java/com/haizhan/ime/profile/model/Profile.kt","app/src/main/java/com/haizhan/ime/profile/ui/ProfileScreen.kt","app/src/main/java/com/haizhan/ime/receiver/BootReceiver.kt","app/src/main/java/com/haizhan/ime/search/model/Search.kt","app/src/main/java/com/haizhan/ime/search/service/SearchService.kt","app/src/main/java/com/haizhan/ime/search/ui/GlobalSearchScreen.kt","app/src/main/java/com/haizhan/ime/security/EncryptionManager.kt","app/src/main/java/com/haizhan/ime/security/NetworkSecurityManager.kt","app/src/main/java/com/haizhan/ime/security/PrivacyComplianceManager.kt","app/src/main/java/com/haizhan/ime/security/SecurityAuditor.kt","app/src/main/java/com/haizhan/ime/service/AiProcessingService.kt","app/src/main/java/com/haizhan/ime/service/ContextCollector.kt","app/src/main/java/com/haizhan/ime/service/DataSyncService.kt","app/src/main/java/com/haizhan/ime/service/HaizhanInputMethodService.kt","app/src/main/java/com/haizhan/ime/service/InputTypeAnalysis.kt","app/src/main/java/com/haizhan/ime/service/KeyboardContentView.kt","app/src/main/java/com/haizhan/ime/service/OcrCaptureService.kt","app/src/main/java/com/haizhan/ime/service/VoiceInputDelegate.kt","app/src/main/java/com/haizhan/ime/session/model/Session.kt","app/src/main/java/com/haizhan/ime/session/service/SessionService.kt","app/src/main/java/com/haizhan/ime/session/ui/MessageCenterScreen.kt","app/src/main/java/com/haizhan/ime/session/ui/SessionCard.kt","app/src/main/java/com/haizhan/ime/session/ui/SessionListScreen.kt","app/src/main/java/com/haizhan/ime/stability/AnrWatchdog.kt","app/src/main/java/com/haizhan/ime/stability/CrashHandler.kt","app/src/main/java/com/haizhan/ime/stability/MemoryLeakDetector.kt","app/src/main/java/com/haizhan/ime/stability/StabilityManager.kt","app/src/main/java/com/haizhan/ime/statistics/model/Statistics.kt","app/src/main/java/com/haizhan/ime/statistics/ui/ChartComponents.kt","app/src/main/java/com/haizhan/ime/statistics/ui/StatisticsScreen.kt","app/src/main/java/com/haizhan/ime/subscription/model/Subscription.kt","app/src/main/java/com/haizhan/ime/subscription/service/SubscriptionService.kt","app/src/main/java/com/haizhan/ime/subscription/ui/SubscriptionScreen.kt","app/src/main/java/com/haizhan/ime/sync/ContactSyncTaskAdapter.kt","app/src/main/java/com/haizhan/ime/sync/KnowledgeSyncTaskAdapter.kt","app/src/main/java/com/haizhan/ime/sync/SyncContracts.kt","app/src/main/java/com/haizhan/ime/sync/SyncCoordinator.kt","app/src/main/java/com/haizhan/ime/sync/SyncScheduler.kt","app/src/main/java/com/haizhan/ime/team/model/Team.kt","app/src/main/java/com/haizhan/ime/team/service/TeamService.kt","app/src/main/java/com/haizhan/ime/team/ui/TeamScreen.kt","app/src/main/java/com/haizhan/ime/template/data/B2BTemplates.kt","app/src/main/java/com/haizhan/ime/template/data/ClosingTemplates.kt","app/src/main/java/com/haizhan/ime/template/data/CoreSalesTemplates.kt","app/src/main/java/com/haizhan/ime/template/data/DailyTemplates.kt","app/src/main/java/com/haizhan/ime/template/data/DefaultTemplates.kt","app/src/main/java/com/haizhan/ime/template/data/FollowUpTemplates.kt","app/src/main/java/com/haizhan/ime/template/data/QuickPhraseDefaults.kt","app/src/main/java/com/haizhan/ime/template/data/SeasonalTemplates.kt","app/src/main/java/com/haizhan/ime/template/data/TemplateDatabase.kt","app/src/main/java/com/haizhan/ime/template/data/TemplateImporter.kt","app/src/main/java/com/haizhan/ime/template/data/TemplateRepository.kt","app/src/main/java/com/haizhan/ime/template/di/TemplateModule.kt","app/src/main/java/com/haizhan/ime/template/model/Template.kt","app/src/main/java/com/haizhan/ime/template/service/TemplateService.kt","app/src/main/java/com/haizhan/ime/template/ui/FolderManagementDialog.kt","app/src/main/java/com/haizhan/ime/template/ui/TemplateListScreen.kt","app/src/main/java/com/haizhan/ime/template/ui/TemplateViewModel.kt","app/src/main/java/com/haizhan/ime/ui/MainActivity.kt","app/src/main/java/com/haizhan/ime/ui/management/DictionaryImportActivity.kt","app/src/main/java/com/haizhan/ime/ui/management/DictionaryImportScreen.kt","app/src/main/java/com/haizhan/ime/ui/management/DictionaryImportViewModel.kt","app/src/main/java/com/haizhan/ime/ui/management/DictionaryScreen.kt","app/src/main/java/com/haizhan/ime/ui/management/ManagementActivity.kt","app/src/main/java/com/haizhan/ime/ui/management/ManagementViewModel.kt","app/src/main/java/com/haizhan/ime/ui/management/PermissionScreen.kt","app/src/main/java/com/haizhan/ime/ui/management/SettingsScreen.kt","app/src/main/java/com/haizhan/ime/ui/permission/ScreenshotPermissionActivity.kt","app/src/main/java/com/haizhan/ime/ui/settings/ImeSettingsActivity.kt","app/src/main/java/com/haizhan/ime/ui/settings/SettingsViewModel.kt","app/src/main/java/com/haizhan/ime/ui/theme/Theme.kt","app/src/main/java/com/haizhan/ime/ui/theme/Type.kt","app/src/main/java/com/haizhan/ime/ux/AccessibilityHelper.kt","app/src/main/java/com/haizhan/ime/ux/AnimationUtils.kt","app/src/main/java/com/haizhan/ime/ux/ErrorHandler.kt","app/src/main/java/com/haizhan/ime/ux/OnboardingScreen.kt","app/src/main/java/com/haizhan/ime/ux/StartupOptimizer.kt","app/src/main/java/com/haizhan/ime/voice/service/VoiceService.kt","app/src/main/java/com/haizhan/ime/voice/ui/VoiceInputScreen.kt","app/src/main/res/drawable/ic_launcher_background.xml","app/src/main/res/drawable/ic_launcher_foreground.xml","app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml","app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml","app/src/main/res/values-night/colors.xml","app/src/main/res/values/colors.xml","app/src/main/res/values/strings.xml","app/src/main/res/values/themes.xml","app/src/main/res/xml/backup_rules.xml","app/src/main/res/xml/data_extraction_rules.xml","app/src/main/res/xml/file_paths.xml","app/src/main/res/xml/method.xml","app/src/main/res/xml/network_security_config.xml","app/src/test/java/com/haizhan/ime/ExampleUnitTest.kt","app/src/test/java/com/haizhan/ime/app/service/NotificationServiceTest.kt","app/src/test/java/com/haizhan/ime/app/service/SearchServiceTest.kt","app/src/test/java/com/haizhan/ime/app/service/SessionServiceTest.kt","app/src/test/java/com/haizhan/ime/app/service/SyncServiceTest.kt","app/src/test/java/com/haizhan/ime/app/service/WebSocketServiceTest.kt","app/src/test/java/com/haizhan/ime/benchmark/PerformanceBenchmarkTest.kt","app/src/test/java/com/haizhan/ime/security/EncryptionManagerTest.kt","app/src/test/java/com/haizhan/ime/security/PrivacyComplianceManagerTest.kt","app/src/test/java/com/haizhan/ime/security/SecurityAuditorTest.kt","app/src/test/java/com/haizhan/ime/service/HaizhanInputMethodServiceTest.kt","app/src/test/java/com/haizhan/ime/services/AiProcessingServiceTest.kt","app/src/test/java/com/haizhan/ime/services/NoteServiceTest.kt","app/src/test/java/com/haizhan/ime/services/OcrCaptureServiceTest.kt","app/src/test/java/com/haizhan/ime/services/SubscriptionServiceTest.kt","app/src/test/java/com/haizhan/ime/services/TeamServiceTest.kt","app/src/test/java/com/haizhan/ime/services/TemplateServiceTest.kt","app/src/test/java/com/haizhan/ime/services/VoiceServiceTest.kt","app/src/test/java/com/haizhan/ime/ui/management/ManagementViewModelTest.kt","app/src/test/java/com/haizhan/ime/ui/settings/SettingsViewModelTest.kt","app/src/test/java/com/haizhan/ime/ux/ErrorHandlerTest.kt","app/src/test/java/com/haizhan/ime/ux/StartupOptimizerTest.kt","app/src/test/java/com/haizhan/ime/viewmodel/DictionaryImportViewModelTest.kt","app/src/test/java/com/haizhan/ime/viewmodel/TemplateViewModelTest.kt","build.gradle.kts","common/build.gradle.kts","common/consumer-rules.pro","common/proguard-rules.pro","common/src/main/AndroidManifest.xml","common/src/main/java/com/haizhan/ime/common/ext/ContextExt.kt","common/src/main/java/com/haizhan/ime/common/ext/FlowExt.kt","common/src/main/java/com/haizhan/ime/common/ext/StringExt.kt","common/src/main/java/com/haizhan/ime/common/performance/ImePerformanceTracker.kt","common/src/main/java/com/haizhan/ime/common/theme/DesignTokens.kt","common/src/main/java/com/haizhan/ime/common/theme/KeyboardTheme.kt","common/src/main/java/com/haizhan/ime/common/util/DeviceUtils.kt","common/src/main/java/com/haizhan/ime/common/util/Logger.kt","common/src/main/java/com/haizhan/ime/common/util/LruCache.kt","common/src/main/java/com/haizhan/ime/common/util/MemoryMonitor.kt","common/src/test/java/com/haizhan/ime/common/StringExtTest.kt","common/src/test/java/com/haizhan/ime/common/ext/ResultTest.kt","common/src/test/java/com/haizhan/ime/common/util/DateUtilsTest.kt","common/src/test/java/com/haizhan/ime/common/util/LoggerTest.kt","common/src/test/java/com/haizhan/ime/common/util/MemoryStatsTest.kt","common/src/test/java/com/haizhan/ime/common/util/PinyinUtilsTest.kt","common/src/test/java/com/haizhan/ime/common/util/TextUtilsTest.kt","config/detekt/detekt.yml","data/build.gradle.kts","data/consumer-rules.pro","data/dictionaries/dictionary.config.json","data/dictionaries/fallback-words.txt","data/dictionaries/sensitive-words.txt","data/dictionaries/system/char-single.txt","data/dictionaries/system/core-char.txt","data/dictionaries/system/core-phrase.txt","data/dictionaries/system/core-word2.txt","data/dictionaries/system/core-word3.txt","data/dictionaries/system/core-word4.txt","data/dictionaries/system/idiom.txt","data/dictionaries/system/name-place.txt","data/dictionaries/system/word-common.txt","data/proguard-rules.pro","data/schemas/com.haizhan.ime.data.local.database.HaizhanDatabase/1.json","data/schemas/com.haizhan.ime.data.local.database.HaizhanDatabase/2.json","data/schemas/com.haizhan.ime.data.local.database.HaizhanDatabase/3.json","data/schemas/com.haizhan.ime.data.local.database.HaizhanDatabase/4.json","data/src/main/AndroidManifest.xml","data/src/main/java/com/haizhan/ime/data/auth/AuthInterceptor.kt","data/src/main/java/com/haizhan/ime/data/auth/AuthManager.kt","data/src/main/java/com/haizhan/ime/data/di/DataModule.kt","data/src/main/java/com/haizhan/ime/data/di/DatabaseModule.kt","data/src/main/java/com/haizhan/ime/data/di/NetworkModule.kt","data/src/main/java/com/haizhan/ime/data/di/RepositoryModule.kt","data/src/main/java/com/haizhan/ime/data/local/dao/ContactDao.kt","data/src/main/java/com/haizhan/ime/data/local/dao/KnowledgeDao.kt","data/src/main/java/com/haizhan/ime/data/local/dao/MessageDao.kt","data/src/main/java/com/haizhan/ime/data/local/dao/NoteDao.kt","data/src/main/java/com/haizhan/ime/data/local/dao/SearchDao.kt","data/src/main/java/com/haizhan/ime/data/local/dao/UserDictDao.kt","data/src/main/java/com/haizhan/ime/data/local/database/Converters.kt","data/src/main/java/com/haizhan/ime/data/local/database/HaizhanDatabase.kt","data/src/main/java/com/haizhan/ime/data/local/database/SecureDatabaseFactory.kt","data/src/main/java/com/haizhan/ime/data/local/entity/ContactEntity.kt","data/src/main/java/com/haizhan/ime/data/local/entity/KnowledgeEntity.kt","data/src/main/java/com/haizhan/ime/data/local/entity/MessageEntity.kt","data/src/main/java/com/haizhan/ime/data/local/entity/NoteEntity.kt","data/src/main/java/com/haizhan/ime/data/local/entity/SearchEntity.kt","data/src/main/java/com/haizhan/ime/data/local/entity/UserDictEntity.kt","data/src/main/java/com/haizhan/ime/data/remote/adapter/FlexibleTimestampAdapter.kt","data/src/main/java/com/haizhan/ime/data/remote/aliyun/AliyunSearchClient.kt","data/src/main/java/com/haizhan/ime/data/remote/aliyun/AliyunSearchConfig.kt","data/src/main/java/com/haizhan/ime/data/remote/aliyun/AliyunSearchConfigProvider.kt","data/src/main/java/com/haizhan/ime/data/remote/api/AuthApi.kt","data/src/main/java/com/haizhan/ime/data/remote/api/ContactApi.kt","data/src/main/java/com/haizhan/ime/data/remote/api/HaizhanApi.kt","data/src/main/java/com/haizhan/ime/data/remote/api/PinyinApi.kt","data/src/main/java/com/haizhan/ime/data/remote/api/RagSearchApi.kt","data/src/main/java/com/haizhan/ime/data/remote/api/ReplyApi.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/AiDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/AuthDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/CommonDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/ContactDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/KnowledgeDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/MemoryDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/MessageDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/NoteDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/ProfileDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/RagSearchDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/SearchDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/TeamDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/WeatherDto.kt","data/src/main/java/com/haizhan/ime/data/repository/ContactRepository.kt","data/src/main/java/com/haizhan/ime/data/repository/KnowledgeRepository.kt","data/src/main/java/com/haizhan/ime/data/repository/MessageRepository.kt","data/src/main/java/com/haizhan/ime/data/repository/RagSearchRepository.kt","data/src/main/java/com/haizhan/ime/data/repository/SettingsRepository.kt","data/src/main/java/com/haizhan/ime/data/repository/mapper/ContactMapper.kt","data/src/main/java/com/haizhan/ime/data/repository/mapper/KnowledgeMapper.kt","data/src/main/java/com/haizhan/ime/data/repository/mapper/MessageMapper.kt","data/src/main/java/com/haizhan/ime/data/repository/model/Contact.kt","data/src/main/java/com/haizhan/ime/data/repository/model/Knowledge.kt","data/src/main/java/com/haizhan/ime/data/repository/model/Message.kt","data/src/test/java/com/haizhan/ime/data/auth/AuthInterceptorTest.kt","data/src/test/java/com/haizhan/ime/data/auth/AuthManagerTest.kt","data/src/test/java/com/haizhan/ime/data/auth/AuthTypesTest.kt","data/src/test/java/com/haizhan/ime/data/local/dao/ContactDaoTest.kt","data/src/test/java/com/haizhan/ime/data/local/dao/KnowledgeDaoTest.kt","data/src/test/java/com/haizhan/ime/data/local/dao/MessageDaoTest.kt","data/src/test/java/com/haizhan/ime/data/local/dao/NoteDaoTest.kt","data/src/test/java/com/haizhan/ime/data/local/dao/SearchDaoTest.kt","data/src/test/java/com/haizhan/ime/data/local/dao/UserDictDaoTest.kt","data/src/test/java/com/haizhan/ime/data/local/dao/UserPreferencesDaoTest.kt","data/src/test/java/com/haizhan/ime/data/remote/api/HaizhanApiTest.kt","data/src/test/java/com/haizhan/ime/data/remote/dto/ContactDtoTest.kt","data/src/test/java/com/haizhan/ime/data/repository/ContactRepositoryTest.kt","data/src/test/java/com/haizhan/ime/data/repository/KnowledgeRepositoryTest.kt","data/src/test/java/com/haizhan/ime/data/repository/MessageRepositoryTest.kt","data/src/test/java/com/haizhan/ime/data/repository/SettingsRepositoryTest.kt","data/src/test/java/com/haizhan/ime/data/repository/mapper/ContactMapperTest.kt","data/src/test/java/com/haizhan/ime/data/repository/mapper/KnowledgeMapperTest.kt","data/src/test/java/com/haizhan/ime/data/repository/mapper/MessageMapperTest.kt","designs/exports/CLAUDE_CODE_DESIGN_GUIDE.md","designs/exports/DESIGN_MANIFEST.md","designs/exports/svg/Frame.svg","designs/exports/svg/P2-关于.svg","designs/exports/svg/P2-协议条款.svg","designs/exports/svg/P2-帮助中心.svg","designs/exports/svg/P2-意见反馈.svg","designs/exports/svg/P2-版本更新.svg","designs/exports/svg/__设计系统_-_组件库.svg","designs/exports/svg/功能面板_-_OCR识别.svg","designs/exports/svg/功能面板_-_历史.svg","designs/exports/svg/功能面板_-_团队.svg","designs/exports/svg/功能面板_-_知识库.svg","designs/exports/svg/功能面板_-_笔记.svg","designs/exports/svg/功能面板_-_联系人.svg","designs/exports/svg/嗨赞AI助手_-_AI回复选择.svg","designs/exports/svg/嗨赞AI助手_-_OCR结果确认.svg","designs/exports/svg/嗨赞AI助手_-_个人中心.svg","designs/exports/svg/嗨赞AI助手_-_主应用首页.svg","designs/exports/svg/嗨赞AI助手_-_主键盘界面.svg","designs/exports/svg/嗨赞AI助手_-_主键盘界面__深色_.svg","designs/exports/svg/嗨赞AI助手_-_交互式笔记.svg","designs/exports/svg/嗨赞AI助手_-_会员订阅.svg","designs/exports/svg/嗨赞AI助手_-_会话列表.svg","designs/exports/svg/嗨赞AI助手_-_单聊IM.svg","designs/exports/svg/嗨赞AI助手_-_历史记录页面.svg","designs/exports/svg/嗨赞AI助手_-_引导页1.svg","designs/exports/svg/嗨赞AI助手_-_引导页2.svg","designs/exports/svg/嗨赞AI助手_-_引导页3.svg","designs/exports/svg/嗨赞AI助手_-_忘记密码.svg","designs/exports/svg/嗨赞AI助手_-_我的页面.svg","designs/exports/svg/嗨赞AI助手_-_搜索.svg","designs/exports/svg/嗨赞AI助手_-_数据统计.svg","designs/exports/svg/嗨赞AI助手_-_新建联系人.svg","designs/exports/svg/嗨赞AI助手_-_注册页面.svg","designs/exports/svg/嗨赞AI助手_-_消息中心.svg","designs/exports/svg/嗨赞AI助手_-_登录页面.svg","designs/exports/svg/嗨赞AI助手_-_知识库列表.svg","designs/exports/svg/嗨赞AI助手_-_知识库详情.svg","designs/exports/svg/嗨赞AI助手_-_编辑个人信息.svg","designs/exports/svg/嗨赞AI助手_-_群聊IM.svg","designs/exports/svg/嗨赞AI助手_-_联系人列表.svg","designs/exports/svg/嗨赞AI助手_-_联系人详情.svg","designs/exports/svg/嗨赞AI助手_-_设置.svg","designs/exports/svg/嗨赞AI助手_-_设置页面.svg","designs/exports/svg/嗨赞AI助手_-_话术模板.svg","designs/exports/svg/嗨赞AI助手_-_话术模板详情.svg","designs/exports/svg/微交互规范文档.svg","designs/exports/svg/组件_-_悬浮球状态.svg","designs/exports/svg/组件_-_拼音候选词展开.svg","designs/exports/svg/组件_-_空状态.svg","designs/exports/svg/组件_-_语音输入状态.svg","designs/exports/svg/组件_-_错误状态.svg","designs/mobile-keyboard-design.md","designs/specs/COMPONENT_SPEC.md","designs/specs/KEYBOARD_DESIGN_SPEC.md","designs/specs/README.md","designs/specs/design-tokens.json","designs/templates/android/DesignTokens.kt","designs/templates/android/KeyboardTheme.kt","designs/templates/ios/DesignTokens.swift","designs/templates/ios/KeyboardTheme.swift","designs/嗨赞输入法.pen","docs/ANDROID_DEVELOPMENT.md","docs/API.md","docs/ARCHITECTURE.md","docs/BACKEND_API_REQUIREMENTS.md","docs/BACKEND_DESIGN.md","docs/CI_CD_PIPELINE.md","docs/CODING_STANDARDS.md","docs/COMPLETE_FEATURE_SPEC.md","docs/DATABASE.md","docs/DEPLOYMENT.md","docs/DESIGN_TO_DEV_SPEC.md","docs/DEVELOPMENT_GUIDE.md","docs/DEVELOPMENT_PLAN.md","docs/DOCS_SYNC.md","docs/ERROR_HANDLING.md","docs/FEATURE_ANALYSIS.md","docs/FLUTTER_DEVELOPMENT.md","docs/FRONTEND_DEV_REQUIREMENTS.md","docs/HANDWRITING_MODEL_UPGRADE.md","docs/IOS_DEVELOPMENT.md","docs/KMP_DEVELOPMENT.md","docs/LOGGING_STANDARDS.md","docs/MILESTONES.md","docs/MODULE_ANALYSIS.md","docs/MODULE_LIST.md","docs/PERFORMANCE_OPTIMIZATION.md","docs/PNPM_MIGRATION_NOTICE.md","docs/PRD.md","docs/PRIVACY_POLICY.md","docs/PRODUCT_ARCHITECTURE.md","docs/Phase_11_12_Final_Report.md","docs/RELEASE_CHECKLIST.md","docs/SECURITY_AUDIT.md","docs/SECURITY_GUIDELINES.md","docs/STORE_LISTING.md","docs/SYSTEM_ARCHITECTURE.md","docs/TASKS.md","docs/TECH_STACK.md","docs/TESTING_STRATEGY.md","docs/USER_MANUAL.md","docs/VOICE_API_DOCUMENTATION.md","docs/VOICE_MODULE_MIGRATION.md","docs/openapi.json","docs/skills/anthropic-official/.claude-plugin/marketplace.json","docs/skills/anthropic-official/.gitignore","docs/skills/anthropic-official/README.md","docs/skills/anthropic-official/THIRD_PARTY_NOTICES.md","docs/skills/anthropic-official/skills/algorithmic-art/LICENSE.txt","docs/skills/anthropic-official/skills/algorithmic-art/SKILL.md","docs/skills/anthropic-official/skills/algorithmic-art/templates/generator_template.js","docs/skills/anthropic-official/skills/algorithmic-art/templates/viewer.html","docs/skills/anthropic-official/skills/brand-guidelines/LICENSE.txt","docs/skills/anthropic-official/skills/brand-guidelines/SKILL.md","docs/skills/anthropic-official/skills/canvas-design/LICENSE.txt","docs/skills/anthropic-official/skills/canvas-design/SKILL.md","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/BigShoulders-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/BigShoulders-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Boldonse-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Boldonse-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/DMMono-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/DMMono-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/EricaOne-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/EricaOne-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/GeistMono-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/GeistMono-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/GeistMono-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Gloock-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Gloock-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Italiana-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Italiana-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Jura-Light.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Jura-Medium.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Jura-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Lora-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Lora-Italic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Lora-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Lora-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/NationalPark-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/NationalPark-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/NationalPark-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Outfit-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Outfit-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Outfit-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/PixelifySans-Medium.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/PoiretOne-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/PoiretOne-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/RedHatMono-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/RedHatMono-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Silkscreen-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/SmoochSans-Medium.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Tektur-Medium.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Tektur-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Tektur-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/WorkSans-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/WorkSans-Italic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/WorkSans-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/WorkSans-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf","docs/skills/anthropic-official/skills/doc-coauthoring/SKILL.md","docs/skills/anthropic-official/skills/docx/LICENSE.txt","docs/skills/anthropic-official/skills/docx/SKILL.md","docs/skills/anthropic-official/skills/docx/docx-js.md","docs/skills/anthropic-official/skills/docx/ooxml.md","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/mce/mc.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/microsoft/wml-2010.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/microsoft/wml-2012.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/microsoft/wml-2018.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd","docs/skills/anthropic-official/skills/docx/ooxml/scripts/pack.py","docs/skills/anthropic-official/skills/docx/ooxml/scripts/unpack.py","docs/skills/anthropic-official/skills/docx/ooxml/scripts/validate.py","docs/skills/anthropic-official/skills/docx/ooxml/scripts/validation/__init__.py","docs/skills/anthropic-official/skills/docx/ooxml/scripts/validation/base.py","docs/skills/anthropic-official/skills/docx/ooxml/scripts/validation/docx.py","docs/skills/anthropic-official/skills/docx/ooxml/scripts/validation/pptx.py","docs/skills/anthropic-official/skills/docx/ooxml/scripts/validation/redlining.py","docs/skills/anthropic-official/skills/docx/scripts/__init__.py","docs/skills/anthropic-official/skills/docx/scripts/document.py","docs/skills/anthropic-official/skills/docx/scripts/templates/comments.xml","docs/skills/anthropic-official/skills/docx/scripts/templates/commentsExtended.xml","docs/skills/anthropic-official/skills/docx/scripts/templates/commentsExtensible.xml","docs/skills/anthropic-official/skills/docx/scripts/templates/commentsIds.xml","docs/skills/anthropic-official/skills/docx/scripts/templates/people.xml","docs/skills/anthropic-official/skills/docx/scripts/utilities.py","docs/skills/anthropic-official/skills/frontend-design/LICENSE.txt","docs/skills/anthropic-official/skills/frontend-design/SKILL.md","docs/skills/anthropic-official/skills/internal-comms/LICENSE.txt","docs/skills/anthropic-official/skills/internal-comms/SKILL.md","docs/skills/anthropic-official/skills/internal-comms/examples/3p-updates.md","docs/skills/anthropic-official/skills/internal-comms/examples/company-newsletter.md","docs/skills/anthropic-official/skills/internal-comms/examples/faq-answers.md","docs/skills/anthropic-official/skills/internal-comms/examples/general-comms.md","docs/skills/anthropic-official/skills/mcp-builder/LICENSE.txt","docs/skills/anthropic-official/skills/mcp-builder/SKILL.md","docs/skills/anthropic-official/skills/mcp-builder/reference/evaluation.md","docs/skills/anthropic-official/skills/mcp-builder/reference/mcp_best_practices.md","docs/skills/anthropic-official/skills/mcp-builder/reference/node_mcp_server.md","docs/skills/anthropic-official/skills/mcp-builder/reference/python_mcp_server.md","docs/skills/anthropic-official/skills/mcp-builder/scripts/connections.py","docs/skills/anthropic-official/skills/mcp-builder/scripts/evaluation.py","docs/skills/anthropic-official/skills/mcp-builder/scripts/example_evaluation.xml","docs/skills/anthropic-official/skills/mcp-builder/scripts/requirements.txt","docs/skills/anthropic-official/skills/pdf/LICENSE.txt","docs/skills/anthropic-official/skills/pdf/SKILL.md","docs/skills/anthropic-official/skills/pdf/forms.md","docs/skills/anthropic-official/skills/pdf/reference.md","docs/skills/anthropic-official/skills/pdf/scripts/check_bounding_boxes.py","docs/skills/anthropic-official/skills/pdf/scripts/check_bounding_boxes_test.py","docs/skills/anthropic-official/skills/pdf/scripts/check_fillable_fields.py","docs/skills/anthropic-official/skills/pdf/scripts/convert_pdf_to_images.py","docs/skills/anthropic-official/skills/pdf/scripts/create_validation_image.py","docs/skills/anthropic-official/skills/pdf/scripts/extract_form_field_info.py","docs/skills/anthropic-official/skills/pdf/scripts/fill_fillable_fields.py","docs/skills/anthropic-official/skills/pdf/scripts/fill_pdf_form_with_annotations.py","docs/skills/anthropic-official/skills/pptx/LICENSE.txt","docs/skills/anthropic-official/skills/pptx/SKILL.md","docs/skills/anthropic-official/skills/pptx/html2pptx.md","docs/skills/anthropic-official/skills/pptx/ooxml.md","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/mce/mc.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/scripts/pack.py","docs/skills/anthropic-official/skills/pptx/ooxml/scripts/unpack.py","docs/skills/anthropic-official/skills/pptx/ooxml/scripts/validate.py","docs/skills/anthropic-official/skills/pptx/ooxml/scripts/validation/__init__.py","docs/skills/anthropic-official/skills/pptx/ooxml/scripts/validation/base.py","docs/skills/anthropic-official/skills/pptx/ooxml/scripts/validation/docx.py","docs/skills/anthropic-official/skills/pptx/ooxml/scripts/validation/pptx.py","docs/skills/anthropic-official/skills/pptx/ooxml/scripts/validation/redlining.py","docs/skills/anthropic-official/skills/pptx/scripts/html2pptx.js","docs/skills/anthropic-official/skills/pptx/scripts/inventory.py","docs/skills/anthropic-official/skills/pptx/scripts/rearrange.py","docs/skills/anthropic-official/skills/pptx/scripts/replace.py","docs/skills/anthropic-official/skills/pptx/scripts/thumbnail.py","docs/skills/anthropic-official/skills/skill-creator/LICENSE.txt","docs/skills/anthropic-official/skills/skill-creator/SKILL.md","docs/skills/anthropic-official/skills/skill-creator/references/output-patterns.md","docs/skills/anthropic-official/skills/skill-creator/references/workflows.md","docs/skills/anthropic-official/skills/skill-creator/scripts/init_skill.py","docs/skills/anthropic-official/skills/skill-creator/scripts/package_skill.py","docs/skills/anthropic-official/skills/skill-creator/scripts/quick_validate.py","docs/skills/anthropic-official/skills/slack-gif-creator/LICENSE.txt","docs/skills/anthropic-official/skills/slack-gif-creator/SKILL.md","docs/skills/anthropic-official/skills/slack-gif-creator/core/easing.py","docs/skills/anthropic-official/skills/slack-gif-creator/core/frame_composer.py","docs/skills/anthropic-official/skills/slack-gif-creator/core/gif_builder.py","docs/skills/anthropic-official/skills/slack-gif-creator/core/validators.py","docs/skills/anthropic-official/skills/slack-gif-creator/requirements.txt","docs/skills/anthropic-official/skills/theme-factory/LICENSE.txt","docs/skills/anthropic-official/skills/theme-factory/SKILL.md","docs/skills/anthropic-official/skills/theme-factory/theme-showcase.pdf","docs/skills/anthropic-official/skills/theme-factory/themes/arctic-frost.md","docs/skills/anthropic-official/skills/theme-factory/themes/botanical-garden.md","docs/skills/anthropic-official/skills/theme-factory/themes/desert-rose.md","docs/skills/anthropic-official/skills/theme-factory/themes/forest-canopy.md","docs/skills/anthropic-official/skills/theme-factory/themes/golden-hour.md","docs/skills/anthropic-official/skills/theme-factory/themes/midnight-galaxy.md","docs/skills/anthropic-official/skills/theme-factory/themes/modern-minimalist.md","docs/skills/anthropic-official/skills/theme-factory/themes/ocean-depths.md","docs/skills/anthropic-official/skills/theme-factory/themes/sunset-boulevard.md","docs/skills/anthropic-official/skills/theme-factory/themes/tech-innovation.md","docs/skills/anthropic-official/skills/web-artifacts-builder/LICENSE.txt","docs/skills/anthropic-official/skills/web-artifacts-builder/SKILL.md","docs/skills/anthropic-official/skills/web-artifacts-builder/scripts/bundle-artifact.sh","docs/skills/anthropic-official/skills/web-artifacts-builder/scripts/init-artifact.sh","docs/skills/anthropic-official/skills/web-artifacts-builder/scripts/shadcn-components.tar.gz","docs/skills/anthropic-official/skills/webapp-testing/LICENSE.txt","docs/skills/anthropic-official/skills/webapp-testing/SKILL.md","docs/skills/anthropic-official/skills/webapp-testing/examples/console_logging.py","docs/skills/anthropic-official/skills/webapp-testing/examples/element_discovery.py","docs/skills/anthropic-official/skills/webapp-testing/examples/static_html_automation.py","docs/skills/anthropic-official/skills/webapp-testing/scripts/with_server.py","docs/skills/anthropic-official/skills/xlsx/LICENSE.txt","docs/skills/anthropic-official/skills/xlsx/SKILL.md","docs/skills/anthropic-official/skills/xlsx/recalc.py","docs/skills/anthropic-official/spec/agent-skills-spec.md","docs/skills/anthropic-official/template/SKILL.md","docs/skills/awesome-skills/.gitignore","docs/skills/awesome-skills/CONTRIBUTING.md","docs/skills/awesome-skills/README.md","docs/skills/backend-patterns/SKILL.md","docs/skills/clickhouse-io/SKILL.md","docs/skills/coding-standards/SKILL.md","docs/skills/continuous-learning/SKILL.md","docs/skills/continuous-learning/config.json","docs/skills/continuous-learning/evaluate-session.sh","docs/skills/daymade-skills/.claude-plugin/marketplace.json","docs/skills/daymade-skills/.github/ISSUE_TEMPLATE/bug_report.md","docs/skills/daymade-skills/.github/ISSUE_TEMPLATE/feature_request.md","docs/skills/daymade-skills/.github/PULL_REQUEST_TEMPLATE.md","docs/skills/daymade-skills/.gitignore","docs/skills/daymade-skills/AGENTS.md","docs/skills/daymade-skills/CHANGELOG.md","docs/skills/daymade-skills/CLAUDE.md","docs/skills/daymade-skills/CONTRIBUTING.md","docs/skills/daymade-skills/LICENSE","docs/skills/daymade-skills/QUICKSTART.md","docs/skills/daymade-skills/QUICKSTART.zh-CN.md","docs/skills/daymade-skills/README.md","docs/skills/daymade-skills/README.zh-CN.md","docs/skills/daymade-skills/claude-code-history-files-finder/.INTEGRATION_SUMMARY.md","docs/skills/daymade-skills/claude-code-history-files-finder/.security-scan-passed","docs/skills/daymade-skills/claude-code-history-files-finder/SKILL.md","docs/skills/daymade-skills/claude-code-history-files-finder/references/session_file_format.md","docs/skills/daymade-skills/claude-code-history-files-finder/references/workflow_examples.md","docs/skills/daymade-skills/claude-code-history-files-finder/scripts/analyze_sessions.py","docs/skills/daymade-skills/claude-code-history-files-finder/scripts/recover_content.py","docs/skills/daymade-skills/claude-md-progressive-disclosurer/.security-scan-passed","docs/skills/daymade-skills/claude-md-progressive-disclosurer/SKILL.md","docs/skills/daymade-skills/claude-md-progressive-disclosurer/references/progressive_disclosure_principles.md","docs/skills/daymade-skills/cli-demo-generator/SKILL.md","docs/skills/daymade-skills/cli-demo-generator/assets/examples/batch-config.yaml","docs/skills/daymade-skills/cli-demo-generator/assets/templates/basic.tape","docs/skills/daymade-skills/cli-demo-generator/assets/templates/interactive.tape","docs/skills/daymade-skills/cli-demo-generator/references/best_practices.md","docs/skills/daymade-skills/cli-demo-generator/references/vhs_syntax.md","docs/skills/daymade-skills/cli-demo-generator/scripts/auto_generate_demo.py","docs/skills/daymade-skills/cli-demo-generator/scripts/batch_generate.py","docs/skills/daymade-skills/cli-demo-generator/scripts/record_interactive.sh","docs/skills/daymade-skills/cloudflare-troubleshooting/SKILL.md","docs/skills/daymade-skills/cloudflare-troubleshooting/references/api_overview.md","docs/skills/daymade-skills/cloudflare-troubleshooting/references/common_issues.md","docs/skills/daymade-skills/cloudflare-troubleshooting/references/ssl_modes.md","docs/skills/daymade-skills/cloudflare-troubleshooting/scripts/check_cloudflare_config.py","docs/skills/daymade-skills/cloudflare-troubleshooting/scripts/fix_ssl_mode.py","docs/skills/daymade-skills/demos/README.md","docs/skills/daymade-skills/demos/cli-demo-generator/generate-demo.gif","docs/skills/daymade-skills/demos/cli-demo-generator/generate-demo.tape","docs/skills/daymade-skills/demos/generate_all_demos.sh","docs/skills/daymade-skills/demos/github-ops/create-pr.gif","docs/skills/daymade-skills/demos/github-ops/create-pr.tape","docs/skills/daymade-skills/demos/index.html","docs/skills/daymade-skills/demos/llm-icon-finder/find-icons.gif","docs/skills/daymade-skills/demos/llm-icon-finder/find-icons.tape","docs/skills/daymade-skills/demos/markdown-tools/convert-docs.gif","docs/skills/daymade-skills/demos/markdown-tools/convert-docs.tape","docs/skills/daymade-skills/demos/mermaid-tools/extract-diagrams.gif","docs/skills/daymade-skills/demos/mermaid-tools/extract-diagrams.tape","docs/skills/daymade-skills/demos/ppt-creator/create-presentation.gif","docs/skills/daymade-skills/demos/ppt-creator/create-presentation.tape","docs/skills/daymade-skills/demos/repomix-unmixer/extract-repo.gif","docs/skills/daymade-skills/demos/repomix-unmixer/extract-repo.tape","docs/skills/daymade-skills/demos/skill-creator/init-skill.gif","docs/skills/daymade-skills/demos/skill-creator/init-skill.tape","docs/skills/daymade-skills/demos/skill-creator/package-skill.gif","docs/skills/daymade-skills/demos/skill-creator/package-skill.tape","docs/skills/daymade-skills/demos/skill-creator/validate-skill.gif","docs/skills/daymade-skills/demos/skill-creator/validate-skill.tape","docs/skills/daymade-skills/demos/statusline-generator/customize-statusline.gif","docs/skills/daymade-skills/demos/statusline-generator/customize-statusline.tape","docs/skills/daymade-skills/demos/teams-channel-post-writer/write-post.gif","docs/skills/daymade-skills/demos/teams-channel-post-writer/write-post.tape","docs/skills/daymade-skills/demos/ui-designer/extract-design-system.gif","docs/skills/daymade-skills/demos/ui-designer/extract-design-system.tape","docs/skills/daymade-skills/demos/youtube-downloader/download-video.gif","docs/skills/daymade-skills/demos/youtube-downloader/download-video.tape","docs/skills/daymade-skills/docs-cleaner/.security-scan-passed","docs/skills/daymade-skills/docs-cleaner/SKILL.md","docs/skills/daymade-skills/docs-cleaner/references/value_analysis_template.md","docs/skills/daymade-skills/fact-checker/.security-scan-passed","docs/skills/daymade-skills/fact-checker/README.md","docs/skills/daymade-skills/fact-checker/SKILL.md","docs/skills/daymade-skills/github-contributor/.security-scan-passed","docs/skills/daymade-skills/github-contributor/SKILL.md","docs/skills/daymade-skills/github-contributor/references/communication_templates.md","docs/skills/daymade-skills/github-contributor/references/pr_checklist.md","docs/skills/daymade-skills/github-contributor/references/project_evaluation.md","docs/skills/daymade-skills/github-ops/SKILL.md","docs/skills/daymade-skills/github-ops/references/api_reference.md","docs/skills/daymade-skills/github-ops/references/best_practices.md","docs/skills/daymade-skills/github-ops/references/issue_operations.md","docs/skills/daymade-skills/github-ops/references/pr_operations.md","docs/skills/daymade-skills/github-ops/references/workflow_operations.md","docs/skills/daymade-skills/iOS-APP-developer/.security-scan-passed","docs/skills/daymade-skills/iOS-APP-developer/SKILL.md","docs/skills/daymade-skills/iOS-APP-developer/references/camera-avfoundation.md","docs/skills/daymade-skills/iOS-APP-developer/references/swiftui-compatibility.md","docs/skills/daymade-skills/iOS-APP-developer/references/testing-mainactor.md","docs/skills/daymade-skills/iOS-APP-developer/references/xcodegen-full.md","docs/skills/daymade-skills/llm-icon-finder/SKILL.md","docs/skills/daymade-skills/llm-icon-finder/references/developer-info.md","docs/skills/daymade-skills/llm-icon-finder/references/icons-list.md","docs/skills/daymade-skills/macos-cleaner/.security-scan-passed","docs/skills/daymade-skills/macos-cleaner/SKILL.md","docs/skills/daymade-skills/macos-cleaner/references/cleanup_targets.md","docs/skills/daymade-skills/macos-cleaner/references/mole_integration.md","docs/skills/daymade-skills/macos-cleaner/references/safety_rules.md","docs/skills/daymade-skills/macos-cleaner/scripts/analyze_caches.py","docs/skills/daymade-skills/macos-cleaner/scripts/analyze_dev_env.py","docs/skills/daymade-skills/macos-cleaner/scripts/analyze_large_files.py","docs/skills/daymade-skills/macos-cleaner/scripts/cleanup_report.py","docs/skills/daymade-skills/macos-cleaner/scripts/find_app_remnants.py","docs/skills/daymade-skills/macos-cleaner/scripts/safe_delete.py","docs/skills/daymade-skills/markdown-tools/SKILL.md","docs/skills/daymade-skills/markdown-tools/references/conversion-examples.md","docs/skills/daymade-skills/markdown-tools/scripts/convert_path.py","docs/skills/daymade-skills/markdown-tools/scripts/extract_pdf_images.py","docs/skills/daymade-skills/mermaid-tools/SKILL.md","docs/skills/daymade-skills/mermaid-tools/references/setup_and_troubleshooting.md","docs/skills/daymade-skills/mermaid-tools/scripts/extract-and-generate.sh","docs/skills/daymade-skills/mermaid-tools/scripts/extract_diagrams.py","docs/skills/daymade-skills/mermaid-tools/scripts/puppeteer-config.json","docs/skills/daymade-skills/pdf-creator/.security-scan-passed","docs/skills/daymade-skills/pdf-creator/SKILL.md","docs/skills/daymade-skills/pdf-creator/scripts/batch_convert.py","docs/skills/daymade-skills/pdf-creator/scripts/md_to_pdf.py","docs/skills/daymade-skills/ppt-creator/SKILL.md","docs/skills/daymade-skills/ppt-creator/references/CHECKLIST.md","docs/skills/daymade-skills/ppt-creator/references/EXAMPLES.md","docs/skills/daymade-skills/ppt-creator/references/INTAKE.md","docs/skills/daymade-skills/ppt-creator/references/ORCHESTRATION_DATA_CHARTS.md","docs/skills/daymade-skills/ppt-creator/references/ORCHESTRATION_OVERVIEW.md","docs/skills/daymade-skills/ppt-creator/references/ORCHESTRATION_PPTX.md","docs/skills/daymade-skills/ppt-creator/references/RUBRIC.md","docs/skills/daymade-skills/ppt-creator/references/STYLE-GUIDE.md","docs/skills/daymade-skills/ppt-creator/references/TEMPLATES.md","docs/skills/daymade-skills/ppt-creator/references/VIS-GUIDE.md","docs/skills/daymade-skills/ppt-creator/references/WORKFLOW.md","docs/skills/daymade-skills/ppt-creator/scripts/chartkit.py","docs/skills/daymade-skills/prompt-optimizer/.security-scan-passed","docs/skills/daymade-skills/prompt-optimizer/SKILL.md","docs/skills/daymade-skills/prompt-optimizer/references/advanced_techniques.md","docs/skills/daymade-skills/prompt-optimizer/references/domain_theories.md","docs/skills/daymade-skills/prompt-optimizer/references/ears_syntax.md","docs/skills/daymade-skills/prompt-optimizer/references/examples.md","docs/skills/daymade-skills/promptfoo-evaluation/.security-scan-passed","docs/skills/daymade-skills/promptfoo-evaluation/SKILL.md","docs/skills/daymade-skills/promptfoo-evaluation/references/promptfoo_api.md","docs/skills/daymade-skills/qa-expert/.security-scan-passed","docs/skills/daymade-skills/qa-expert/SKILL.md","docs/skills/daymade-skills/qa-expert/assets/templates/TEST-CASE-TEMPLATE.md","docs/skills/daymade-skills/qa-expert/references/day1_onboarding.md","docs/skills/daymade-skills/qa-expert/references/google_testing_standards.md","docs/skills/daymade-skills/qa-expert/references/ground_truth_principle.md","docs/skills/daymade-skills/qa-expert/references/llm_prompts_library.md","docs/skills/daymade-skills/qa-expert/references/master_qa_prompt.md","docs/skills/daymade-skills/qa-expert/scripts/calculate_metrics.py","docs/skills/daymade-skills/qa-expert/scripts/init_qa_project.py","docs/skills/daymade-skills/repomix-safe-mixer/SKILL.md","docs/skills/daymade-skills/repomix-safe-mixer/references/common_secrets.md","docs/skills/daymade-skills/repomix-safe-mixer/scripts/safe_pack.py","docs/skills/daymade-skills/repomix-safe-mixer/scripts/scan_secrets.py","docs/skills/daymade-skills/repomix-unmixer/README.md","docs/skills/daymade-skills/repomix-unmixer/SKILL.md","docs/skills/daymade-skills/repomix-unmixer/references/repomix-format.md","docs/skills/daymade-skills/repomix-unmixer/references/validation-workflow.md","docs/skills/daymade-skills/repomix-unmixer/scripts/unmix_repomix.py","docs/skills/daymade-skills/scripts/install.ps1","docs/skills/daymade-skills/scripts/install.sh","docs/skills/daymade-skills/skill-creator/.gitignore","docs/skills/daymade-skills/skill-creator/LICENSE.txt","docs/skills/daymade-skills/skill-creator/SKILL.md","docs/skills/daymade-skills/skill-creator/scripts/init_skill.py","docs/skills/daymade-skills/skill-creator/scripts/package_skill.py","docs/skills/daymade-skills/skill-creator/scripts/quick_validate.py","docs/skills/daymade-skills/skill-creator/scripts/security_scan.py","docs/skills/daymade-skills/skill-reviewer/.security-scan-passed","docs/skills/daymade-skills/skill-reviewer/SKILL.md","docs/skills/daymade-skills/skill-reviewer/references/evaluation_checklist.md","docs/skills/daymade-skills/skill-reviewer/references/marketplace_template.json","docs/skills/daymade-skills/skill-reviewer/references/pr_template.md","docs/skills/daymade-skills/skills-search/.security-scan-passed","docs/skills/daymade-skills/skills-search/SKILL.md","docs/skills/daymade-skills/statusline-generator/SKILL.md","docs/skills/daymade-skills/statusline-generator/references/ccusage_integration.md","docs/skills/daymade-skills/statusline-generator/references/color_codes.md","docs/skills/daymade-skills/statusline-generator/scripts/generate_statusline.sh","docs/skills/daymade-skills/statusline-generator/scripts/install_statusline.sh","docs/skills/daymade-skills/teams-channel-post-writer/SKILL.md","docs/skills/daymade-skills/teams-channel-post-writer/assets/post-template.md","docs/skills/daymade-skills/teams-channel-post-writer/references/writing-guidelines.md","docs/skills/daymade-skills/transcript-fixer/.gitignore","docs/skills/daymade-skills/transcript-fixer/SKILL.md","docs/skills/daymade-skills/transcript-fixer/references/architecture.md","docs/skills/daymade-skills/transcript-fixer/references/best_practices.md","docs/skills/daymade-skills/transcript-fixer/references/database_schema.md","docs/skills/daymade-skills/transcript-fixer/references/dictionary_guide.md","docs/skills/daymade-skills/transcript-fixer/references/file_formats.md","docs/skills/daymade-skills/transcript-fixer/references/glm_api_setup.md","docs/skills/daymade-skills/transcript-fixer/references/installation_setup.md","docs/skills/daymade-skills/transcript-fixer/references/iteration_workflow.md","docs/skills/daymade-skills/transcript-fixer/references/quick_reference.md","docs/skills/daymade-skills/transcript-fixer/references/script_parameters.md","docs/skills/daymade-skills/transcript-fixer/references/sql_queries.md","docs/skills/daymade-skills/transcript-fixer/references/team_collaboration.md","docs/skills/daymade-skills/transcript-fixer/references/troubleshooting.md","docs/skills/daymade-skills/transcript-fixer/references/workflow_guide.md","docs/skills/daymade-skills/transcript-fixer/requirements.txt","docs/skills/daymade-skills/transcript-fixer/scripts/__init__.py","docs/skills/daymade-skills/transcript-fixer/scripts/check_type_hints.py","docs/skills/daymade-skills/transcript-fixer/scripts/cli/__init__.py","docs/skills/daymade-skills/transcript-fixer/scripts/cli/argument_parser.py","docs/skills/daymade-skills/transcript-fixer/scripts/cli/commands.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/__init__.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/ai_processor.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/ai_processor_async.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/change_extractor.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/connection_pool.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/correction_repository.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/correction_service.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/dictionary_processor.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/learning_engine.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/schema.sql","docs/skills/daymade-skills/transcript-fixer/scripts/ensure_deps.py","docs/skills/daymade-skills/transcript-fixer/scripts/examples/bulk_import.py","docs/skills/daymade-skills/transcript-fixer/scripts/fix_transcript_enhanced.py","docs/skills/daymade-skills/transcript-fixer/scripts/fix_transcription.py","docs/skills/daymade-skills/transcript-fixer/scripts/generate_word_diff.py","docs/skills/daymade-skills/transcript-fixer/scripts/tests/__init__.py","docs/skills/daymade-skills/transcript-fixer/scripts/tests/test_audit_log_retention.py","docs/skills/daymade-skills/transcript-fixer/scripts/tests/test_connection_pool.py","docs/skills/daymade-skills/transcript-fixer/scripts/tests/test_correction_service.py","docs/skills/daymade-skills/transcript-fixer/scripts/tests/test_domain_validator.py","docs/skills/daymade-skills/transcript-fixer/scripts/tests/test_error_recovery.py","docs/skills/daymade-skills/transcript-fixer/scripts/tests/test_learning_engine.py","docs/skills/daymade-skills/transcript-fixer/scripts/tests/test_path_validator.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/__init__.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/audit_log_retention.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/concurrency_manager.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/config.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/database_migration.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/db_migrations_cli.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/diff_formats/__init__.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/diff_formats/change_extractor.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/diff_formats/html_format.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/diff_formats/inline_format.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/diff_formats/markdown_format.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/diff_formats/text_splitter.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/diff_formats/unified_format.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/diff_generator.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/domain_validator.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/health_check.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/logging_config.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/metrics.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/migrations.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/path_validator.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/rate_limiter.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/retry_logic.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/security.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/validation.py","docs/skills/daymade-skills/twitter-reader/.security-scan-passed","docs/skills/daymade-skills/twitter-reader/SKILL.md","docs/skills/daymade-skills/twitter-reader/scripts/fetch_tweet.py","docs/skills/daymade-skills/twitter-reader/scripts/fetch_tweets.sh","docs/skills/daymade-skills/ui-designer/SKILL.md","docs/skills/daymade-skills/ui-designer/assets/app-overview-generator.md","docs/skills/daymade-skills/ui-designer/assets/design-system.md","docs/skills/daymade-skills/ui-designer/assets/vibe-design-template.md","docs/skills/daymade-skills/video-comparer/.security-scan-passed","docs/skills/daymade-skills/video-comparer/README.md","docs/skills/daymade-skills/video-comparer/SKILL.md","docs/skills/daymade-skills/video-comparer/assets/template.html","docs/skills/daymade-skills/video-comparer/references/configuration.md","docs/skills/daymade-skills/video-comparer/references/ffmpeg_commands.md","docs/skills/daymade-skills/video-comparer/references/video_metrics.md","docs/skills/daymade-skills/video-comparer/scripts/compare.py","docs/skills/daymade-skills/youtube-downloader/.security-scan-passed","docs/skills/daymade-skills/youtube-downloader/SKILL.md","docs/skills/daymade-skills/youtube-downloader/references/po-token-setup.md","docs/skills/daymade-skills/youtube-downloader/scripts/download_video.py","docs/skills/eval-harness/SKILL.md","docs/skills/frontend-patterns/SKILL.md","docs/skills/haizhan-ime-development.md","docs/skills/hizan-official/.claude-plugin/marketplace.json","docs/skills/hizan-official/skills/arch/SKILL.md","docs/skills/hizan-official/skills/game/SKILL.md","docs/skills/hizan-official/skills/quality/SKILL.md","docs/skills/hizan-official/skills/work/SKILL.md","docs/skills/juhi/tool-usage.md","docs/skills/mhattingpete-skills/.claude-plugin/marketplace.json","docs/skills/mhattingpete-skills/.claude/install-gh.sh","docs/skills/mhattingpete-skills/.claude/settings.json","docs/skills/mhattingpete-skills/.gitignore","docs/skills/mhattingpete-skills/CHANGELOG.md","docs/skills/mhattingpete-skills/CLAUDE.md","docs/skills/mhattingpete-skills/CONTRIBUTING.md","docs/skills/mhattingpete-skills/LICENSE","docs/skills/mhattingpete-skills/README.md","docs/skills/mhattingpete-skills/assets/skill-loading.gif","docs/skills/mhattingpete-skills/code-operations-plugin/.claude-plugin/plugin.json","docs/skills/mhattingpete-skills/code-operations-plugin/README.md","docs/skills/mhattingpete-skills/code-operations-plugin/skills/code-execution/SKILL.md","docs/skills/mhattingpete-skills/code-operations-plugin/skills/code-execution/examples/bulk_refactor.py","docs/skills/mhattingpete-skills/code-operations-plugin/skills/code-execution/examples/codebase_audit.py","docs/skills/mhattingpete-skills/code-operations-plugin/skills/code-execution/examples/extract_functions.py","docs/skills/mhattingpete-skills/code-operations-plugin/skills/code-refactor/SKILL.md","docs/skills/mhattingpete-skills/code-operations-plugin/skills/code-transfer/SKILL.md","docs/skills/mhattingpete-skills/code-operations-plugin/skills/code-transfer/scripts/line_insert.py","docs/skills/mhattingpete-skills/code-operations-plugin/skills/file-operations/SKILL.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/.claude-plugin/plugin.json","docs/skills/mhattingpete-skills/engineering-workflow-plugin/README.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/agents/ensemble-orchestrator/AGENT.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/agents/plan-implementer.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/commands/pr.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/skills/ensemble-solving/SKILL.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/skills/ensemble-solving/references/diversification-strategies.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/skills/ensemble-solving/references/evaluation-rubrics.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/skills/feature-planning/SKILL.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/skills/feature-planning/references/planning-best-practices.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/skills/git-pushing/SKILL.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/skills/git-pushing/scripts/smart_commit.sh","docs/skills/mhattingpete-skills/engineering-workflow-plugin/skills/review-implementing/SKILL.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/skills/test-fixing/SKILL.md","docs/skills/mhattingpete-skills/execution-runtime/.env.example","docs/skills/mhattingpete-skills/execution-runtime/README.md","docs/skills/mhattingpete-skills/execution-runtime/api/__init__.py","docs/skills/mhattingpete-skills/execution-runtime/api/code_analysis.py","docs/skills/mhattingpete-skills/execution-runtime/api/code_transform.py","docs/skills/mhattingpete-skills/execution-runtime/api/filesystem.py","docs/skills/mhattingpete-skills/execution-runtime/api/git_operations.py","docs/skills/mhattingpete-skills/execution-runtime/execution_runtime/__init__.py","docs/skills/mhattingpete-skills/execution-runtime/execution_runtime/security/__init__.py","docs/skills/mhattingpete-skills/execution-runtime/execution_runtime/security/import_guard.py","docs/skills/mhattingpete-skills/execution-runtime/execution_runtime/security/pii_detector.py","docs/skills/mhattingpete-skills/execution-runtime/execution_runtime/sessions.py","docs/skills/mhattingpete-skills/execution-runtime/execution_runtime/skills.py","docs/skills/mhattingpete-skills/execution-runtime/mcp-server/mcp_server.py","docs/skills/mhattingpete-skills/execution-runtime/mcp-server/security/pii_detector.py","docs/skills/mhattingpete-skills/execution-runtime/mcp-server/security/sandbox.py","docs/skills/mhattingpete-skills/execution-runtime/pyproject.toml","docs/skills/mhattingpete-skills/execution-runtime/setup.sh","docs/skills/mhattingpete-skills/productivity-skills-plugin/.claude-plugin/plugin.json","docs/skills/mhattingpete-skills/productivity-skills-plugin/README.md","docs/skills/mhattingpete-skills/productivity-skills-plugin/skills/code-auditor/SKILL.md","docs/skills/mhattingpete-skills/productivity-skills-plugin/skills/codebase-documenter/SKILL.md","docs/skills/mhattingpete-skills/productivity-skills-plugin/skills/conversation-analyzer/SKILL.md","docs/skills/mhattingpete-skills/productivity-skills-plugin/skills/conversation-analyzer/scripts/analyze_history.py","docs/skills/mhattingpete-skills/productivity-skills-plugin/skills/project-bootstrapper/SKILL.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/.claude-plugin/plugin.json","docs/skills/mhattingpete-skills/visual-documentation-plugin/EXAMPLES.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/README.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/architecture-diagram-creator/SKILL.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/architecture-diagram-creator/assets/templates/architecture_components.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/architecture-diagram-creator/assets/templates/base_template.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/architecture-diagram-creator/references/example_architecture.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/dashboard-creator/SKILL.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/dashboard-creator/assets/templates/base_template.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/dashboard-creator/assets/templates/dashboard_components.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/dashboard-creator/references/design_patterns.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/dashboard-creator/references/svg_library.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/flowchart-creator/SKILL.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/flowchart-creator/assets/templates/base_template.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/flowchart-creator/assets/templates/flowchart_components.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/flowchart-creator/references/design_patterns.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/flowchart-creator/references/svg_library.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/technical-doc-creator/SKILL.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/technical-doc-creator/assets/templates/base_template.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/technical-doc-creator/references/design_patterns.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/technical-doc-creator/references/svg_library.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/timeline-creator/SKILL.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/timeline-creator/assets/templates/base_template.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/timeline-creator/assets/templates/timeline_components.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/timeline-creator/references/design_patterns.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/timeline-creator/references/svg_library.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/test-outputs/dashboard-test-monitoring.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/test-outputs/flowchart-test-authentication.html","docs/skills/netresearch-marketplace/.claude-plugin/marketplace.json","docs/skills/netresearch-marketplace/.github/workflows/sync-skills.yml","docs/skills/netresearch-marketplace/.gitignore","docs/skills/netresearch-marketplace/.sync-config.json","docs/skills/netresearch-marketplace/README.md","docs/skills/netresearch-marketplace/SYNC-SETUP.md","docs/skills/netresearch-marketplace/VERSIONING.md","docs/skills/netresearch-marketplace/notify-marketplace.yml","docs/skills/netresearch-marketplace/plugins/coach/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/plugins/coach/LICENSE","docs/skills/netresearch-marketplace/plugins/coach/README.md","docs/skills/netresearch-marketplace/plugins/coach/assets/templates/antipattern.md","docs/skills/netresearch-marketplace/plugins/coach/assets/templates/checklist.md","docs/skills/netresearch-marketplace/plugins/coach/assets/templates/rule.md","docs/skills/netresearch-marketplace/plugins/coach/assets/templates/snippet.md","docs/skills/netresearch-marketplace/plugins/coach/commands/approve.md","docs/skills/netresearch-marketplace/plugins/coach/commands/edit.md","docs/skills/netresearch-marketplace/plugins/coach/commands/init.md","docs/skills/netresearch-marketplace/plugins/coach/commands/promote.md","docs/skills/netresearch-marketplace/plugins/coach/commands/reject.md","docs/skills/netresearch-marketplace/plugins/coach/commands/review.md","docs/skills/netresearch-marketplace/plugins/coach/commands/scan.md","docs/skills/netresearch-marketplace/plugins/coach/commands/status.md","docs/skills/netresearch-marketplace/plugins/coach/hooks/hooks.json","docs/skills/netresearch-marketplace/plugins/coach/references/architecture.md","docs/skills/netresearch-marketplace/plugins/coach/references/schema.md","docs/skills/netresearch-marketplace/plugins/coach/references/scope_heuristics.md","docs/skills/netresearch-marketplace/plugins/coach/references/signal_patterns.md","docs/skills/netresearch-marketplace/plugins/coach/scripts/aggregate.py","docs/skills/netresearch-marketplace/plugins/coach/scripts/apply.py","docs/skills/netresearch-marketplace/plugins/coach/scripts/detect_signals.py","docs/skills/netresearch-marketplace/plugins/coach/scripts/fingerprint.py","docs/skills/netresearch-marketplace/plugins/coach/scripts/init_coach.py","docs/skills/netresearch-marketplace/plugins/coach/scripts/ledger.py","docs/skills/netresearch-marketplace/plugins/coach/scripts/propose.py","docs/skills/netresearch-marketplace/plugins/coach/scripts/root_cause_analyzer.py","docs/skills/netresearch-marketplace/plugins/coach/scripts/scope_analyzer.py","docs/skills/netresearch-marketplace/plugins/coach/scripts/skill_analyzer.py","docs/skills/netresearch-marketplace/plugins/coach/skills/coach/SKILL.md","docs/skills/netresearch-marketplace/renovate.json","docs/skills/netresearch-marketplace/skills/agents/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/agents/LICENSE","docs/skills/netresearch-marketplace/skills/agents/README.md","docs/skills/netresearch-marketplace/skills/agents/STATUS.md","docs/skills/netresearch-marketplace/skills/agents/claudedocs/refactoring-summary.md","docs/skills/netresearch-marketplace/skills/agents/composer.json","docs/skills/netresearch-marketplace/skills/agents/docs/ROADMAP.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/SKILL.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/root-thin.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/root-verbose.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/scoped/backend-go.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/scoped/backend-php.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/scoped/cli.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/scoped/documentation.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/scoped/examples.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/scoped/frontend-typescript.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/scoped/resources.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/scoped/testing.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/analysis.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/directory-coverage.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/examples/coding-agent-cli/AGENTS.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/examples/coding-agent-cli/scripts-AGENTS.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/examples/ldap-selfservice/AGENTS.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/examples/ldap-selfservice/internal-AGENTS.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/examples/ldap-selfservice/internal-web-AGENTS.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/examples/simple-ldap-go/AGENTS.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/examples/simple-ldap-go/examples-AGENTS.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/examples/t3x-rte-ckeditor-image/AGENTS.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/examples/t3x-rte-ckeditor-image/Classes-AGENTS.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/analyze-git-history.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/check-freshness.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/detect-project.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/detect-scopes.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/extract-agent-configs.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/extract-ci-commands.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/extract-commands.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/extract-documentation.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/extract-ide-settings.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/extract-platform-files.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/extract-quality-configs.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/generate-agents.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/lib/summary.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/lib/template.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/validate-structure.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/verify-content.sh","docs/skills/netresearch-marketplace/skills/cli-tools/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/cli-tools/LICENSE","docs/skills/netresearch-marketplace/skills/cli-tools/README.md","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/ansible-core.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/ast-grep.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/aws.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/bandit.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/bat.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/black.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/claude.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/codex.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/compose.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/composer.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/ctags.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/curlie.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/dasel.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/delta.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/direnv.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/dive.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/docker.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/entr.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/eslint.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/fd.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/flake8.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/fx.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/fzf.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/gam.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/gem.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/gh.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/git-absorb.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/git-branchless.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/git-filter-repo.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/git-lfs.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/git.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/gitleaks.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/glab.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/go.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/golangci-lint.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/gosec.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/httpie.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/isort.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/jq.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/just.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/kubectl.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/ninja.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/node.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/npm.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/parallel.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/php.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/pip.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/pipx.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/pnpm.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/poetry.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/pre-commit.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/prename.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/prettier.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/python.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/rbenv.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/rename.ul.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/rga.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/ripgrep.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/ruby-build.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/ruby.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/ruff.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/rust.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/sd.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/semgrep.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/shellcheck.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/shfmt.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/sponge.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/terraform.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/tfsec.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/trivy.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/uv.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/watchexec.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/xsv.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/yarn.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/yq.json","docs/skills/netresearch-marketplace/skills/cli-tools/composer.json","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/SKILL.md","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/references/binary_to_tool_map.md","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/references/project_type_requirements.md","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/auto_update.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/check_environment.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/detect_project_type.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/install_composer.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/install_tool.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/installers/aws_installer.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/installers/dedicated_script.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/installers/github_clone.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/installers/github_release_binary.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/installers/hashicorp_zip.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/installers/npm_global.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/installers/npm_self_update.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/installers/package_manager.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/installers/uv_tool.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/lib/capability.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/lib/catalog.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/lib/common.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/lib/dependency.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/lib/install_strategy.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/lib/path_check.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/lib/policy.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/lib/reconcile.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/lib/scope_detection.sh","docs/skills/netresearch-marketplace/skills/context7/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/context7/LICENSE","docs/skills/netresearch-marketplace/skills/context7/README.md","docs/skills/netresearch-marketplace/skills/context7/skills/context7/SKILL.md","docs/skills/netresearch-marketplace/skills/context7/skills/context7/scripts/context7.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/enterprise-readiness/LICENSE","docs/skills/netresearch-marketplace/skills/enterprise-readiness/README.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/templates/ARCHITECTURE.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/templates/BADGE_EXCEPTIONS.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/templates/CODE_OF_CONDUCT.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/templates/GOVERNANCE.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/templates/ROADMAP.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/templates/SECURITY_AUDIT.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/workflows/codeql.yml","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/workflows/dco-check.yml","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/workflows/dependency-review.yml","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/workflows/scorecard.yml","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/workflows/slsa-provenance.yml","docs/skills/netresearch-marketplace/skills/enterprise-readiness/composer.json","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/SKILL.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/2fa-enforcement.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/badge-display.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/branch-coverage.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/dco-implementation.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/dynamic-analysis.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/general.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/github.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/go.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/openssf-badge-gold.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/openssf-badge-silver.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/quick-start-guide.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/reproducible-builds.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/security-hardening.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/signed-releases.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/solo-maintainer-guide.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/sonarcloud.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/test-invocation.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/add-spdx-headers.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/analyze-bus-factor.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/check-branch-coverage.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/check-coverage-threshold.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/check-tls-minimum.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/verify-badge-criteria.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/verify-reproducible-build.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/verify-review-requirements.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/verify-signed-tags.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/verify-spdx-headers.sh","docs/skills/netresearch-marketplace/skills/git-workflow/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/git-workflow/LICENSE","docs/skills/netresearch-marketplace/skills/git-workflow/README.md","docs/skills/netresearch-marketplace/skills/git-workflow/composer.json","docs/skills/netresearch-marketplace/skills/git-workflow/skills/git-workflow/SKILL.md","docs/skills/netresearch-marketplace/skills/git-workflow/skills/git-workflow/references/advanced-git.md","docs/skills/netresearch-marketplace/skills/git-workflow/skills/git-workflow/references/branching-strategies.md","docs/skills/netresearch-marketplace/skills/git-workflow/skills/git-workflow/references/ci-cd-integration.md","docs/skills/netresearch-marketplace/skills/git-workflow/skills/git-workflow/references/commit-conventions.md","docs/skills/netresearch-marketplace/skills/git-workflow/skills/git-workflow/references/github-releases.md","docs/skills/netresearch-marketplace/skills/git-workflow/skills/git-workflow/references/pull-request-workflow.md","docs/skills/netresearch-marketplace/skills/git-workflow/skills/git-workflow/scripts/verify-git-workflow.sh","docs/skills/netresearch-marketplace/skills/github-project/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/github-project/LICENSE","docs/skills/netresearch-marketplace/skills/github-project/README.md","docs/skills/netresearch-marketplace/skills/github-project/composer.json","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/SKILL.md","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/CODEOWNERS.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/CONTRIBUTING.md.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/PULL_REQUEST_TEMPLATE.md.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/SECURITY.md.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/auto-merge-direct.yml.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/auto-merge-queue.yml.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/auto-merge.yml.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/bug_report.md.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/dependabot.yml.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/feature_request.md.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/release-labeler.yml.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/renovate.json.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/references/branch-migration.md","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/references/dependency-management.md","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/references/release-labeling.md","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/references/repository-structure.md","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/references/sub-issues.md","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/scripts/verify-github-project.sh","docs/skills/netresearch-marketplace/skills/go-development/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/go-development/LICENSE","docs/skills/netresearch-marketplace/skills/go-development/README.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/SKILL.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/api-design.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/architecture.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/docker.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/fuzz-testing.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/ldap.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/linting.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/makefile.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/mutation-testing.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/resilience.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/testing.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/scripts/verify-go-project.sh","docs/skills/netresearch-marketplace/skills/jira-integration/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/jira-integration/AGENTS.md","docs/skills/netresearch-marketplace/skills/jira-integration/CHANGELOG.md","docs/skills/netresearch-marketplace/skills/jira-integration/CLAUDE.md","docs/skills/netresearch-marketplace/skills/jira-integration/LICENSE","docs/skills/netresearch-marketplace/skills/jira-integration/MIGRATION.md","docs/skills/netresearch-marketplace/skills/jira-integration/PRD.md","docs/skills/netresearch-marketplace/skills/jira-integration/README.md","docs/skills/netresearch-marketplace/skills/jira-integration/SKILL.md","docs/skills/netresearch-marketplace/skills/jira-integration/composer.json","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/AGENTS.md","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/SKILL.md","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/references/jql-quick-reference.md","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/references/troubleshooting.md","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/core/jira-attachment.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/core/jira-issue.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/core/jira-search.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/core/jira-setup.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/core/jira-validate.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/core/jira-worklog.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/lib/__init__.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/lib/client.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/lib/config.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/lib/output.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/utility/jira-fields.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/utility/jira-link.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/utility/jira-user.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/workflow/jira-board.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/workflow/jira-comment.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/workflow/jira-create.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/workflow/jira-sprint.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/workflow/jira-transition.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-syntax/AGENTS.md","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-syntax/SKILL.md","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-syntax/references/jira-syntax-quick-reference.md","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-syntax/scripts/validate-jira-syntax.sh","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-syntax/templates/bug-report-template.md","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-syntax/templates/feature-request-template.md","docs/skills/netresearch-marketplace/skills/netresearch-branding/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/netresearch-branding/LICENSE","docs/skills/netresearch-marketplace/skills/netresearch-branding/README.md","docs/skills/netresearch-marketplace/skills/netresearch-branding/assets/logos/netresearch-symbol-only.svg","docs/skills/netresearch-marketplace/skills/netresearch-branding/composer.json","docs/skills/netresearch-marketplace/skills/netresearch-branding/examples/components.html","docs/skills/netresearch-marketplace/skills/netresearch-branding/skills/netresearch-branding/SKILL.md","docs/skills/netresearch-marketplace/skills/netresearch-branding/skills/netresearch-branding/references/colors.md","docs/skills/netresearch-marketplace/skills/netresearch-branding/skills/netresearch-branding/references/typo3-extension-branding.md","docs/skills/netresearch-marketplace/skills/netresearch-branding/skills/netresearch-branding/references/typography.md","docs/skills/netresearch-marketplace/skills/netresearch-branding/skills/netresearch-branding/references/web-design.md","docs/skills/netresearch-marketplace/skills/netresearch-branding/skills/netresearch-branding/templates/landing-page.html","docs/skills/netresearch-marketplace/skills/netresearch-branding/skills/netresearch-branding/templates/styles.css","docs/skills/netresearch-marketplace/skills/php-modernization/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/php-modernization/LICENSE","docs/skills/netresearch-marketplace/skills/php-modernization/README.md","docs/skills/netresearch-marketplace/skills/php-modernization/composer.json","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/SKILL.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/references/adapter-registry-pattern.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/references/migration-strategies.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/references/php8-features.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/references/phpstan-compliance.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/references/psr-per-compliance.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/references/request-dtos.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/references/static-analysis-tools.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/references/symfony-patterns.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/references/type-safety.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/scripts/verify-php-project.sh","docs/skills/netresearch-marketplace/skills/security-audit/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/security-audit/LICENSE","docs/skills/netresearch-marketplace/skills/security-audit/README.md","docs/skills/netresearch-marketplace/skills/security-audit/composer.json","docs/skills/netresearch-marketplace/skills/security-audit/skills/security-audit/SKILL.md","docs/skills/netresearch-marketplace/skills/security-audit/skills/security-audit/references/api-key-encryption.md","docs/skills/netresearch-marketplace/skills/security-audit/skills/security-audit/references/cvss-scoring.md","docs/skills/netresearch-marketplace/skills/security-audit/skills/security-audit/references/owasp-top10.md","docs/skills/netresearch-marketplace/skills/security-audit/skills/security-audit/references/xxe-prevention.md","docs/skills/netresearch-marketplace/skills/security-audit/skills/security-audit/scripts/security-audit.sh","docs/skills/netresearch-marketplace/skills/skill-repo/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/skill-repo/LICENSE","docs/skills/netresearch-marketplace/skills/skill-repo/README.md","docs/skills/netresearch-marketplace/skills/skill-repo/composer.json","docs/skills/netresearch-marketplace/skills/skill-repo/renovate.json","docs/skills/netresearch-marketplace/skills/skill-repo/skills/skill-repo/SKILL.md","docs/skills/netresearch-marketplace/skills/skill-repo/skills/skill-repo/references/composer-setup.md","docs/skills/netresearch-marketplace/skills/skill-repo/skills/skill-repo/references/installation-methods.md","docs/skills/netresearch-marketplace/skills/skill-repo/skills/skill-repo/references/marketplace-integration.md","docs/skills/netresearch-marketplace/skills/skill-repo/skills/skill-repo/scripts/validate-skill.sh","docs/skills/netresearch-marketplace/skills/skill-repo/skills/skill-repo/templates/README.md.template","docs/skills/netresearch-marketplace/skills/skill-repo/skills/skill-repo/templates/composer.json.template","docs/skills/netresearch-marketplace/skills/skill-repo/skills/skill-repo/templates/release.yml.template","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/LICENSE","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/README.md","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/composer.json","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/skills/typo3-ckeditor5/SKILL.md","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/skills/typo3-ckeditor5/references/ckeditor5-architecture.md","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/skills/typo3-ckeditor5/references/migration-guide.md","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/skills/typo3-ckeditor5/references/plugin-development.md","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/skills/typo3-ckeditor5/references/typo3-integration.md","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/skills/typo3-ckeditor5/scripts/verify-ckeditor5.sh","docs/skills/netresearch-marketplace/skills/typo3-conformance/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/typo3-conformance/LICENSE","docs/skills/netresearch-marketplace/skills/typo3-conformance/README.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/composer.json","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/SKILL.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/assets/.github/workflows/publish-to-ter.yml","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/backend-module-v13.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/backend-wizard-patterns.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/best-practices.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/coding-guidelines.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/composer-validation.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/crowdin-integration.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/development-environment.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/directory-structure.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/dual-version-compatibility.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/excellence-indicators.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/ext-emconf-validation.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/ext-files-validation.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/extension-architecture.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/hooks-and-events.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/multi-tier-configuration.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/php-architecture.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/report-template.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/runtests-validation.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/ter-publishing.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/testing-standards.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/v13-deprecations.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/version-requirements.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/scripts/check-architecture.sh","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/scripts/check-coding-standards.sh","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/scripts/check-conformance.sh","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/scripts/check-documentation.sh","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/scripts/check-file-structure.sh","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/scripts/check-phpstan-baseline.sh","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/scripts/check-testing.sh","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/scripts/generate-report.sh","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/LICENSE","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/README.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/assets/commit-template.txt","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/claudedocs/refactoring-summary.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/composer.json","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/SKILL.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/references/account-setup.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/references/commit-message-format.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/references/commit-msg-hook.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/references/ddev-setup-workflow.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/references/forge-api.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/references/gerrit-review-patterns.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/references/gerrit-workflow.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/references/modern-typo3-patterns.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/references/troubleshooting.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/scripts/create-commit-message.py","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/scripts/create-forge-issue.sh","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/scripts/query-forge-metadata.sh","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/scripts/setup-typo3-coredev.sh","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/scripts/validate-commit-message.py","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/scripts/verify-prerequisites.sh","docs/skills/netresearch-marketplace/skills/typo3-ddev/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/typo3-ddev/LICENSE","docs/skills/netresearch-marketplace/skills/typo3-ddev/README.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/composer.json","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/SKILL.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/.envrc","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/Makefile.template","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/README-SERVICES.md.optional","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/apache/apache-site.conf","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/host/docs","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/host/pre-start-git-info","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/host/setup","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/install-all","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/install-v11","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/install-v12","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/install-v13","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/web/configure-extension.optional","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/web/generate-index","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/web/generate-makefile","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/web/install-introduction.optional","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/config.redis.php.example","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/config.yaml","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/docker-compose.git-info.yaml","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/docker-compose.ofelia.yaml.optional","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/docker-compose.services-redis.yaml.optional","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/docker-compose.services.yaml.optional","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/docker-compose.web.yaml","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/homeadditions/.bashrc_additions.optional","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/index.html.netresearch.template","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/index.html.typo3.template","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/web-build/Dockerfile","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/web-build/install-cron.sh.optional","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/web-entrypoint.d/10-cleanup-index.sh","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/0001-valkey-default-with-redis-alternative.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/0002-mariadb-default-with-database-alternatives.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/0003-php-version-management.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/advanced-options.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/documentation-rendering.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/index-page-generation.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/prerequisites-validation.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/quickstart.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/troubleshooting.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/typo3-12-cli-changes.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/windows-fixes.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/windows-optimizations.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/scripts/validate-prerequisites.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/typo3-docs/LICENSE","docs/skills/netresearch-marketplace/skills/typo3-docs/README.md","docs/skills/netresearch-marketplace/skills/typo3-docs/composer.json","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/SKILL.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/assets/AGENTS.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/architecture-decision-records.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/code-structure-elements.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/coding-guidelines.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/content-directives.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/documentation-coverage-analysis.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/extraction-patterns.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/file-structure.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/guides-xml.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/intercept-deployment.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/rendering.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/rst-syntax.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/screenshots.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/text-roles-inline-code.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/typo3-directives.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/typo3-extension-architecture.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/add-agents-md.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/analyze-docs.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/extract-all.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/extract-build-configs.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/extract-composer.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/extract-extension-config.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/extract-php.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/extract-project-files.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/extract-repo-metadata.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/render_docs.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/validate_docs.sh","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/LICENSE","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/README.md","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/composer.json","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/SKILL.md","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/assets/.php-cs-fixer.php","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/assets/fractor.php","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/assets/phpstan.neon","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/assets/phpunit.xml","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/assets/rector.php","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/references/api-changes.md","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/references/dual-compatibility.md","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/references/pre-upgrade.md","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/references/real-world-patterns.md","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/references/upgrade-v11-to-v12.md","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/references/upgrade-v12-to-v13.md","docs/skills/netresearch-marketplace/skills/typo3-testing/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/typo3-testing/LICENSE","docs/skills/netresearch-marketplace/skills/typo3-testing/README.md","docs/skills/netresearch-marketplace/skills/typo3-testing/composer.json","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/SKILL.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/.php-cs-fixer.dist.php","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/AGENTS.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/FunctionalTests.xml","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/FunctionalTestsBootstrap.php","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/Makefile","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/UnitTests.xml","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/UnitTestsBootstrap.php","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/bootstrap.php","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/codecov.yml","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/docker/codeception.yml","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/docker/docker-compose.yml","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/example-tests/ExampleAcceptanceCest.php","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/example-tests/ExampleFunctionalTest.php","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/example-tests/ExampleUnitTest.php","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/fixtures/README.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/fixtures/be_users.csv","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/fixtures/pages.csv","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/fixtures/sys_category.csv","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/fixtures/tt_content.csv","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/github-actions-e2e.yml","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/github-actions-tests.yml","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/infection.json5","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/phpat.neon","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/phpat.php","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/phpstan-baseline.neon","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/phpstan.neon","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/rector.php","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/accessibility-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/architecture-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/ci-cd.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/crypto-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/ddev-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/e2e-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/functional-test-patterns.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/functional-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/fuzz-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/integration-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/javascript-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/mutation-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/performance-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/quality-tools.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/sonarcloud.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/test-runners.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/typo3-v14-final-classes.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/unit-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/scripts/generate-test.sh","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/scripts/setup-testing.sh","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/scripts/validate-setup.sh","docs/skills/netresearch-marketplace/update-source-repos.sh","docs/skills/project-guidelines-example/SKILL.md","docs/skills/security-review/SKILL.md","docs/skills/strategic-compact/SKILL.md","docs/skills/strategic-compact/suggest-compact.sh","docs/skills/tdd-workflow/SKILL.md","docs/skills/verification-loop/SKILL.md","docs/话术库导出_20251231103252.xlsx","docs_archive/AI_INPUT_METHOD_BRAINSTORM.md","docs_archive/ANDROID_100_PERCENT_PLAN.md","docs_archive/ANDROID_NATIVE_REPLACEMENT_DETAILED_PLAN.md","docs_archive/ANDROID_NATIVE_REPLACEMENT_PLAN.md","docs_archive/API.md","docs_archive/APPLE_PLATFORM_DEVELOPMENT_PLAN.md","docs_archive/ARCHITECTURE.md","docs_archive/ARCHITECTURE_COMPACT.md","docs_archive/CLAUDE.md","docs_archive/COMPREHENSIVE_IMPROVEMENT_PLAN.md","docs_archive/DEPLOYMENT.md","docs_archive/DESIGN_BASED_DEVELOPMENT_PLAN.md","docs_archive/DEVELOPMENT_ROADMAP.md","docs_archive/DICTIONARY_IMPROVEMENT_PLAN.md","docs_archive/DOCS_INDEX.md","docs_archive/IMPLEMENTATION_PLAN.md","docs_archive/IMPROVEMENT_RECOMMENDATIONS.md","docs_archive/IOS_DEVELOPMENT_PLAN.md","docs_archive/NEXT_STEPS_PLAN.md","docs_archive/PINYIN_DEVELOPMENT_PLAN.md","docs_archive/PRD.md","docs_archive/PROGRESS_TRACKER.md","docs_archive/README.md","docs_archive/REDLINES.md","docs_archive/SMART_RECOGNITION_COMPACT.md","docs_archive/TECHNICAL_ARCHITECTURE.md","docs_archive/UI_DEVELOPMENT_PLAN.md","docs_archive/smart-recognition-design.md","flutter_app/assets/fonts/PingFang-Medium.ttf","flutter_app/assets/fonts/PingFang-Regular.ttf","flutter_app/assets/fonts/PingFang-Semibold.ttf","flutter_app/assets/icons/.gitkeep","flutter_app/assets/images/.gitkeep","flutter_app/lib/core/bridge/bridge_models.dart","flutter_app/lib/core/bridge/bridge_response_parser.dart","flutter_app/lib/core/bridge/haizhan_bridge.dart","flutter_app/lib/core/di/service_locator.dart","flutter_app/lib/core/router/app_router.dart","flutter_app/lib/core/router/routes.dart","flutter_app/lib/core/theme/app_colors.dart","flutter_app/lib/core/theme/app_theme.dart","flutter_app/lib/core/theme/app_typography.dart","flutter_app/lib/features/auth/data/auth_provider.dart","flutter_app/lib/features/auth/data/auth_repository.dart","flutter_app/lib/features/auth/domain/auth_models.dart","flutter_app/lib/features/auth/presentation/login_screen.dart","flutter_app/lib/features/auth/presentation/register_screen.dart","flutter_app/lib/features/chat/data/ai_provider.dart","flutter_app/lib/features/chat/data/ai_repository.dart","flutter_app/lib/features/chat/domain/ai_reply_models.dart","flutter_app/lib/features/chat/presentation/chat_screen.dart","flutter_app/lib/features/chat/presentation/conversation_screen.dart","flutter_app/lib/features/contacts/data/contact_360_provider.dart","flutter_app/lib/features/contacts/data/contacts_provider.dart","flutter_app/lib/features/contacts/data/contacts_repository.dart","flutter_app/lib/features/contacts/domain/contact_models.dart","flutter_app/lib/features/contacts/presentation/contact_detail_screen.dart","flutter_app/lib/features/contacts/presentation/contacts_screen.dart","flutter_app/lib/features/home/presentation/home_screen.dart","flutter_app/lib/features/home/presentation/main_shell.dart","flutter_app/lib/features/knowledge/data/knowledge_provider.dart","flutter_app/lib/features/knowledge/data/knowledge_repository.dart","flutter_app/lib/features/knowledge/domain/knowledge_models.dart","flutter_app/lib/features/knowledge/presentation/knowledge_screen.dart","flutter_app/lib/features/profile/presentation/profile_screen.dart","flutter_app/lib/features/search/data/models/search_metrics.dart","flutter_app/lib/features/search/presentation/widgets/search_metrics_indicator.dart","flutter_app/lib/features/settings/presentation/settings_screen.dart","flutter_app/lib/features/stats/presentation/stats_screen.dart","flutter_app/lib/features/stats/presentation/widgets/contact_stats_tab.dart","flutter_app/lib/features/stats/presentation/widgets/overview_tab.dart","flutter_app/lib/features/stats/presentation/widgets/reply_stats_tab.dart","flutter_app/lib/features/stats/presentation/widgets/stats_shared_widgets.dart","flutter_app/lib/features/support/presentation/about_screen.dart","flutter_app/lib/features/support/presentation/feedback_screen.dart","flutter_app/lib/features/support/presentation/help_screen.dart","flutter_app/lib/features/support/presentation/privacy_screen.dart","flutter_app/lib/features/support/presentation/terms_screen.dart","flutter_app/lib/main.dart","flutter_app/lib/shared/widgets/stat_card.dart","flutter_app/pigeons/haizhan_api.dart","flutter_app/pubspec.lock","flutter_app/pubspec.yaml","flutter_app/test/core/network/api_client_test.dart","flutter_app/test/core/theme/theme_provider_test.dart","flutter_app/test/features/auth/login_screen_test.dart","flutter_app/test/features/chat/chat_screen_test.dart","flutter_app/test/features/contacts/contacts_screen_test.dart","flutter_app/test/features/home/home_screen_test.dart","flutter_app/test/features/knowledge/knowledge_screen_test.dart","flutter_app/test/features/profile/profile_screen_test.dart","flutter_app/test/features/settings/settings_screen_test.dart","flutter_app/test/features/statistics/statistics_screen_test.dart","flutter_app/test/features/stats/stats_screen_test.dart","flutter_app/test/integration/app_integration_test.dart","flutter_app/test/providers/auth_provider_test.dart","flutter_app/test/services/api_service_test.dart","flutter_app/test/widgets/contact_card_test.dart","gradle.properties","gradle/libs.versions.toml","gradle/wrapper/gradle-wrapper.jar","gradle/wrapper/gradle-wrapper.properties","gradlew","gradlew.bat","ime-core/build.gradle.kts","ime-core/consumer-rules.pro","ime-core/proguard-rules.pro","ime-core/src/androidTest/java/com/haizhan/ime/core/handwriting/HandwritingIntegrationTest.kt","ime-core/src/androidTest/java/com/haizhan/ime/core/handwriting/HandwritingPerformanceTest.kt","ime-core/src/androidTest/java/com/haizhan/ime/core/handwriting/HandwritingViewTest.kt","ime-core/src/main/AndroidManifest.xml","ime-core/src/main/assets/dictionaries/system/core-char.txt","ime-core/src/main/assets/dictionaries/system/core-merged.txt","ime-core/src/main/assets/dictionaries/system/core-phrase.txt","ime-core/src/main/assets/dictionaries/system/core-word2.txt","ime-core/src/main/assets/dictionaries/system/core-word3.txt","ime-core/src/main/assets/dictionaries/system/core-word4.txt","ime-core/src/main/assets/handwriting_labels_casia.txt","ime-core/src/main/assets/paddle_models/ppocr_keys_v1.txt","ime-core/src/main/cpp/CMakeLists.txt","ime-core/src/main/cpp/include/paddle_api.h","ime-core/src/main/cpp/include/paddle_image_preprocess.h","ime-core/src/main/cpp/include/paddle_lite_factory_helper.h","ime-core/src/main/cpp/include/paddle_place.h","ime-core/src/main/cpp/include/paddle_use_kernels.h","ime-core/src/main/cpp/include/paddle_use_ops.h","ime-core/src/main/cpp/include/paddle_use_passes.h","ime-core/src/main/cpp/paddle_lite_jni.cpp","ime-core/src/main/cpp/paddle_ocr_jni.cpp","ime-core/src/main/java/com/haizhan/ime/core/context/ChatContext.kt","ime-core/src/main/java/com/haizhan/ime/core/context/ChatContextProvider.kt","ime-core/src/main/java/com/haizhan/ime/core/context/ContextAnalyzer.kt","ime-core/src/main/java/com/haizhan/ime/core/context/ContextAwareRanker.kt","ime-core/src/main/java/com/haizhan/ime/core/context/WordCategoryClassifier.kt","ime-core/src/main/java/com/haizhan/ime/core/di/ImeCoreModule.kt","ime-core/src/main/java/com/haizhan/ime/core/di/PerformanceModule.kt","ime-core/src/main/java/com/haizhan/ime/core/engine/ImeEngine.kt","ime-core/src/main/java/com/haizhan/ime/core/engine/handler/EnglishKeyHandler.kt","ime-core/src/main/java/com/haizhan/ime/core/engine/handler/HandwritingKeyHandler.kt","ime-core/src/main/java/com/haizhan/ime/core/engine/handler/KeyPressDispatcher.kt","ime-core/src/main/java/com/haizhan/ime/core/engine/handler/KeyPressHandler.kt","ime-core/src/main/java/com/haizhan/ime/core/engine/handler/PinyinKeyHandler.kt","ime-core/src/main/java/com/haizhan/ime/core/engine/handler/SymbolKeyHandler.kt","ime-core/src/main/java/com/haizhan/ime/core/engine/handler/VoiceKeyHandler.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HaizhanHandwritingApiClient.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingKeyboard.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingManager.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingToolbar.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingView.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/IHandwritingRecognizer.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/ModelDownloader.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/PaddleLiteRecognizer.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/RecognitionConfig.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/Stroke.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/StrokeCache.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/StrokePreprocessor.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/StrokeSegmenter.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/TFLiteRecognizer.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/UnifiedRecognitionEngine.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/di/HandwritingModule.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/CandidatesView.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/EnhancedCandidatesView.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/ImeContentLayout.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/ImeLayoutConstants.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/InputModeToolbar.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/KeyboardLayout.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/KeyboardView.kt","ime-core/src/main/java/com/haizhan/ime/core/ocr/IOcrEngine.kt","ime-core/src/main/java/com/haizhan/ime/core/ocr/OcrImageProcessor.kt","ime-core/src/main/java/com/haizhan/ime/core/ocr/OcrModels.kt","ime-core/src/main/java/com/haizhan/ime/core/ocr/PaddleOcrEngine.kt","ime-core/src/main/java/com/haizhan/ime/core/ocr/README.md","ime-core/src/main/java/com/haizhan/ime/core/ocr/di/OcrModule.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/BuiltinDictionary.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/Candidate.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/CloudPinyinService.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/CloudSyncService.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/DictModels.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/DictionaryFileParser.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/DictionaryHotReloader.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/DictionaryImporter.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/DictionaryReloader.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/EnterpriseDictionary.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/FuzzyPinyinConfig.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/HotWordService.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/ImportResult.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/InputPredictor.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/LocalDictionary.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/NgramData.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/NgramModel.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/NineGridMatcher.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/PinyinSegmenterImpl.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/PinyinService.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/PinyinServiceImpl.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/PinyinSplitter.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/SmartErrorCorrector.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/SystemDatDictionary.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/UserPreferenceStore.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/cloud/CloudPinyinApiImpl.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/cloud/CloudPinyinModule.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/cloud/ExponentialBackoff.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/converter/ChineseConverter.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/matcher/FullPinyinMatcher.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/matcher/InputMatcher.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/matcher/InputMatcherManager.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/matcher/NineGridMatcherAdapter.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/matcher/ShortcutMatcher.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/matcher/ShuangpinMatcher.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/matcher/di/MatcherModule.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/shuangpin/MicrosoftScheme.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/shuangpin/NaturalScheme.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/shuangpin/ShuangpinConverter.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/shuangpin/ShuangpinScheme.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/shuangpin/SogouScheme.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/shuangpin/XiaoheScheme.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/stroke/StrokeData.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/stroke/StrokeMatcher.kt","ime-core/src/main/java/com/haizhan/ime/core/theme/DesignTokens.kt","ime-core/src/main/java/com/haizhan/ime/core/theme/KeyboardTheme.kt","ime-core/src/main/java/com/haizhan/ime/core/theme/ThemeManager.kt","ime-core/src/main/java/com/haizhan/ime/core/voice/ui/VoicePanel.kt","ime-core/src/main/jniLibs/arm64-v8a/libpaddle_light_api_shared.so","ime-core/src/main/res/drawable/ic_backspace.xml","ime-core/src/main/res/drawable/ic_clear_all.xml","ime-core/src/main/res/drawable/ic_handwriting.xml","ime-core/src/main/res/drawable/ic_keyboard.xml","ime-core/src/test/java/com/haizhan/ime/core/ImeEngineTest.kt","ime-core/src/test/java/com/haizhan/ime/core/benchmark/ImeCorePerformanceTest.kt","ime-core/src/test/java/com/haizhan/ime/core/benchmark/MemoryBenchmarkTest.kt","ime-core/src/test/java/com/haizhan/ime/core/context/ContextAnalyzerTest.kt","ime-core/src/test/java/com/haizhan/ime/core/context/ContextAwareRankerTest.kt","ime-core/src/test/java/com/haizhan/ime/core/context/WordCategoryClassifierTest.kt","ime-core/src/test/java/com/haizhan/ime/core/decoder/UnifiedRankerTest.kt","ime-core/src/test/java/com/haizhan/ime/core/engine/ImeEngineTest.kt","ime-core/src/test/java/com/haizhan/ime/core/engine/handler/EnglishKeyHandlerExpandedTest.kt","ime-core/src/test/java/com/haizhan/ime/core/engine/handler/KeyPressDispatcherTest.kt","ime-core/src/test/java/com/haizhan/ime/core/engine/handler/KeyPressHandlerTest.kt","ime-core/src/test/java/com/haizhan/ime/core/engine/handler/PinyinKeyHandlerExpandedTest.kt","ime-core/src/test/java/com/haizhan/ime/core/engine/handler/SymbolKeyHandlerExpandedTest.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/HandwritingManagerAdvancedTest.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/HandwritingManagerTest.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/PaddleLiteRecognizerTest.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/StrokeCacheTest.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/StrokePreprocessorTest.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/TFLiteRecognizerTest.kt","ime-core/src/test/java/com/haizhan/ime/core/keyboard/CandidatesViewTest.kt","ime-core/src/test/java/com/haizhan/ime/core/keyboard/KeyboardLayoutTest.kt","ime-core/src/test/java/com/haizhan/ime/core/keyboard/KeyboardViewTest.kt","ime-core/src/test/java/com/haizhan/ime/core/ocr/OcrImageProcessorTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/CloudPinyinServiceTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/CloudSyncServiceTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/DictionaryFileParserTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/DictionaryImporterTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/DictionaryReloaderTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/EnterpriseDictionaryTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/FuzzyPinyinConfigTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/HotWordServiceTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/InputPredictorTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/LocalDictionaryTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/NgramModelTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/NineGridMatcherTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/PinyinSegmenterTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/PinyinServiceImplTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/PinyinServiceTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/PinyinSplitterTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/SmartErrorCorrectorTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/SystemDatDictionaryTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/UserPreferenceStoreTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/cloud/CloudPinyinApiImplTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/cloud/ExponentialBackoffTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/matcher/FullPinyinMatcherTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/matcher/ShuangpinMatcherTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/shuangpin/ShuangpinSchemeTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/shuangpin/SogouSchemeTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/shuangpin/XiaoheSchemeTest.kt","ime-core/src/test/java/com/haizhan/ime/core/theme/ThemeManagerTest.kt","ios_keyboard/APPSTORE_LISTING.md","ios_keyboard/HaizhanKeyboard/Info.plist","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboard.xcodeproj/project.pbxproj","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboard.xcodeproj/project.xcworkspace/contents.xcworkspacedata","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp.entitlements","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/HaizhanKeyboardApp.entitlements","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/HaizhanKeyboardApp.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/Info.plist","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/Models/AppSession.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/Services/KeyboardStatusService.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/Services/ScreenshotResponder.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/Views/AccountView.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/Views/AppSettingsView.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/Views/ContentView.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/Views/LoginView.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/Views/OnboardingView.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardExtension.entitlements","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardExtension/HaizhanKeyboardExtension.entitlements","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardExtension/Info.plist","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardExtension/KeyboardExtensionStub.swift","ios_keyboard/HaizhanKeyboardApp/Info.plist","ios_keyboard/HaizhanKeyboardApp/Models/AppSession.swift","ios_keyboard/HaizhanKeyboardApp/README.md","ios_keyboard/HaizhanKeyboardApp/Services/KeyboardStatusService.swift","ios_keyboard/HaizhanKeyboardApp/Services/ScreenshotResponder.swift","ios_keyboard/HaizhanKeyboardApp/Views/AccountView.swift","ios_keyboard/HaizhanKeyboardApp/Views/AppSettingsView.swift","ios_keyboard/HaizhanKeyboardApp/Views/ContentView.swift","ios_keyboard/HaizhanKeyboardApp/Views/LoginView.swift","ios_keyboard/HaizhanKeyboardApp/Views/OnboardingView.swift","ios_keyboard/HaizhanKeyboardApp/project.yml","ios_keyboard/HaizhanKeyboardExtension/Info.plist","ios_keyboard/HaizhanKeyboardExtension/KeyboardExtensionStub.swift","ios_keyboard/Package.swift","ios_keyboard/README.md","ios_keyboard/Sources/HaizhanKeyboard/AI/ContactMatcher.swift","ios_keyboard/Sources/HaizhanKeyboard/AI/ReplyService.swift","ios_keyboard/Sources/HaizhanKeyboard/AI/ScreenshotManager.swift","ios_keyboard/Sources/HaizhanKeyboard/Bridge/KMPBridge.swift","ios_keyboard/Sources/HaizhanKeyboard/Engine/KeyboardEngine.swift","ios_keyboard/Sources/HaizhanKeyboard/Engine/PinyinSegmenter.swift","ios_keyboard/Sources/HaizhanKeyboard/KeyboardViewController.swift","ios_keyboard/Sources/HaizhanKeyboard/Network/ApiClient.swift","ios_keyboard/Sources/HaizhanKeyboard/Network/AuthService.swift","ios_keyboard/Sources/HaizhanKeyboard/Storage/AppGroupStore.swift","ios_keyboard/Sources/HaizhanKeyboard/Storage/KeychainStore.swift","ios_keyboard/Sources/HaizhanKeyboard/Theme/ThemeManager.swift","ios_keyboard/Sources/HaizhanKeyboard/Utils/HapticManager.swift","ios_keyboard/Sources/HaizhanKeyboard/ViewModel/KeyboardViewModel.swift","ios_keyboard/Sources/HaizhanKeyboard/Views/AIPanelView.swift","ios_keyboard/Sources/HaizhanKeyboard/Views/KeyboardView.swift","ios_keyboard/Sources/HaizhanKeyboard/Views/NineGridKeyboard.swift","ios_keyboard/Sources/HaizhanKeyboard/Views/SettingsView.swift","ios_keyboard/Tests/HaizhanKeyboardTests/ApiClientTests.swift","ios_keyboard/Tests/HaizhanKeyboardTests/AppGroupStoreTests.swift","ios_keyboard/Tests/HaizhanKeyboardTests/ContactMatcherTests.swift","ios_keyboard/Tests/HaizhanKeyboardTests/HapticManagerTests.swift","ios_keyboard/Tests/HaizhanKeyboardTests/KeyboardEngineTests.swift","ios_keyboard/Tests/HaizhanKeyboardTests/KeychainStoreTests.swift","ios_keyboard/Tests/HaizhanKeyboardTests/PinyinSegmenterTests.swift","ios_keyboard/Tests/HaizhanKeyboardTests/ReplyServiceTests.swift","ios_keyboard/Tests/HaizhanKeyboardTests/ThemeManagerTests.swift","ios_keyboard/build_kmp_xcframework.sh","openapitools.json","package.json","pnpm-workspace.yaml","scripts/PACKAGE_MANAGER_SUMMARY.md","scripts/check-docs-sync.sh","scripts/download_paddle_ocr_models.sh","scripts/generate-design-tokens.py","scripts/package-manager-migration.md","scripts/pre-commit","server/.dockerignore","server/.env.example","server/.npmrc","server/Makefile","server/README.md","server/ai-service/.dockerignore","server/ai-service/Dockerfile","server/ai-service/jest.config.js","server/ai-service/nest-cli.json","server/ai-service/package.json","server/ai-service/poc-load-test-1770067946237.json","server/ai-service/poc-report-1770067953461.json","server/ai-service/poc-report-1770067953461.md","server/ai-service/poc-report-1771647201192.json","server/ai-service/poc-report-1771647201192.md","server/ai-service/scripts/poc/README.md","server/ai-service/scripts/poc/deploy-models.sh","server/ai-service/scripts/poc/generate-report.ts","server/ai-service/scripts/poc/load-test.ts","server/ai-service/scripts/poc/v1-int8-quality.ts","server/ai-service/scripts/poc/v2-router-accuracy.ts","server/ai-service/scripts/poc/v3-e2e-latency.ts","server/ai-service/scripts/seed-rag.ts","server/ai-service/src/app.module.ts","server/ai-service/src/common/decorators/current-tenant.decorator.ts","server/ai-service/src/common/decorators/public.decorator.ts","server/ai-service/src/common/guards/auth.guard.spec.ts","server/ai-service/src/common/guards/auth.guard.ts","server/ai-service/src/common/redis/index.ts","server/ai-service/src/common/redis/redis.module.ts","server/ai-service/src/common/redis/redis.service.ts","server/ai-service/src/main.ts","server/ai-service/src/modules/ai/ai.controller.ts","server/ai-service/src/modules/ai/ai.module.ts","server/ai-service/src/modules/ai/ai.service.spec.ts","server/ai-service/src/modules/ai/ai.service.ts","server/ai-service/src/modules/ai/dto/generate-reply.dto.ts","server/ai-service/src/modules/ai/legacy-reply.controller.ts","server/ai-service/src/modules/health/health.controller.ts","server/ai-service/src/modules/health/health.module.ts","server/ai-service/src/modules/memory/dto/memory.dto.ts","server/ai-service/src/modules/memory/event.service.spec.ts","server/ai-service/src/modules/memory/event.service.ts","server/ai-service/src/modules/memory/index.ts","server/ai-service/src/modules/memory/memory.controller.ts","server/ai-service/src/modules/memory/memory.module.ts","server/ai-service/src/modules/memory/memory.service.spec.ts","server/ai-service/src/modules/memory/memory.service.ts","server/ai-service/src/modules/memory/profile.service.spec.ts","server/ai-service/src/modules/memory/profile.service.ts","server/ai-service/src/modules/memory/schemas/contact-event.schema.ts","server/ai-service/src/modules/memory/schemas/contact-profile.schema.ts","server/ai-service/src/modules/memory/schemas/conversation-summary.schema.ts","server/ai-service/src/modules/memory/summary.service.spec.ts","server/ai-service/src/modules/memory/summary.service.ts","server/ai-service/src/modules/memory/vector.service.ts","server/ai-service/src/modules/privacy/index.ts","server/ai-service/src/modules/privacy/pii-scrubber.service.ts","server/ai-service/src/modules/privacy/privacy.module.ts","server/ai-service/src/modules/search/agentic/agentic-loop.controller.ts","server/ai-service/src/modules/search/agentic/answer-synthesizer.service.ts","server/ai-service/src/modules/search/agentic/answer-synthesizer.spec.ts","server/ai-service/src/modules/search/agentic/index.ts","server/ai-service/src/modules/search/agentic/query-decomposer.service.ts","server/ai-service/src/modules/search/agentic/query-decomposer.spec.ts","server/ai-service/src/modules/search/agentic/result-evaluator.service.ts","server/ai-service/src/modules/search/agentic/result-evaluator.spec.ts","server/ai-service/src/modules/search/cache/index.ts","server/ai-service/src/modules/search/cache/multi-level-cache.service.ts","server/ai-service/src/modules/search/cache/multi-level-cache.spec.ts","server/ai-service/src/modules/search/config/search.config.ts","server/ai-service/src/modules/search/dto/index.ts","server/ai-service/src/modules/search/dto/search-request.dto.ts","server/ai-service/src/modules/search/dto/search-response.dto.ts","server/ai-service/src/modules/search/experiment/ab-testing.service.ts","server/ai-service/src/modules/search/experiment/experiment.controller.ts","server/ai-service/src/modules/search/experiment/gradual-release.service.ts","server/ai-service/src/modules/search/experiment/index.ts","server/ai-service/src/modules/search/gateway/unified-search-gateway.service.ts","server/ai-service/src/modules/search/gateway/unified-search-gateway.spec.ts","server/ai-service/src/modules/search/index.ts","server/ai-service/src/modules/search/layers/agentic-layer.service.spec.ts","server/ai-service/src/modules/search/layers/agentic-layer.service.ts","server/ai-service/src/modules/search/layers/cache-layer.service.spec.ts","server/ai-service/src/modules/search/layers/cache-layer.service.ts","server/ai-service/src/modules/search/layers/rag-layer.service.spec.ts","server/ai-service/src/modules/search/layers/rag-layer.service.ts","server/ai-service/src/modules/search/monitoring/alert.service.ts","server/ai-service/src/modules/search/monitoring/grafana-dashboard.json","server/ai-service/src/modules/search/monitoring/index.ts","server/ai-service/src/modules/search/monitoring/metrics.service.ts","server/ai-service/src/modules/search/optimization/index.ts","server/ai-service/src/modules/search/optimization/parallel-retriever.service.ts","server/ai-service/src/modules/search/optimization/parallel-retriever.spec.ts","server/ai-service/src/modules/search/router/pure-rule-router.spec.ts","server/ai-service/src/modules/search/router/pure-rule-router.ts","server/ai-service/src/modules/search/router/router.types.ts","server/ai-service/src/modules/search/search.controller.ts","server/ai-service/src/modules/search/search.integration.spec.ts","server/ai-service/src/modules/search/search.module.ts","server/ai-service/src/modules/search/services/elasticsearch.service.ts","server/ai-service/src/modules/search/services/embedding.service.spec.ts","server/ai-service/src/modules/search/services/embedding.service.ts","server/ai-service/src/modules/search/services/index.ts","server/ai-service/src/modules/search/services/llm.service.spec.ts","server/ai-service/src/modules/search/services/llm.service.ts","server/ai-service/src/modules/search/services/milvus.service.ts","server/ai-service/src/modules/search/services/reranker.service.spec.ts","server/ai-service/src/modules/search/services/reranker.service.ts","server/ai-service/src/modules/search/streaming/index.ts","server/ai-service/src/modules/search/streaming/stream-optimizer.service.ts","server/ai-service/src/modules/search/vip/index.ts","server/ai-service/src/modules/search/vip/vip-tier.service.ts","server/ai-service/tsconfig.json","server/api-gateway/.dockerignore","server/api-gateway/Dockerfile","server/api-gateway/logs/.3fa4d5e91883ce1217f62a49f94203b42caa131d-audit.json","server/api-gateway/logs/.92dabeadf9708ae538f84c8892e853b5a8f57f04-audit.json","server/api-gateway/nest-cli.json","server/api-gateway/package.json","server/api-gateway/prisma/README.md","server/api-gateway/prisma/migrations/20260203065715_init/migration.sql","server/api-gateway/prisma/migrations/20260203160000_add_360_view_models/migration.sql","server/api-gateway/prisma/migrations/20260203170000_add_admin_modules/migration.sql","server/api-gateway/prisma/migrations/20260203180000_add_config_and_usage_stats/migration.sql","server/api-gateway/prisma/migrations/20260213000000_add_contact_geo_fields/migration.sql","server/api-gateway/prisma/migrations/20260213100000_expand_prompt_template/migration.sql","server/api-gateway/prisma/migrations/migration_lock.toml","server/api-gateway/prisma/schema.prisma","server/api-gateway/prisma/seed.ts","server/api-gateway/scripts/generate-openapi.ts","server/api-gateway/src/app.module.ts","server/api-gateway/src/common/logger/global-logger.module.ts","server/api-gateway/src/common/logger/global-logger.service.ts","server/api-gateway/src/main.ts","server/api-gateway/src/modules/ai-config/ai-config.controller.ts","server/api-gateway/src/modules/ai-config/ai-config.module.ts","server/api-gateway/src/modules/ai-config/ai-config.service.ts","server/api-gateway/src/modules/ai-config/dto/ai-config.dto.ts","server/api-gateway/src/modules/ai/ai.controller.ts","server/api-gateway/src/modules/ai/ai.module.ts","server/api-gateway/src/modules/ai/ai.service.ts","server/api-gateway/src/modules/audit-logs/audit-logs.controller.ts","server/api-gateway/src/modules/audit-logs/audit-logs.module.ts","server/api-gateway/src/modules/audit-logs/audit-logs.service.ts","server/api-gateway/src/modules/audit-logs/dto/audit-logs.dto.ts","server/api-gateway/src/modules/auth/auth.controller.spec.ts","server/api-gateway/src/modules/auth/auth.controller.ts","server/api-gateway/src/modules/auth/auth.module.ts","server/api-gateway/src/modules/auth/auth.service.spec.ts","server/api-gateway/src/modules/auth/auth.service.ts","server/api-gateway/src/modules/auth/decorators/roles.decorator.ts","server/api-gateway/src/modules/auth/dto/admin-login.dto.ts","server/api-gateway/src/modules/auth/dto/login.dto.ts","server/api-gateway/src/modules/auth/dto/refresh-token.dto.ts","server/api-gateway/src/modules/auth/guards/jwt-auth.guard.ts","server/api-gateway/src/modules/auth/guards/roles.guard.ts","server/api-gateway/src/modules/auth/strategies/jwt.strategy.ts","server/api-gateway/src/modules/contacts/contacts.controller.spec.ts","server/api-gateway/src/modules/contacts/contacts.controller.ts","server/api-gateway/src/modules/contacts/contacts.module.ts","server/api-gateway/src/modules/contacts/contacts.service.spec.ts","server/api-gateway/src/modules/contacts/contacts.service.ts","server/api-gateway/src/modules/contacts/dto/match-contact.dto.ts","server/api-gateway/src/modules/health/health.controller.spec.ts","server/api-gateway/src/modules/health/health.controller.ts","server/api-gateway/src/modules/health/health.module.ts","server/api-gateway/src/modules/knowledge/dto/knowledge-base.dto.ts","server/api-gateway/src/modules/knowledge/dto/search-knowledge.dto.ts","server/api-gateway/src/modules/knowledge/knowledge.controller.spec.ts","server/api-gateway/src/modules/knowledge/knowledge.controller.ts","server/api-gateway/src/modules/knowledge/knowledge.module.ts","server/api-gateway/src/modules/knowledge/knowledge.service.spec.ts","server/api-gateway/src/modules/knowledge/knowledge.service.ts","server/api-gateway/src/modules/mobile-compat/mobile-compat.controller.ts","server/api-gateway/src/modules/mobile-compat/mobile-compat.module.ts","server/api-gateway/src/modules/ocr/ocr.controller.ts","server/api-gateway/src/modules/ocr/ocr.module.ts","server/api-gateway/src/modules/ocr/ocr.service.ts","server/api-gateway/src/modules/pinyin/pinyin.controller.spec.ts","server/api-gateway/src/modules/pinyin/pinyin.controller.ts","server/api-gateway/src/modules/pinyin/pinyin.module.ts","server/api-gateway/src/modules/pinyin/pinyin.service.spec.ts","server/api-gateway/src/modules/pinyin/pinyin.service.ts","server/api-gateway/src/modules/rag/dto/rag.dto.ts","server/api-gateway/src/modules/rag/rag.controller.spec.ts","server/api-gateway/src/modules/rag/rag.controller.ts","server/api-gateway/src/modules/rag/rag.module.ts","server/api-gateway/src/modules/rag/rag.service.runtime.spec.ts","server/api-gateway/src/modules/rag/rag.service.spec.ts","server/api-gateway/src/modules/rag/rag.service.ts","server/api-gateway/src/modules/settings/dto/settings.dto.ts","server/api-gateway/src/modules/settings/settings.controller.spec.ts","server/api-gateway/src/modules/settings/settings.controller.ts","server/api-gateway/src/modules/settings/settings.module.ts","server/api-gateway/src/modules/settings/settings.service.spec.ts","server/api-gateway/src/modules/settings/settings.service.ts","server/api-gateway/src/modules/teams/dto/teams.dto.ts","server/api-gateway/src/modules/teams/teams.controller.spec.ts","server/api-gateway/src/modules/teams/teams.controller.ts","server/api-gateway/src/modules/teams/teams.module.ts","server/api-gateway/src/modules/teams/teams.service.spec.ts","server/api-gateway/src/modules/teams/teams.service.ts","server/api-gateway/src/modules/templates/dto/template.dto.ts","server/api-gateway/src/modules/templates/templates.controller.spec.ts","server/api-gateway/src/modules/templates/templates.controller.ts","server/api-gateway/src/modules/templates/templates.module.ts","server/api-gateway/src/modules/templates/templates.service.spec.ts","server/api-gateway/src/modules/templates/templates.service.ts","server/api-gateway/src/modules/usage/dto/usage.dto.ts","server/api-gateway/src/modules/usage/usage.controller.ts","server/api-gateway/src/modules/usage/usage.module.ts","server/api-gateway/src/modules/usage/usage.service.spec.ts","server/api-gateway/src/modules/usage/usage.service.ts","server/api-gateway/src/modules/users/users.controller.spec.ts","server/api-gateway/src/modules/users/users.controller.ts","server/api-gateway/src/modules/users/users.module.ts","server/api-gateway/src/modules/users/users.service.spec.ts","server/api-gateway/src/modules/users/users.service.ts","server/api-gateway/src/modules/weather/weather.controller.spec.ts","server/api-gateway/src/modules/weather/weather.controller.ts","server/api-gateway/src/modules/weather/weather.module.ts","server/api-gateway/src/modules/weather/weather.service.spec.ts","server/api-gateway/src/modules/weather/weather.service.ts","server/api-gateway/src/shared/prisma/prisma.module.ts","server/api-gateway/src/shared/prisma/prisma.service.ts","server/api-gateway/src/shared/redis/redis.module.ts","server/api-gateway/src/shared/redis/redis.service.ts","server/api-gateway/src/shared/sms/sms.module.ts","server/api-gateway/src/shared/sms/sms.service.spec.ts","server/api-gateway/src/shared/sms/sms.service.ts","server/api-gateway/tsconfig.json","server/docker-compose.override.yml","server/docker-compose.prod.yml","server/docker-compose.yml","server/docker/grafana/provisioning/dashboards/dashboards.yml","server/docker/grafana/provisioning/dashboards/json/api-gateway.json","server/docker/grafana/provisioning/datasources/datasources.yml","server/docker/loki/loki-config.yml","server/docker/mongodb/init.js","server/docker/nginx/conf.d/default.conf","server/docker/nginx/nginx.conf","server/docker/nginx/ssl/.gitkeep","server/docker/nginx/ssl/README.md","server/docker/postgres/init.sql","server/docker/prometheus/alert.rules.yml","server/docker/prometheus/prometheus.yml","server/docker/promtail/promtail-config.yml","server/k8s/vllm/deployment.yaml","server/k8s/vllm/hpa.yaml","server/k8s/vllm/service.yaml","server/model-services/reranker/Dockerfile","server/model-services/reranker/requirements.txt","server/model-services/reranker/reranker_server.py","server/ocr-service/.dockerignore","server/ocr-service/Dockerfile","server/ocr-service/jest.config.js","server/ocr-service/nest-cli.json","server/ocr-service/package.json","server/ocr-service/src/app.module.ts","server/ocr-service/src/main.ts","server/ocr-service/src/modules/health/health.controller.ts","server/ocr-service/src/modules/health/health.module.ts","server/ocr-service/src/modules/ocr/chat-parser.service.spec.ts","server/ocr-service/src/modules/ocr/chat-parser.service.ts","server/ocr-service/src/modules/ocr/dto/chat-screenshot.dto.ts","server/ocr-service/src/modules/ocr/ocr.controller.ts","server/ocr-service/src/modules/ocr/ocr.module.ts","server/ocr-service/src/modules/ocr/ocr.service.spec.ts","server/ocr-service/src/modules/ocr/ocr.service.ts","server/ocr-service/tsconfig.json","server/scripts/backup.sh","server/scripts/check-mobile-api-coverage.js","server/scripts/check-mobile-response-compat.js","server/scripts/deploy.sh","server/scripts/deploy/deploy-infrastructure.sh","server/scripts/deploy/deploy-models.sh","server/scripts/deploy/final-deploy.sh","server/scripts/deploy/stop-models.sh","server/scripts/e2e-smoke.js","server/scripts/health-check.sh","server/scripts/mobile-api-smoke.js","server/scripts/setup-ssl.sh","settings.gradle.kts","shared/README.md","shared/build.gradle.kts","shared/src/androidInstrumentedTest/kotlin/com/haizhan/ime/shared/auth/AndroidTokenStorageTest.kt","shared/src/androidInstrumentedTest/kotlin/com/haizhan/ime/shared/auth/SharedAuthManagerIntegrationTest.kt","shared/src/androidInstrumentedTest/kotlin/com/haizhan/ime/shared/database/DatabaseIntegrationTest.kt","shared/src/androidInstrumentedTest/kotlin/com/haizhan/ime/shared/pinyin/CandidateRankerIntegrationTest.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/BuildConfig.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/Platform.android.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/auth/AndroidTokenStorage.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/auth/CurrentTime.android.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/database/DatabaseDriverFactory.android.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/database/SharedDatabaseKeyManager.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/di/PlatformModule.android.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/migration/RoomToSqlDelightMigrator.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/platform/Connectivity.android.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/platform/DeviceInfo.android.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/platform/DictionaryLoader.android.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/platform/FileSystem.android.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/Platform.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/analytics/AnalyticsTracker.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/ApiClient.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/AuthApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/ContactApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/DashboardApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/FeedbackApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/KnowledgeApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/MemoryApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/NoteApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/OcrApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/PinyinApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/RagSearchApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/ReplyApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/ScriptApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/SearchApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/SessionApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/SettingsApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/SubscriptionApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/UserApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/WeatherApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/auth/AuthManager.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/auth/AuthModels.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/database/DatabaseDriverFactory.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/database/DatabaseExtensions.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/di/SharedModule.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/matcher/NicknameMatcher.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/ContactModel.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/KnowledgeModel.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/AiDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/ApiResponse.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/AuthDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/ContactDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/DashboardDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/FeedbackDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/KnowledgeDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/MemoryDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/MessageDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/NoteDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/OcrDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/PinyinDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/ProfileDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/RagSearchDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/ReplyDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/ScriptDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/SearchDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/SessionDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/SettingsDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/SubscriptionDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/WeatherDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/Candidate.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/CandidateRanker.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/DictEntry.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/NineGridMatcher.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/PinyinConstants.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/PinyinService.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/PinyinSplitter.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/algorithm/CloudSynergyEngine.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/algorithm/DoubleArrayTrie.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/algorithm/DoubleArrayTrieImpl.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/algorithm/DynamicWeightRanker.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/algorithm/PinyinDAG.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/algorithm/ViterbiDecoder.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/platform/Connectivity.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/platform/DeviceInfo.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/platform/DictionaryLoader.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/platform/FileSystem.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/repository/ContactRepository.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/repository/KnowledgeRepository.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/repository/MessageRepository.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/repository/NoteRepository.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/repository/PinyinRepository.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/repository/SearchRepository.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/repository/SettingsRepository.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/repository/UserDictRepository.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/service/MessageChainMatcher.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/service/OcrMatchService.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/service/OfflineFallbackService.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/service/ReplyService.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/service/ScriptService.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/service/SessionService.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/sync/SyncManager.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/util/FlowExt.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/util/LevenshteinDistance.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/util/LruCache.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/util/StringExt.kt","shared/src/commonMain/sqldelight/com/haizhan/ime/shared/database/Contact.sq","shared/src/commonMain/sqldelight/com/haizhan/ime/shared/database/Knowledge.sq","shared/src/commonMain/sqldelight/com/haizhan/ime/shared/database/Message.sq","shared/src/commonMain/sqldelight/com/haizhan/ime/shared/database/Note.sq","shared/src/commonMain/sqldelight/com/haizhan/ime/shared/database/Search.sq","shared/src/commonMain/sqldelight/com/haizhan/ime/shared/database/Settings.sq","shared/src/commonMain/sqldelight/com/haizhan/ime/shared/database/UserDict.sq","shared/src/commonMain/sqldelight/migrations/1.sqm","shared/src/commonTest/kotlin/com/haizhan/ime/shared/analytics/AnalyticsTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/api/ApiClientTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/auth/AuthModelsTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/matcher/NicknameMatcherTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/model/ContactModelTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/model/KnowledgeModelTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/network/NetworkClientTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/CandidateRankerTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/CandidateTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/NineGridMatcherTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/PinyinConstantsTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/PinyinSplitterTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/algorithm/CloudSynergyEngineTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/algorithm/DoubleArrayTrieImplTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/algorithm/DynamicWeightRankerTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/algorithm/PinyinDAGTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/algorithm/ViterbiDecoderTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/repository/ContactRepositoryTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/sync/SyncTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/util/LevenshteinDistanceTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/util/PinyinConverterTest.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/Platform.ios.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/auth/CurrentTime.ios.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/auth/IosTokenStorage.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/database/DatabaseDriverFactory.ios.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/di/PlatformModule.ios.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/platform/Connectivity.ios.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/platform/DeviceInfo.ios.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/platform/DictionaryLoader.ios.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/platform/FileSystem.ios.kt","voice/build.gradle.kts","voice/consumer-rules.pro","voice/proguard-rules.pro","voice/src/androidTest/java/com/haizhan/ime/voice/integration/VoiceModuleIntegrationTest.kt","voice/src/androidTest/java/com/haizhan/ime/voice/integration/WakeWordServiceIntegrationTest.kt","voice/src/main/AndroidManifest.xml","voice/src/main/java/com/haizhan/ime/voice/api/AudioPipeline.kt","voice/src/main/java/com/haizhan/ime/voice/api/SpeechRecognitionService.kt","voice/src/main/java/com/haizhan/ime/voice/api/VoiceCoordinator.kt","voice/src/main/java/com/haizhan/ime/voice/api/VoiceErrors.kt","voice/src/main/java/com/haizhan/ime/voice/api/VoiceTypes.kt","voice/src/main/java/com/haizhan/ime/voice/api/WakeWordConfigManager.kt","voice/src/main/java/com/haizhan/ime/voice/api/WakeWordDetectionService.kt","voice/src/main/java/com/haizhan/ime/voice/audio/AudioPipelineImpl.kt","voice/src/main/java/com/haizhan/ime/voice/audio/di/AudioModule.kt","voice/src/main/java/com/haizhan/ime/voice/coordinator/VoiceCoordinatorImpl.kt","voice/src/main/java/com/haizhan/ime/voice/coordinator/di/CoordinatorModule.kt","voice/src/main/java/com/haizhan/ime/voice/denoise/DenoiseAudioConsumer.kt","voice/src/main/java/com/haizhan/ime/voice/denoise/DenoiseManager.kt","voice/src/main/java/com/haizhan/ime/voice/denoise/MusicAwareAEC.kt","voice/src/main/java/com/haizhan/ime/voice/denoise/NoiseEstimator.kt","voice/src/main/java/com/haizhan/ime/voice/denoise/SpectralSubtractor.kt","voice/src/main/java/com/haizhan/ime/voice/denoise/VoiceActivityDetector.kt","voice/src/main/java/com/haizhan/ime/voice/denoise/di/DenoiseModule.kt","voice/src/main/java/com/haizhan/ime/voice/di/VoiceModule.kt","voice/src/main/java/com/haizhan/ime/voice/engine/VoiceInputEngine.kt","voice/src/main/java/com/haizhan/ime/voice/model/MultiModelManager.kt","voice/src/main/java/com/haizhan/ime/voice/model/VoiceModelManager.kt","voice/src/main/java/com/haizhan/ime/voice/monitoring/VoicePerformanceMonitor.kt","voice/src/main/java/com/haizhan/ime/voice/monitoring/di/MonitoringModule.kt","voice/src/main/java/com/haizhan/ime/voice/recognition/AudioDiagnostics.kt","voice/src/main/java/com/haizhan/ime/voice/recognition/SpeechRecognitionServiceImpl.kt","voice/src/main/java/com/haizhan/ime/voice/recognition/VoskGrammarBuilder.kt","voice/src/main/java/com/haizhan/ime/voice/recognition/VoskRecognizer.kt","voice/src/main/java/com/haizhan/ime/voice/recognition/di/SpeechModule.kt","voice/src/main/java/com/haizhan/ime/voice/ui/VoiceUiTypes.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/WakeWordDetectionServiceImpl.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/analytics/WakeWordAnalytics.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/config/WakeWordConfigManagerImpl.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/config/di/ConfigModule.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/confirmation/WakeWordConfirmation.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/detector/IWakeWordDetector.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/detector/VoskWakeWordDetector.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/di/ConfirmationModule.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/di/MatcherModule.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/di/ParserModule.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/di/RepositoryModule.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/di/WakeWordModule.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/filter/FalseWakeFilter.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/matcher/PinyinData.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/matcher/PinyinMatcher.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/matcher/TrieWordMatcher.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/parser/WakeWordCommandParser.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/EnergyPatternMatcher.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/PitchExtractor.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/QuickWakeDetector.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/SingingModeDetector.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/SpectralAnalyzer.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/SyllableDetector.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/VibratoDetector.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/VoiceCharacteristicAnalyzer.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/VoiceProfileAnalyzer.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/di/PredetectModule.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/repository/WakeWordRepository.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/sensitivity/AdaptiveSensitivity.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/service/WakeWordService.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/util/PinyinUtils.kt","voice/src/test/java/com/haizhan/ime/voice/api/HotwordConfigTest.kt","voice/src/test/java/com/haizhan/ime/voice/audio/AudioPipelineImplTest.kt","voice/src/test/java/com/haizhan/ime/voice/coordinator/VoiceCoordinatorImplTest.kt","voice/src/test/java/com/haizhan/ime/voice/denoise/DenoiseManagerTest.kt","voice/src/test/java/com/haizhan/ime/voice/denoise/MusicAwareAECTest.kt","voice/src/test/java/com/haizhan/ime/voice/denoise/SpectralSubtractorTest.kt","voice/src/test/java/com/haizhan/ime/voice/denoise/VoiceActivityDetectorTest.kt.bak","voice/src/test/java/com/haizhan/ime/voice/model/MultiModelManagerTest.kt","voice/src/test/java/com/haizhan/ime/voice/monitoring/VoicePerformanceMonitorTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/config/WakeWordConfigManagerTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/confirmation/WakeWordConfirmationTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/filter/FalseWakeFilterTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/matcher/PinyinDataTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/matcher/PinyinMatcherTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/matcher/TrieWordMatcherTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/parser/WakeWordCommandParserTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/predetect/QuickWakeDetectorTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/predetect/SingingModeDetectorTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/predetect/SyllableDetectorTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/predetect/VibratoDetectorTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/predetect/VoiceCharacteristicAnalyzerTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/predetect/VoiceProfileAnalyzerTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/repository/WakeWordRepositorySerializationTest.kt"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"893022bfd17ce1f2e75e75651551cf8ceaacfe45","message":"feat: 嗨赞AI输入法Android版初始提交\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/893022bfd17ce1f2e75e75651551cf8ceaacfe45","author":{"name":"luoanwu","email":"law@g-hi.com","username":"luoanwu"},"committer":{"name":"luoanwu","email":"law@g-hi.com","username":"luoanwu"},"verification":null,"timestamp":"2026-02-27T15:28:58+08:00","added":[".claude/skills/haizhan-ime-development.md",".claude/worktrees/charming-zhukovsky",".editorconfig",".github/workflows/ci.yml",".github/workflows/frontend-backend-ci.yml",".github/workflows/ios-ci.yml",".github/workflows/performance-check.yml",".github/workflows/pr-check.yml",".github/workflows/release.yml",".gitignore",".npmrc","CHANGELOG.md","CLAUDE.md","MIGRATION_COMPLETE_REPORT.md","README.md","admin-web/.env.development","admin-web/.eslintrc.cjs","admin-web/.gitignore","admin-web/.npmrc","admin-web/README.md","admin-web/e2e/all-pages.spec.ts","admin-web/e2e/crud-tests.spec.ts","admin-web/e2e/dashboard.spec.ts","admin-web/e2e/interactive-click.spec.ts","admin-web/e2e/login.spec.ts","admin-web/e2e/templates.spec.ts","admin-web/index.html","admin-web/package.json","admin-web/playwright.config.ts","admin-web/postcss.config.js","admin-web/public/favicon.svg","admin-web/src/App.vue","admin-web/src/api/ai-config.ts","admin-web/src/api/audit.ts","admin-web/src/api/auth.ts","admin-web/src/api/contact.ts","admin-web/src/api/knowledge.ts","admin-web/src/api/rag.ts","admin-web/src/api/settings.ts","admin-web/src/api/team.ts","admin-web/src/api/template.ts","admin-web/src/api/usage.ts","admin-web/src/api/user.ts","admin-web/src/assets/logo.svg","admin-web/src/components/UserCard.vue","admin-web/src/components/index.ts","admin-web/src/composables/usePermission.ts","admin-web/src/composables/useResponsive.ts","admin-web/src/composables/useTable.ts","admin-web/src/directives/index.ts","admin-web/src/directives/permission.ts","admin-web/src/env.d.ts","admin-web/src/layouts/MainLayout.vue","admin-web/src/layouts/components/HeaderBar.vue","admin-web/src/layouts/components/MobileDrawer.vue","admin-web/src/layouts/components/SidebarMenu.vue","admin-web/src/main.ts","admin-web/src/router/index.ts","admin-web/src/stores/app.ts","admin-web/src/stores/user.ts","admin-web/src/styles/index.scss","admin-web/src/styles/variables.scss","admin-web/src/types/ai-config.ts","admin-web/src/types/api.ts","admin-web/src/types/audit.ts","admin-web/src/types/contact.ts","admin-web/src/types/knowledge.ts","admin-web/src/types/permission.ts","admin-web/src/types/rag.ts","admin-web/src/types/settings.ts","admin-web/src/types/team.ts","admin-web/src/types/template.ts","admin-web/src/types/usage.ts","admin-web/src/types/user.ts","admin-web/src/utils/request.ts","admin-web/src/views/ai-config/index.vue","admin-web/src/views/audit/index.vue","admin-web/src/views/contacts/index.vue","admin-web/src/views/contacts/profile.vue","admin-web/src/views/dashboard/index.vue","admin-web/src/views/error/403.vue","admin-web/src/views/error/404.vue","admin-web/src/views/knowledge/index.vue","admin-web/src/views/login/index.vue","admin-web/src/views/profile/index.vue","admin-web/src/views/rag/index.vue","admin-web/src/views/settings/index.vue","admin-web/src/views/teams/index.vue","admin-web/src/views/templates/index.vue","admin-web/src/views/usage/index.vue","admin-web/src/views/users/index.vue","admin-web/tailwind.config.js","admin-web/test-results/.last-run.json","admin-web/tsconfig.app.json","admin-web/tsconfig.json","admin-web/tsconfig.node.json","admin-web/vite.config.d.ts","admin-web/vite.config.js","admin-web/vite.config.ts","ai-panel/build.gradle.kts","ai-panel/consumer-rules.pro","ai-panel/proguard-rules.pro","ai-panel/src/main/AndroidManifest.xml","ai-panel/src/main/java/com/haizhan/ime/panel/AiPanelManager.kt","ai-panel/src/main/java/com/haizhan/ime/panel/AiPanelModels.kt","ai-panel/src/main/java/com/haizhan/ime/panel/agentic/AgenticDecisionEngine.kt","ai-panel/src/main/java/com/haizhan/ime/panel/agentic/AgenticRouter.kt","ai-panel/src/main/java/com/haizhan/ime/panel/agentic/AgenticTypes.kt","ai-panel/src/main/java/com/haizhan/ime/panel/agentic/CostController.kt","ai-panel/src/main/java/com/haizhan/ime/panel/agentic/HybridSearchExecutor.kt","ai-panel/src/main/java/com/haizhan/ime/panel/agentic/di/AgenticModule.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/AvatarMatcher.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/ContactCache.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/ContactContextPreloader.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/ContactIndexes.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/ContactMatcher.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/ContactMatcherData.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/EnhancedContactMatcher.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/MatchedContact.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/NicknameMatcher.kt","ai-panel/src/main/java/com/haizhan/ime/panel/context/InputContextCollector.kt","ai-panel/src/main/java/com/haizhan/ime/panel/context/UnifiedContextManager.kt","ai-panel/src/main/java/com/haizhan/ime/panel/di/AiPanelModule.kt","ai-panel/src/main/java/com/haizhan/ime/panel/di/ContactModule.kt","ai-panel/src/main/java/com/haizhan/ime/panel/di/ContextModule.kt","ai-panel/src/main/java/com/haizhan/ime/panel/di/OcrModule.kt","ai-panel/src/main/java/com/haizhan/ime/panel/di/ReplyModule.kt","ai-panel/src/main/java/com/haizhan/ime/panel/di/ScreenshotModule.kt","ai-panel/src/main/java/com/haizhan/ime/panel/knowledge/KnowledgeService.kt","ai-panel/src/main/java/com/haizhan/ime/panel/memory/ContactMemoryModels.kt","ai-panel/src/main/java/com/haizhan/ime/panel/memory/ContactMemoryService.kt","ai-panel/src/main/java/com/haizhan/ime/panel/memory/MemoryDtoMapper.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/EnhancedSenderDetector.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/MessageParser.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/OcrReliabilityScore.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/OcrService.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/TitleBarParser.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/adapter/ChatMessageAdapter.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/adapter/DingTalkMessageAdapter.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/adapter/FeishuMessageAdapter.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/adapter/MessageAdapterFactory.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/adapter/WeChatMessageAdapter.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/adapter/WeWorkMessageAdapter.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/BatteryAwareManager.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/ClipboardHelper.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/FrequencyController.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/RagReplyGenerator.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/ReplyGenerator.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/ReplyStyle.kt","ai-panel/src/main/java/com/haizhan/ime/panel/screenshot/RegionDetector.kt","ai-panel/src/main/java/com/haizhan/ime/panel/screenshot/ScreenshotManager.kt","ai-panel/src/main/java/com/haizhan/ime/panel/service/ScreenshotForegroundService.kt","ai-panel/src/main/java/com/haizhan/ime/panel/trigger/AppDetector.kt","ai-panel/src/main/java/com/haizhan/ime/panel/trigger/TriggerDetector.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/AIPanelScreen.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/AiPanelTheme.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/Contact360View.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/ContactCard.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/ContactSelector.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/EmotionBadge.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/FunctionTabBar.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/IntentBadge.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/KnowledgeCard.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/KnowledgePanel.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/QuickReplyPanel.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/ReplyCard.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/ContactComponents.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/HistoryComponents.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/KnowledgeComponents.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/NoteComponents.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/OcrComponents.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/PanelCommon.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/ReplyComponents.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/TeamComponents.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/tabs/AiReplyTab.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/tabs/ContactsTab.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/tabs/HistoryTab.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/tabs/KnowledgeTab.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/tabs/NoteTab.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/tabs/OcrTab.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/tabs/TeamTab.kt","ai-panel/src/main/java/com/haizhan/ime/panel/weather/WeatherService.kt","ai-panel/src/main/res/drawable/ic_ai_reply.xml","ai-panel/src/main/res/drawable/ic_capture.xml","ai-panel/src/main/res/drawable/ic_contacts.xml","ai-panel/src/main/res/drawable/ic_knowledge.xml","ai-panel/src/main/res/drawable/ic_ocr.xml","ai-panel/src/main/res/drawable/ic_refresh.xml","ai-panel/src/main/res/drawable/ic_screenshot.xml","ai-panel/src/main/res/drawable/ic_stop.xml","ai-panel/src/test/java/com/haizhan/ime/panel/AiPanelManagerTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/agentic/AgenticDecisionEngineTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/agentic/AgenticRouterTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/agentic/AgenticTypesTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/agentic/CostControllerTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/agentic/ResultQualityEvaluatorTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactCacheTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactContextPreloaderTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactIndexPerformanceTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactIndexesTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactMatcherTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactMemoryServiceTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/MatchedContactTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/NicknameMatcherTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/context/InputContextCollectorTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/context/UnifiedContextManagerTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/knowledge/KnowledgeServiceTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/ocr/EnhancedSenderDetectorTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/ocr/MessageParserTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/ocr/OcrReliabilityScoreTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/ocr/OcrServiceTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/ocr/TitleBarParserTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/platform/DingTalkAdapterTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/platform/FeishuAdapterTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/platform/WeChatAdapterTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/platform/WeWorkAdapterTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/reply/BatteryAwareManagerTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/reply/ClipboardHelperTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/reply/FrequencyControllerTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/reply/RagReplyGeneratorTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/reply/ReplyGeneratorTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/reply/ReplyStyleTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/screenshot/RegionDetectorTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/screenshot/ScreenshotManagerTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/trigger/AppDetectorTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/trigger/TriggerDetectorTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/ui/AIPanelScreenTest.kt","ai-panel/src/test/java/com/haizhan/ime/panel/ui/ReplyCardTest.kt","api-clients/android/.openapi-generator-ignore","api-clients/android/.openapi-generator/FILES","api-clients/android/.openapi-generator/VERSION","api-clients/android/README.md","api-clients/android/build.gradle","api-clients/android/docs/AdminLoginDto.md","api-clients/android/docs/AiConfigApi.md","api-clients/android/docs/AuditLogsApi.md","api-clients/android/docs/AuthApi.md","api-clients/android/docs/BatchRemoveContactsDto.md","api-clients/android/docs/ChunkingConfigDto.md","api-clients/android/docs/Contact360ResponseDto.md","api-clients/android/docs/Contact360ViewDto.md","api-clients/android/docs/ContactDetailResponseDto.md","api-clients/android/docs/ContactDto.md","api-clients/android/docs/ContactEventDto.md","api-clients/android/docs/ContactListResponseDto.md","api-clients/android/docs/ContactProfileDto.md","api-clients/android/docs/ContactStatsDto.md","api-clients/android/docs/ContactTagDto.md","api-clients/android/docs/ContactsApi.md","api-clients/android/docs/ConversationSummaryDto.md","api-clients/android/docs/CreateContactDto.md","api-clients/android/docs/CreateContactEventDto.md","api-clients/android/docs/CreateKnowledgeBaseDto.md","api-clients/android/docs/CreateKnowledgeDocumentDto.md","api-clients/android/docs/CreateQwenModelDto.md","api-clients/android/docs/DefaultApi.md","api-clients/android/docs/EmbeddingConfigDto.md","api-clients/android/docs/EmbeddingModelDto.md","api-clients/android/docs/GenerationConfigDto.md","api-clients/android/docs/HealthApi.md","api-clients/android/docs/KnowledgeApi.md","api-clients/android/docs/KnowledgeBaseResponseDto.md","api-clients/android/docs/KnowledgeDocumentListResponseDto.md","api-clients/android/docs/KnowledgeDocumentResponseDto.md","api-clients/android/docs/LoginDto.md","api-clients/android/docs/MatchContactDto.md","api-clients/android/docs/MatchContactResponseDto.md","api-clients/android/docs/MobileCompatApi.md","api-clients/android/docs/PinyinApi.md","api-clients/android/docs/PipelineHealthDto.md","api-clients/android/docs/PipelineMetricsDto.md","api-clients/android/docs/PreviewChunkingDto.md","api-clients/android/docs/QwenModelConfigDto.md","api-clients/android/docs/QwenModelFeaturesDto.md","api-clients/android/docs/RagApi.md","api-clients/android/docs/RagConfigDto.md","api-clients/android/docs/RagMetricsDto.md","api-clients/android/docs/RagPipelineStatusDto.md","api-clients/android/docs/RagQueryDto.md","api-clients/android/docs/RebuildIndexDto.md","api-clients/android/docs/RefreshTokenDto.md","api-clients/android/docs/RetrievalConfigDto.md","api-clients/android/docs/SettingsApi.md","api-clients/android/docs/SyncContactsDto.md","api-clients/android/docs/SyncContactsResponseDto.md","api-clients/android/docs/TeamsApi.md","api-clients/android/docs/ToggleQwenModelDto.md","api-clients/android/docs/UpdateContactDto.md","api-clients/android/docs/UpdateKnowledgeBaseDto.md","api-clients/android/docs/UpdateKnowledgeDocumentDto.md","api-clients/android/docs/UpdateQwenModelDto.md","api-clients/android/docs/UpdateRagConfigDto.md","api-clients/android/docs/UsageApi.md","api-clients/android/docs/WeatherApi.md","api-clients/android/gradle/wrapper/gradle-wrapper.jar","api-clients/android/gradle/wrapper/gradle-wrapper.properties","api-clients/android/gradlew","api-clients/android/gradlew.bat","api-clients/android/settings.gradle","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/AiConfigApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/AuditLogsApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/AuthApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/ContactsApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/DefaultApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/HealthApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/KnowledgeApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/MobileCompatApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/PinyinApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/RagApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/SettingsApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/TeamsApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/UsageApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/apis/WeatherApi.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/auth/HttpBearerAuth.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/ApiClient.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/BigDecimalAdapter.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/BigIntegerAdapter.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/ByteArrayAdapter.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/CollectionFormats.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/LocalDateAdapter.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/LocalDateTimeAdapter.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/OffsetDateTimeAdapter.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/ResponseExt.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/Serializer.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/URIAdapter.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/infrastructure/UUIDAdapter.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/AdminLoginDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/BatchRemoveContactsDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ChunkingConfigDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/Contact360ResponseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/Contact360ViewDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ContactDetailResponseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ContactDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ContactEventDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ContactListResponseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ContactProfileDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ContactStatsDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ContactTagDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ConversationSummaryDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/CreateContactDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/CreateContactEventDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/CreateKnowledgeBaseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/CreateKnowledgeDocumentDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/CreateQwenModelDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/EmbeddingConfigDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/EmbeddingModelDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/GenerationConfigDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/KnowledgeBaseResponseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/KnowledgeDocumentListResponseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/KnowledgeDocumentResponseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/LoginDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/MatchContactDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/MatchContactResponseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/PipelineHealthDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/PipelineMetricsDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/PreviewChunkingDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/QwenModelConfigDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/QwenModelFeaturesDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/RagConfigDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/RagMetricsDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/RagPipelineStatusDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/RagQueryDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/RebuildIndexDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/RefreshTokenDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/RetrievalConfigDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/SyncContactsDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/SyncContactsResponseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/ToggleQwenModelDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/UpdateContactDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/UpdateKnowledgeBaseDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/UpdateKnowledgeDocumentDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/UpdateQwenModelDto.kt","api-clients/android/src/main/kotlin/com/haizhan/ime/api/models/UpdateRagConfigDto.kt","api-clients/flutter/.gitignore","api-clients/flutter/.openapi-generator-ignore","api-clients/flutter/.openapi-generator/FILES","api-clients/flutter/.openapi-generator/VERSION","api-clients/flutter/README.md","api-clients/flutter/analysis_options.yaml","api-clients/flutter/doc/AdminLoginDto.md","api-clients/flutter/doc/AiConfigApi.md","api-clients/flutter/doc/AuditLogsApi.md","api-clients/flutter/doc/AuthApi.md","api-clients/flutter/doc/BatchRemoveContactsDto.md","api-clients/flutter/doc/ChunkingConfigDto.md","api-clients/flutter/doc/Contact360ResponseDto.md","api-clients/flutter/doc/Contact360ViewDto.md","api-clients/flutter/doc/ContactDetailResponseDto.md","api-clients/flutter/doc/ContactDto.md","api-clients/flutter/doc/ContactEventDto.md","api-clients/flutter/doc/ContactListResponseDto.md","api-clients/flutter/doc/ContactProfileDto.md","api-clients/flutter/doc/ContactStatsDto.md","api-clients/flutter/doc/ContactTagDto.md","api-clients/flutter/doc/ContactsApi.md","api-clients/flutter/doc/ConversationSummaryDto.md","api-clients/flutter/doc/CreateContactDto.md","api-clients/flutter/doc/CreateContactEventDto.md","api-clients/flutter/doc/CreateKnowledgeBaseDto.md","api-clients/flutter/doc/CreateKnowledgeDocumentDto.md","api-clients/flutter/doc/CreateQwenModelDto.md","api-clients/flutter/doc/DefaultApi.md","api-clients/flutter/doc/EmbeddingConfigDto.md","api-clients/flutter/doc/EmbeddingModelDto.md","api-clients/flutter/doc/GenerationConfigDto.md","api-clients/flutter/doc/HealthApi.md","api-clients/flutter/doc/KnowledgeApi.md","api-clients/flutter/doc/KnowledgeBaseResponseDto.md","api-clients/flutter/doc/KnowledgeDocumentListResponseDto.md","api-clients/flutter/doc/KnowledgeDocumentResponseDto.md","api-clients/flutter/doc/LoginDto.md","api-clients/flutter/doc/MatchContactDto.md","api-clients/flutter/doc/MatchContactResponseDto.md","api-clients/flutter/doc/MobileCompatApi.md","api-clients/flutter/doc/PinyinApi.md","api-clients/flutter/doc/PipelineHealthDto.md","api-clients/flutter/doc/PipelineMetricsDto.md","api-clients/flutter/doc/PreviewChunkingDto.md","api-clients/flutter/doc/QwenModelConfigDto.md","api-clients/flutter/doc/QwenModelFeaturesDto.md","api-clients/flutter/doc/RagApi.md","api-clients/flutter/doc/RagConfigDto.md","api-clients/flutter/doc/RagMetricsDto.md","api-clients/flutter/doc/RagPipelineStatusDto.md","api-clients/flutter/doc/RagQueryDto.md","api-clients/flutter/doc/RebuildIndexDto.md","api-clients/flutter/doc/RefreshTokenDto.md","api-clients/flutter/doc/RetrievalConfigDto.md","api-clients/flutter/doc/SettingsApi.md","api-clients/flutter/doc/SyncContactsDto.md","api-clients/flutter/doc/SyncContactsResponseDto.md","api-clients/flutter/doc/TeamsApi.md","api-clients/flutter/doc/ToggleQwenModelDto.md","api-clients/flutter/doc/UpdateContactDto.md","api-clients/flutter/doc/UpdateKnowledgeBaseDto.md","api-clients/flutter/doc/UpdateKnowledgeDocumentDto.md","api-clients/flutter/doc/UpdateQwenModelDto.md","api-clients/flutter/doc/UpdateRagConfigDto.md","api-clients/flutter/doc/UsageApi.md","api-clients/flutter/doc/WeatherApi.md","api-clients/flutter/lib/haizhan_api.dart","api-clients/flutter/lib/src/api.dart","api-clients/flutter/lib/src/api/ai_config_api.dart","api-clients/flutter/lib/src/api/audit_logs_api.dart","api-clients/flutter/lib/src/api/auth_api.dart","api-clients/flutter/lib/src/api/contacts_api.dart","api-clients/flutter/lib/src/api/default_api.dart","api-clients/flutter/lib/src/api/health_api.dart","api-clients/flutter/lib/src/api/knowledge_api.dart","api-clients/flutter/lib/src/api/mobile_compat_api.dart","api-clients/flutter/lib/src/api/pinyin_api.dart","api-clients/flutter/lib/src/api/rag_api.dart","api-clients/flutter/lib/src/api/settings_api.dart","api-clients/flutter/lib/src/api/teams_api.dart","api-clients/flutter/lib/src/api/usage_api.dart","api-clients/flutter/lib/src/api/weather_api.dart","api-clients/flutter/lib/src/api_util.dart","api-clients/flutter/lib/src/auth/api_key_auth.dart","api-clients/flutter/lib/src/auth/auth.dart","api-clients/flutter/lib/src/auth/basic_auth.dart","api-clients/flutter/lib/src/auth/bearer_auth.dart","api-clients/flutter/lib/src/auth/oauth.dart","api-clients/flutter/lib/src/date_serializer.dart","api-clients/flutter/lib/src/model/admin_login_dto.dart","api-clients/flutter/lib/src/model/batch_remove_contacts_dto.dart","api-clients/flutter/lib/src/model/chunking_config_dto.dart","api-clients/flutter/lib/src/model/contact360_response_dto.dart","api-clients/flutter/lib/src/model/contact360_view_dto.dart","api-clients/flutter/lib/src/model/contact_detail_response_dto.dart","api-clients/flutter/lib/src/model/contact_dto.dart","api-clients/flutter/lib/src/model/contact_event_dto.dart","api-clients/flutter/lib/src/model/contact_list_response_dto.dart","api-clients/flutter/lib/src/model/contact_profile_dto.dart","api-clients/flutter/lib/src/model/contact_stats_dto.dart","api-clients/flutter/lib/src/model/contact_tag_dto.dart","api-clients/flutter/lib/src/model/conversation_summary_dto.dart","api-clients/flutter/lib/src/model/create_contact_dto.dart","api-clients/flutter/lib/src/model/create_contact_event_dto.dart","api-clients/flutter/lib/src/model/create_knowledge_base_dto.dart","api-clients/flutter/lib/src/model/create_knowledge_document_dto.dart","api-clients/flutter/lib/src/model/create_qwen_model_dto.dart","api-clients/flutter/lib/src/model/date.dart","api-clients/flutter/lib/src/model/embedding_config_dto.dart","api-clients/flutter/lib/src/model/embedding_model_dto.dart","api-clients/flutter/lib/src/model/generation_config_dto.dart","api-clients/flutter/lib/src/model/knowledge_base_response_dto.dart","api-clients/flutter/lib/src/model/knowledge_document_list_response_dto.dart","api-clients/flutter/lib/src/model/knowledge_document_response_dto.dart","api-clients/flutter/lib/src/model/login_dto.dart","api-clients/flutter/lib/src/model/match_contact_dto.dart","api-clients/flutter/lib/src/model/match_contact_response_dto.dart","api-clients/flutter/lib/src/model/pipeline_health_dto.dart","api-clients/flutter/lib/src/model/pipeline_metrics_dto.dart","api-clients/flutter/lib/src/model/preview_chunking_dto.dart","api-clients/flutter/lib/src/model/qwen_model_config_dto.dart","api-clients/flutter/lib/src/model/qwen_model_features_dto.dart","api-clients/flutter/lib/src/model/rag_config_dto.dart","api-clients/flutter/lib/src/model/rag_metrics_dto.dart","api-clients/flutter/lib/src/model/rag_pipeline_status_dto.dart","api-clients/flutter/lib/src/model/rag_query_dto.dart","api-clients/flutter/lib/src/model/rebuild_index_dto.dart","api-clients/flutter/lib/src/model/refresh_token_dto.dart","api-clients/flutter/lib/src/model/retrieval_config_dto.dart","api-clients/flutter/lib/src/model/sync_contacts_dto.dart","api-clients/flutter/lib/src/model/sync_contacts_response_dto.dart","api-clients/flutter/lib/src/model/toggle_qwen_model_dto.dart","api-clients/flutter/lib/src/model/update_contact_dto.dart","api-clients/flutter/lib/src/model/update_knowledge_base_dto.dart","api-clients/flutter/lib/src/model/update_knowledge_document_dto.dart","api-clients/flutter/lib/src/model/update_qwen_model_dto.dart","api-clients/flutter/lib/src/model/update_rag_config_dto.dart","api-clients/flutter/lib/src/serializers.dart","api-clients/flutter/pubspec.yaml","api-clients/flutter/test/admin_login_dto_test.dart","api-clients/flutter/test/ai_config_api_test.dart","api-clients/flutter/test/audit_logs_api_test.dart","api-clients/flutter/test/auth_api_test.dart","api-clients/flutter/test/batch_remove_contacts_dto_test.dart","api-clients/flutter/test/chunking_config_dto_test.dart","api-clients/flutter/test/contact360_response_dto_test.dart","api-clients/flutter/test/contact360_view_dto_test.dart","api-clients/flutter/test/contact_detail_response_dto_test.dart","api-clients/flutter/test/contact_dto_test.dart","api-clients/flutter/test/contact_event_dto_test.dart","api-clients/flutter/test/contact_list_response_dto_test.dart","api-clients/flutter/test/contact_profile_dto_test.dart","api-clients/flutter/test/contact_stats_dto_test.dart","api-clients/flutter/test/contact_tag_dto_test.dart","api-clients/flutter/test/contacts_api_test.dart","api-clients/flutter/test/conversation_summary_dto_test.dart","api-clients/flutter/test/create_contact_dto_test.dart","api-clients/flutter/test/create_contact_event_dto_test.dart","api-clients/flutter/test/create_knowledge_base_dto_test.dart","api-clients/flutter/test/create_knowledge_document_dto_test.dart","api-clients/flutter/test/create_qwen_model_dto_test.dart","api-clients/flutter/test/default_api_test.dart","api-clients/flutter/test/embedding_config_dto_test.dart","api-clients/flutter/test/embedding_model_dto_test.dart","api-clients/flutter/test/generation_config_dto_test.dart","api-clients/flutter/test/health_api_test.dart","api-clients/flutter/test/knowledge_api_test.dart","api-clients/flutter/test/knowledge_base_response_dto_test.dart","api-clients/flutter/test/knowledge_document_list_response_dto_test.dart","api-clients/flutter/test/knowledge_document_response_dto_test.dart","api-clients/flutter/test/login_dto_test.dart","api-clients/flutter/test/match_contact_dto_test.dart","api-clients/flutter/test/match_contact_response_dto_test.dart","api-clients/flutter/test/mobile_compat_api_test.dart","api-clients/flutter/test/pinyin_api_test.dart","api-clients/flutter/test/pipeline_health_dto_test.dart","api-clients/flutter/test/pipeline_metrics_dto_test.dart","api-clients/flutter/test/preview_chunking_dto_test.dart","api-clients/flutter/test/qwen_model_config_dto_test.dart","api-clients/flutter/test/qwen_model_features_dto_test.dart","api-clients/flutter/test/rag_api_test.dart","api-clients/flutter/test/rag_config_dto_test.dart","api-clients/flutter/test/rag_metrics_dto_test.dart","api-clients/flutter/test/rag_pipeline_status_dto_test.dart","api-clients/flutter/test/rag_query_dto_test.dart","api-clients/flutter/test/rebuild_index_dto_test.dart","api-clients/flutter/test/refresh_token_dto_test.dart","api-clients/flutter/test/retrieval_config_dto_test.dart","api-clients/flutter/test/settings_api_test.dart","api-clients/flutter/test/sync_contacts_dto_test.dart","api-clients/flutter/test/sync_contacts_response_dto_test.dart","api-clients/flutter/test/teams_api_test.dart","api-clients/flutter/test/toggle_qwen_model_dto_test.dart","api-clients/flutter/test/update_contact_dto_test.dart","api-clients/flutter/test/update_knowledge_base_dto_test.dart","api-clients/flutter/test/update_knowledge_document_dto_test.dart","api-clients/flutter/test/update_qwen_model_dto_test.dart","api-clients/flutter/test/update_rag_config_dto_test.dart","api-clients/flutter/test/usage_api_test.dart","api-clients/flutter/test/weather_api_test.dart","api-clients/ios/.gitignore","api-clients/ios/.openapi-generator-ignore","api-clients/ios/.openapi-generator/FILES","api-clients/ios/.openapi-generator/VERSION","api-clients/ios/.swiftformat","api-clients/ios/Cartfile","api-clients/ios/HaizhanAPI.podspec","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIHelper.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/AiConfigAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/AuditLogsAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/AuthAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/ContactsAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/DefaultAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/HealthAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/KnowledgeAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/MobileCompatAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/PinyinAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/RagAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/SettingsAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/TeamsAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/UsageAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/APIs/WeatherAPI.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/CodableHelper.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Configuration.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Extensions.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/JSONDataEncoding.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/JSONEncodingHelper.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/AdminLoginDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/BatchRemoveContactsDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ChunkingConfigDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/Contact360ResponseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/Contact360ViewDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ContactDetailResponseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ContactDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ContactEventDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ContactListResponseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ContactProfileDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ContactStatsDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ContactTagDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ConversationSummaryDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/CreateContactDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/CreateContactEventDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/CreateKnowledgeBaseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/CreateKnowledgeDocumentDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/CreateQwenModelDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/EmbeddingConfigDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/EmbeddingModelDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/GenerationConfigDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/KnowledgeBaseResponseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/KnowledgeDocumentListResponseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/KnowledgeDocumentResponseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/LoginDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/MatchContactDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/MatchContactResponseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/PipelineHealthDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/PipelineMetricsDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/PreviewChunkingDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/QwenModelConfigDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/QwenModelFeaturesDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/RagConfigDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/RagMetricsDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/RagPipelineStatusDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/RagQueryDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/RebuildIndexDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/RefreshTokenDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/RetrievalConfigDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/SyncContactsDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/SyncContactsResponseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/ToggleQwenModelDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/UpdateContactDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/UpdateKnowledgeBaseDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/UpdateKnowledgeDocumentDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/UpdateQwenModelDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Models/UpdateRagConfigDto.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/OpenISO8601DateFormatter.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/SynchronizedDictionary.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/URLSessionImplementations.swift","api-clients/ios/HaizhanAPI/Classes/OpenAPIs/Validation.swift","api-clients/ios/Package.swift","api-clients/ios/README.md","api-clients/ios/docs/AdminLoginDto.md","api-clients/ios/docs/AiConfigAPI.md","api-clients/ios/docs/AuditLogsAPI.md","api-clients/ios/docs/AuthAPI.md","api-clients/ios/docs/BatchRemoveContactsDto.md","api-clients/ios/docs/ChunkingConfigDto.md","api-clients/ios/docs/Contact360ResponseDto.md","api-clients/ios/docs/Contact360ViewDto.md","api-clients/ios/docs/ContactDetailResponseDto.md","api-clients/ios/docs/ContactDto.md","api-clients/ios/docs/ContactEventDto.md","api-clients/ios/docs/ContactListResponseDto.md","api-clients/ios/docs/ContactProfileDto.md","api-clients/ios/docs/ContactStatsDto.md","api-clients/ios/docs/ContactTagDto.md","api-clients/ios/docs/ContactsAPI.md","api-clients/ios/docs/ConversationSummaryDto.md","api-clients/ios/docs/CreateContactDto.md","api-clients/ios/docs/CreateContactEventDto.md","api-clients/ios/docs/CreateKnowledgeBaseDto.md","api-clients/ios/docs/CreateKnowledgeDocumentDto.md","api-clients/ios/docs/CreateQwenModelDto.md","api-clients/ios/docs/DefaultAPI.md","api-clients/ios/docs/EmbeddingConfigDto.md","api-clients/ios/docs/EmbeddingModelDto.md","api-clients/ios/docs/GenerationConfigDto.md","api-clients/ios/docs/HealthAPI.md","api-clients/ios/docs/KnowledgeAPI.md","api-clients/ios/docs/KnowledgeBaseResponseDto.md","api-clients/ios/docs/KnowledgeDocumentListResponseDto.md","api-clients/ios/docs/KnowledgeDocumentResponseDto.md","api-clients/ios/docs/LoginDto.md","api-clients/ios/docs/MatchContactDto.md","api-clients/ios/docs/MatchContactResponseDto.md","api-clients/ios/docs/MobileCompatAPI.md","api-clients/ios/docs/PinyinAPI.md","api-clients/ios/docs/PipelineHealthDto.md","api-clients/ios/docs/PipelineMetricsDto.md","api-clients/ios/docs/PreviewChunkingDto.md","api-clients/ios/docs/QwenModelConfigDto.md","api-clients/ios/docs/QwenModelFeaturesDto.md","api-clients/ios/docs/RagAPI.md","api-clients/ios/docs/RagConfigDto.md","api-clients/ios/docs/RagMetricsDto.md","api-clients/ios/docs/RagPipelineStatusDto.md","api-clients/ios/docs/RagQueryDto.md","api-clients/ios/docs/RebuildIndexDto.md","api-clients/ios/docs/RefreshTokenDto.md","api-clients/ios/docs/RetrievalConfigDto.md","api-clients/ios/docs/SettingsAPI.md","api-clients/ios/docs/SyncContactsDto.md","api-clients/ios/docs/SyncContactsResponseDto.md","api-clients/ios/docs/TeamsAPI.md","api-clients/ios/docs/ToggleQwenModelDto.md","api-clients/ios/docs/UpdateContactDto.md","api-clients/ios/docs/UpdateKnowledgeBaseDto.md","api-clients/ios/docs/UpdateKnowledgeDocumentDto.md","api-clients/ios/docs/UpdateQwenModelDto.md","api-clients/ios/docs/UpdateRagConfigDto.md","api-clients/ios/docs/UsageAPI.md","api-clients/ios/docs/WeatherAPI.md","api-clients/ios/git_push.sh","api-clients/ios/project.yml","app/build.gradle.kts","app/proguard-rules-release.pro","app/proguard-rules.pro","app/src/androidTest/java/com/haizhan/ime/ComposeUiTest.kt","app/src/androidTest/java/com/haizhan/ime/ExampleInstrumentedTest.kt","app/src/androidTest/java/com/haizhan/ime/e2e/SmokeE2ETest.kt","app/src/androidTest/java/com/haizhan/ime/integration/ImeIntegrationTest.kt","app/src/main/AndroidManifest.xml","app/src/main/assets/dictionaries/stroke-data.txt","app/src/main/assets/handwriting_labels.txt","app/src/main/assets/handwriting_labels_casia.txt","app/src/main/assets/handwriting_labels_clean.txt","app/src/main/assets/handwriting_labels_jp.txt","app/src/main/assets/paddle_models/handwriting_labels.txt","app/src/main/assets/paddle_models/ppocr_keys_v1.txt","app/src/main/assets/temp_clean.txt","app/src/main/assets/temp_labels.txt","app/src/main/java/com/haizhan/ime/HaizhanApplication.kt","app/src/main/java/com/haizhan/ime/about/ui/AboutScreen.kt","app/src/main/java/com/haizhan/ime/chat/model/Message.kt","app/src/main/java/com/haizhan/ime/chat/service/WebSocketService.kt","app/src/main/java/com/haizhan/ime/chat/ui/ChatMessageCard.kt","app/src/main/java/com/haizhan/ime/chat/ui/ChatScreen.kt","app/src/main/java/com/haizhan/ime/chat/ui/GroupChatScreen.kt","app/src/main/java/com/haizhan/ime/feedback/ui/FeedbackScreen.kt","app/src/main/java/com/haizhan/ime/help/ui/HelpCenterScreen.kt","app/src/main/java/com/haizhan/ime/note/model/Note.kt","app/src/main/java/com/haizhan/ime/note/service/NoteService.kt","app/src/main/java/com/haizhan/ime/note/ui/NoteEditorScreen.kt","app/src/main/java/com/haizhan/ime/note/ui/NoteListScreen.kt","app/src/main/java/com/haizhan/ime/profile/model/Profile.kt","app/src/main/java/com/haizhan/ime/profile/ui/ProfileScreen.kt","app/src/main/java/com/haizhan/ime/receiver/BootReceiver.kt","app/src/main/java/com/haizhan/ime/search/model/Search.kt","app/src/main/java/com/haizhan/ime/search/service/SearchService.kt","app/src/main/java/com/haizhan/ime/search/ui/GlobalSearchScreen.kt","app/src/main/java/com/haizhan/ime/security/EncryptionManager.kt","app/src/main/java/com/haizhan/ime/security/NetworkSecurityManager.kt","app/src/main/java/com/haizhan/ime/security/PrivacyComplianceManager.kt","app/src/main/java/com/haizhan/ime/security/SecurityAuditor.kt","app/src/main/java/com/haizhan/ime/service/AiProcessingService.kt","app/src/main/java/com/haizhan/ime/service/ContextCollector.kt","app/src/main/java/com/haizhan/ime/service/DataSyncService.kt","app/src/main/java/com/haizhan/ime/service/HaizhanInputMethodService.kt","app/src/main/java/com/haizhan/ime/service/InputTypeAnalysis.kt","app/src/main/java/com/haizhan/ime/service/KeyboardContentView.kt","app/src/main/java/com/haizhan/ime/service/OcrCaptureService.kt","app/src/main/java/com/haizhan/ime/service/VoiceInputDelegate.kt","app/src/main/java/com/haizhan/ime/session/model/Session.kt","app/src/main/java/com/haizhan/ime/session/service/SessionService.kt","app/src/main/java/com/haizhan/ime/session/ui/MessageCenterScreen.kt","app/src/main/java/com/haizhan/ime/session/ui/SessionCard.kt","app/src/main/java/com/haizhan/ime/session/ui/SessionListScreen.kt","app/src/main/java/com/haizhan/ime/stability/AnrWatchdog.kt","app/src/main/java/com/haizhan/ime/stability/CrashHandler.kt","app/src/main/java/com/haizhan/ime/stability/MemoryLeakDetector.kt","app/src/main/java/com/haizhan/ime/stability/StabilityManager.kt","app/src/main/java/com/haizhan/ime/statistics/model/Statistics.kt","app/src/main/java/com/haizhan/ime/statistics/ui/ChartComponents.kt","app/src/main/java/com/haizhan/ime/statistics/ui/StatisticsScreen.kt","app/src/main/java/com/haizhan/ime/subscription/model/Subscription.kt","app/src/main/java/com/haizhan/ime/subscription/service/SubscriptionService.kt","app/src/main/java/com/haizhan/ime/subscription/ui/SubscriptionScreen.kt","app/src/main/java/com/haizhan/ime/sync/ContactSyncTaskAdapter.kt","app/src/main/java/com/haizhan/ime/sync/KnowledgeSyncTaskAdapter.kt","app/src/main/java/com/haizhan/ime/sync/SyncContracts.kt","app/src/main/java/com/haizhan/ime/sync/SyncCoordinator.kt","app/src/main/java/com/haizhan/ime/sync/SyncScheduler.kt","app/src/main/java/com/haizhan/ime/team/model/Team.kt","app/src/main/java/com/haizhan/ime/team/service/TeamService.kt","app/src/main/java/com/haizhan/ime/team/ui/TeamScreen.kt","app/src/main/java/com/haizhan/ime/template/data/B2BTemplates.kt","app/src/main/java/com/haizhan/ime/template/data/ClosingTemplates.kt","app/src/main/java/com/haizhan/ime/template/data/CoreSalesTemplates.kt","app/src/main/java/com/haizhan/ime/template/data/DailyTemplates.kt","app/src/main/java/com/haizhan/ime/template/data/DefaultTemplates.kt","app/src/main/java/com/haizhan/ime/template/data/FollowUpTemplates.kt","app/src/main/java/com/haizhan/ime/template/data/QuickPhraseDefaults.kt","app/src/main/java/com/haizhan/ime/template/data/SeasonalTemplates.kt","app/src/main/java/com/haizhan/ime/template/data/TemplateDatabase.kt","app/src/main/java/com/haizhan/ime/template/data/TemplateImporter.kt","app/src/main/java/com/haizhan/ime/template/data/TemplateRepository.kt","app/src/main/java/com/haizhan/ime/template/di/TemplateModule.kt","app/src/main/java/com/haizhan/ime/template/model/Template.kt","app/src/main/java/com/haizhan/ime/template/service/TemplateService.kt","app/src/main/java/com/haizhan/ime/template/ui/FolderManagementDialog.kt","app/src/main/java/com/haizhan/ime/template/ui/TemplateListScreen.kt","app/src/main/java/com/haizhan/ime/template/ui/TemplateViewModel.kt","app/src/main/java/com/haizhan/ime/ui/MainActivity.kt","app/src/main/java/com/haizhan/ime/ui/management/DictionaryImportActivity.kt","app/src/main/java/com/haizhan/ime/ui/management/DictionaryImportScreen.kt","app/src/main/java/com/haizhan/ime/ui/management/DictionaryImportViewModel.kt","app/src/main/java/com/haizhan/ime/ui/management/DictionaryScreen.kt","app/src/main/java/com/haizhan/ime/ui/management/ManagementActivity.kt","app/src/main/java/com/haizhan/ime/ui/management/ManagementViewModel.kt","app/src/main/java/com/haizhan/ime/ui/management/PermissionScreen.kt","app/src/main/java/com/haizhan/ime/ui/management/SettingsScreen.kt","app/src/main/java/com/haizhan/ime/ui/permission/ScreenshotPermissionActivity.kt","app/src/main/java/com/haizhan/ime/ui/settings/ImeSettingsActivity.kt","app/src/main/java/com/haizhan/ime/ui/settings/SettingsViewModel.kt","app/src/main/java/com/haizhan/ime/ui/theme/Theme.kt","app/src/main/java/com/haizhan/ime/ui/theme/Type.kt","app/src/main/java/com/haizhan/ime/ux/AccessibilityHelper.kt","app/src/main/java/com/haizhan/ime/ux/AnimationUtils.kt","app/src/main/java/com/haizhan/ime/ux/ErrorHandler.kt","app/src/main/java/com/haizhan/ime/ux/OnboardingScreen.kt","app/src/main/java/com/haizhan/ime/ux/StartupOptimizer.kt","app/src/main/java/com/haizhan/ime/voice/service/VoiceService.kt","app/src/main/java/com/haizhan/ime/voice/ui/VoiceInputScreen.kt","app/src/main/res/drawable/ic_launcher_background.xml","app/src/main/res/drawable/ic_launcher_foreground.xml","app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml","app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml","app/src/main/res/values-night/colors.xml","app/src/main/res/values/colors.xml","app/src/main/res/values/strings.xml","app/src/main/res/values/themes.xml","app/src/main/res/xml/backup_rules.xml","app/src/main/res/xml/data_extraction_rules.xml","app/src/main/res/xml/file_paths.xml","app/src/main/res/xml/method.xml","app/src/main/res/xml/network_security_config.xml","app/src/test/java/com/haizhan/ime/ExampleUnitTest.kt","app/src/test/java/com/haizhan/ime/app/service/NotificationServiceTest.kt","app/src/test/java/com/haizhan/ime/app/service/SearchServiceTest.kt","app/src/test/java/com/haizhan/ime/app/service/SessionServiceTest.kt","app/src/test/java/com/haizhan/ime/app/service/SyncServiceTest.kt","app/src/test/java/com/haizhan/ime/app/service/WebSocketServiceTest.kt","app/src/test/java/com/haizhan/ime/benchmark/PerformanceBenchmarkTest.kt","app/src/test/java/com/haizhan/ime/security/EncryptionManagerTest.kt","app/src/test/java/com/haizhan/ime/security/PrivacyComplianceManagerTest.kt","app/src/test/java/com/haizhan/ime/security/SecurityAuditorTest.kt","app/src/test/java/com/haizhan/ime/service/HaizhanInputMethodServiceTest.kt","app/src/test/java/com/haizhan/ime/services/AiProcessingServiceTest.kt","app/src/test/java/com/haizhan/ime/services/NoteServiceTest.kt","app/src/test/java/com/haizhan/ime/services/OcrCaptureServiceTest.kt","app/src/test/java/com/haizhan/ime/services/SubscriptionServiceTest.kt","app/src/test/java/com/haizhan/ime/services/TeamServiceTest.kt","app/src/test/java/com/haizhan/ime/services/TemplateServiceTest.kt","app/src/test/java/com/haizhan/ime/services/VoiceServiceTest.kt","app/src/test/java/com/haizhan/ime/ui/management/ManagementViewModelTest.kt","app/src/test/java/com/haizhan/ime/ui/settings/SettingsViewModelTest.kt","app/src/test/java/com/haizhan/ime/ux/ErrorHandlerTest.kt","app/src/test/java/com/haizhan/ime/ux/StartupOptimizerTest.kt","app/src/test/java/com/haizhan/ime/viewmodel/DictionaryImportViewModelTest.kt","app/src/test/java/com/haizhan/ime/viewmodel/TemplateViewModelTest.kt","build.gradle.kts","common/build.gradle.kts","common/consumer-rules.pro","common/proguard-rules.pro","common/src/main/AndroidManifest.xml","common/src/main/java/com/haizhan/ime/common/ext/ContextExt.kt","common/src/main/java/com/haizhan/ime/common/ext/FlowExt.kt","common/src/main/java/com/haizhan/ime/common/ext/StringExt.kt","common/src/main/java/com/haizhan/ime/common/performance/ImePerformanceTracker.kt","common/src/main/java/com/haizhan/ime/common/theme/DesignTokens.kt","common/src/main/java/com/haizhan/ime/common/theme/KeyboardTheme.kt","common/src/main/java/com/haizhan/ime/common/util/DeviceUtils.kt","common/src/main/java/com/haizhan/ime/common/util/Logger.kt","common/src/main/java/com/haizhan/ime/common/util/LruCache.kt","common/src/main/java/com/haizhan/ime/common/util/MemoryMonitor.kt","common/src/test/java/com/haizhan/ime/common/StringExtTest.kt","common/src/test/java/com/haizhan/ime/common/ext/ResultTest.kt","common/src/test/java/com/haizhan/ime/common/util/DateUtilsTest.kt","common/src/test/java/com/haizhan/ime/common/util/LoggerTest.kt","common/src/test/java/com/haizhan/ime/common/util/MemoryStatsTest.kt","common/src/test/java/com/haizhan/ime/common/util/PinyinUtilsTest.kt","common/src/test/java/com/haizhan/ime/common/util/TextUtilsTest.kt","config/detekt/detekt.yml","data/build.gradle.kts","data/consumer-rules.pro","data/dictionaries/dictionary.config.json","data/dictionaries/fallback-words.txt","data/dictionaries/sensitive-words.txt","data/dictionaries/system/char-single.txt","data/dictionaries/system/core-char.txt","data/dictionaries/system/core-phrase.txt","data/dictionaries/system/core-word2.txt","data/dictionaries/system/core-word3.txt","data/dictionaries/system/core-word4.txt","data/dictionaries/system/idiom.txt","data/dictionaries/system/name-place.txt","data/dictionaries/system/word-common.txt","data/proguard-rules.pro","data/schemas/com.haizhan.ime.data.local.database.HaizhanDatabase/1.json","data/schemas/com.haizhan.ime.data.local.database.HaizhanDatabase/2.json","data/schemas/com.haizhan.ime.data.local.database.HaizhanDatabase/3.json","data/schemas/com.haizhan.ime.data.local.database.HaizhanDatabase/4.json","data/src/main/AndroidManifest.xml","data/src/main/java/com/haizhan/ime/data/auth/AuthInterceptor.kt","data/src/main/java/com/haizhan/ime/data/auth/AuthManager.kt","data/src/main/java/com/haizhan/ime/data/di/DataModule.kt","data/src/main/java/com/haizhan/ime/data/di/DatabaseModule.kt","data/src/main/java/com/haizhan/ime/data/di/NetworkModule.kt","data/src/main/java/com/haizhan/ime/data/di/RepositoryModule.kt","data/src/main/java/com/haizhan/ime/data/local/dao/ContactDao.kt","data/src/main/java/com/haizhan/ime/data/local/dao/KnowledgeDao.kt","data/src/main/java/com/haizhan/ime/data/local/dao/MessageDao.kt","data/src/main/java/com/haizhan/ime/data/local/dao/NoteDao.kt","data/src/main/java/com/haizhan/ime/data/local/dao/SearchDao.kt","data/src/main/java/com/haizhan/ime/data/local/dao/UserDictDao.kt","data/src/main/java/com/haizhan/ime/data/local/database/Converters.kt","data/src/main/java/com/haizhan/ime/data/local/database/HaizhanDatabase.kt","data/src/main/java/com/haizhan/ime/data/local/database/SecureDatabaseFactory.kt","data/src/main/java/com/haizhan/ime/data/local/entity/ContactEntity.kt","data/src/main/java/com/haizhan/ime/data/local/entity/KnowledgeEntity.kt","data/src/main/java/com/haizhan/ime/data/local/entity/MessageEntity.kt","data/src/main/java/com/haizhan/ime/data/local/entity/NoteEntity.kt","data/src/main/java/com/haizhan/ime/data/local/entity/SearchEntity.kt","data/src/main/java/com/haizhan/ime/data/local/entity/UserDictEntity.kt","data/src/main/java/com/haizhan/ime/data/remote/adapter/FlexibleTimestampAdapter.kt","data/src/main/java/com/haizhan/ime/data/remote/aliyun/AliyunSearchClient.kt","data/src/main/java/com/haizhan/ime/data/remote/aliyun/AliyunSearchConfig.kt","data/src/main/java/com/haizhan/ime/data/remote/aliyun/AliyunSearchConfigProvider.kt","data/src/main/java/com/haizhan/ime/data/remote/api/AuthApi.kt","data/src/main/java/com/haizhan/ime/data/remote/api/ContactApi.kt","data/src/main/java/com/haizhan/ime/data/remote/api/HaizhanApi.kt","data/src/main/java/com/haizhan/ime/data/remote/api/PinyinApi.kt","data/src/main/java/com/haizhan/ime/data/remote/api/RagSearchApi.kt","data/src/main/java/com/haizhan/ime/data/remote/api/ReplyApi.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/AiDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/AuthDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/CommonDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/ContactDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/KnowledgeDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/MemoryDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/MessageDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/NoteDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/ProfileDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/RagSearchDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/SearchDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/TeamDto.kt","data/src/main/java/com/haizhan/ime/data/remote/dto/WeatherDto.kt","data/src/main/java/com/haizhan/ime/data/repository/ContactRepository.kt","data/src/main/java/com/haizhan/ime/data/repository/KnowledgeRepository.kt","data/src/main/java/com/haizhan/ime/data/repository/MessageRepository.kt","data/src/main/java/com/haizhan/ime/data/repository/RagSearchRepository.kt","data/src/main/java/com/haizhan/ime/data/repository/SettingsRepository.kt","data/src/main/java/com/haizhan/ime/data/repository/mapper/ContactMapper.kt","data/src/main/java/com/haizhan/ime/data/repository/mapper/KnowledgeMapper.kt","data/src/main/java/com/haizhan/ime/data/repository/mapper/MessageMapper.kt","data/src/main/java/com/haizhan/ime/data/repository/model/Contact.kt","data/src/main/java/com/haizhan/ime/data/repository/model/Knowledge.kt","data/src/main/java/com/haizhan/ime/data/repository/model/Message.kt","data/src/test/java/com/haizhan/ime/data/auth/AuthInterceptorTest.kt","data/src/test/java/com/haizhan/ime/data/auth/AuthManagerTest.kt","data/src/test/java/com/haizhan/ime/data/auth/AuthTypesTest.kt","data/src/test/java/com/haizhan/ime/data/local/dao/ContactDaoTest.kt","data/src/test/java/com/haizhan/ime/data/local/dao/KnowledgeDaoTest.kt","data/src/test/java/com/haizhan/ime/data/local/dao/MessageDaoTest.kt","data/src/test/java/com/haizhan/ime/data/local/dao/NoteDaoTest.kt","data/src/test/java/com/haizhan/ime/data/local/dao/SearchDaoTest.kt","data/src/test/java/com/haizhan/ime/data/local/dao/UserDictDaoTest.kt","data/src/test/java/com/haizhan/ime/data/local/dao/UserPreferencesDaoTest.kt","data/src/test/java/com/haizhan/ime/data/remote/api/HaizhanApiTest.kt","data/src/test/java/com/haizhan/ime/data/remote/dto/ContactDtoTest.kt","data/src/test/java/com/haizhan/ime/data/repository/ContactRepositoryTest.kt","data/src/test/java/com/haizhan/ime/data/repository/KnowledgeRepositoryTest.kt","data/src/test/java/com/haizhan/ime/data/repository/MessageRepositoryTest.kt","data/src/test/java/com/haizhan/ime/data/repository/SettingsRepositoryTest.kt","data/src/test/java/com/haizhan/ime/data/repository/mapper/ContactMapperTest.kt","data/src/test/java/com/haizhan/ime/data/repository/mapper/KnowledgeMapperTest.kt","data/src/test/java/com/haizhan/ime/data/repository/mapper/MessageMapperTest.kt","designs/exports/CLAUDE_CODE_DESIGN_GUIDE.md","designs/exports/DESIGN_MANIFEST.md","designs/exports/svg/Frame.svg","designs/exports/svg/P2-关于.svg","designs/exports/svg/P2-协议条款.svg","designs/exports/svg/P2-帮助中心.svg","designs/exports/svg/P2-意见反馈.svg","designs/exports/svg/P2-版本更新.svg","designs/exports/svg/__设计系统_-_组件库.svg","designs/exports/svg/功能面板_-_OCR识别.svg","designs/exports/svg/功能面板_-_历史.svg","designs/exports/svg/功能面板_-_团队.svg","designs/exports/svg/功能面板_-_知识库.svg","designs/exports/svg/功能面板_-_笔记.svg","designs/exports/svg/功能面板_-_联系人.svg","designs/exports/svg/嗨赞AI助手_-_AI回复选择.svg","designs/exports/svg/嗨赞AI助手_-_OCR结果确认.svg","designs/exports/svg/嗨赞AI助手_-_个人中心.svg","designs/exports/svg/嗨赞AI助手_-_主应用首页.svg","designs/exports/svg/嗨赞AI助手_-_主键盘界面.svg","designs/exports/svg/嗨赞AI助手_-_主键盘界面__深色_.svg","designs/exports/svg/嗨赞AI助手_-_交互式笔记.svg","designs/exports/svg/嗨赞AI助手_-_会员订阅.svg","designs/exports/svg/嗨赞AI助手_-_会话列表.svg","designs/exports/svg/嗨赞AI助手_-_单聊IM.svg","designs/exports/svg/嗨赞AI助手_-_历史记录页面.svg","designs/exports/svg/嗨赞AI助手_-_引导页1.svg","designs/exports/svg/嗨赞AI助手_-_引导页2.svg","designs/exports/svg/嗨赞AI助手_-_引导页3.svg","designs/exports/svg/嗨赞AI助手_-_忘记密码.svg","designs/exports/svg/嗨赞AI助手_-_我的页面.svg","designs/exports/svg/嗨赞AI助手_-_搜索.svg","designs/exports/svg/嗨赞AI助手_-_数据统计.svg","designs/exports/svg/嗨赞AI助手_-_新建联系人.svg","designs/exports/svg/嗨赞AI助手_-_注册页面.svg","designs/exports/svg/嗨赞AI助手_-_消息中心.svg","designs/exports/svg/嗨赞AI助手_-_登录页面.svg","designs/exports/svg/嗨赞AI助手_-_知识库列表.svg","designs/exports/svg/嗨赞AI助手_-_知识库详情.svg","designs/exports/svg/嗨赞AI助手_-_编辑个人信息.svg","designs/exports/svg/嗨赞AI助手_-_群聊IM.svg","designs/exports/svg/嗨赞AI助手_-_联系人列表.svg","designs/exports/svg/嗨赞AI助手_-_联系人详情.svg","designs/exports/svg/嗨赞AI助手_-_设置.svg","designs/exports/svg/嗨赞AI助手_-_设置页面.svg","designs/exports/svg/嗨赞AI助手_-_话术模板.svg","designs/exports/svg/嗨赞AI助手_-_话术模板详情.svg","designs/exports/svg/微交互规范文档.svg","designs/exports/svg/组件_-_悬浮球状态.svg","designs/exports/svg/组件_-_拼音候选词展开.svg","designs/exports/svg/组件_-_空状态.svg","designs/exports/svg/组件_-_语音输入状态.svg","designs/exports/svg/组件_-_错误状态.svg","designs/mobile-keyboard-design.md","designs/specs/COMPONENT_SPEC.md","designs/specs/KEYBOARD_DESIGN_SPEC.md","designs/specs/README.md","designs/specs/design-tokens.json","designs/templates/android/DesignTokens.kt","designs/templates/android/KeyboardTheme.kt","designs/templates/ios/DesignTokens.swift","designs/templates/ios/KeyboardTheme.swift","designs/嗨赞输入法.pen","docs/ANDROID_DEVELOPMENT.md","docs/API.md","docs/ARCHITECTURE.md","docs/BACKEND_API_REQUIREMENTS.md","docs/BACKEND_DESIGN.md","docs/CI_CD_PIPELINE.md","docs/CODING_STANDARDS.md","docs/COMPLETE_FEATURE_SPEC.md","docs/DATABASE.md","docs/DEPLOYMENT.md","docs/DESIGN_TO_DEV_SPEC.md","docs/DEVELOPMENT_GUIDE.md","docs/DEVELOPMENT_PLAN.md","docs/DOCS_SYNC.md","docs/ERROR_HANDLING.md","docs/FEATURE_ANALYSIS.md","docs/FLUTTER_DEVELOPMENT.md","docs/FRONTEND_DEV_REQUIREMENTS.md","docs/HANDWRITING_MODEL_UPGRADE.md","docs/IOS_DEVELOPMENT.md","docs/KMP_DEVELOPMENT.md","docs/LOGGING_STANDARDS.md","docs/MILESTONES.md","docs/MODULE_ANALYSIS.md","docs/MODULE_LIST.md","docs/PERFORMANCE_OPTIMIZATION.md","docs/PNPM_MIGRATION_NOTICE.md","docs/PRD.md","docs/PRIVACY_POLICY.md","docs/PRODUCT_ARCHITECTURE.md","docs/Phase_11_12_Final_Report.md","docs/RELEASE_CHECKLIST.md","docs/SECURITY_AUDIT.md","docs/SECURITY_GUIDELINES.md","docs/STORE_LISTING.md","docs/SYSTEM_ARCHITECTURE.md","docs/TASKS.md","docs/TECH_STACK.md","docs/TESTING_STRATEGY.md","docs/USER_MANUAL.md","docs/VOICE_API_DOCUMENTATION.md","docs/VOICE_MODULE_MIGRATION.md","docs/openapi.json","docs/skills/anthropic-official/.claude-plugin/marketplace.json","docs/skills/anthropic-official/.gitignore","docs/skills/anthropic-official/README.md","docs/skills/anthropic-official/THIRD_PARTY_NOTICES.md","docs/skills/anthropic-official/skills/algorithmic-art/LICENSE.txt","docs/skills/anthropic-official/skills/algorithmic-art/SKILL.md","docs/skills/anthropic-official/skills/algorithmic-art/templates/generator_template.js","docs/skills/anthropic-official/skills/algorithmic-art/templates/viewer.html","docs/skills/anthropic-official/skills/brand-guidelines/LICENSE.txt","docs/skills/anthropic-official/skills/brand-guidelines/SKILL.md","docs/skills/anthropic-official/skills/canvas-design/LICENSE.txt","docs/skills/anthropic-official/skills/canvas-design/SKILL.md","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/BigShoulders-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/BigShoulders-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Boldonse-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Boldonse-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/DMMono-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/DMMono-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/EricaOne-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/EricaOne-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/GeistMono-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/GeistMono-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/GeistMono-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Gloock-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Gloock-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Italiana-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Italiana-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Jura-Light.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Jura-Medium.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Jura-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Lora-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Lora-Italic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Lora-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Lora-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/NationalPark-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/NationalPark-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/NationalPark-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Outfit-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Outfit-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Outfit-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/PixelifySans-Medium.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/PoiretOne-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/PoiretOne-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/RedHatMono-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/RedHatMono-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Silkscreen-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/SmoochSans-Medium.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Tektur-Medium.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Tektur-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/Tektur-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/WorkSans-Bold.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/WorkSans-Italic.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/WorkSans-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/WorkSans-Regular.ttf","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt","docs/skills/anthropic-official/skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf","docs/skills/anthropic-official/skills/doc-coauthoring/SKILL.md","docs/skills/anthropic-official/skills/docx/LICENSE.txt","docs/skills/anthropic-official/skills/docx/SKILL.md","docs/skills/anthropic-official/skills/docx/docx-js.md","docs/skills/anthropic-official/skills/docx/ooxml.md","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/mce/mc.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/microsoft/wml-2010.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/microsoft/wml-2012.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/microsoft/wml-2018.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd","docs/skills/anthropic-official/skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd","docs/skills/anthropic-official/skills/docx/ooxml/scripts/pack.py","docs/skills/anthropic-official/skills/docx/ooxml/scripts/unpack.py","docs/skills/anthropic-official/skills/docx/ooxml/scripts/validate.py","docs/skills/anthropic-official/skills/docx/ooxml/scripts/validation/__init__.py","docs/skills/anthropic-official/skills/docx/ooxml/scripts/validation/base.py","docs/skills/anthropic-official/skills/docx/ooxml/scripts/validation/docx.py","docs/skills/anthropic-official/skills/docx/ooxml/scripts/validation/pptx.py","docs/skills/anthropic-official/skills/docx/ooxml/scripts/validation/redlining.py","docs/skills/anthropic-official/skills/docx/scripts/__init__.py","docs/skills/anthropic-official/skills/docx/scripts/document.py","docs/skills/anthropic-official/skills/docx/scripts/templates/comments.xml","docs/skills/anthropic-official/skills/docx/scripts/templates/commentsExtended.xml","docs/skills/anthropic-official/skills/docx/scripts/templates/commentsExtensible.xml","docs/skills/anthropic-official/skills/docx/scripts/templates/commentsIds.xml","docs/skills/anthropic-official/skills/docx/scripts/templates/people.xml","docs/skills/anthropic-official/skills/docx/scripts/utilities.py","docs/skills/anthropic-official/skills/frontend-design/LICENSE.txt","docs/skills/anthropic-official/skills/frontend-design/SKILL.md","docs/skills/anthropic-official/skills/internal-comms/LICENSE.txt","docs/skills/anthropic-official/skills/internal-comms/SKILL.md","docs/skills/anthropic-official/skills/internal-comms/examples/3p-updates.md","docs/skills/anthropic-official/skills/internal-comms/examples/company-newsletter.md","docs/skills/anthropic-official/skills/internal-comms/examples/faq-answers.md","docs/skills/anthropic-official/skills/internal-comms/examples/general-comms.md","docs/skills/anthropic-official/skills/mcp-builder/LICENSE.txt","docs/skills/anthropic-official/skills/mcp-builder/SKILL.md","docs/skills/anthropic-official/skills/mcp-builder/reference/evaluation.md","docs/skills/anthropic-official/skills/mcp-builder/reference/mcp_best_practices.md","docs/skills/anthropic-official/skills/mcp-builder/reference/node_mcp_server.md","docs/skills/anthropic-official/skills/mcp-builder/reference/python_mcp_server.md","docs/skills/anthropic-official/skills/mcp-builder/scripts/connections.py","docs/skills/anthropic-official/skills/mcp-builder/scripts/evaluation.py","docs/skills/anthropic-official/skills/mcp-builder/scripts/example_evaluation.xml","docs/skills/anthropic-official/skills/mcp-builder/scripts/requirements.txt","docs/skills/anthropic-official/skills/pdf/LICENSE.txt","docs/skills/anthropic-official/skills/pdf/SKILL.md","docs/skills/anthropic-official/skills/pdf/forms.md","docs/skills/anthropic-official/skills/pdf/reference.md","docs/skills/anthropic-official/skills/pdf/scripts/check_bounding_boxes.py","docs/skills/anthropic-official/skills/pdf/scripts/check_bounding_boxes_test.py","docs/skills/anthropic-official/skills/pdf/scripts/check_fillable_fields.py","docs/skills/anthropic-official/skills/pdf/scripts/convert_pdf_to_images.py","docs/skills/anthropic-official/skills/pdf/scripts/create_validation_image.py","docs/skills/anthropic-official/skills/pdf/scripts/extract_form_field_info.py","docs/skills/anthropic-official/skills/pdf/scripts/fill_fillable_fields.py","docs/skills/anthropic-official/skills/pdf/scripts/fill_pdf_form_with_annotations.py","docs/skills/anthropic-official/skills/pptx/LICENSE.txt","docs/skills/anthropic-official/skills/pptx/SKILL.md","docs/skills/anthropic-official/skills/pptx/html2pptx.md","docs/skills/anthropic-official/skills/pptx/ooxml.md","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/mce/mc.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd","docs/skills/anthropic-official/skills/pptx/ooxml/scripts/pack.py","docs/skills/anthropic-official/skills/pptx/ooxml/scripts/unpack.py","docs/skills/anthropic-official/skills/pptx/ooxml/scripts/validate.py","docs/skills/anthropic-official/skills/pptx/ooxml/scripts/validation/__init__.py","docs/skills/anthropic-official/skills/pptx/ooxml/scripts/validation/base.py","docs/skills/anthropic-official/skills/pptx/ooxml/scripts/validation/docx.py","docs/skills/anthropic-official/skills/pptx/ooxml/scripts/validation/pptx.py","docs/skills/anthropic-official/skills/pptx/ooxml/scripts/validation/redlining.py","docs/skills/anthropic-official/skills/pptx/scripts/html2pptx.js","docs/skills/anthropic-official/skills/pptx/scripts/inventory.py","docs/skills/anthropic-official/skills/pptx/scripts/rearrange.py","docs/skills/anthropic-official/skills/pptx/scripts/replace.py","docs/skills/anthropic-official/skills/pptx/scripts/thumbnail.py","docs/skills/anthropic-official/skills/skill-creator/LICENSE.txt","docs/skills/anthropic-official/skills/skill-creator/SKILL.md","docs/skills/anthropic-official/skills/skill-creator/references/output-patterns.md","docs/skills/anthropic-official/skills/skill-creator/references/workflows.md","docs/skills/anthropic-official/skills/skill-creator/scripts/init_skill.py","docs/skills/anthropic-official/skills/skill-creator/scripts/package_skill.py","docs/skills/anthropic-official/skills/skill-creator/scripts/quick_validate.py","docs/skills/anthropic-official/skills/slack-gif-creator/LICENSE.txt","docs/skills/anthropic-official/skills/slack-gif-creator/SKILL.md","docs/skills/anthropic-official/skills/slack-gif-creator/core/easing.py","docs/skills/anthropic-official/skills/slack-gif-creator/core/frame_composer.py","docs/skills/anthropic-official/skills/slack-gif-creator/core/gif_builder.py","docs/skills/anthropic-official/skills/slack-gif-creator/core/validators.py","docs/skills/anthropic-official/skills/slack-gif-creator/requirements.txt","docs/skills/anthropic-official/skills/theme-factory/LICENSE.txt","docs/skills/anthropic-official/skills/theme-factory/SKILL.md","docs/skills/anthropic-official/skills/theme-factory/theme-showcase.pdf","docs/skills/anthropic-official/skills/theme-factory/themes/arctic-frost.md","docs/skills/anthropic-official/skills/theme-factory/themes/botanical-garden.md","docs/skills/anthropic-official/skills/theme-factory/themes/desert-rose.md","docs/skills/anthropic-official/skills/theme-factory/themes/forest-canopy.md","docs/skills/anthropic-official/skills/theme-factory/themes/golden-hour.md","docs/skills/anthropic-official/skills/theme-factory/themes/midnight-galaxy.md","docs/skills/anthropic-official/skills/theme-factory/themes/modern-minimalist.md","docs/skills/anthropic-official/skills/theme-factory/themes/ocean-depths.md","docs/skills/anthropic-official/skills/theme-factory/themes/sunset-boulevard.md","docs/skills/anthropic-official/skills/theme-factory/themes/tech-innovation.md","docs/skills/anthropic-official/skills/web-artifacts-builder/LICENSE.txt","docs/skills/anthropic-official/skills/web-artifacts-builder/SKILL.md","docs/skills/anthropic-official/skills/web-artifacts-builder/scripts/bundle-artifact.sh","docs/skills/anthropic-official/skills/web-artifacts-builder/scripts/init-artifact.sh","docs/skills/anthropic-official/skills/web-artifacts-builder/scripts/shadcn-components.tar.gz","docs/skills/anthropic-official/skills/webapp-testing/LICENSE.txt","docs/skills/anthropic-official/skills/webapp-testing/SKILL.md","docs/skills/anthropic-official/skills/webapp-testing/examples/console_logging.py","docs/skills/anthropic-official/skills/webapp-testing/examples/element_discovery.py","docs/skills/anthropic-official/skills/webapp-testing/examples/static_html_automation.py","docs/skills/anthropic-official/skills/webapp-testing/scripts/with_server.py","docs/skills/anthropic-official/skills/xlsx/LICENSE.txt","docs/skills/anthropic-official/skills/xlsx/SKILL.md","docs/skills/anthropic-official/skills/xlsx/recalc.py","docs/skills/anthropic-official/spec/agent-skills-spec.md","docs/skills/anthropic-official/template/SKILL.md","docs/skills/awesome-skills/.gitignore","docs/skills/awesome-skills/CONTRIBUTING.md","docs/skills/awesome-skills/README.md","docs/skills/backend-patterns/SKILL.md","docs/skills/clickhouse-io/SKILL.md","docs/skills/coding-standards/SKILL.md","docs/skills/continuous-learning/SKILL.md","docs/skills/continuous-learning/config.json","docs/skills/continuous-learning/evaluate-session.sh","docs/skills/daymade-skills/.claude-plugin/marketplace.json","docs/skills/daymade-skills/.github/ISSUE_TEMPLATE/bug_report.md","docs/skills/daymade-skills/.github/ISSUE_TEMPLATE/feature_request.md","docs/skills/daymade-skills/.github/PULL_REQUEST_TEMPLATE.md","docs/skills/daymade-skills/.gitignore","docs/skills/daymade-skills/AGENTS.md","docs/skills/daymade-skills/CHANGELOG.md","docs/skills/daymade-skills/CLAUDE.md","docs/skills/daymade-skills/CONTRIBUTING.md","docs/skills/daymade-skills/LICENSE","docs/skills/daymade-skills/QUICKSTART.md","docs/skills/daymade-skills/QUICKSTART.zh-CN.md","docs/skills/daymade-skills/README.md","docs/skills/daymade-skills/README.zh-CN.md","docs/skills/daymade-skills/claude-code-history-files-finder/.INTEGRATION_SUMMARY.md","docs/skills/daymade-skills/claude-code-history-files-finder/.security-scan-passed","docs/skills/daymade-skills/claude-code-history-files-finder/SKILL.md","docs/skills/daymade-skills/claude-code-history-files-finder/references/session_file_format.md","docs/skills/daymade-skills/claude-code-history-files-finder/references/workflow_examples.md","docs/skills/daymade-skills/claude-code-history-files-finder/scripts/analyze_sessions.py","docs/skills/daymade-skills/claude-code-history-files-finder/scripts/recover_content.py","docs/skills/daymade-skills/claude-md-progressive-disclosurer/.security-scan-passed","docs/skills/daymade-skills/claude-md-progressive-disclosurer/SKILL.md","docs/skills/daymade-skills/claude-md-progressive-disclosurer/references/progressive_disclosure_principles.md","docs/skills/daymade-skills/cli-demo-generator/SKILL.md","docs/skills/daymade-skills/cli-demo-generator/assets/examples/batch-config.yaml","docs/skills/daymade-skills/cli-demo-generator/assets/templates/basic.tape","docs/skills/daymade-skills/cli-demo-generator/assets/templates/interactive.tape","docs/skills/daymade-skills/cli-demo-generator/references/best_practices.md","docs/skills/daymade-skills/cli-demo-generator/references/vhs_syntax.md","docs/skills/daymade-skills/cli-demo-generator/scripts/auto_generate_demo.py","docs/skills/daymade-skills/cli-demo-generator/scripts/batch_generate.py","docs/skills/daymade-skills/cli-demo-generator/scripts/record_interactive.sh","docs/skills/daymade-skills/cloudflare-troubleshooting/SKILL.md","docs/skills/daymade-skills/cloudflare-troubleshooting/references/api_overview.md","docs/skills/daymade-skills/cloudflare-troubleshooting/references/common_issues.md","docs/skills/daymade-skills/cloudflare-troubleshooting/references/ssl_modes.md","docs/skills/daymade-skills/cloudflare-troubleshooting/scripts/check_cloudflare_config.py","docs/skills/daymade-skills/cloudflare-troubleshooting/scripts/fix_ssl_mode.py","docs/skills/daymade-skills/demos/README.md","docs/skills/daymade-skills/demos/cli-demo-generator/generate-demo.gif","docs/skills/daymade-skills/demos/cli-demo-generator/generate-demo.tape","docs/skills/daymade-skills/demos/generate_all_demos.sh","docs/skills/daymade-skills/demos/github-ops/create-pr.gif","docs/skills/daymade-skills/demos/github-ops/create-pr.tape","docs/skills/daymade-skills/demos/index.html","docs/skills/daymade-skills/demos/llm-icon-finder/find-icons.gif","docs/skills/daymade-skills/demos/llm-icon-finder/find-icons.tape","docs/skills/daymade-skills/demos/markdown-tools/convert-docs.gif","docs/skills/daymade-skills/demos/markdown-tools/convert-docs.tape","docs/skills/daymade-skills/demos/mermaid-tools/extract-diagrams.gif","docs/skills/daymade-skills/demos/mermaid-tools/extract-diagrams.tape","docs/skills/daymade-skills/demos/ppt-creator/create-presentation.gif","docs/skills/daymade-skills/demos/ppt-creator/create-presentation.tape","docs/skills/daymade-skills/demos/repomix-unmixer/extract-repo.gif","docs/skills/daymade-skills/demos/repomix-unmixer/extract-repo.tape","docs/skills/daymade-skills/demos/skill-creator/init-skill.gif","docs/skills/daymade-skills/demos/skill-creator/init-skill.tape","docs/skills/daymade-skills/demos/skill-creator/package-skill.gif","docs/skills/daymade-skills/demos/skill-creator/package-skill.tape","docs/skills/daymade-skills/demos/skill-creator/validate-skill.gif","docs/skills/daymade-skills/demos/skill-creator/validate-skill.tape","docs/skills/daymade-skills/demos/statusline-generator/customize-statusline.gif","docs/skills/daymade-skills/demos/statusline-generator/customize-statusline.tape","docs/skills/daymade-skills/demos/teams-channel-post-writer/write-post.gif","docs/skills/daymade-skills/demos/teams-channel-post-writer/write-post.tape","docs/skills/daymade-skills/demos/ui-designer/extract-design-system.gif","docs/skills/daymade-skills/demos/ui-designer/extract-design-system.tape","docs/skills/daymade-skills/demos/youtube-downloader/download-video.gif","docs/skills/daymade-skills/demos/youtube-downloader/download-video.tape","docs/skills/daymade-skills/docs-cleaner/.security-scan-passed","docs/skills/daymade-skills/docs-cleaner/SKILL.md","docs/skills/daymade-skills/docs-cleaner/references/value_analysis_template.md","docs/skills/daymade-skills/fact-checker/.security-scan-passed","docs/skills/daymade-skills/fact-checker/README.md","docs/skills/daymade-skills/fact-checker/SKILL.md","docs/skills/daymade-skills/github-contributor/.security-scan-passed","docs/skills/daymade-skills/github-contributor/SKILL.md","docs/skills/daymade-skills/github-contributor/references/communication_templates.md","docs/skills/daymade-skills/github-contributor/references/pr_checklist.md","docs/skills/daymade-skills/github-contributor/references/project_evaluation.md","docs/skills/daymade-skills/github-ops/SKILL.md","docs/skills/daymade-skills/github-ops/references/api_reference.md","docs/skills/daymade-skills/github-ops/references/best_practices.md","docs/skills/daymade-skills/github-ops/references/issue_operations.md","docs/skills/daymade-skills/github-ops/references/pr_operations.md","docs/skills/daymade-skills/github-ops/references/workflow_operations.md","docs/skills/daymade-skills/iOS-APP-developer/.security-scan-passed","docs/skills/daymade-skills/iOS-APP-developer/SKILL.md","docs/skills/daymade-skills/iOS-APP-developer/references/camera-avfoundation.md","docs/skills/daymade-skills/iOS-APP-developer/references/swiftui-compatibility.md","docs/skills/daymade-skills/iOS-APP-developer/references/testing-mainactor.md","docs/skills/daymade-skills/iOS-APP-developer/references/xcodegen-full.md","docs/skills/daymade-skills/llm-icon-finder/SKILL.md","docs/skills/daymade-skills/llm-icon-finder/references/developer-info.md","docs/skills/daymade-skills/llm-icon-finder/references/icons-list.md","docs/skills/daymade-skills/macos-cleaner/.security-scan-passed","docs/skills/daymade-skills/macos-cleaner/SKILL.md","docs/skills/daymade-skills/macos-cleaner/references/cleanup_targets.md","docs/skills/daymade-skills/macos-cleaner/references/mole_integration.md","docs/skills/daymade-skills/macos-cleaner/references/safety_rules.md","docs/skills/daymade-skills/macos-cleaner/scripts/analyze_caches.py","docs/skills/daymade-skills/macos-cleaner/scripts/analyze_dev_env.py","docs/skills/daymade-skills/macos-cleaner/scripts/analyze_large_files.py","docs/skills/daymade-skills/macos-cleaner/scripts/cleanup_report.py","docs/skills/daymade-skills/macos-cleaner/scripts/find_app_remnants.py","docs/skills/daymade-skills/macos-cleaner/scripts/safe_delete.py","docs/skills/daymade-skills/markdown-tools/SKILL.md","docs/skills/daymade-skills/markdown-tools/references/conversion-examples.md","docs/skills/daymade-skills/markdown-tools/scripts/convert_path.py","docs/skills/daymade-skills/markdown-tools/scripts/extract_pdf_images.py","docs/skills/daymade-skills/mermaid-tools/SKILL.md","docs/skills/daymade-skills/mermaid-tools/references/setup_and_troubleshooting.md","docs/skills/daymade-skills/mermaid-tools/scripts/extract-and-generate.sh","docs/skills/daymade-skills/mermaid-tools/scripts/extract_diagrams.py","docs/skills/daymade-skills/mermaid-tools/scripts/puppeteer-config.json","docs/skills/daymade-skills/pdf-creator/.security-scan-passed","docs/skills/daymade-skills/pdf-creator/SKILL.md","docs/skills/daymade-skills/pdf-creator/scripts/batch_convert.py","docs/skills/daymade-skills/pdf-creator/scripts/md_to_pdf.py","docs/skills/daymade-skills/ppt-creator/SKILL.md","docs/skills/daymade-skills/ppt-creator/references/CHECKLIST.md","docs/skills/daymade-skills/ppt-creator/references/EXAMPLES.md","docs/skills/daymade-skills/ppt-creator/references/INTAKE.md","docs/skills/daymade-skills/ppt-creator/references/ORCHESTRATION_DATA_CHARTS.md","docs/skills/daymade-skills/ppt-creator/references/ORCHESTRATION_OVERVIEW.md","docs/skills/daymade-skills/ppt-creator/references/ORCHESTRATION_PPTX.md","docs/skills/daymade-skills/ppt-creator/references/RUBRIC.md","docs/skills/daymade-skills/ppt-creator/references/STYLE-GUIDE.md","docs/skills/daymade-skills/ppt-creator/references/TEMPLATES.md","docs/skills/daymade-skills/ppt-creator/references/VIS-GUIDE.md","docs/skills/daymade-skills/ppt-creator/references/WORKFLOW.md","docs/skills/daymade-skills/ppt-creator/scripts/chartkit.py","docs/skills/daymade-skills/prompt-optimizer/.security-scan-passed","docs/skills/daymade-skills/prompt-optimizer/SKILL.md","docs/skills/daymade-skills/prompt-optimizer/references/advanced_techniques.md","docs/skills/daymade-skills/prompt-optimizer/references/domain_theories.md","docs/skills/daymade-skills/prompt-optimizer/references/ears_syntax.md","docs/skills/daymade-skills/prompt-optimizer/references/examples.md","docs/skills/daymade-skills/promptfoo-evaluation/.security-scan-passed","docs/skills/daymade-skills/promptfoo-evaluation/SKILL.md","docs/skills/daymade-skills/promptfoo-evaluation/references/promptfoo_api.md","docs/skills/daymade-skills/qa-expert/.security-scan-passed","docs/skills/daymade-skills/qa-expert/SKILL.md","docs/skills/daymade-skills/qa-expert/assets/templates/TEST-CASE-TEMPLATE.md","docs/skills/daymade-skills/qa-expert/references/day1_onboarding.md","docs/skills/daymade-skills/qa-expert/references/google_testing_standards.md","docs/skills/daymade-skills/qa-expert/references/ground_truth_principle.md","docs/skills/daymade-skills/qa-expert/references/llm_prompts_library.md","docs/skills/daymade-skills/qa-expert/references/master_qa_prompt.md","docs/skills/daymade-skills/qa-expert/scripts/calculate_metrics.py","docs/skills/daymade-skills/qa-expert/scripts/init_qa_project.py","docs/skills/daymade-skills/repomix-safe-mixer/SKILL.md","docs/skills/daymade-skills/repomix-safe-mixer/references/common_secrets.md","docs/skills/daymade-skills/repomix-safe-mixer/scripts/safe_pack.py","docs/skills/daymade-skills/repomix-safe-mixer/scripts/scan_secrets.py","docs/skills/daymade-skills/repomix-unmixer/README.md","docs/skills/daymade-skills/repomix-unmixer/SKILL.md","docs/skills/daymade-skills/repomix-unmixer/references/repomix-format.md","docs/skills/daymade-skills/repomix-unmixer/references/validation-workflow.md","docs/skills/daymade-skills/repomix-unmixer/scripts/unmix_repomix.py","docs/skills/daymade-skills/scripts/install.ps1","docs/skills/daymade-skills/scripts/install.sh","docs/skills/daymade-skills/skill-creator/.gitignore","docs/skills/daymade-skills/skill-creator/LICENSE.txt","docs/skills/daymade-skills/skill-creator/SKILL.md","docs/skills/daymade-skills/skill-creator/scripts/init_skill.py","docs/skills/daymade-skills/skill-creator/scripts/package_skill.py","docs/skills/daymade-skills/skill-creator/scripts/quick_validate.py","docs/skills/daymade-skills/skill-creator/scripts/security_scan.py","docs/skills/daymade-skills/skill-reviewer/.security-scan-passed","docs/skills/daymade-skills/skill-reviewer/SKILL.md","docs/skills/daymade-skills/skill-reviewer/references/evaluation_checklist.md","docs/skills/daymade-skills/skill-reviewer/references/marketplace_template.json","docs/skills/daymade-skills/skill-reviewer/references/pr_template.md","docs/skills/daymade-skills/skills-search/.security-scan-passed","docs/skills/daymade-skills/skills-search/SKILL.md","docs/skills/daymade-skills/statusline-generator/SKILL.md","docs/skills/daymade-skills/statusline-generator/references/ccusage_integration.md","docs/skills/daymade-skills/statusline-generator/references/color_codes.md","docs/skills/daymade-skills/statusline-generator/scripts/generate_statusline.sh","docs/skills/daymade-skills/statusline-generator/scripts/install_statusline.sh","docs/skills/daymade-skills/teams-channel-post-writer/SKILL.md","docs/skills/daymade-skills/teams-channel-post-writer/assets/post-template.md","docs/skills/daymade-skills/teams-channel-post-writer/references/writing-guidelines.md","docs/skills/daymade-skills/transcript-fixer/.gitignore","docs/skills/daymade-skills/transcript-fixer/SKILL.md","docs/skills/daymade-skills/transcript-fixer/references/architecture.md","docs/skills/daymade-skills/transcript-fixer/references/best_practices.md","docs/skills/daymade-skills/transcript-fixer/references/database_schema.md","docs/skills/daymade-skills/transcript-fixer/references/dictionary_guide.md","docs/skills/daymade-skills/transcript-fixer/references/file_formats.md","docs/skills/daymade-skills/transcript-fixer/references/glm_api_setup.md","docs/skills/daymade-skills/transcript-fixer/references/installation_setup.md","docs/skills/daymade-skills/transcript-fixer/references/iteration_workflow.md","docs/skills/daymade-skills/transcript-fixer/references/quick_reference.md","docs/skills/daymade-skills/transcript-fixer/references/script_parameters.md","docs/skills/daymade-skills/transcript-fixer/references/sql_queries.md","docs/skills/daymade-skills/transcript-fixer/references/team_collaboration.md","docs/skills/daymade-skills/transcript-fixer/references/troubleshooting.md","docs/skills/daymade-skills/transcript-fixer/references/workflow_guide.md","docs/skills/daymade-skills/transcript-fixer/requirements.txt","docs/skills/daymade-skills/transcript-fixer/scripts/__init__.py","docs/skills/daymade-skills/transcript-fixer/scripts/check_type_hints.py","docs/skills/daymade-skills/transcript-fixer/scripts/cli/__init__.py","docs/skills/daymade-skills/transcript-fixer/scripts/cli/argument_parser.py","docs/skills/daymade-skills/transcript-fixer/scripts/cli/commands.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/__init__.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/ai_processor.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/ai_processor_async.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/change_extractor.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/connection_pool.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/correction_repository.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/correction_service.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/dictionary_processor.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/learning_engine.py","docs/skills/daymade-skills/transcript-fixer/scripts/core/schema.sql","docs/skills/daymade-skills/transcript-fixer/scripts/ensure_deps.py","docs/skills/daymade-skills/transcript-fixer/scripts/examples/bulk_import.py","docs/skills/daymade-skills/transcript-fixer/scripts/fix_transcript_enhanced.py","docs/skills/daymade-skills/transcript-fixer/scripts/fix_transcription.py","docs/skills/daymade-skills/transcript-fixer/scripts/generate_word_diff.py","docs/skills/daymade-skills/transcript-fixer/scripts/tests/__init__.py","docs/skills/daymade-skills/transcript-fixer/scripts/tests/test_audit_log_retention.py","docs/skills/daymade-skills/transcript-fixer/scripts/tests/test_connection_pool.py","docs/skills/daymade-skills/transcript-fixer/scripts/tests/test_correction_service.py","docs/skills/daymade-skills/transcript-fixer/scripts/tests/test_domain_validator.py","docs/skills/daymade-skills/transcript-fixer/scripts/tests/test_error_recovery.py","docs/skills/daymade-skills/transcript-fixer/scripts/tests/test_learning_engine.py","docs/skills/daymade-skills/transcript-fixer/scripts/tests/test_path_validator.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/__init__.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/audit_log_retention.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/concurrency_manager.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/config.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/database_migration.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/db_migrations_cli.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/diff_formats/__init__.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/diff_formats/change_extractor.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/diff_formats/html_format.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/diff_formats/inline_format.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/diff_formats/markdown_format.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/diff_formats/text_splitter.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/diff_formats/unified_format.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/diff_generator.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/domain_validator.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/health_check.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/logging_config.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/metrics.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/migrations.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/path_validator.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/rate_limiter.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/retry_logic.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/security.py","docs/skills/daymade-skills/transcript-fixer/scripts/utils/validation.py","docs/skills/daymade-skills/twitter-reader/.security-scan-passed","docs/skills/daymade-skills/twitter-reader/SKILL.md","docs/skills/daymade-skills/twitter-reader/scripts/fetch_tweet.py","docs/skills/daymade-skills/twitter-reader/scripts/fetch_tweets.sh","docs/skills/daymade-skills/ui-designer/SKILL.md","docs/skills/daymade-skills/ui-designer/assets/app-overview-generator.md","docs/skills/daymade-skills/ui-designer/assets/design-system.md","docs/skills/daymade-skills/ui-designer/assets/vibe-design-template.md","docs/skills/daymade-skills/video-comparer/.security-scan-passed","docs/skills/daymade-skills/video-comparer/README.md","docs/skills/daymade-skills/video-comparer/SKILL.md","docs/skills/daymade-skills/video-comparer/assets/template.html","docs/skills/daymade-skills/video-comparer/references/configuration.md","docs/skills/daymade-skills/video-comparer/references/ffmpeg_commands.md","docs/skills/daymade-skills/video-comparer/references/video_metrics.md","docs/skills/daymade-skills/video-comparer/scripts/compare.py","docs/skills/daymade-skills/youtube-downloader/.security-scan-passed","docs/skills/daymade-skills/youtube-downloader/SKILL.md","docs/skills/daymade-skills/youtube-downloader/references/po-token-setup.md","docs/skills/daymade-skills/youtube-downloader/scripts/download_video.py","docs/skills/eval-harness/SKILL.md","docs/skills/frontend-patterns/SKILL.md","docs/skills/haizhan-ime-development.md","docs/skills/hizan-official/.claude-plugin/marketplace.json","docs/skills/hizan-official/skills/arch/SKILL.md","docs/skills/hizan-official/skills/game/SKILL.md","docs/skills/hizan-official/skills/quality/SKILL.md","docs/skills/hizan-official/skills/work/SKILL.md","docs/skills/juhi/tool-usage.md","docs/skills/mhattingpete-skills/.claude-plugin/marketplace.json","docs/skills/mhattingpete-skills/.claude/install-gh.sh","docs/skills/mhattingpete-skills/.claude/settings.json","docs/skills/mhattingpete-skills/.gitignore","docs/skills/mhattingpete-skills/CHANGELOG.md","docs/skills/mhattingpete-skills/CLAUDE.md","docs/skills/mhattingpete-skills/CONTRIBUTING.md","docs/skills/mhattingpete-skills/LICENSE","docs/skills/mhattingpete-skills/README.md","docs/skills/mhattingpete-skills/assets/skill-loading.gif","docs/skills/mhattingpete-skills/code-operations-plugin/.claude-plugin/plugin.json","docs/skills/mhattingpete-skills/code-operations-plugin/README.md","docs/skills/mhattingpete-skills/code-operations-plugin/skills/code-execution/SKILL.md","docs/skills/mhattingpete-skills/code-operations-plugin/skills/code-execution/examples/bulk_refactor.py","docs/skills/mhattingpete-skills/code-operations-plugin/skills/code-execution/examples/codebase_audit.py","docs/skills/mhattingpete-skills/code-operations-plugin/skills/code-execution/examples/extract_functions.py","docs/skills/mhattingpete-skills/code-operations-plugin/skills/code-refactor/SKILL.md","docs/skills/mhattingpete-skills/code-operations-plugin/skills/code-transfer/SKILL.md","docs/skills/mhattingpete-skills/code-operations-plugin/skills/code-transfer/scripts/line_insert.py","docs/skills/mhattingpete-skills/code-operations-plugin/skills/file-operations/SKILL.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/.claude-plugin/plugin.json","docs/skills/mhattingpete-skills/engineering-workflow-plugin/README.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/agents/ensemble-orchestrator/AGENT.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/agents/plan-implementer.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/commands/pr.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/skills/ensemble-solving/SKILL.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/skills/ensemble-solving/references/diversification-strategies.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/skills/ensemble-solving/references/evaluation-rubrics.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/skills/feature-planning/SKILL.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/skills/feature-planning/references/planning-best-practices.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/skills/git-pushing/SKILL.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/skills/git-pushing/scripts/smart_commit.sh","docs/skills/mhattingpete-skills/engineering-workflow-plugin/skills/review-implementing/SKILL.md","docs/skills/mhattingpete-skills/engineering-workflow-plugin/skills/test-fixing/SKILL.md","docs/skills/mhattingpete-skills/execution-runtime/.env.example","docs/skills/mhattingpete-skills/execution-runtime/README.md","docs/skills/mhattingpete-skills/execution-runtime/api/__init__.py","docs/skills/mhattingpete-skills/execution-runtime/api/code_analysis.py","docs/skills/mhattingpete-skills/execution-runtime/api/code_transform.py","docs/skills/mhattingpete-skills/execution-runtime/api/filesystem.py","docs/skills/mhattingpete-skills/execution-runtime/api/git_operations.py","docs/skills/mhattingpete-skills/execution-runtime/execution_runtime/__init__.py","docs/skills/mhattingpete-skills/execution-runtime/execution_runtime/security/__init__.py","docs/skills/mhattingpete-skills/execution-runtime/execution_runtime/security/import_guard.py","docs/skills/mhattingpete-skills/execution-runtime/execution_runtime/security/pii_detector.py","docs/skills/mhattingpete-skills/execution-runtime/execution_runtime/sessions.py","docs/skills/mhattingpete-skills/execution-runtime/execution_runtime/skills.py","docs/skills/mhattingpete-skills/execution-runtime/mcp-server/mcp_server.py","docs/skills/mhattingpete-skills/execution-runtime/mcp-server/security/pii_detector.py","docs/skills/mhattingpete-skills/execution-runtime/mcp-server/security/sandbox.py","docs/skills/mhattingpete-skills/execution-runtime/pyproject.toml","docs/skills/mhattingpete-skills/execution-runtime/setup.sh","docs/skills/mhattingpete-skills/productivity-skills-plugin/.claude-plugin/plugin.json","docs/skills/mhattingpete-skills/productivity-skills-plugin/README.md","docs/skills/mhattingpete-skills/productivity-skills-plugin/skills/code-auditor/SKILL.md","docs/skills/mhattingpete-skills/productivity-skills-plugin/skills/codebase-documenter/SKILL.md","docs/skills/mhattingpete-skills/productivity-skills-plugin/skills/conversation-analyzer/SKILL.md","docs/skills/mhattingpete-skills/productivity-skills-plugin/skills/conversation-analyzer/scripts/analyze_history.py","docs/skills/mhattingpete-skills/productivity-skills-plugin/skills/project-bootstrapper/SKILL.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/.claude-plugin/plugin.json","docs/skills/mhattingpete-skills/visual-documentation-plugin/EXAMPLES.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/README.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/architecture-diagram-creator/SKILL.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/architecture-diagram-creator/assets/templates/architecture_components.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/architecture-diagram-creator/assets/templates/base_template.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/architecture-diagram-creator/references/example_architecture.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/dashboard-creator/SKILL.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/dashboard-creator/assets/templates/base_template.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/dashboard-creator/assets/templates/dashboard_components.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/dashboard-creator/references/design_patterns.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/dashboard-creator/references/svg_library.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/flowchart-creator/SKILL.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/flowchart-creator/assets/templates/base_template.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/flowchart-creator/assets/templates/flowchart_components.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/flowchart-creator/references/design_patterns.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/flowchart-creator/references/svg_library.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/technical-doc-creator/SKILL.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/technical-doc-creator/assets/templates/base_template.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/technical-doc-creator/references/design_patterns.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/technical-doc-creator/references/svg_library.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/timeline-creator/SKILL.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/timeline-creator/assets/templates/base_template.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/timeline-creator/assets/templates/timeline_components.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/timeline-creator/references/design_patterns.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/skills/timeline-creator/references/svg_library.md","docs/skills/mhattingpete-skills/visual-documentation-plugin/test-outputs/dashboard-test-monitoring.html","docs/skills/mhattingpete-skills/visual-documentation-plugin/test-outputs/flowchart-test-authentication.html","docs/skills/netresearch-marketplace/.claude-plugin/marketplace.json","docs/skills/netresearch-marketplace/.github/workflows/sync-skills.yml","docs/skills/netresearch-marketplace/.gitignore","docs/skills/netresearch-marketplace/.sync-config.json","docs/skills/netresearch-marketplace/README.md","docs/skills/netresearch-marketplace/SYNC-SETUP.md","docs/skills/netresearch-marketplace/VERSIONING.md","docs/skills/netresearch-marketplace/notify-marketplace.yml","docs/skills/netresearch-marketplace/plugins/coach/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/plugins/coach/LICENSE","docs/skills/netresearch-marketplace/plugins/coach/README.md","docs/skills/netresearch-marketplace/plugins/coach/assets/templates/antipattern.md","docs/skills/netresearch-marketplace/plugins/coach/assets/templates/checklist.md","docs/skills/netresearch-marketplace/plugins/coach/assets/templates/rule.md","docs/skills/netresearch-marketplace/plugins/coach/assets/templates/snippet.md","docs/skills/netresearch-marketplace/plugins/coach/commands/approve.md","docs/skills/netresearch-marketplace/plugins/coach/commands/edit.md","docs/skills/netresearch-marketplace/plugins/coach/commands/init.md","docs/skills/netresearch-marketplace/plugins/coach/commands/promote.md","docs/skills/netresearch-marketplace/plugins/coach/commands/reject.md","docs/skills/netresearch-marketplace/plugins/coach/commands/review.md","docs/skills/netresearch-marketplace/plugins/coach/commands/scan.md","docs/skills/netresearch-marketplace/plugins/coach/commands/status.md","docs/skills/netresearch-marketplace/plugins/coach/hooks/hooks.json","docs/skills/netresearch-marketplace/plugins/coach/references/architecture.md","docs/skills/netresearch-marketplace/plugins/coach/references/schema.md","docs/skills/netresearch-marketplace/plugins/coach/references/scope_heuristics.md","docs/skills/netresearch-marketplace/plugins/coach/references/signal_patterns.md","docs/skills/netresearch-marketplace/plugins/coach/scripts/aggregate.py","docs/skills/netresearch-marketplace/plugins/coach/scripts/apply.py","docs/skills/netresearch-marketplace/plugins/coach/scripts/detect_signals.py","docs/skills/netresearch-marketplace/plugins/coach/scripts/fingerprint.py","docs/skills/netresearch-marketplace/plugins/coach/scripts/init_coach.py","docs/skills/netresearch-marketplace/plugins/coach/scripts/ledger.py","docs/skills/netresearch-marketplace/plugins/coach/scripts/propose.py","docs/skills/netresearch-marketplace/plugins/coach/scripts/root_cause_analyzer.py","docs/skills/netresearch-marketplace/plugins/coach/scripts/scope_analyzer.py","docs/skills/netresearch-marketplace/plugins/coach/scripts/skill_analyzer.py","docs/skills/netresearch-marketplace/plugins/coach/skills/coach/SKILL.md","docs/skills/netresearch-marketplace/renovate.json","docs/skills/netresearch-marketplace/skills/agents/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/agents/LICENSE","docs/skills/netresearch-marketplace/skills/agents/README.md","docs/skills/netresearch-marketplace/skills/agents/STATUS.md","docs/skills/netresearch-marketplace/skills/agents/claudedocs/refactoring-summary.md","docs/skills/netresearch-marketplace/skills/agents/composer.json","docs/skills/netresearch-marketplace/skills/agents/docs/ROADMAP.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/SKILL.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/root-thin.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/root-verbose.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/scoped/backend-go.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/scoped/backend-php.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/scoped/cli.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/scoped/documentation.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/scoped/examples.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/scoped/frontend-typescript.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/scoped/resources.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/assets/scoped/testing.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/analysis.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/directory-coverage.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/examples/coding-agent-cli/AGENTS.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/examples/coding-agent-cli/scripts-AGENTS.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/examples/ldap-selfservice/AGENTS.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/examples/ldap-selfservice/internal-AGENTS.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/examples/ldap-selfservice/internal-web-AGENTS.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/examples/simple-ldap-go/AGENTS.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/examples/simple-ldap-go/examples-AGENTS.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/examples/t3x-rte-ckeditor-image/AGENTS.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/references/examples/t3x-rte-ckeditor-image/Classes-AGENTS.md","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/analyze-git-history.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/check-freshness.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/detect-project.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/detect-scopes.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/extract-agent-configs.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/extract-ci-commands.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/extract-commands.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/extract-documentation.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/extract-ide-settings.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/extract-platform-files.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/extract-quality-configs.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/generate-agents.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/lib/summary.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/lib/template.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/validate-structure.sh","docs/skills/netresearch-marketplace/skills/agents/skills/agents/scripts/verify-content.sh","docs/skills/netresearch-marketplace/skills/cli-tools/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/cli-tools/LICENSE","docs/skills/netresearch-marketplace/skills/cli-tools/README.md","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/ansible-core.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/ast-grep.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/aws.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/bandit.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/bat.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/black.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/claude.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/codex.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/compose.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/composer.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/ctags.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/curlie.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/dasel.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/delta.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/direnv.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/dive.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/docker.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/entr.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/eslint.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/fd.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/flake8.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/fx.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/fzf.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/gam.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/gem.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/gh.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/git-absorb.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/git-branchless.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/git-filter-repo.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/git-lfs.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/git.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/gitleaks.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/glab.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/go.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/golangci-lint.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/gosec.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/httpie.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/isort.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/jq.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/just.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/kubectl.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/ninja.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/node.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/npm.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/parallel.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/php.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/pip.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/pipx.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/pnpm.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/poetry.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/pre-commit.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/prename.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/prettier.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/python.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/rbenv.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/rename.ul.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/rga.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/ripgrep.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/ruby-build.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/ruby.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/ruff.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/rust.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/sd.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/semgrep.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/shellcheck.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/shfmt.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/sponge.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/terraform.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/tfsec.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/trivy.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/uv.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/watchexec.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/xsv.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/yarn.json","docs/skills/netresearch-marketplace/skills/cli-tools/catalog/yq.json","docs/skills/netresearch-marketplace/skills/cli-tools/composer.json","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/SKILL.md","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/references/binary_to_tool_map.md","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/references/project_type_requirements.md","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/auto_update.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/check_environment.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/detect_project_type.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/install_composer.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/install_tool.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/installers/aws_installer.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/installers/dedicated_script.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/installers/github_clone.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/installers/github_release_binary.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/installers/hashicorp_zip.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/installers/npm_global.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/installers/npm_self_update.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/installers/package_manager.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/installers/uv_tool.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/lib/capability.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/lib/catalog.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/lib/common.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/lib/dependency.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/lib/install_strategy.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/lib/path_check.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/lib/policy.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/lib/reconcile.sh","docs/skills/netresearch-marketplace/skills/cli-tools/skills/cli-tools/scripts/lib/scope_detection.sh","docs/skills/netresearch-marketplace/skills/context7/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/context7/LICENSE","docs/skills/netresearch-marketplace/skills/context7/README.md","docs/skills/netresearch-marketplace/skills/context7/skills/context7/SKILL.md","docs/skills/netresearch-marketplace/skills/context7/skills/context7/scripts/context7.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/enterprise-readiness/LICENSE","docs/skills/netresearch-marketplace/skills/enterprise-readiness/README.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/templates/ARCHITECTURE.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/templates/BADGE_EXCEPTIONS.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/templates/CODE_OF_CONDUCT.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/templates/GOVERNANCE.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/templates/ROADMAP.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/templates/SECURITY_AUDIT.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/workflows/codeql.yml","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/workflows/dco-check.yml","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/workflows/dependency-review.yml","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/workflows/scorecard.yml","docs/skills/netresearch-marketplace/skills/enterprise-readiness/assets/workflows/slsa-provenance.yml","docs/skills/netresearch-marketplace/skills/enterprise-readiness/composer.json","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/SKILL.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/2fa-enforcement.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/badge-display.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/branch-coverage.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/dco-implementation.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/dynamic-analysis.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/general.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/github.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/go.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/openssf-badge-gold.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/openssf-badge-silver.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/quick-start-guide.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/reproducible-builds.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/security-hardening.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/signed-releases.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/solo-maintainer-guide.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/sonarcloud.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/references/test-invocation.md","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/add-spdx-headers.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/analyze-bus-factor.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/check-branch-coverage.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/check-coverage-threshold.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/check-tls-minimum.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/verify-badge-criteria.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/verify-reproducible-build.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/verify-review-requirements.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/verify-signed-tags.sh","docs/skills/netresearch-marketplace/skills/enterprise-readiness/skills/enterprise-readiness/scripts/verify-spdx-headers.sh","docs/skills/netresearch-marketplace/skills/git-workflow/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/git-workflow/LICENSE","docs/skills/netresearch-marketplace/skills/git-workflow/README.md","docs/skills/netresearch-marketplace/skills/git-workflow/composer.json","docs/skills/netresearch-marketplace/skills/git-workflow/skills/git-workflow/SKILL.md","docs/skills/netresearch-marketplace/skills/git-workflow/skills/git-workflow/references/advanced-git.md","docs/skills/netresearch-marketplace/skills/git-workflow/skills/git-workflow/references/branching-strategies.md","docs/skills/netresearch-marketplace/skills/git-workflow/skills/git-workflow/references/ci-cd-integration.md","docs/skills/netresearch-marketplace/skills/git-workflow/skills/git-workflow/references/commit-conventions.md","docs/skills/netresearch-marketplace/skills/git-workflow/skills/git-workflow/references/github-releases.md","docs/skills/netresearch-marketplace/skills/git-workflow/skills/git-workflow/references/pull-request-workflow.md","docs/skills/netresearch-marketplace/skills/git-workflow/skills/git-workflow/scripts/verify-git-workflow.sh","docs/skills/netresearch-marketplace/skills/github-project/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/github-project/LICENSE","docs/skills/netresearch-marketplace/skills/github-project/README.md","docs/skills/netresearch-marketplace/skills/github-project/composer.json","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/SKILL.md","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/CODEOWNERS.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/CONTRIBUTING.md.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/PULL_REQUEST_TEMPLATE.md.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/SECURITY.md.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/auto-merge-direct.yml.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/auto-merge-queue.yml.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/auto-merge.yml.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/bug_report.md.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/dependabot.yml.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/feature_request.md.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/release-labeler.yml.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/assets/renovate.json.template","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/references/branch-migration.md","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/references/dependency-management.md","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/references/release-labeling.md","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/references/repository-structure.md","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/references/sub-issues.md","docs/skills/netresearch-marketplace/skills/github-project/skills/github-project/scripts/verify-github-project.sh","docs/skills/netresearch-marketplace/skills/go-development/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/go-development/LICENSE","docs/skills/netresearch-marketplace/skills/go-development/README.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/SKILL.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/api-design.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/architecture.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/docker.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/fuzz-testing.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/ldap.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/linting.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/makefile.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/mutation-testing.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/resilience.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/references/testing.md","docs/skills/netresearch-marketplace/skills/go-development/skills/go-development/scripts/verify-go-project.sh","docs/skills/netresearch-marketplace/skills/jira-integration/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/jira-integration/AGENTS.md","docs/skills/netresearch-marketplace/skills/jira-integration/CHANGELOG.md","docs/skills/netresearch-marketplace/skills/jira-integration/CLAUDE.md","docs/skills/netresearch-marketplace/skills/jira-integration/LICENSE","docs/skills/netresearch-marketplace/skills/jira-integration/MIGRATION.md","docs/skills/netresearch-marketplace/skills/jira-integration/PRD.md","docs/skills/netresearch-marketplace/skills/jira-integration/README.md","docs/skills/netresearch-marketplace/skills/jira-integration/SKILL.md","docs/skills/netresearch-marketplace/skills/jira-integration/composer.json","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/AGENTS.md","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/SKILL.md","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/references/jql-quick-reference.md","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/references/troubleshooting.md","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/core/jira-attachment.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/core/jira-issue.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/core/jira-search.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/core/jira-setup.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/core/jira-validate.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/core/jira-worklog.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/lib/__init__.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/lib/client.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/lib/config.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/lib/output.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/utility/jira-fields.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/utility/jira-link.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/utility/jira-user.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/workflow/jira-board.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/workflow/jira-comment.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/workflow/jira-create.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/workflow/jira-sprint.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-communication/scripts/workflow/jira-transition.py","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-syntax/AGENTS.md","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-syntax/SKILL.md","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-syntax/references/jira-syntax-quick-reference.md","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-syntax/scripts/validate-jira-syntax.sh","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-syntax/templates/bug-report-template.md","docs/skills/netresearch-marketplace/skills/jira-integration/skills/jira-syntax/templates/feature-request-template.md","docs/skills/netresearch-marketplace/skills/netresearch-branding/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/netresearch-branding/LICENSE","docs/skills/netresearch-marketplace/skills/netresearch-branding/README.md","docs/skills/netresearch-marketplace/skills/netresearch-branding/assets/logos/netresearch-symbol-only.svg","docs/skills/netresearch-marketplace/skills/netresearch-branding/composer.json","docs/skills/netresearch-marketplace/skills/netresearch-branding/examples/components.html","docs/skills/netresearch-marketplace/skills/netresearch-branding/skills/netresearch-branding/SKILL.md","docs/skills/netresearch-marketplace/skills/netresearch-branding/skills/netresearch-branding/references/colors.md","docs/skills/netresearch-marketplace/skills/netresearch-branding/skills/netresearch-branding/references/typo3-extension-branding.md","docs/skills/netresearch-marketplace/skills/netresearch-branding/skills/netresearch-branding/references/typography.md","docs/skills/netresearch-marketplace/skills/netresearch-branding/skills/netresearch-branding/references/web-design.md","docs/skills/netresearch-marketplace/skills/netresearch-branding/skills/netresearch-branding/templates/landing-page.html","docs/skills/netresearch-marketplace/skills/netresearch-branding/skills/netresearch-branding/templates/styles.css","docs/skills/netresearch-marketplace/skills/php-modernization/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/php-modernization/LICENSE","docs/skills/netresearch-marketplace/skills/php-modernization/README.md","docs/skills/netresearch-marketplace/skills/php-modernization/composer.json","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/SKILL.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/references/adapter-registry-pattern.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/references/migration-strategies.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/references/php8-features.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/references/phpstan-compliance.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/references/psr-per-compliance.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/references/request-dtos.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/references/static-analysis-tools.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/references/symfony-patterns.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/references/type-safety.md","docs/skills/netresearch-marketplace/skills/php-modernization/skills/php-modernization/scripts/verify-php-project.sh","docs/skills/netresearch-marketplace/skills/security-audit/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/security-audit/LICENSE","docs/skills/netresearch-marketplace/skills/security-audit/README.md","docs/skills/netresearch-marketplace/skills/security-audit/composer.json","docs/skills/netresearch-marketplace/skills/security-audit/skills/security-audit/SKILL.md","docs/skills/netresearch-marketplace/skills/security-audit/skills/security-audit/references/api-key-encryption.md","docs/skills/netresearch-marketplace/skills/security-audit/skills/security-audit/references/cvss-scoring.md","docs/skills/netresearch-marketplace/skills/security-audit/skills/security-audit/references/owasp-top10.md","docs/skills/netresearch-marketplace/skills/security-audit/skills/security-audit/references/xxe-prevention.md","docs/skills/netresearch-marketplace/skills/security-audit/skills/security-audit/scripts/security-audit.sh","docs/skills/netresearch-marketplace/skills/skill-repo/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/skill-repo/LICENSE","docs/skills/netresearch-marketplace/skills/skill-repo/README.md","docs/skills/netresearch-marketplace/skills/skill-repo/composer.json","docs/skills/netresearch-marketplace/skills/skill-repo/renovate.json","docs/skills/netresearch-marketplace/skills/skill-repo/skills/skill-repo/SKILL.md","docs/skills/netresearch-marketplace/skills/skill-repo/skills/skill-repo/references/composer-setup.md","docs/skills/netresearch-marketplace/skills/skill-repo/skills/skill-repo/references/installation-methods.md","docs/skills/netresearch-marketplace/skills/skill-repo/skills/skill-repo/references/marketplace-integration.md","docs/skills/netresearch-marketplace/skills/skill-repo/skills/skill-repo/scripts/validate-skill.sh","docs/skills/netresearch-marketplace/skills/skill-repo/skills/skill-repo/templates/README.md.template","docs/skills/netresearch-marketplace/skills/skill-repo/skills/skill-repo/templates/composer.json.template","docs/skills/netresearch-marketplace/skills/skill-repo/skills/skill-repo/templates/release.yml.template","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/LICENSE","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/README.md","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/composer.json","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/skills/typo3-ckeditor5/SKILL.md","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/skills/typo3-ckeditor5/references/ckeditor5-architecture.md","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/skills/typo3-ckeditor5/references/migration-guide.md","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/skills/typo3-ckeditor5/references/plugin-development.md","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/skills/typo3-ckeditor5/references/typo3-integration.md","docs/skills/netresearch-marketplace/skills/typo3-ckeditor5/skills/typo3-ckeditor5/scripts/verify-ckeditor5.sh","docs/skills/netresearch-marketplace/skills/typo3-conformance/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/typo3-conformance/LICENSE","docs/skills/netresearch-marketplace/skills/typo3-conformance/README.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/composer.json","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/SKILL.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/assets/.github/workflows/publish-to-ter.yml","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/backend-module-v13.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/backend-wizard-patterns.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/best-practices.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/coding-guidelines.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/composer-validation.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/crowdin-integration.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/development-environment.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/directory-structure.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/dual-version-compatibility.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/excellence-indicators.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/ext-emconf-validation.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/ext-files-validation.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/extension-architecture.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/hooks-and-events.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/multi-tier-configuration.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/php-architecture.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/report-template.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/runtests-validation.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/ter-publishing.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/testing-standards.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/v13-deprecations.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/references/version-requirements.md","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/scripts/check-architecture.sh","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/scripts/check-coding-standards.sh","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/scripts/check-conformance.sh","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/scripts/check-documentation.sh","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/scripts/check-file-structure.sh","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/scripts/check-phpstan-baseline.sh","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/scripts/check-testing.sh","docs/skills/netresearch-marketplace/skills/typo3-conformance/skills/typo3-conformance/scripts/generate-report.sh","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/LICENSE","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/README.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/assets/commit-template.txt","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/claudedocs/refactoring-summary.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/composer.json","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/SKILL.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/references/account-setup.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/references/commit-message-format.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/references/commit-msg-hook.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/references/ddev-setup-workflow.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/references/forge-api.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/references/gerrit-review-patterns.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/references/gerrit-workflow.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/references/modern-typo3-patterns.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/references/troubleshooting.md","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/scripts/create-commit-message.py","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/scripts/create-forge-issue.sh","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/scripts/query-forge-metadata.sh","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/scripts/setup-typo3-coredev.sh","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/scripts/validate-commit-message.py","docs/skills/netresearch-marketplace/skills/typo3-core-contributions/skills/typo3-core-contributions/scripts/verify-prerequisites.sh","docs/skills/netresearch-marketplace/skills/typo3-ddev/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/typo3-ddev/LICENSE","docs/skills/netresearch-marketplace/skills/typo3-ddev/README.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/composer.json","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/SKILL.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/.envrc","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/Makefile.template","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/README-SERVICES.md.optional","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/apache/apache-site.conf","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/host/docs","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/host/pre-start-git-info","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/host/setup","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/install-all","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/install-v11","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/install-v12","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/install-v13","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/web/configure-extension.optional","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/web/generate-index","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/web/generate-makefile","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/commands/web/install-introduction.optional","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/config.redis.php.example","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/config.yaml","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/docker-compose.git-info.yaml","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/docker-compose.ofelia.yaml.optional","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/docker-compose.services-redis.yaml.optional","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/docker-compose.services.yaml.optional","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/docker-compose.web.yaml","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/homeadditions/.bashrc_additions.optional","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/index.html.netresearch.template","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/index.html.typo3.template","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/web-build/Dockerfile","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/web-build/install-cron.sh.optional","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/assets/templates/web-entrypoint.d/10-cleanup-index.sh","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/0001-valkey-default-with-redis-alternative.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/0002-mariadb-default-with-database-alternatives.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/0003-php-version-management.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/advanced-options.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/documentation-rendering.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/index-page-generation.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/prerequisites-validation.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/quickstart.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/troubleshooting.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/typo3-12-cli-changes.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/windows-fixes.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/references/windows-optimizations.md","docs/skills/netresearch-marketplace/skills/typo3-ddev/skills/typo3-ddev/scripts/validate-prerequisites.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/typo3-docs/LICENSE","docs/skills/netresearch-marketplace/skills/typo3-docs/README.md","docs/skills/netresearch-marketplace/skills/typo3-docs/composer.json","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/SKILL.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/assets/AGENTS.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/architecture-decision-records.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/code-structure-elements.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/coding-guidelines.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/content-directives.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/documentation-coverage-analysis.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/extraction-patterns.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/file-structure.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/guides-xml.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/intercept-deployment.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/rendering.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/rst-syntax.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/screenshots.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/text-roles-inline-code.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/typo3-directives.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/references/typo3-extension-architecture.md","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/add-agents-md.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/analyze-docs.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/extract-all.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/extract-build-configs.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/extract-composer.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/extract-extension-config.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/extract-php.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/extract-project-files.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/extract-repo-metadata.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/render_docs.sh","docs/skills/netresearch-marketplace/skills/typo3-docs/skills/typo3-docs/scripts/validate_docs.sh","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/LICENSE","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/README.md","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/composer.json","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/SKILL.md","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/assets/.php-cs-fixer.php","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/assets/fractor.php","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/assets/phpstan.neon","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/assets/phpunit.xml","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/assets/rector.php","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/references/api-changes.md","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/references/dual-compatibility.md","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/references/pre-upgrade.md","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/references/real-world-patterns.md","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/references/upgrade-v11-to-v12.md","docs/skills/netresearch-marketplace/skills/typo3-extension-upgrade/skills/typo3-extension-upgrade/references/upgrade-v12-to-v13.md","docs/skills/netresearch-marketplace/skills/typo3-testing/.claude-plugin/plugin.json","docs/skills/netresearch-marketplace/skills/typo3-testing/LICENSE","docs/skills/netresearch-marketplace/skills/typo3-testing/README.md","docs/skills/netresearch-marketplace/skills/typo3-testing/composer.json","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/SKILL.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/.php-cs-fixer.dist.php","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/AGENTS.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/FunctionalTests.xml","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/FunctionalTestsBootstrap.php","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/Makefile","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/UnitTests.xml","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/UnitTestsBootstrap.php","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/bootstrap.php","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/codecov.yml","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/docker/codeception.yml","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/docker/docker-compose.yml","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/example-tests/ExampleAcceptanceCest.php","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/example-tests/ExampleFunctionalTest.php","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/example-tests/ExampleUnitTest.php","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/fixtures/README.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/fixtures/be_users.csv","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/fixtures/pages.csv","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/fixtures/sys_category.csv","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/fixtures/tt_content.csv","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/github-actions-e2e.yml","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/github-actions-tests.yml","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/infection.json5","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/phpat.neon","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/phpat.php","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/phpstan-baseline.neon","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/phpstan.neon","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/assets/rector.php","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/accessibility-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/architecture-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/ci-cd.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/crypto-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/ddev-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/e2e-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/functional-test-patterns.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/functional-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/fuzz-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/integration-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/javascript-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/mutation-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/performance-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/quality-tools.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/sonarcloud.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/test-runners.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/typo3-v14-final-classes.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/references/unit-testing.md","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/scripts/generate-test.sh","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/scripts/setup-testing.sh","docs/skills/netresearch-marketplace/skills/typo3-testing/skills/typo3-testing/scripts/validate-setup.sh","docs/skills/netresearch-marketplace/update-source-repos.sh","docs/skills/project-guidelines-example/SKILL.md","docs/skills/security-review/SKILL.md","docs/skills/strategic-compact/SKILL.md","docs/skills/strategic-compact/suggest-compact.sh","docs/skills/tdd-workflow/SKILL.md","docs/skills/verification-loop/SKILL.md","docs/话术库导出_20251231103252.xlsx","docs_archive/AI_INPUT_METHOD_BRAINSTORM.md","docs_archive/ANDROID_100_PERCENT_PLAN.md","docs_archive/ANDROID_NATIVE_REPLACEMENT_DETAILED_PLAN.md","docs_archive/ANDROID_NATIVE_REPLACEMENT_PLAN.md","docs_archive/API.md","docs_archive/APPLE_PLATFORM_DEVELOPMENT_PLAN.md","docs_archive/ARCHITECTURE.md","docs_archive/ARCHITECTURE_COMPACT.md","docs_archive/CLAUDE.md","docs_archive/COMPREHENSIVE_IMPROVEMENT_PLAN.md","docs_archive/DEPLOYMENT.md","docs_archive/DESIGN_BASED_DEVELOPMENT_PLAN.md","docs_archive/DEVELOPMENT_ROADMAP.md","docs_archive/DICTIONARY_IMPROVEMENT_PLAN.md","docs_archive/DOCS_INDEX.md","docs_archive/IMPLEMENTATION_PLAN.md","docs_archive/IMPROVEMENT_RECOMMENDATIONS.md","docs_archive/IOS_DEVELOPMENT_PLAN.md","docs_archive/NEXT_STEPS_PLAN.md","docs_archive/PINYIN_DEVELOPMENT_PLAN.md","docs_archive/PRD.md","docs_archive/PROGRESS_TRACKER.md","docs_archive/README.md","docs_archive/REDLINES.md","docs_archive/SMART_RECOGNITION_COMPACT.md","docs_archive/TECHNICAL_ARCHITECTURE.md","docs_archive/UI_DEVELOPMENT_PLAN.md","docs_archive/smart-recognition-design.md","flutter_app/assets/fonts/PingFang-Medium.ttf","flutter_app/assets/fonts/PingFang-Regular.ttf","flutter_app/assets/fonts/PingFang-Semibold.ttf","flutter_app/assets/icons/.gitkeep","flutter_app/assets/images/.gitkeep","flutter_app/lib/core/bridge/bridge_models.dart","flutter_app/lib/core/bridge/bridge_response_parser.dart","flutter_app/lib/core/bridge/haizhan_bridge.dart","flutter_app/lib/core/di/service_locator.dart","flutter_app/lib/core/router/app_router.dart","flutter_app/lib/core/router/routes.dart","flutter_app/lib/core/theme/app_colors.dart","flutter_app/lib/core/theme/app_theme.dart","flutter_app/lib/core/theme/app_typography.dart","flutter_app/lib/features/auth/data/auth_provider.dart","flutter_app/lib/features/auth/data/auth_repository.dart","flutter_app/lib/features/auth/domain/auth_models.dart","flutter_app/lib/features/auth/presentation/login_screen.dart","flutter_app/lib/features/auth/presentation/register_screen.dart","flutter_app/lib/features/chat/data/ai_provider.dart","flutter_app/lib/features/chat/data/ai_repository.dart","flutter_app/lib/features/chat/domain/ai_reply_models.dart","flutter_app/lib/features/chat/presentation/chat_screen.dart","flutter_app/lib/features/chat/presentation/conversation_screen.dart","flutter_app/lib/features/contacts/data/contact_360_provider.dart","flutter_app/lib/features/contacts/data/contacts_provider.dart","flutter_app/lib/features/contacts/data/contacts_repository.dart","flutter_app/lib/features/contacts/domain/contact_models.dart","flutter_app/lib/features/contacts/presentation/contact_detail_screen.dart","flutter_app/lib/features/contacts/presentation/contacts_screen.dart","flutter_app/lib/features/home/presentation/home_screen.dart","flutter_app/lib/features/home/presentation/main_shell.dart","flutter_app/lib/features/knowledge/data/knowledge_provider.dart","flutter_app/lib/features/knowledge/data/knowledge_repository.dart","flutter_app/lib/features/knowledge/domain/knowledge_models.dart","flutter_app/lib/features/knowledge/presentation/knowledge_screen.dart","flutter_app/lib/features/profile/presentation/profile_screen.dart","flutter_app/lib/features/search/data/models/search_metrics.dart","flutter_app/lib/features/search/presentation/widgets/search_metrics_indicator.dart","flutter_app/lib/features/settings/presentation/settings_screen.dart","flutter_app/lib/features/stats/presentation/stats_screen.dart","flutter_app/lib/features/stats/presentation/widgets/contact_stats_tab.dart","flutter_app/lib/features/stats/presentation/widgets/overview_tab.dart","flutter_app/lib/features/stats/presentation/widgets/reply_stats_tab.dart","flutter_app/lib/features/stats/presentation/widgets/stats_shared_widgets.dart","flutter_app/lib/features/support/presentation/about_screen.dart","flutter_app/lib/features/support/presentation/feedback_screen.dart","flutter_app/lib/features/support/presentation/help_screen.dart","flutter_app/lib/features/support/presentation/privacy_screen.dart","flutter_app/lib/features/support/presentation/terms_screen.dart","flutter_app/lib/main.dart","flutter_app/lib/shared/widgets/stat_card.dart","flutter_app/pigeons/haizhan_api.dart","flutter_app/pubspec.lock","flutter_app/pubspec.yaml","flutter_app/test/core/network/api_client_test.dart","flutter_app/test/core/theme/theme_provider_test.dart","flutter_app/test/features/auth/login_screen_test.dart","flutter_app/test/features/chat/chat_screen_test.dart","flutter_app/test/features/contacts/contacts_screen_test.dart","flutter_app/test/features/home/home_screen_test.dart","flutter_app/test/features/knowledge/knowledge_screen_test.dart","flutter_app/test/features/profile/profile_screen_test.dart","flutter_app/test/features/settings/settings_screen_test.dart","flutter_app/test/features/statistics/statistics_screen_test.dart","flutter_app/test/features/stats/stats_screen_test.dart","flutter_app/test/integration/app_integration_test.dart","flutter_app/test/providers/auth_provider_test.dart","flutter_app/test/services/api_service_test.dart","flutter_app/test/widgets/contact_card_test.dart","gradle.properties","gradle/libs.versions.toml","gradle/wrapper/gradle-wrapper.jar","gradle/wrapper/gradle-wrapper.properties","gradlew","gradlew.bat","ime-core/build.gradle.kts","ime-core/consumer-rules.pro","ime-core/proguard-rules.pro","ime-core/src/androidTest/java/com/haizhan/ime/core/handwriting/HandwritingIntegrationTest.kt","ime-core/src/androidTest/java/com/haizhan/ime/core/handwriting/HandwritingPerformanceTest.kt","ime-core/src/androidTest/java/com/haizhan/ime/core/handwriting/HandwritingViewTest.kt","ime-core/src/main/AndroidManifest.xml","ime-core/src/main/assets/dictionaries/system/core-char.txt","ime-core/src/main/assets/dictionaries/system/core-merged.txt","ime-core/src/main/assets/dictionaries/system/core-phrase.txt","ime-core/src/main/assets/dictionaries/system/core-word2.txt","ime-core/src/main/assets/dictionaries/system/core-word3.txt","ime-core/src/main/assets/dictionaries/system/core-word4.txt","ime-core/src/main/assets/handwriting_labels_casia.txt","ime-core/src/main/assets/paddle_models/ppocr_keys_v1.txt","ime-core/src/main/cpp/CMakeLists.txt","ime-core/src/main/cpp/include/paddle_api.h","ime-core/src/main/cpp/include/paddle_image_preprocess.h","ime-core/src/main/cpp/include/paddle_lite_factory_helper.h","ime-core/src/main/cpp/include/paddle_place.h","ime-core/src/main/cpp/include/paddle_use_kernels.h","ime-core/src/main/cpp/include/paddle_use_ops.h","ime-core/src/main/cpp/include/paddle_use_passes.h","ime-core/src/main/cpp/paddle_lite_jni.cpp","ime-core/src/main/cpp/paddle_ocr_jni.cpp","ime-core/src/main/java/com/haizhan/ime/core/context/ChatContext.kt","ime-core/src/main/java/com/haizhan/ime/core/context/ChatContextProvider.kt","ime-core/src/main/java/com/haizhan/ime/core/context/ContextAnalyzer.kt","ime-core/src/main/java/com/haizhan/ime/core/context/ContextAwareRanker.kt","ime-core/src/main/java/com/haizhan/ime/core/context/WordCategoryClassifier.kt","ime-core/src/main/java/com/haizhan/ime/core/di/ImeCoreModule.kt","ime-core/src/main/java/com/haizhan/ime/core/di/PerformanceModule.kt","ime-core/src/main/java/com/haizhan/ime/core/engine/ImeEngine.kt","ime-core/src/main/java/com/haizhan/ime/core/engine/handler/EnglishKeyHandler.kt","ime-core/src/main/java/com/haizhan/ime/core/engine/handler/HandwritingKeyHandler.kt","ime-core/src/main/java/com/haizhan/ime/core/engine/handler/KeyPressDispatcher.kt","ime-core/src/main/java/com/haizhan/ime/core/engine/handler/KeyPressHandler.kt","ime-core/src/main/java/com/haizhan/ime/core/engine/handler/PinyinKeyHandler.kt","ime-core/src/main/java/com/haizhan/ime/core/engine/handler/SymbolKeyHandler.kt","ime-core/src/main/java/com/haizhan/ime/core/engine/handler/VoiceKeyHandler.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HaizhanHandwritingApiClient.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingKeyboard.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingManager.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingToolbar.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingView.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/IHandwritingRecognizer.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/ModelDownloader.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/PaddleLiteRecognizer.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/RecognitionConfig.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/Stroke.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/StrokeCache.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/StrokePreprocessor.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/StrokeSegmenter.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/TFLiteRecognizer.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/UnifiedRecognitionEngine.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/di/HandwritingModule.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/CandidatesView.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/EnhancedCandidatesView.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/ImeContentLayout.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/ImeLayoutConstants.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/InputModeToolbar.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/KeyboardLayout.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/KeyboardView.kt","ime-core/src/main/java/com/haizhan/ime/core/ocr/IOcrEngine.kt","ime-core/src/main/java/com/haizhan/ime/core/ocr/OcrImageProcessor.kt","ime-core/src/main/java/com/haizhan/ime/core/ocr/OcrModels.kt","ime-core/src/main/java/com/haizhan/ime/core/ocr/PaddleOcrEngine.kt","ime-core/src/main/java/com/haizhan/ime/core/ocr/README.md","ime-core/src/main/java/com/haizhan/ime/core/ocr/di/OcrModule.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/BuiltinDictionary.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/Candidate.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/CloudPinyinService.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/CloudSyncService.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/DictModels.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/DictionaryFileParser.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/DictionaryHotReloader.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/DictionaryImporter.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/DictionaryReloader.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/EnterpriseDictionary.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/FuzzyPinyinConfig.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/HotWordService.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/ImportResult.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/InputPredictor.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/LocalDictionary.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/NgramData.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/NgramModel.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/NineGridMatcher.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/PinyinSegmenterImpl.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/PinyinService.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/PinyinServiceImpl.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/PinyinSplitter.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/SmartErrorCorrector.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/SystemDatDictionary.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/UserPreferenceStore.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/cloud/CloudPinyinApiImpl.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/cloud/CloudPinyinModule.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/cloud/ExponentialBackoff.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/converter/ChineseConverter.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/matcher/FullPinyinMatcher.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/matcher/InputMatcher.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/matcher/InputMatcherManager.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/matcher/NineGridMatcherAdapter.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/matcher/ShortcutMatcher.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/matcher/ShuangpinMatcher.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/matcher/di/MatcherModule.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/shuangpin/MicrosoftScheme.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/shuangpin/NaturalScheme.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/shuangpin/ShuangpinConverter.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/shuangpin/ShuangpinScheme.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/shuangpin/SogouScheme.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/shuangpin/XiaoheScheme.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/stroke/StrokeData.kt","ime-core/src/main/java/com/haizhan/ime/core/pinyin/stroke/StrokeMatcher.kt","ime-core/src/main/java/com/haizhan/ime/core/theme/DesignTokens.kt","ime-core/src/main/java/com/haizhan/ime/core/theme/KeyboardTheme.kt","ime-core/src/main/java/com/haizhan/ime/core/theme/ThemeManager.kt","ime-core/src/main/java/com/haizhan/ime/core/voice/ui/VoicePanel.kt","ime-core/src/main/jniLibs/arm64-v8a/libpaddle_light_api_shared.so","ime-core/src/main/res/drawable/ic_backspace.xml","ime-core/src/main/res/drawable/ic_clear_all.xml","ime-core/src/main/res/drawable/ic_handwriting.xml","ime-core/src/main/res/drawable/ic_keyboard.xml","ime-core/src/test/java/com/haizhan/ime/core/ImeEngineTest.kt","ime-core/src/test/java/com/haizhan/ime/core/benchmark/ImeCorePerformanceTest.kt","ime-core/src/test/java/com/haizhan/ime/core/benchmark/MemoryBenchmarkTest.kt","ime-core/src/test/java/com/haizhan/ime/core/context/ContextAnalyzerTest.kt","ime-core/src/test/java/com/haizhan/ime/core/context/ContextAwareRankerTest.kt","ime-core/src/test/java/com/haizhan/ime/core/context/WordCategoryClassifierTest.kt","ime-core/src/test/java/com/haizhan/ime/core/decoder/UnifiedRankerTest.kt","ime-core/src/test/java/com/haizhan/ime/core/engine/ImeEngineTest.kt","ime-core/src/test/java/com/haizhan/ime/core/engine/handler/EnglishKeyHandlerExpandedTest.kt","ime-core/src/test/java/com/haizhan/ime/core/engine/handler/KeyPressDispatcherTest.kt","ime-core/src/test/java/com/haizhan/ime/core/engine/handler/KeyPressHandlerTest.kt","ime-core/src/test/java/com/haizhan/ime/core/engine/handler/PinyinKeyHandlerExpandedTest.kt","ime-core/src/test/java/com/haizhan/ime/core/engine/handler/SymbolKeyHandlerExpandedTest.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/HandwritingManagerAdvancedTest.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/HandwritingManagerTest.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/PaddleLiteRecognizerTest.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/StrokeCacheTest.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/StrokePreprocessorTest.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/TFLiteRecognizerTest.kt","ime-core/src/test/java/com/haizhan/ime/core/keyboard/CandidatesViewTest.kt","ime-core/src/test/java/com/haizhan/ime/core/keyboard/KeyboardLayoutTest.kt","ime-core/src/test/java/com/haizhan/ime/core/keyboard/KeyboardViewTest.kt","ime-core/src/test/java/com/haizhan/ime/core/ocr/OcrImageProcessorTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/CloudPinyinServiceTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/CloudSyncServiceTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/DictionaryFileParserTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/DictionaryImporterTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/DictionaryReloaderTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/EnterpriseDictionaryTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/FuzzyPinyinConfigTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/HotWordServiceTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/InputPredictorTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/LocalDictionaryTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/NgramModelTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/NineGridMatcherTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/PinyinSegmenterTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/PinyinServiceImplTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/PinyinServiceTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/PinyinSplitterTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/SmartErrorCorrectorTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/SystemDatDictionaryTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/UserPreferenceStoreTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/cloud/CloudPinyinApiImplTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/cloud/ExponentialBackoffTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/matcher/FullPinyinMatcherTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/matcher/ShuangpinMatcherTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/shuangpin/ShuangpinSchemeTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/shuangpin/SogouSchemeTest.kt","ime-core/src/test/java/com/haizhan/ime/core/pinyin/shuangpin/XiaoheSchemeTest.kt","ime-core/src/test/java/com/haizhan/ime/core/theme/ThemeManagerTest.kt","ios_keyboard/APPSTORE_LISTING.md","ios_keyboard/HaizhanKeyboard/Info.plist","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboard.xcodeproj/project.pbxproj","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboard.xcodeproj/project.xcworkspace/contents.xcworkspacedata","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp.entitlements","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/HaizhanKeyboardApp.entitlements","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/HaizhanKeyboardApp.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/Info.plist","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/Models/AppSession.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/Services/KeyboardStatusService.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/Services/ScreenshotResponder.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/Views/AccountView.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/Views/AppSettingsView.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/Views/ContentView.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/Views/LoginView.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardApp/Views/OnboardingView.swift","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardExtension.entitlements","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardExtension/HaizhanKeyboardExtension.entitlements","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardExtension/Info.plist","ios_keyboard/HaizhanKeyboardApp/HaizhanKeyboardExtension/KeyboardExtensionStub.swift","ios_keyboard/HaizhanKeyboardApp/Info.plist","ios_keyboard/HaizhanKeyboardApp/Models/AppSession.swift","ios_keyboard/HaizhanKeyboardApp/README.md","ios_keyboard/HaizhanKeyboardApp/Services/KeyboardStatusService.swift","ios_keyboard/HaizhanKeyboardApp/Services/ScreenshotResponder.swift","ios_keyboard/HaizhanKeyboardApp/Views/AccountView.swift","ios_keyboard/HaizhanKeyboardApp/Views/AppSettingsView.swift","ios_keyboard/HaizhanKeyboardApp/Views/ContentView.swift","ios_keyboard/HaizhanKeyboardApp/Views/LoginView.swift","ios_keyboard/HaizhanKeyboardApp/Views/OnboardingView.swift","ios_keyboard/HaizhanKeyboardApp/project.yml","ios_keyboard/HaizhanKeyboardExtension/Info.plist","ios_keyboard/HaizhanKeyboardExtension/KeyboardExtensionStub.swift","ios_keyboard/Package.swift","ios_keyboard/README.md","ios_keyboard/Sources/HaizhanKeyboard/AI/ContactMatcher.swift","ios_keyboard/Sources/HaizhanKeyboard/AI/ReplyService.swift","ios_keyboard/Sources/HaizhanKeyboard/AI/ScreenshotManager.swift","ios_keyboard/Sources/HaizhanKeyboard/Bridge/KMPBridge.swift","ios_keyboard/Sources/HaizhanKeyboard/Engine/KeyboardEngine.swift","ios_keyboard/Sources/HaizhanKeyboard/Engine/PinyinSegmenter.swift","ios_keyboard/Sources/HaizhanKeyboard/KeyboardViewController.swift","ios_keyboard/Sources/HaizhanKeyboard/Network/ApiClient.swift","ios_keyboard/Sources/HaizhanKeyboard/Network/AuthService.swift","ios_keyboard/Sources/HaizhanKeyboard/Storage/AppGroupStore.swift","ios_keyboard/Sources/HaizhanKeyboard/Storage/KeychainStore.swift","ios_keyboard/Sources/HaizhanKeyboard/Theme/ThemeManager.swift","ios_keyboard/Sources/HaizhanKeyboard/Utils/HapticManager.swift","ios_keyboard/Sources/HaizhanKeyboard/ViewModel/KeyboardViewModel.swift","ios_keyboard/Sources/HaizhanKeyboard/Views/AIPanelView.swift","ios_keyboard/Sources/HaizhanKeyboard/Views/KeyboardView.swift","ios_keyboard/Sources/HaizhanKeyboard/Views/NineGridKeyboard.swift","ios_keyboard/Sources/HaizhanKeyboard/Views/SettingsView.swift","ios_keyboard/Tests/HaizhanKeyboardTests/ApiClientTests.swift","ios_keyboard/Tests/HaizhanKeyboardTests/AppGroupStoreTests.swift","ios_keyboard/Tests/HaizhanKeyboardTests/ContactMatcherTests.swift","ios_keyboard/Tests/HaizhanKeyboardTests/HapticManagerTests.swift","ios_keyboard/Tests/HaizhanKeyboardTests/KeyboardEngineTests.swift","ios_keyboard/Tests/HaizhanKeyboardTests/KeychainStoreTests.swift","ios_keyboard/Tests/HaizhanKeyboardTests/PinyinSegmenterTests.swift","ios_keyboard/Tests/HaizhanKeyboardTests/ReplyServiceTests.swift","ios_keyboard/Tests/HaizhanKeyboardTests/ThemeManagerTests.swift","ios_keyboard/build_kmp_xcframework.sh","openapitools.json","package.json","pnpm-workspace.yaml","scripts/PACKAGE_MANAGER_SUMMARY.md","scripts/check-docs-sync.sh","scripts/download_paddle_ocr_models.sh","scripts/generate-design-tokens.py","scripts/package-manager-migration.md","scripts/pre-commit","server/.dockerignore","server/.env.example","server/.npmrc","server/Makefile","server/README.md","server/ai-service/.dockerignore","server/ai-service/Dockerfile","server/ai-service/jest.config.js","server/ai-service/nest-cli.json","server/ai-service/package.json","server/ai-service/poc-load-test-1770067946237.json","server/ai-service/poc-report-1770067953461.json","server/ai-service/poc-report-1770067953461.md","server/ai-service/poc-report-1771647201192.json","server/ai-service/poc-report-1771647201192.md","server/ai-service/scripts/poc/README.md","server/ai-service/scripts/poc/deploy-models.sh","server/ai-service/scripts/poc/generate-report.ts","server/ai-service/scripts/poc/load-test.ts","server/ai-service/scripts/poc/v1-int8-quality.ts","server/ai-service/scripts/poc/v2-router-accuracy.ts","server/ai-service/scripts/poc/v3-e2e-latency.ts","server/ai-service/scripts/seed-rag.ts","server/ai-service/src/app.module.ts","server/ai-service/src/common/decorators/current-tenant.decorator.ts","server/ai-service/src/common/decorators/public.decorator.ts","server/ai-service/src/common/guards/auth.guard.spec.ts","server/ai-service/src/common/guards/auth.guard.ts","server/ai-service/src/common/redis/index.ts","server/ai-service/src/common/redis/redis.module.ts","server/ai-service/src/common/redis/redis.service.ts","server/ai-service/src/main.ts","server/ai-service/src/modules/ai/ai.controller.ts","server/ai-service/src/modules/ai/ai.module.ts","server/ai-service/src/modules/ai/ai.service.spec.ts","server/ai-service/src/modules/ai/ai.service.ts","server/ai-service/src/modules/ai/dto/generate-reply.dto.ts","server/ai-service/src/modules/ai/legacy-reply.controller.ts","server/ai-service/src/modules/health/health.controller.ts","server/ai-service/src/modules/health/health.module.ts","server/ai-service/src/modules/memory/dto/memory.dto.ts","server/ai-service/src/modules/memory/event.service.spec.ts","server/ai-service/src/modules/memory/event.service.ts","server/ai-service/src/modules/memory/index.ts","server/ai-service/src/modules/memory/memory.controller.ts","server/ai-service/src/modules/memory/memory.module.ts","server/ai-service/src/modules/memory/memory.service.spec.ts","server/ai-service/src/modules/memory/memory.service.ts","server/ai-service/src/modules/memory/profile.service.spec.ts","server/ai-service/src/modules/memory/profile.service.ts","server/ai-service/src/modules/memory/schemas/contact-event.schema.ts","server/ai-service/src/modules/memory/schemas/contact-profile.schema.ts","server/ai-service/src/modules/memory/schemas/conversation-summary.schema.ts","server/ai-service/src/modules/memory/summary.service.spec.ts","server/ai-service/src/modules/memory/summary.service.ts","server/ai-service/src/modules/memory/vector.service.ts","server/ai-service/src/modules/privacy/index.ts","server/ai-service/src/modules/privacy/pii-scrubber.service.ts","server/ai-service/src/modules/privacy/privacy.module.ts","server/ai-service/src/modules/search/agentic/agentic-loop.controller.ts","server/ai-service/src/modules/search/agentic/answer-synthesizer.service.ts","server/ai-service/src/modules/search/agentic/answer-synthesizer.spec.ts","server/ai-service/src/modules/search/agentic/index.ts","server/ai-service/src/modules/search/agentic/query-decomposer.service.ts","server/ai-service/src/modules/search/agentic/query-decomposer.spec.ts","server/ai-service/src/modules/search/agentic/result-evaluator.service.ts","server/ai-service/src/modules/search/agentic/result-evaluator.spec.ts","server/ai-service/src/modules/search/cache/index.ts","server/ai-service/src/modules/search/cache/multi-level-cache.service.ts","server/ai-service/src/modules/search/cache/multi-level-cache.spec.ts","server/ai-service/src/modules/search/config/search.config.ts","server/ai-service/src/modules/search/dto/index.ts","server/ai-service/src/modules/search/dto/search-request.dto.ts","server/ai-service/src/modules/search/dto/search-response.dto.ts","server/ai-service/src/modules/search/experiment/ab-testing.service.ts","server/ai-service/src/modules/search/experiment/experiment.controller.ts","server/ai-service/src/modules/search/experiment/gradual-release.service.ts","server/ai-service/src/modules/search/experiment/index.ts","server/ai-service/src/modules/search/gateway/unified-search-gateway.service.ts","server/ai-service/src/modules/search/gateway/unified-search-gateway.spec.ts","server/ai-service/src/modules/search/index.ts","server/ai-service/src/modules/search/layers/agentic-layer.service.spec.ts","server/ai-service/src/modules/search/layers/agentic-layer.service.ts","server/ai-service/src/modules/search/layers/cache-layer.service.spec.ts","server/ai-service/src/modules/search/layers/cache-layer.service.ts","server/ai-service/src/modules/search/layers/rag-layer.service.spec.ts","server/ai-service/src/modules/search/layers/rag-layer.service.ts","server/ai-service/src/modules/search/monitoring/alert.service.ts","server/ai-service/src/modules/search/monitoring/grafana-dashboard.json","server/ai-service/src/modules/search/monitoring/index.ts","server/ai-service/src/modules/search/monitoring/metrics.service.ts","server/ai-service/src/modules/search/optimization/index.ts","server/ai-service/src/modules/search/optimization/parallel-retriever.service.ts","server/ai-service/src/modules/search/optimization/parallel-retriever.spec.ts","server/ai-service/src/modules/search/router/pure-rule-router.spec.ts","server/ai-service/src/modules/search/router/pure-rule-router.ts","server/ai-service/src/modules/search/router/router.types.ts","server/ai-service/src/modules/search/search.controller.ts","server/ai-service/src/modules/search/search.integration.spec.ts","server/ai-service/src/modules/search/search.module.ts","server/ai-service/src/modules/search/services/elasticsearch.service.ts","server/ai-service/src/modules/search/services/embedding.service.spec.ts","server/ai-service/src/modules/search/services/embedding.service.ts","server/ai-service/src/modules/search/services/index.ts","server/ai-service/src/modules/search/services/llm.service.spec.ts","server/ai-service/src/modules/search/services/llm.service.ts","server/ai-service/src/modules/search/services/milvus.service.ts","server/ai-service/src/modules/search/services/reranker.service.spec.ts","server/ai-service/src/modules/search/services/reranker.service.ts","server/ai-service/src/modules/search/streaming/index.ts","server/ai-service/src/modules/search/streaming/stream-optimizer.service.ts","server/ai-service/src/modules/search/vip/index.ts","server/ai-service/src/modules/search/vip/vip-tier.service.ts","server/ai-service/tsconfig.json","server/api-gateway/.dockerignore","server/api-gateway/Dockerfile","server/api-gateway/logs/.3fa4d5e91883ce1217f62a49f94203b42caa131d-audit.json","server/api-gateway/logs/.92dabeadf9708ae538f84c8892e853b5a8f57f04-audit.json","server/api-gateway/nest-cli.json","server/api-gateway/package.json","server/api-gateway/prisma/README.md","server/api-gateway/prisma/migrations/20260203065715_init/migration.sql","server/api-gateway/prisma/migrations/20260203160000_add_360_view_models/migration.sql","server/api-gateway/prisma/migrations/20260203170000_add_admin_modules/migration.sql","server/api-gateway/prisma/migrations/20260203180000_add_config_and_usage_stats/migration.sql","server/api-gateway/prisma/migrations/20260213000000_add_contact_geo_fields/migration.sql","server/api-gateway/prisma/migrations/20260213100000_expand_prompt_template/migration.sql","server/api-gateway/prisma/migrations/migration_lock.toml","server/api-gateway/prisma/schema.prisma","server/api-gateway/prisma/seed.ts","server/api-gateway/scripts/generate-openapi.ts","server/api-gateway/src/app.module.ts","server/api-gateway/src/common/logger/global-logger.module.ts","server/api-gateway/src/common/logger/global-logger.service.ts","server/api-gateway/src/main.ts","server/api-gateway/src/modules/ai-config/ai-config.controller.ts","server/api-gateway/src/modules/ai-config/ai-config.module.ts","server/api-gateway/src/modules/ai-config/ai-config.service.ts","server/api-gateway/src/modules/ai-config/dto/ai-config.dto.ts","server/api-gateway/src/modules/ai/ai.controller.ts","server/api-gateway/src/modules/ai/ai.module.ts","server/api-gateway/src/modules/ai/ai.service.ts","server/api-gateway/src/modules/audit-logs/audit-logs.controller.ts","server/api-gateway/src/modules/audit-logs/audit-logs.module.ts","server/api-gateway/src/modules/audit-logs/audit-logs.service.ts","server/api-gateway/src/modules/audit-logs/dto/audit-logs.dto.ts","server/api-gateway/src/modules/auth/auth.controller.spec.ts","server/api-gateway/src/modules/auth/auth.controller.ts","server/api-gateway/src/modules/auth/auth.module.ts","server/api-gateway/src/modules/auth/auth.service.spec.ts","server/api-gateway/src/modules/auth/auth.service.ts","server/api-gateway/src/modules/auth/decorators/roles.decorator.ts","server/api-gateway/src/modules/auth/dto/admin-login.dto.ts","server/api-gateway/src/modules/auth/dto/login.dto.ts","server/api-gateway/src/modules/auth/dto/refresh-token.dto.ts","server/api-gateway/src/modules/auth/guards/jwt-auth.guard.ts","server/api-gateway/src/modules/auth/guards/roles.guard.ts","server/api-gateway/src/modules/auth/strategies/jwt.strategy.ts","server/api-gateway/src/modules/contacts/contacts.controller.spec.ts","server/api-gateway/src/modules/contacts/contacts.controller.ts","server/api-gateway/src/modules/contacts/contacts.module.ts","server/api-gateway/src/modules/contacts/contacts.service.spec.ts","server/api-gateway/src/modules/contacts/contacts.service.ts","server/api-gateway/src/modules/contacts/dto/match-contact.dto.ts","server/api-gateway/src/modules/health/health.controller.spec.ts","server/api-gateway/src/modules/health/health.controller.ts","server/api-gateway/src/modules/health/health.module.ts","server/api-gateway/src/modules/knowledge/dto/knowledge-base.dto.ts","server/api-gateway/src/modules/knowledge/dto/search-knowledge.dto.ts","server/api-gateway/src/modules/knowledge/knowledge.controller.spec.ts","server/api-gateway/src/modules/knowledge/knowledge.controller.ts","server/api-gateway/src/modules/knowledge/knowledge.module.ts","server/api-gateway/src/modules/knowledge/knowledge.service.spec.ts","server/api-gateway/src/modules/knowledge/knowledge.service.ts","server/api-gateway/src/modules/mobile-compat/mobile-compat.controller.ts","server/api-gateway/src/modules/mobile-compat/mobile-compat.module.ts","server/api-gateway/src/modules/ocr/ocr.controller.ts","server/api-gateway/src/modules/ocr/ocr.module.ts","server/api-gateway/src/modules/ocr/ocr.service.ts","server/api-gateway/src/modules/pinyin/pinyin.controller.spec.ts","server/api-gateway/src/modules/pinyin/pinyin.controller.ts","server/api-gateway/src/modules/pinyin/pinyin.module.ts","server/api-gateway/src/modules/pinyin/pinyin.service.spec.ts","server/api-gateway/src/modules/pinyin/pinyin.service.ts","server/api-gateway/src/modules/rag/dto/rag.dto.ts","server/api-gateway/src/modules/rag/rag.controller.spec.ts","server/api-gateway/src/modules/rag/rag.controller.ts","server/api-gateway/src/modules/rag/rag.module.ts","server/api-gateway/src/modules/rag/rag.service.runtime.spec.ts","server/api-gateway/src/modules/rag/rag.service.spec.ts","server/api-gateway/src/modules/rag/rag.service.ts","server/api-gateway/src/modules/settings/dto/settings.dto.ts","server/api-gateway/src/modules/settings/settings.controller.spec.ts","server/api-gateway/src/modules/settings/settings.controller.ts","server/api-gateway/src/modules/settings/settings.module.ts","server/api-gateway/src/modules/settings/settings.service.spec.ts","server/api-gateway/src/modules/settings/settings.service.ts","server/api-gateway/src/modules/teams/dto/teams.dto.ts","server/api-gateway/src/modules/teams/teams.controller.spec.ts","server/api-gateway/src/modules/teams/teams.controller.ts","server/api-gateway/src/modules/teams/teams.module.ts","server/api-gateway/src/modules/teams/teams.service.spec.ts","server/api-gateway/src/modules/teams/teams.service.ts","server/api-gateway/src/modules/templates/dto/template.dto.ts","server/api-gateway/src/modules/templates/templates.controller.spec.ts","server/api-gateway/src/modules/templates/templates.controller.ts","server/api-gateway/src/modules/templates/templates.module.ts","server/api-gateway/src/modules/templates/templates.service.spec.ts","server/api-gateway/src/modules/templates/templates.service.ts","server/api-gateway/src/modules/usage/dto/usage.dto.ts","server/api-gateway/src/modules/usage/usage.controller.ts","server/api-gateway/src/modules/usage/usage.module.ts","server/api-gateway/src/modules/usage/usage.service.spec.ts","server/api-gateway/src/modules/usage/usage.service.ts","server/api-gateway/src/modules/users/users.controller.spec.ts","server/api-gateway/src/modules/users/users.controller.ts","server/api-gateway/src/modules/users/users.module.ts","server/api-gateway/src/modules/users/users.service.spec.ts","server/api-gateway/src/modules/users/users.service.ts","server/api-gateway/src/modules/weather/weather.controller.spec.ts","server/api-gateway/src/modules/weather/weather.controller.ts","server/api-gateway/src/modules/weather/weather.module.ts","server/api-gateway/src/modules/weather/weather.service.spec.ts","server/api-gateway/src/modules/weather/weather.service.ts","server/api-gateway/src/shared/prisma/prisma.module.ts","server/api-gateway/src/shared/prisma/prisma.service.ts","server/api-gateway/src/shared/redis/redis.module.ts","server/api-gateway/src/shared/redis/redis.service.ts","server/api-gateway/src/shared/sms/sms.module.ts","server/api-gateway/src/shared/sms/sms.service.spec.ts","server/api-gateway/src/shared/sms/sms.service.ts","server/api-gateway/tsconfig.json","server/docker-compose.override.yml","server/docker-compose.prod.yml","server/docker-compose.yml","server/docker/grafana/provisioning/dashboards/dashboards.yml","server/docker/grafana/provisioning/dashboards/json/api-gateway.json","server/docker/grafana/provisioning/datasources/datasources.yml","server/docker/loki/loki-config.yml","server/docker/mongodb/init.js","server/docker/nginx/conf.d/default.conf","server/docker/nginx/nginx.conf","server/docker/nginx/ssl/.gitkeep","server/docker/nginx/ssl/README.md","server/docker/postgres/init.sql","server/docker/prometheus/alert.rules.yml","server/docker/prometheus/prometheus.yml","server/docker/promtail/promtail-config.yml","server/k8s/vllm/deployment.yaml","server/k8s/vllm/hpa.yaml","server/k8s/vllm/service.yaml","server/model-services/reranker/Dockerfile","server/model-services/reranker/requirements.txt","server/model-services/reranker/reranker_server.py","server/ocr-service/.dockerignore","server/ocr-service/Dockerfile","server/ocr-service/jest.config.js","server/ocr-service/nest-cli.json","server/ocr-service/package.json","server/ocr-service/src/app.module.ts","server/ocr-service/src/main.ts","server/ocr-service/src/modules/health/health.controller.ts","server/ocr-service/src/modules/health/health.module.ts","server/ocr-service/src/modules/ocr/chat-parser.service.spec.ts","server/ocr-service/src/modules/ocr/chat-parser.service.ts","server/ocr-service/src/modules/ocr/dto/chat-screenshot.dto.ts","server/ocr-service/src/modules/ocr/ocr.controller.ts","server/ocr-service/src/modules/ocr/ocr.module.ts","server/ocr-service/src/modules/ocr/ocr.service.spec.ts","server/ocr-service/src/modules/ocr/ocr.service.ts","server/ocr-service/tsconfig.json","server/scripts/backup.sh","server/scripts/check-mobile-api-coverage.js","server/scripts/check-mobile-response-compat.js","server/scripts/deploy.sh","server/scripts/deploy/deploy-infrastructure.sh","server/scripts/deploy/deploy-models.sh","server/scripts/deploy/final-deploy.sh","server/scripts/deploy/stop-models.sh","server/scripts/e2e-smoke.js","server/scripts/health-check.sh","server/scripts/mobile-api-smoke.js","server/scripts/setup-ssl.sh","settings.gradle.kts","shared/README.md","shared/build.gradle.kts","shared/src/androidInstrumentedTest/kotlin/com/haizhan/ime/shared/auth/AndroidTokenStorageTest.kt","shared/src/androidInstrumentedTest/kotlin/com/haizhan/ime/shared/auth/SharedAuthManagerIntegrationTest.kt","shared/src/androidInstrumentedTest/kotlin/com/haizhan/ime/shared/database/DatabaseIntegrationTest.kt","shared/src/androidInstrumentedTest/kotlin/com/haizhan/ime/shared/pinyin/CandidateRankerIntegrationTest.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/BuildConfig.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/Platform.android.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/auth/AndroidTokenStorage.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/auth/CurrentTime.android.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/database/DatabaseDriverFactory.android.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/database/SharedDatabaseKeyManager.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/di/PlatformModule.android.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/migration/RoomToSqlDelightMigrator.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/platform/Connectivity.android.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/platform/DeviceInfo.android.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/platform/DictionaryLoader.android.kt","shared/src/androidMain/kotlin/com/haizhan/ime/shared/platform/FileSystem.android.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/Platform.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/analytics/AnalyticsTracker.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/ApiClient.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/AuthApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/ContactApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/DashboardApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/FeedbackApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/KnowledgeApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/MemoryApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/NoteApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/OcrApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/PinyinApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/RagSearchApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/ReplyApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/ScriptApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/SearchApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/SessionApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/SettingsApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/SubscriptionApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/UserApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/api/WeatherApi.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/auth/AuthManager.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/auth/AuthModels.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/database/DatabaseDriverFactory.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/database/DatabaseExtensions.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/di/SharedModule.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/matcher/NicknameMatcher.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/ContactModel.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/KnowledgeModel.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/AiDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/ApiResponse.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/AuthDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/ContactDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/DashboardDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/FeedbackDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/KnowledgeDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/MemoryDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/MessageDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/NoteDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/OcrDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/PinyinDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/ProfileDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/RagSearchDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/ReplyDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/ScriptDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/SearchDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/SessionDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/SettingsDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/SubscriptionDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/model/dto/WeatherDto.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/Candidate.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/CandidateRanker.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/DictEntry.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/NineGridMatcher.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/PinyinConstants.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/PinyinService.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/PinyinSplitter.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/algorithm/CloudSynergyEngine.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/algorithm/DoubleArrayTrie.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/algorithm/DoubleArrayTrieImpl.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/algorithm/DynamicWeightRanker.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/algorithm/PinyinDAG.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/pinyin/algorithm/ViterbiDecoder.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/platform/Connectivity.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/platform/DeviceInfo.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/platform/DictionaryLoader.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/platform/FileSystem.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/repository/ContactRepository.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/repository/KnowledgeRepository.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/repository/MessageRepository.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/repository/NoteRepository.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/repository/PinyinRepository.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/repository/SearchRepository.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/repository/SettingsRepository.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/repository/UserDictRepository.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/service/MessageChainMatcher.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/service/OcrMatchService.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/service/OfflineFallbackService.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/service/ReplyService.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/service/ScriptService.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/service/SessionService.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/sync/SyncManager.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/util/FlowExt.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/util/LevenshteinDistance.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/util/LruCache.kt","shared/src/commonMain/kotlin/com/haizhan/ime/shared/util/StringExt.kt","shared/src/commonMain/sqldelight/com/haizhan/ime/shared/database/Contact.sq","shared/src/commonMain/sqldelight/com/haizhan/ime/shared/database/Knowledge.sq","shared/src/commonMain/sqldelight/com/haizhan/ime/shared/database/Message.sq","shared/src/commonMain/sqldelight/com/haizhan/ime/shared/database/Note.sq","shared/src/commonMain/sqldelight/com/haizhan/ime/shared/database/Search.sq","shared/src/commonMain/sqldelight/com/haizhan/ime/shared/database/Settings.sq","shared/src/commonMain/sqldelight/com/haizhan/ime/shared/database/UserDict.sq","shared/src/commonMain/sqldelight/migrations/1.sqm","shared/src/commonTest/kotlin/com/haizhan/ime/shared/analytics/AnalyticsTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/api/ApiClientTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/auth/AuthModelsTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/matcher/NicknameMatcherTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/model/ContactModelTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/model/KnowledgeModelTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/network/NetworkClientTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/CandidateRankerTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/CandidateTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/NineGridMatcherTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/PinyinConstantsTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/PinyinSplitterTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/algorithm/CloudSynergyEngineTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/algorithm/DoubleArrayTrieImplTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/algorithm/DynamicWeightRankerTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/algorithm/PinyinDAGTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/pinyin/algorithm/ViterbiDecoderTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/repository/ContactRepositoryTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/sync/SyncTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/util/LevenshteinDistanceTest.kt","shared/src/commonTest/kotlin/com/haizhan/ime/shared/util/PinyinConverterTest.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/Platform.ios.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/auth/CurrentTime.ios.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/auth/IosTokenStorage.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/database/DatabaseDriverFactory.ios.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/di/PlatformModule.ios.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/platform/Connectivity.ios.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/platform/DeviceInfo.ios.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/platform/DictionaryLoader.ios.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/platform/FileSystem.ios.kt","voice/build.gradle.kts","voice/consumer-rules.pro","voice/proguard-rules.pro","voice/src/androidTest/java/com/haizhan/ime/voice/integration/VoiceModuleIntegrationTest.kt","voice/src/androidTest/java/com/haizhan/ime/voice/integration/WakeWordServiceIntegrationTest.kt","voice/src/main/AndroidManifest.xml","voice/src/main/java/com/haizhan/ime/voice/api/AudioPipeline.kt","voice/src/main/java/com/haizhan/ime/voice/api/SpeechRecognitionService.kt","voice/src/main/java/com/haizhan/ime/voice/api/VoiceCoordinator.kt","voice/src/main/java/com/haizhan/ime/voice/api/VoiceErrors.kt","voice/src/main/java/com/haizhan/ime/voice/api/VoiceTypes.kt","voice/src/main/java/com/haizhan/ime/voice/api/WakeWordConfigManager.kt","voice/src/main/java/com/haizhan/ime/voice/api/WakeWordDetectionService.kt","voice/src/main/java/com/haizhan/ime/voice/audio/AudioPipelineImpl.kt","voice/src/main/java/com/haizhan/ime/voice/audio/di/AudioModule.kt","voice/src/main/java/com/haizhan/ime/voice/coordinator/VoiceCoordinatorImpl.kt","voice/src/main/java/com/haizhan/ime/voice/coordinator/di/CoordinatorModule.kt","voice/src/main/java/com/haizhan/ime/voice/denoise/DenoiseAudioConsumer.kt","voice/src/main/java/com/haizhan/ime/voice/denoise/DenoiseManager.kt","voice/src/main/java/com/haizhan/ime/voice/denoise/MusicAwareAEC.kt","voice/src/main/java/com/haizhan/ime/voice/denoise/NoiseEstimator.kt","voice/src/main/java/com/haizhan/ime/voice/denoise/SpectralSubtractor.kt","voice/src/main/java/com/haizhan/ime/voice/denoise/VoiceActivityDetector.kt","voice/src/main/java/com/haizhan/ime/voice/denoise/di/DenoiseModule.kt","voice/src/main/java/com/haizhan/ime/voice/di/VoiceModule.kt","voice/src/main/java/com/haizhan/ime/voice/engine/VoiceInputEngine.kt","voice/src/main/java/com/haizhan/ime/voice/model/MultiModelManager.kt","voice/src/main/java/com/haizhan/ime/voice/model/VoiceModelManager.kt","voice/src/main/java/com/haizhan/ime/voice/monitoring/VoicePerformanceMonitor.kt","voice/src/main/java/com/haizhan/ime/voice/monitoring/di/MonitoringModule.kt","voice/src/main/java/com/haizhan/ime/voice/recognition/AudioDiagnostics.kt","voice/src/main/java/com/haizhan/ime/voice/recognition/SpeechRecognitionServiceImpl.kt","voice/src/main/java/com/haizhan/ime/voice/recognition/VoskGrammarBuilder.kt","voice/src/main/java/com/haizhan/ime/voice/recognition/VoskRecognizer.kt","voice/src/main/java/com/haizhan/ime/voice/recognition/di/SpeechModule.kt","voice/src/main/java/com/haizhan/ime/voice/ui/VoiceUiTypes.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/WakeWordDetectionServiceImpl.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/analytics/WakeWordAnalytics.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/config/WakeWordConfigManagerImpl.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/config/di/ConfigModule.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/confirmation/WakeWordConfirmation.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/detector/IWakeWordDetector.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/detector/VoskWakeWordDetector.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/di/ConfirmationModule.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/di/MatcherModule.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/di/ParserModule.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/di/RepositoryModule.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/di/WakeWordModule.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/filter/FalseWakeFilter.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/matcher/PinyinData.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/matcher/PinyinMatcher.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/matcher/TrieWordMatcher.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/parser/WakeWordCommandParser.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/EnergyPatternMatcher.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/PitchExtractor.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/QuickWakeDetector.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/SingingModeDetector.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/SpectralAnalyzer.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/SyllableDetector.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/VibratoDetector.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/VoiceCharacteristicAnalyzer.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/VoiceProfileAnalyzer.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/predetect/di/PredetectModule.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/repository/WakeWordRepository.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/sensitivity/AdaptiveSensitivity.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/service/WakeWordService.kt","voice/src/main/java/com/haizhan/ime/voice/wakeword/util/PinyinUtils.kt","voice/src/test/java/com/haizhan/ime/voice/api/HotwordConfigTest.kt","voice/src/test/java/com/haizhan/ime/voice/audio/AudioPipelineImplTest.kt","voice/src/test/java/com/haizhan/ime/voice/coordinator/VoiceCoordinatorImplTest.kt","voice/src/test/java/com/haizhan/ime/voice/denoise/DenoiseManagerTest.kt","voice/src/test/java/com/haizhan/ime/voice/denoise/MusicAwareAECTest.kt","voice/src/test/java/com/haizhan/ime/voice/denoise/SpectralSubtractorTest.kt","voice/src/test/java/com/haizhan/ime/voice/denoise/VoiceActivityDetectorTest.kt.bak","voice/src/test/java/com/haizhan/ime/voice/model/MultiModelManagerTest.kt","voice/src/test/java/com/haizhan/ime/voice/monitoring/VoicePerformanceMonitorTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/config/WakeWordConfigManagerTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/confirmation/WakeWordConfirmationTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/filter/FalseWakeFilterTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/matcher/PinyinDataTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/matcher/PinyinMatcherTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/matcher/TrieWordMatcherTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/parser/WakeWordCommandParserTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/predetect/QuickWakeDetectorTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/predetect/SingingModeDetectorTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/predetect/SyllableDetectorTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/predetect/VibratoDetectorTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/predetect/VoiceCharacteristicAnalyzerTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/predetect/VoiceProfileAnalyzerTest.kt","voice/src/test/java/com/haizhan/ime/voice/wakeword/repository/WakeWordRepositorySerializationTest.kt"],"removed":[],"modified":[]},"repository":{"id":9,"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":"haizhan-ime-android","full_name":"luoanwu/haizhan-ime-android","description":"嗨赞AI输入法 Android版","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":29,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizhan-ime-android/languages","html_url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizhan-ime-android","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/haizhan-ime-android.git","clone_url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android.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-27T15:27:17+08:00","updated_at":"2026-02-27T15:27:32+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
|
4
|
1772178609
|
1772178609
|
0
|
1772177363
|
1772178609
|
NULL
|
|
0
|
Edit
Delete
|