|
115
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"343b38f6b {"Commits":[{"Sha1":"343b38f6bfbbd7d44a1387e1351700df68013555","Message":"Add external group-buy integrations\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-12T00:24:50+08:00"},{"Sha1":"1f279b5dfe76404d425c390ba104d9820a7862f9","Message":"Expand integration services for ad平台\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-12T00:24:09+08:00"},{"Sha1":"3b0503c391d1606984b159d179142267f3e0de8d","Message":"Add groupbuy platforms integration\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-12T00:08:25+08:00"},{"Sha1":"08ac5505f53c425f6625e3f518f78ed2258dab8e","Message":"Analyze failed e2e flows\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-12T00:05:40+08:00"},{"Sha1":"89c27769d608af0197dd2a5008a526946a2b3a7c","Message":"Update playwright report script data\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-12T00:04:04+08:00"}],"HeadCommit":{"Sha1":"343b38f6bfbbd7d44a1387e1351700df68013555","Message":"Add external group-buy integrations\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-12T00:24:50+08:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/7145a8553a880d8a94356baf7bcb4e2df4631e61...343b38f6bfbbd7d44a1387e1351700df68013555","Len":25}...
|
1771862764
|
Edit
Delete
|
|
116
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"18a5bb9c6 {"Commits":[{"Sha1":"18a5bb9c67c571fc2cad6ffe61e70633bcec36a8","Message":"Fix frontend and backend type-check\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-12T07:46:55+08:00"},{"Sha1":"7967b5d3535c5bb9b9e26e4418376bc2b6927aea","Message":"Document groupbuy service analysis\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-12T07:45:43+08:00"},{"Sha1":"6a301fa26efd7ac1cfefc96cbd912a1d9d3db9da","Message":"Investigate groupbuy integration\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-12T07:45:20+08:00"},{"Sha1":"58998e1babe1d0f9b82889482a3710073e638f36","Message":"Add groupbuy external integrations\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-12T07:43:33+08:00"},{"Sha1":"4e8869bcc54627e1f20c00de7ad2ad5469fa3446","Message":"Add groupbuy service integrations\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-12T07:41:44+08:00"}],"HeadCommit":{"Sha1":"18a5bb9c67c571fc2cad6ffe61e70633bcec36a8","Message":"Fix frontend and backend type-check\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-12T07:46:55+08:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/343b38f6bfbbd7d44a1387e1351700df68013555...18a5bb9c67c571fc2cad6ffe61e70633bcec36a8","Len":25}...
|
1771862813
|
Edit
Delete
|
|
117
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"f8a1588d1 {"Commits":[{"Sha1":"f8a1588d13917a22d3710214cee7468768c4490e","Message":"Fix contract signing flow timeout\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-12T08:48:12+08:00"},{"Sha1":"8b4fec9e55a27c0fc0081fee973dae0b4c3556be","Message":"修复合同签署流程超时失败问题 (0)\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-12T08:45:30+08:00"},{"Sha1":"6ed3a911ae382b8fd5c190cfe0919e2367a7097b","Message":"修复contract-signing-flow超时失败\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-12T08:44:32+08:00"},{"Sha1":"9f9b2c96d3714de38f0d27e7c5fc66e23cf496b4","Message":"Fix contract signing timeout\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-12T08:42:28+08:00"},{"Sha1":"9503f4d0db1e5309d3d5fe57141c1804825a6a31","Message":"Fix contract signing flow timeout\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-12T08:40:10+08:00"}],"HeadCommit":{"Sha1":"f8a1588d13917a22d3710214cee7468768c4490e","Message":"Fix contract signing flow timeout\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-12T08:48:12+08:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/18a5bb9c67c571fc2cad6ffe61e70633bcec36a8...f8a1588d13917a22d3710214cee7468768c4490e","Len":10}...
|
1771862906
|
Edit
Delete
|
|
118
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"4e9a26e0e {"Commits":[{"Sha1":"4e9a26e0e1c15538f2a6f033748340bb62b02af2","Message":"Fix contract signing flow timeout\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-12T09:08:09+08:00"},{"Sha1":"221831d8296440837918bdea099ddfe1cb105e7d","Message":"Fix contract-signing-flow timeout\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-12T09:07:29+08:00"},{"Sha1":"8c4c56e20f4634ca0c3000c7503f8ec8b9c239f7","Message":"Fix contract signing timeout\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-12T09:02:10+08:00"},{"Sha1":"3c363f67c8eed9b404c8c6525e11ba92fb49dc65","Message":"修复 contract-signing-flow 超时失败\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-12T09:00:06+08:00"},{"Sha1":"091461f1d34669151f15624f1793671d24ea4935","Message":"修复 contract-signing-flow 超时失败\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-12T08:59:30+08:00"}],"HeadCommit":{"Sha1":"4e9a26e0e1c15538f2a6f033748340bb62b02af2","Message":"Fix contract signing flow timeout\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-12T09:08:09+08:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/f8a1588d13917a22d3710214cee7468768c4490e...4e9a26e0e1c15538f2a6f033748340bb62b02af2","Len":10}...
|
1771862929
|
Edit
Delete
|
|
119
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"546659ec6 {"Commits":[{"Sha1":"546659ec60e857bdf77619972d1b3e4333b621ac","Message":"Fix e2e timeout failures in business\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-12T10:47:47+08:00"},{"Sha1":"1b8bb5fb6f26c34b2e8b8ef0034ba5abad85b778","Message":"Fix contract signing flow timeouts\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-12T10:43:58+08:00"},{"Sha1":"5bbca50424a2b46f75580225a21e3598d47f2599","Message":"Fix 合同签署流程超时失败」} PMID correction? I\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-12T10:32:53+08:00"},{"Sha1":"6ed44eeae0cc3408bafde02ef9a6987230bb423f","Message":"Fix contract signing flow timeout\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-12T10:06:50+08:00"},{"Sha1":"e42d979f587f47754c40e56d87cb2e5afed8d6e9","Message":"Fix contract signing flow timeouts\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-12T10:05:41+08:00"}],"HeadCommit":{"Sha1":"546659ec60e857bdf77619972d1b3e4333b621ac","Message":"Fix e2e timeout failures in business\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-12T10:47:47+08:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/4e9a26e0e1c15538f2a6f033748340bb62b02af2...546659ec60e857bdf77619972d1b3e4333b621ac","Len":10}...
|
1771862944
|
Edit
Delete
|
|
120
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"14c4cca40 {"Commits":[{"Sha1":"14c4cca40c3b21a5247fd9117fc9af829acc8ea7","Message":"Use permissions constants in workflow and supplier routes\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-14T13:04:17+08:00"},{"Sha1":"79fcfedb8be1c699b9c0be70c6eba5f9cb255217","Message":"Unify lead-scoring-ai docs permission naming\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-14T13:00:56+08:00"},{"Sha1":"06907f69205d8b6f337f431f5fd3e7edfec8d9d7","Message":"Update marketing chatbot permissions\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-14T12:58:35+08:00"},{"Sha1":"f931c912f26fc011817d1f2b5d528d3ce2b2a919","Message":"Use permissions constants in lead-scoring-ai\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-14T12:55:08+08:00"},{"Sha1":"fc30f7fb18e821bf843d5480e636e333d44c231c","Message":"Use permissions constants in ad-acc\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-14T12:50:11+08:00"}],"HeadCommit":{"Sha1":"14c4cca40c3b21a5247fd9117fc9af829acc8ea7","Message":"Use permissions constants in workflow and supplier routes\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-14T13:04:17+08:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/546659ec60e857bdf77619972d1b3e4333b621ac...14c4cca40c3b21a5247fd9117fc9af829acc8ea7","Len":20}...
|
1771863032
|
Edit
Delete
|
|
121
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"07ea713c1 {"Commits":[{"Sha1":"07ea713c1feff2e0f7d2b91d5ca68f2e0140a963","Message":"fix(events): close remaining partial event coverage gaps\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-14T15:48:57+08:00"},{"Sha1":"2bb98573012162e66541b69f713e6b469c268b2c","Message":"docs(permissions): align ai docs to kebab and add 20260214 migration guide\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-14T15:38:53+08:00"},{"Sha1":"f773cce3ddbd4b1c23e4211aea0a0158da1ed047","Message":"feat(db): add migration to normalize permission codes to kebab\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-14T15:34:44+08:00"},{"Sha1":"44a7486eb5e06ab7e3b26abf9d0e27c9e95eea19","Message":"chore(check): enforce kebab permission naming in consistency check\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-14T15:32:46+08:00"},{"Sha1":"958c331d79789ae97b222fbf14eacbcee94760b4","Message":"refactor(permissions): remove _KEBAB aliases and use canonical constants\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-14T15:31:35+08:00"}],"HeadCommit":{"Sha1":"07ea713c1feff2e0f7d2b91d5ca68f2e0140a963","Message":"fix(events): close remaining partial event coverage gaps\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-14T15:48:57+08:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/14c4cca40c3b21a5247fd9117fc9af829acc8ea7...07ea713c1feff2e0f7d2b91d5ca68f2e0140a963","Len":25}...
|
1771863141
|
Edit
Delete
|
|
122
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"d7015f9d4 {"Commits":[{"Sha1":"d7015f9d49cede2efeed047cc1f3b40cc86ec8f9","Message":"Fix regression failures in services\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-15T08:40:31+08:00"},{"Sha1":"191c639c0dc139805afc48cca2abdf70a331e6de","Message":"Fix seven failed files first\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-15T08:28:53+08:00"},{"Sha1":"96cf73594417b29e4e76f975c30fc1e6dd317846","Message":"Fix regression failures in services\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-15T08:21:05+08:00"},{"Sha1":"77bed0b600c4ed27a825b12da1f55320a8732627","Message":"Align testing workflows and docs\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-15T08:07:36+08:00"},{"Sha1":"309b1c29423bf9e6d4a95cc357397ce821bf4b27","Message":"Update template and lead services\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-15T07:50:17+08:00"}],"HeadCommit":{"Sha1":"d7015f9d49cede2efeed047cc1f3b40cc86ec8f9","Message":"Fix regression failures in services\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-15T08:40:31+08:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/07ea713c1feff2e0f7d2b91d5ca68f2e0140a963...d7015f9d49cede2efeed047cc1f3b40cc86ec8f9","Len":25}...
|
1771863152
|
Edit
Delete
|
|
123
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"b811674b3 {"Commits":[{"Sha1":"b811674b3d8bcccda88901dc53d28649bb22a695","Message":"继续扩大回归修复失败问题} continuous? need close\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-15T10:42:03+08:00"},{"Sha1":"9048c1506657a7278c291390d4c1aa00a7b00456","Message":"修复扩大回归失败测试集各项问题还原回归\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-15T10:40:51+08:00"},{"Sha1":"a699c1b8574daa28dbaaacd6d46ced6a4c95e462","Message":"Fix failed regression suite\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-15T10:16:07+08:00"},{"Sha1":"dc29ea3a681a369f3f918cdd06ba33c8b1c47e54","Message":"Fix regression failures starting at\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-15T10:08:18+08:00"},{"Sha1":"35fe09b825591cd4fad9eca516af05d69a8b7304","Message":"refactor: 完成 Batch 1 和 Batch 2 的 BaseService 重构\n\n## 重构范围\n- Batch 1(8 个核心模块):leads, opportunities, quotes, contracts, orders, tickets, renewals, shipments\n- Batch 2(4 个模块):ai-agents(多类继承), reconciliation, bank-import, matching-engine\n\n## 核心改动\n1. **BaseService 继承**:12 个模块服务类继承 BaseService,统一 CRUD 操作\n2. **多租户隔离**:所有查询使用 buildTenantWhere(),确保数据隔离\n3. **事件发布**:写操作统一通过 publishEvent() 发布 Kafka 事件\n4. **状态机集成**:状态变更统一通过 canTransition() 校验\n5. **事务安全**:复杂操作使用 prisma.$transaction() 保证原子性\n\n## 技术亮点\n- ai-agents 模块:首次实现同文件多类继承 BaseService(3 主类 + 4 工具类)\n- matching-engine:保持独立算法服务,不继承 BaseService 但遵循项目规范\n- 智能匹配算法:加权评分(金额 40%,名称 30%,参考号 15%,日期 15%)\n- 自动阈值决策:自动确认 95%,人工审核 70%\n\n## 代码质量\n- 删除 8 个临时 .new.ts 文件(-9,501 行)\n- 重构 12 个服务文件(净减少 11,369 行)\n- 更新 13 个测试文件,确保测试覆盖\n- 通过多租户安全审计:npm run audit:tenant ✅\n\n## 测试验证\n- ai-agent.permissions.test.ts: 12/12 tests passed\n- 多租户隔离:无安全问题\n- 事件发布:所有写操作正确发布事件\n- 状态机校验:状态转换验证 100% 覆盖\n\n## 统计数据\n- 48 个文件变更\n- 9,785 行新增\n- 21,154 行删除\n- 净减少 11,369 行代码(-53%)\n\nCo-Authored-By: Claude Sonnet 4.5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-15T09:58:37+08:00"}],"HeadCommit":{"Sha1":"b811674b3d8bcccda88901dc53d28649bb22a695","Message":"继续扩大回归修复失败问题} continuous? need close\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-15T10:42:03+08:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/d7015f9d49cede2efeed047cc1f3b40cc86ec8f9...b811674b3d8bcccda88901dc53d28649bb22a695","Len":5}...
|
1771863241
|
Edit
Delete
|
|
124
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"6a0c5f7bf {"Commits":[{"Sha1":"6a0c5f7bf734b351d9adc202dbdab62ec1d9a11d","Message":"Fix failed regression files\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-15T12:32:30+08:00"},{"Sha1":"fd380a5bdc32c396a021c83fde9d740fb0be906c","Message":"修复已上报故障删除提示理解错误」} However needs 18-3\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-15T11:55:50+08:00"},{"Sha1":"51303671c2c01724cf0c06a88a33e77c1499cfc1","Message":"Fix listed e2e regression failures\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-15T11:52:49+08:00"},{"Sha1":"b264100e46c19e4e79be52d7c26e42ba62802778","Message":"修复最近扩大回归失败情况該user provided last word\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-15T11:46:44+08:00"},{"Sha1":"9178f9ce5fae2e2669d9de2b8111108a8600ceb6","Message":"Fix expanded regression failures\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-15T10:43:08+08:00"}],"HeadCommit":{"Sha1":"6a0c5f7bf734b351d9adc202dbdab62ec1d9a11d","Message":"Fix failed regression files\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-15T12:32:30+08:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/b811674b3d8bcccda88901dc53d28649bb22a695...6a0c5f7bf734b351d9adc202dbdab62ec1d9a11d","Len":5}...
|
1771863278
|
Edit
Delete
|
|
125
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"c544245db {"Commits":[{"Sha1":"c544245db6731ba7a3f5a10edf7698967643f94d","Message":"Update treasury services and schema\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-15T20:33:20+08:00"},{"Sha1":"dd0c5594efcd279494302481c573a338d1b8f130","Message":"Summarize backend revenue changes\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-15T16:57:36+08:00"},{"Sha1":"8bef17ed49cc235f56ba20490e1cbcd69d5eef59","Message":"Investigate repeated API debug logs\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-15T16:52:17+08:00"},{"Sha1":"5fa423d8f446e7c8019b507e98ca29833e1efc9a","Message":"Investigate repeated GET /im/unread‑\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-15T16:32:27+08:00"},{"Sha1":"d1b7018ba9053ef12ea4dd9e8851fbb815925825","Message":"Inspect unread stats logging\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-15T14:36:25+08:00"}],"HeadCommit":{"Sha1":"c544245db6731ba7a3f5a10edf7698967643f94d","Message":"Update treasury services and schema\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-15T20:33:20+08:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/6a0c5f7bf734b351d9adc202dbdab62ec1d9a11d...c544245db6731ba7a3f5a10edf7698967643f94d","Len":10}...
|
1771863308
|
Edit
Delete
|
|
126
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"5dda81cc1 {"Commits":[{"Sha1":"5dda81cc1d924bf1978062ca3fb162236ae8c57f","Message":"Update commission service exports\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-15T21:52:03+08:00"},{"Sha1":"03d0b2e2c6eb9079e5436e281a0e05bba3479530","Message":"Add discount policy endpoints\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-15T21:14:42+08:00"},{"Sha1":"23c03fa43a1ce9bb6130fcc6a7ceae940a620d18","Message":"Add partner import export\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-15T21:06:44+08:00"},{"Sha1":"4ec31d0412f1904447efbc328c1222cefa89fd91","Message":"Review commission service updates\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-15T21:03:46+08:00"},{"Sha1":"d3864bf32783868b2da8465923fac6aba834c589","Message":"Update partner product payment logic\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-15T20:53:43+08:00"}],"HeadCommit":{"Sha1":"5dda81cc1d924bf1978062ca3fb162236ae8c57f","Message":"Update commission service exports\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-15T21:52:03+08:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/c544245db6731ba7a3f5a10edf7698967643f94d...5dda81cc1d924bf1978062ca3fb162236ae8c57f","Len":5}...
|
1771863337
|
Edit
Delete
|
|
127
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"4d8152400 {"Commits":[{"Sha1":"4d8152400e0edaa95ca297b53f8ad4da2f49bf7f","Message":"Fix frontend revenue recognition any\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-17T14:24:28+08:00"},{"Sha1":"34dd3176c9d53eec42229818726de7931dde4edb","Message":"Fix localhost revenue rules 404\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-16T08:58:40+08:00"},{"Sha1":"7f0601bdd1c8b0145758236aa9cd2f1b605e5e9a","Message":"Auto populate finance placeholder UI\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-16T01:45:50+08:00"},{"Sha1":"5c3b90c3df54a5727978fccc9fd3b68a496c2b90","Message":"Add finance dashboard skeleton tabs\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-16T01:32:03+08:00"},{"Sha1":"5bf47df3e9217bf8193505e7d28b73240bcd3cf4","Message":"Update finance placeholder pages\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-16T01:15:20+08:00"}],"HeadCommit":{"Sha1":"4d8152400e0edaa95ca297b53f8ad4da2f49bf7f","Message":"Fix frontend revenue recognition any\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-17T14:24:28+08:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/5dda81cc1d924bf1978062ca3fb162236ae8c57f...4d8152400e0edaa95ca297b53f8ad4da2f49bf7f","Len":25}...
|
1771863438
|
Edit
Delete
|
|
128
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"3108922a8 {"Commits":[{"Sha1":"3108922a8c61e4ac42096a04dfc6f4cf5c836f0f","Message":"Fix unread stats 401 handling\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-17T21:23:09+08:00"},{"Sha1":"67de5794538ad71b4a50b205f1aed0cfb8bfc348","Message":"Fix 401 on /im/unread-stats request\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-17T21:21:56+08:00"},{"Sha1":"9e2cd04110083a84f66529db1ac59d0a5ce5caba","Message":"Fix unread stats 401 error\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-17T21:16:32+08:00"},{"Sha1":"660e19d3ded930a5ec03e763535fc9143d2ef532","Message":"Fix unread stats 401 error\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-17T21:15:26+08:00"},{"Sha1":"73d51a4255219c4f5d850ecc288cf81dbdbb5f88","Message":"Fix unread stats auth retry\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-17T21:06:15+08:00"}],"HeadCommit":{"Sha1":"3108922a8c61e4ac42096a04dfc6f4cf5c836f0f","Message":"Fix unread stats 401 handling\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-17T21:23:09+08:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/4d8152400e0edaa95ca297b53f8ad4da2f49bf7f...3108922a8c61e4ac42096a04dfc6f4cf5c836f0f","Len":25}...
|
1771863891
|
Edit
Delete
|
|
129
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"b93d37ac7 {"Commits":[{"Sha1":"b93d37ac75fcac068cb96cd72f7760cf3f9ee0f9","Message":"Fix invalid argument API error\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-18T01:51:25+08:00"},{"Sha1":"4185c2596c2a67c32174648b266846abff6af9ec","Message":"Fix API invalid argument error\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-18T01:35:34+08:00"},{"Sha1":"195d39b533e4533e68280e98ed582f790b634da2","Message":"Fix API invalid argument error\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-18T01:30:30+08:00"},{"Sha1":"2f2ea56767ae64304bc5838fbc7c95222cbc187c","Message":"Fix invalid workflow relation\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-18T00:51:40+08:00"},{"Sha1":"78c18b09770dd216ec3890f605e87bfe8ad79ea6","Message":"Fix API invalid argument error\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-18T00:34:33+08:00"}],"HeadCommit":{"Sha1":"b93d37ac75fcac068cb96cd72f7760cf3f9ee0f9","Message":"Fix invalid argument API error\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-18T01:51:25+08:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/3108922a8c61e4ac42096a04dfc6f4cf5c836f0f...b93d37ac75fcac068cb96cd72f7760cf3f9ee0f9","Len":25}...
|
1771863900
|
Edit
Delete
|
|
130
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"d96c65b28 {"Commits":[{"Sha1":"d96c65b28668f885c01649e4d31f5f9676cfe863","Message":"Fix missing TasksPending view import\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-19T13:46:35+08:00"},{"Sha1":"7ee51d863143a09ac5f44aca0fae0e2ec78d7153","Message":"Fix missing TasksPending view import\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-19T13:28:00+08:00"},{"Sha1":"a3927308ef0917d5dec9f40d78e446933a0fb79f","Message":"Fix missing ai agents TasksPending\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-19T00:32:55+08:00"},{"Sha1":"806f9199b965314766348d1986a0b911eefe9f78","Message":"Fix missing TasksPending view import\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-18T21:07:28+08:00"},{"Sha1":"5440eca0fa0e07a317f90fcd71c33a45eff2cbdc","Message":"Fix missing TasksPending view import\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-18T19:06:46+08:00"}],"HeadCommit":{"Sha1":"d96c65b28668f885c01649e4d31f5f9676cfe863","Message":"Fix missing TasksPending view import\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-19T13:46:35+08:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/b93d37ac75fcac068cb96cd72f7760cf3f9ee0f9...d96c65b28668f885c01649e4d31f5f9676cfe863","Len":25}...
|
1771863933
|
Edit
Delete
|
|
131
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"31212e80d {"Commits":[{"Sha1":"31212e80da71dfee521244839853f811bea867e4","Message":"Add opposite relations for audit log\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-20T22:50:49+08:00"},{"Sha1":"860236037bd2e91002a54e00a30e4295e8a68920","Message":"Add missing Prisma relation fields\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-20T22:15:35+08:00"},{"Sha1":"a2fa4d2c6a74812954b9066d4d880ef948e337a5","Message":"Fix agent audit logs relations\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-20T22:11:14+08:00"},{"Sha1":"868ddd29c52d54bfb6fddaaf346f8287d5bc738b","Message":"Fix agent audit log relations\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-20T22:03:54+08:00"},{"Sha1":"965dc4705275f2ba7e9c0e3316fd3fa7790a9934","Message":"Fix agent audit log relations\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-20T21:58:04+08:00"}],"HeadCommit":{"Sha1":"31212e80da71dfee521244839853f811bea867e4","Message":"Add opposite relations for audit log\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-20T22:50:49+08:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/d96c65b28668f885c01649e4d31f5f9676cfe863...31212e80da71dfee521244839853f811bea867e4","Len":25}...
|
1771864161
|
Edit
Delete
|
|
132
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"57dde43e9 {"Commits":[{"Sha1":"57dde43e9eb1e72e9797fd342f9d920b9afb6ab5","Message":"Run backend audit scripts\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-23T10:19:59+08:00"},{"Sha1":"07b1601c86752a302e603d74d41d74f1f75c82d5","Message":"Audit backend route changes\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-23T10:08:53+08:00"},{"Sha1":"2d9241c7ee82ceb0e13994c8558ffdc99e4d202c","Message":"Analyze recent project changes\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-23T09:40:30+08:00"},{"Sha1":"e07d7959f1a4a04eeb4ce8011de1d4efac9b4b30","Message":"fix(api): resolve ad-creatives routing conflict and add missing advanced endpoints\n\n- Fixed routing blackhole in `register-domain-routes.ts` by ordering `adPlacementCreativeRoutes` before the generic `adCreativesRoutes`, allowing AB tests and attribution routes to resolve correctly.\n- Corrected frontend API request paths in `ad-creatives.ts` to align with the backend's nested `/ad-placement/creatives` prefix.\n- Mocked 4 missing advanced analytics endpoints in `ad-creative.controller/service/routes` (`getAbTestStats`, `getAbTest`, `getAttributionStats`, `resolveBudgetAlert`) to prevent UI components from throwing 404 Not Found errors.\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-23T09:32:13+08:00"},{"Sha1":"bcbcfed972aa45b8fd4f98066a53fb9f414513da","Message":"feat(ui): upgrade placeholders to VisionPlaceholder for analytics and ai-agents\n\n- Extracted `VisionPlaceholder` component from Finance OS placeholder logic to provide high-fidelity, interactive skeletons for missing features\n- Replaced 22 plain empty states in `analytics/` modules with `VisionPlaceholder` to enhance commercial demonstration quality\n- Upgraded 4 AI Agent monitoring queues (`Events`, `Queue`, `TasksPending`, `TasksReview`) to use `VisionPlaceholder` with domain-specific metrics\n- Hid the unsupported 'Run Now' action in `scheduled-jobs/Index.vue` to prevent user flow disruption\n- Updated `REFACTOR_TASKS.md` with a 3-step roadmap (Analytics, Finance-OS, AI-Agents) to convert these placeholders to real features\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-23T09:11:30+08:00"}],"HeadCommit":{"Sha1":"57dde43e9eb1e72e9797fd342f9d920b9afb6ab5","Message":"Run backend audit scripts\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-23T10:19:59+08:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/31212e80da71dfee521244839853f811bea867e4...57dde43e9eb1e72e9797fd342f9d920b9afb6ab5","Len":31}...
|
1771864174
|
Edit
Delete
|
|
133
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"c75a655fb {"Commits":[{"Sha1":"c75a655fbcae4e4a5f0f675e72c422c5c3ff5a72","Message":"Fix login expiration throttling\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-24T00:24:02+08:00"},{"Sha1":"53914cf9a2af18dfe3fd1bdd68865d0629979b9f","Message":"Fix auth expiry handling\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-24T00:10:03+08:00"},{"Sha1":"2757965438fd9e2796643999b4dc70fd9a29ea62","Message":"Fix login expiration throttling\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-23T23:51:25+08:00"},{"Sha1":"97441ae42649a48470bbc978b3ad77061a1703e4","Message":"Fix auth expiration throttling\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-23T22:57:44+08:00"},{"Sha1":"aca608e90896b9e61e7348d82e300954c1b34f0f","Message":"Fix 登录过期节流处理」} PMID??? Wait string\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-23T22:46:26+08:00"}],"HeadCommit":{"Sha1":"c75a655fbcae4e4a5f0f675e72c422c5c3ff5a72","Message":"Fix login expiration throttling\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-24T00:24:02+08:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/57dde43e9eb1e72e9797fd342f9d920b9afb6ab5...c75a655fbcae4e4a5f0f675e72c422c5c3ff5a72","Len":19}...
|
1771864209
|
Edit
Delete
|
|
134
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"68528dce9 {"Commits":[{"Sha1":"68528dce9b8c543283a675374b5a23bc2e46c935","Message":"feat: SKU查询修复 + AI工作流状态机 + RAG集成 + 线索自动捕获\n\n1. 修复 SKU 服务 Prisma to-one 关系查询错误\n - 移除 products include 中无效的 where 子句(to-one 关系不支持)\n - 修复 list/get/getSkuByCode 三个方法\n\n2. 新增 AI 工作流状态机 (ai-workflow.machine.ts)\n - XState 5.x 实现:draft → active ↔ paused → archived\n - 包含守卫、动作、转换表、辅助函数\n - ai-agent.service.ts 集成 canTransitionAIWorkflow 校验\n\n3. IM 消息处理器 RAG 增强\n - 集成向量嵌入生成 (generateEmbedding)\n - 接入 ragEnhancedExecutor 知识检索增强\n - 实时线索捕获:识别 create_lead 意图自动提取线索\n\n4. 线索采集服务增强\n - 新增 AI 驱动的文本线索提取 (extractLeadFromText)\n - 新增 processIMLead 流水线:提取→清洗→验证→去重→创建\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-27T07:32:22+08:00"},{"Sha1":"5bf60bf54c42c8295b8e5595fba959e0821ceb85","Message":"Fix TypeScript any violations in duo\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-27T02:07:18+08:00"},{"Sha1":"169dc0ba22faf4ef27cd1d3c55114437b7855f23","Message":"Replace any types in shared models\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-27T01:21:28+08:00"},{"Sha1":"ffba80d4f2db2f955107f264e83c8d2a42f6b8e9","Message":"Fix shared model any usage\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-26T22:54:25+08:00"},{"Sha1":"b222af8d439100df34d9a6d61374df924561d451","Message":"Update AI agent workflows\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-26T09:06:43+08:00"}],"HeadCommit":{"Sha1":"68528dce9b8c543283a675374b5a23bc2e46c935","Message":"feat: SKU查询修复 + AI工作流状态机 + RAG集成 + 线索自动捕获\n\n1. 修复 SKU 服务 Prisma to-one 关系查询错误\n - 移除 products include 中无效的 where 子句(to-one 关系不支持)\n - 修复 list/get/getSkuByCode 三个方法\n\n2. 新增 AI 工作流状态机 (ai-workflow.machine.ts)\n - XState 5.x 实现:draft → active ↔ paused → archived\n - 包含守卫、动作、转换表、辅助函数\n - ai-agent.service.ts 集成 canTransitionAIWorkflow 校验\n\n3. IM 消息处理器 RAG 增强\n - 集成向量嵌入生成 (generateEmbedding)\n - 接入 ragEnhancedExecutor 知识检索增强\n - 实时线索捕获:识别 create_lead 意图自动提取线索\n\n4. 线索采集服务增强\n - 新增 AI 驱动的文本线索提取 (extractLeadFromText)\n - 新增 processIMLead 流水线:提取→清洗→验证→去重→创建\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-27T07:32:22+08:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/c75a655fbcae4e4a5f0f675e72c422c5c3ff5a72...68528dce9b8c543283a675374b5a23bc2e46c935","Len":9}...
|
1772148752
|
Edit
Delete
|
|
135
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"f484e8b33 {"Commits":[{"Sha1":"f484e8b33e9c317c16aa0794fea29ecd968246e1","Message":"fix(ai-agent): handle rejected promise on messagebox and value for radio button\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-27T09:32:20+08:00"}],"HeadCommit":{"Sha1":"f484e8b33e9c317c16aa0794fea29ecd968246e1","Message":"fix(ai-agent): handle rejected promise on messagebox and value for radio button\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-27T09:32:20+08:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/68528dce9b8c543283a675374b5a23bc2e46c935...f484e8b33e9c317c16aa0794fea29ecd968246e1","Len":1}...
|
1772155952
|
Edit
Delete
|
|
136
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"e926f391d {"Commits":[{"Sha1":"e926f391dc14e2cc2b180c71114e6a20d20abed5","Message":"Fix shared models any types\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-27T12:42:16+08:00"},{"Sha1":"8cc63f1807438cc40710c64558bd8e5e796ece2f","Message":"fix(frontend): 全域契约对齐 — 消除10个组件的字段失能问题\n\n## channels 模块对齐\n- channels.ts: phone/email → contactPhone/contactEmail(接口 + 请求类型)\n- channels/Detail.vue: 6处旧字段引用 → contactPhone/contactEmail\n- channels/Form.vue: 表单初始值、数据赋值、parentChannel展示、v-model(5处)\n- channels/Index.vue: row.phone → row.contactPhone\n- customers/Form.vue: sourceChannel.phone → sourceChannel.contactPhone\n\n## community-tasks 模块对齐\n- community-tasks.ts: 枚举对齐后端权威源\n - TaskStatus: published/in_progress → active/paused\n - TaskType: 全替换为 daily/weekly/once/milestone\n - 字段名 type → taskType(接口 + 查询参数 + 请求类型)\n - TASK_STATUS_MAP/TASK_TYPE_MAP/canAcceptTask 同步更新\n- community-tasks/Detail.vue: detail.type×2 → detail.taskType\n- community-tasks/Form.vue: 初始值/数据赋值/v-model 三处对齐\n- community-tasks/Index.vue: taskQuery/handleReset/v-model/row/status枚举(5处)\n\n## ai-agents 模块对齐\n- TasksReview.vue: res.pagination → res.meta(分页结构修正)\n\n验收: vue-tsc --noEmit → EXIT_CODE=0(零编译错误)\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-27T12:42:14+08:00"}],"HeadCommit":{"Sha1":"e926f391dc14e2cc2b180c71114e6a20d20abed5","Message":"Fix shared models any types\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-27T12:42:16+08:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/f484e8b33e9c317c16aa0794fea29ecd968246e1...e926f391dc14e2cc2b180c71114e6a20d20abed5","Len":2}...
|
1772167343
|
Edit
Delete
|
|
137
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"2186d56d6 {"Commits":[{"Sha1":"2186d56d658fcaab3ff5ca5880742254dc8c4545","Message":"feat(dogfooding): 建立7天内部吃狗粮测试启动包\n\n## 核心产出\n\n### 测试文档体系\n- docs/dogfooding/README.md: 整体索引 + 启动 SOP\n- docs/dogfooding/accounts.md: 测试账号清单(租户A 8角色 + 租户B 2角色)\n- docs/dogfooding/metrics-dashboard.md: 每日实时指标看板(Bug趋势/模块分布/全链路状态)\n\n### 7天分日测试脚本\n- day-1: 基础验证(登录/线索/渠道)\n- day-2: 线索全流程 + 渠道深度\n- day-3: 商机 + 报价 + 审批流\n- day-4: 合同 + 订单 + 发货(Lead→Cash 链路首次跑通)\n- day-5: 财务 + 工单 + 续费\n- day-6: 门店 + 团购 + 社区任务(Store→Redemption 链路首次跑通)\n- day-7: 性能测试 + 多租户隔离验证 + 总结\n\n### 反馈收集机制\n- .gitea/ISSUE_TEMPLATE/bug_report.md: Bug 上报模板(P0~P3 等级/复现步骤/环境信息)\n- .gitea/ISSUE_TEMPLATE/feature_request.md: 改进建议模板\n- docs/dogfooding/templates/bug-report.md: Markdown 离线版\n- docs/dogfooding/templates/daily-report.md: 日报模板(9项打分维度)\n- docs/dogfooding/templates/final-report.md: 7天总结报告模板\n\n### 种子数据脚本\n- backend/scripts/seed-dogfood.ts: 完整种子数据脚本\n - 2个租户(dogfood-a/dogfood-b)\n - 8个测试账号(SDR/AE/CS/OPS/FIN/MGR/QA/DEV角色)\n - 10条渠道 + 20家企业客户 + 100条线索\n - 30个商机 + 10张报价 + 50个产品 + 3本价格目录\n - 5家门店 + 3个团购活动 + 2个社区 + 10个社区任务\n\n## 7天验收指标\n- Lead→Cash 链路完整记录 ≥1条\n- Store→Redemption 链路完整记录 ≥1条\n- P0 Bug 当日修复率 100%,P1 Bug 48h修复率 ≥80%\n- 页面首屏 \u003c3s,API响应 \u003c500ms\n- 多租户数据隔离 0泄露,测试账号日活率 ≥80%\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-27T13:05:12+08:00"}],"HeadCommit":{"Sha1":"2186d56d658fcaab3ff5ca5880742254dc8c4545","Message":"feat(dogfooding): 建立7天内部吃狗粮测试启动包\n\n## 核心产出\n\n### 测试文档体系\n- docs/dogfooding/README.md: 整体索引 + 启动 SOP\n- docs/dogfooding/accounts.md: 测试账号清单(租户A 8角色 + 租户B 2角色)\n- docs/dogfooding/metrics-dashboard.md: 每日实时指标看板(Bug趋势/模块分布/全链路状态)\n\n### 7天分日测试脚本\n- day-1: 基础验证(登录/线索/渠道)\n- day-2: 线索全流程 + 渠道深度\n- day-3: 商机 + 报价 + 审批流\n- day-4: 合同 + 订单 + 发货(Lead→Cash 链路首次跑通)\n- day-5: 财务 + 工单 + 续费\n- day-6: 门店 + 团购 + 社区任务(Store→Redemption 链路首次跑通)\n- day-7: 性能测试 + 多租户隔离验证 + 总结\n\n### 反馈收集机制\n- .gitea/ISSUE_TEMPLATE/bug_report.md: Bug 上报模板(P0~P3 等级/复现步骤/环境信息)\n- .gitea/ISSUE_TEMPLATE/feature_request.md: 改进建议模板\n- docs/dogfooding/templates/bug-report.md: Markdown 离线版\n- docs/dogfooding/templates/daily-report.md: 日报模板(9项打分维度)\n- docs/dogfooding/templates/final-report.md: 7天总结报告模板\n\n### 种子数据脚本\n- backend/scripts/seed-dogfood.ts: 完整种子数据脚本\n - 2个租户(dogfood-a/dogfood-b)\n - 8个测试账号(SDR/AE/CS/OPS/FIN/MGR/QA/DEV角色)\n - 10条渠道 + 20家企业客户 + 100条线索\n - 30个商机 + 10张报价 + 50个产品 + 3本价格目录\n - 5家门店 + 3个团购活动 + 2个社区 + 10个社区任务\n\n## 7天验收指标\n- Lead→Cash 链路完整记录 ≥1条\n- Store→Redemption 链路完整记录 ≥1条\n- P0 Bug 当日修复率 100%,P1 Bug 48h修复率 ≥80%\n- 页面首屏 \u003c3s,API响应 \u003c500ms\n- 多租户数据隔离 0泄露,测试账号日活率 ≥80%\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-27T13:05:12+08:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/e926f391dc14e2cc2b180c71114e6a20d20abed5...2186d56d658fcaab3ff5ca5880742254dc8c4545","Len":1}...
|
1772168721
|
Edit
Delete
|
|
140
|
5
|
5
|
5
|
9
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"a8f0a86b4 {"Commits":[{"Sha1":"a8f0a86b4c1d4422bfe5c002b8c5307111d317bb","Message":"test\n","AuthorEmail":"test@test.com","AuthorName":"test","CommitterEmail":"test@test.com","CommitterName":"test","Timestamp":"2026-02-27T15:21:42+08:00"}],"HeadCommit":{"Sha1":"a8f0a86b4c1d4422bfe5c002b8c5307111d317bb","Message":"test\n","AuthorEmail":"test@test.com","AuthorName":"test","CommitterEmail":"test@test.com","CommitterName":"test","Timestamp":"2026-02-27T15:21:42+08:00"},"CompareURL":"luoanwu/haizhan-ime-android/compare/63233cd10022a8f2d0c726c679dcc60d2a8d60d2...a8f0a86b4c1d4422bfe5c002b8c5307111d317bb","Len":1}...
|
1772177252
|
Edit
Delete
|
|
141
|
5
|
5
|
5
|
9
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"893022bfd {"Commits":[{"Sha1":"893022bfd17ce1f2e75e75651551cf8ceaacfe45","Message":"feat: 嗨赞AI输入法Android版初始提交\n","AuthorEmail":"law@g-hi.com","AuthorName":"luoanwu","CommitterEmail":"law@g-hi.com","CommitterName":"luoanwu","Timestamp":"2026-02-27T15:28:58+08:00"}],"HeadCommit":{"Sha1":"893022bfd17ce1f2e75e75651551cf8ceaacfe45","Message":"feat: 嗨赞AI输入法Android版初始提交\n","AuthorEmail":"law@g-hi.com","AuthorName":"luoanwu","CommitterEmail":"law@g-hi.com","CommitterName":"luoanwu","Timestamp":"2026-02-27T15:28:58+08:00"},"CompareURL":"luoanwu/haizhan-ime-android/compare/a8f0a86b4c1d4422bfe5c002b8c5307111d317bb...893022bfd17ce1f2e75e75651551cf8ceaacfe45","Len":1}...
|
1772177363
|
Edit
Delete
|
|
142
|
5
|
5
|
5
|
9
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"22125e0f1 {"Commits":[{"Sha1":"22125e0f1e435efabf81ec0007a1b56996cb0776","Message":"fix(ime-core): 修复TFLiteRecognizerTest验证方式,改为验证可观察行为\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-27T14:49:40+08:00"},{"Sha1":"e7926bf94bb1d2df1c56170dbe47940b49a70134","Message":"fix(ime-core): 修复HandwritingManager测试缺少ModelDownloader参数\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-27T14:40:23+08:00"},{"Sha1":"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","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-25T08:23:28+08:00"},{"Sha1":"f19558e8e838bacc0f616f40c1ec10d9a5e4e9d5","Message":"chore(server): 优化 Docker 基础设施配置\n\n- Redis: 修复空密码时 --requirepass 报错问题\n- Reranker Dockerfile: torch CPU 预安装 + 清华 PyPI 镜像加速\n- requirements.txt: 移除 --extra-index-url(已在 Dockerfile 中处理)\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-25T08:16:10+08:00"},{"Sha1":"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","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-25T08:15:48+08:00"}],"HeadCommit":{"Sha1":"22125e0f1e435efabf81ec0007a1b56996cb0776","Message":"fix(ime-core): 修复TFLiteRecognizerTest验证方式,改为验证可观察行为\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-27T14:49:40+08:00"},"CompareURL":"luoanwu/haizhan-ime-android/compare/893022bfd17ce1f2e75e75651551cf8ceaacfe45...22125e0f1e435efabf81ec0007a1b56996cb0776","Len":311}...
|
1772178608
|
Edit
Delete
|
|
144
|
5
|
5
|
5
|
10
|
0
|
0
|
refs/heads/main
|
0
|
|
1772180606
|
Edit
Delete
|
|
145
|
5
|
5
|
5
|
10
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"be21d403b {"Commits":[{"Sha1":"be21d403b5c238988ede6dd6cf7ca4884f82dfc1","Message":"feat(h5): 重构地图组件并优化打卡/踩点相关视图\n\n- 重构 MapPicker/MapView 组件适配新地图工具函数\n- 简化 map.ts 工具模块,移除冗余代码\n- 更新打卡详情、现场勘查、竞品详情、地图推荐等视图\n- 更新高德地图类型声明\n- 新增 userCompat.ts 用户兼容层 API\n- 新增 nginx 生产环境配置(disabled 状态)\n- 更新 .env 环境变量配置\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-27T16:22:56+08:00"},{"Sha1":"5c5f776182440538a1dad03be05c84c3eb5d4f8d","Message":"fix(miniprogram): 修复类型错误和完善 gitignore 配置\n\n- 修复 H5 竞品分析/详情页 API 调用参数和响应类型\n- 修复小程序评分页 dimensionScores 字段对齐\n- 修复坪效基准页类型转换\n- 修复 API 测试用例字段名匹配\n- 新增 AMap 类型声明文件\n- gitignore 排除小程序编译产物和后端导出文件\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-07T14:25:45+08:00"},{"Sha1":"e7465b059a2cc1fed48f944890d50cfde941bd00","Message":"chore: sync post-merge changes from merged branches\n\n- Docker compose redis port mapping update\n- Miniprogram page improvements and new utility functions\n- Shared API index cleanup\n- H5 check-in list view fix\n\nCo-Authored-By: Claude Opus 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-07T14:12:51+08:00"},{"Sha1":"88e1823e0038fc7dd4fafb283d6194c72cfbaf51","Message":"fix: remove duplicate methods in StoreService from merge\n\nCo-Authored-By: Claude Opus 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-07T14:10:24+08:00"},{"Sha1":"626361cdee3321a049f90f23cf0e481b503c6657","Message":"Merge remote-tracking branch 'origin/claude/complete-location-recommendations-ui-DxOg6'\n\nCo-Authored-By: Claude Opus 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-07T14:03:30+08:00"}],"HeadCommit":{"Sha1":"be21d403b5c238988ede6dd6cf7ca4884f82dfc1","Message":"feat(h5): 重构地图组件并优化打卡/踩点相关视图\n\n- 重构 MapPicker/MapView 组件适配新地图工具函数\n- 简化 map.ts 工具模块,移除冗余代码\n- 更新打卡详情、现场勘查、竞品详情、地图推荐等视图\n- 更新高德地图类型声明\n- 新增 userCompat.ts 用户兼容层 API\n- 新增 nginx 生产环境配置(disabled 状态)\n- 更新 .env 环境变量配置\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-27T16:22:56+08:00"},"CompareURL":"luoanwu/ktv-store-location-system/compare/e2e4dbdff0ec8cca7e722dff99f2b23113f9e81e...be21d403b5c238988ede6dd6cf7ca4884f82dfc1","Len":10}...
|
1772180606
|
Edit
Delete
|
|
146
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"79d594dd7 {"Commits":[{"Sha1":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","Message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-28T08:55:53+08:00"}],"HeadCommit":{"Sha1":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","Message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-28T08:55:53+08:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/2186d56d658fcaab3ff5ca5880742254dc8c4545...79d594dd776b47b40e6329ed3f6cf53c2b18251f","Len":1}...
|
1772240164
|
Edit
Delete
|
|
147
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"faa1dadd6 {"Commits":[{"Sha1":"faa1dadd6c2449b7b63ad5f3a6878cebeb5f08f2","Message":"docs: 新增全量数据库建库 SQL 脚本\n\n从当前 Prisma Schema 生成完整 PostgreSQL DDL,包含:\n- 13 个枚举类型(CREATE TYPE)\n- 591 张业务表(CREATE TABLE)\n- 1,235 条外键约束(ALTER TABLE ADD CONSTRAINT)\n\n适用于全量初始化或备份参考,使用命令:\nprisma migrate diff --from-empty --to-schema-datamodel --script\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-28T10:39:24+08:00"},{"Sha1":"34d077c9ca13908512fbafe030f0c888fa73f201","Message":"Update backend config and e2e assets\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-28T10:01:17+08:00"},{"Sha1":"380bfabece8e7a409382ae61d7dee237006b4fc3","Message":"Add consumer worker entry point\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-28T09:58:17+08:00"},{"Sha1":"a3df955ab8727453b4b8ee7794d85752534b3485","Message":"Add missing e2e artifacts\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-28T09:57:53+08:00"},{"Sha1":"bac27e54b74d6d5c9e412a8ef408e72f490ef946","Message":"Add missing e2e error artifacts\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-28T09:47:00+08:00"}],"HeadCommit":{"Sha1":"faa1dadd6c2449b7b63ad5f3a6878cebeb5f08f2","Message":"docs: 新增全量数据库建库 SQL 脚本\n\n从当前 Prisma Schema 生成完整 PostgreSQL DDL,包含:\n- 13 个枚举类型(CREATE TYPE)\n- 591 张业务表(CREATE TABLE)\n- 1,235 条外键约束(ALTER TABLE ADD CONSTRAINT)\n\n适用于全量初始化或备份参考,使用命令:\nprisma migrate diff --from-empty --to-schema-datamodel --script\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-28T10:39:24+08:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/79d594dd776b47b40e6329ed3f6cf53c2b18251f...faa1dadd6c2449b7b63ad5f3a6878cebeb5f08f2","Len":8}...
|
1772246473
|
Edit
Delete
|
|
148
|
5
|
5
|
5
|
6
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"bf252f408 {"Commits":[{"Sha1":"bf252f4083bdceceec242d821c3d37825d51f29f","Message":"docs: 新增数据库 Schema 文档 (docs/database/README.md)\n\n- 创建 docs/database/README.md:完整说明 full_schema.sql 的统计数据、\n 生成方式、文件结构、使用场景、更新流程及多租户架构\n- 更新 README.md:在项目结构和文档章节中添加数据库文档引用\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-28T10:53:27+08:00"}],"HeadCommit":{"Sha1":"bf252f4083bdceceec242d821c3d37825d51f29f","Message":"docs: 新增数据库 Schema 文档 (docs/database/README.md)\n\n- 创建 docs/database/README.md:完整说明 full_schema.sql 的统计数据、\n 生成方式、文件结构、使用场景、更新流程及多租户架构\n- 更新 README.md:在项目结构和文档章节中添加数据库文档引用\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-28T10:53:27+08:00"},"CompareURL":"luoanwu/juhi-omni-knowledge-hub/compare/faa1dadd6c2449b7b63ad5f3a6878cebeb5f08f2...bf252f4083bdceceec242d821c3d37825d51f29f","Len":1}...
|
1772247215
|
Edit
Delete
|
|
150
|
5
|
5
|
5
|
11
|
0
|
0
|
refs/heads/main
|
1
|
|
1772247728
|
Edit
Delete
|
|
151
|
5
|
5
|
5
|
11
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"01f709c72 {"Commits":[{"Sha1":"01f709c72d84bbcd3e98adfb6cdb8eacabf9607a","Message":"test(core): skip toast tests that require widget testing context\n\nToastService uses GetX snackbar which requires GetMaterialApp navigation\ncontext. Skip these tests in unit test environment with clear documentation.\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-01-27T14:13:02+08:00"},{"Sha1":"b230e9645e1eeb7a291ba1ff4eb665c9b87ce00a","Message":"fix(test): update floor renderer tests and ignore coverage directory\n\n- Fix FloorFactory visibility test expectations (filtering is caller's responsibility)\n- Fix FloorConfig.toJson floor_type expectation to use snake_case\n- Add coverage/ to .gitignore\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-01-27T14:12:47+08:00"},{"Sha1":"d21732b003013d9b8be71f6c329ed6058774c246","Message":"refactor(repository): add forTesting constructors and fix error handling\n\n- Add forTesting constructors to RoomRepository, SongRepository,\n SystemRepository, and UserRepository for dependency injection\n- Fix BaseRepository error message handling to use errorMessage param\n- Update repository tests to use new forTesting constructors\n- Improve test isolation with proper mock injection\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-01-27T14:11:47+08:00"},{"Sha1":"1ab29b3601d9529f757dd53268a224b5b2589dae","Message":"docs(design): add Pencil MCP design files with 47 optimized pages\n\n- Add 3 Pencil design files (嗨赞.pen, 嗨赞2.pen, 嗨赞3.pen)\n- Add PENCIL_MCP_DESIGN_PLAN.md with design specifications\n- Add MCP configuration (.mcp.json)\n- Fix test files and CI workflow\n- Optimize all 12 modules with cyberpunk style theme\n\nModules completed:\n- Module 9: Works (4 pages) - layout fixes\n- Module 10: AI (2 pages) - 2x2 grid, dark theme\n- Module 11: Short Video (1 page) - TikTok-style rebuild\n- Module 12: Profile Center (2 pages) - avatar and settings\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-01-27T13:47:48+08:00"},{"Sha1":"1543a246356391aff1980983c02dab8cf3d36dbe","Message":"feat(social): implement user profile and activity feed modules\n\n- Add UserProfile model with stats, relationships, and helpers\n- Add ActivityModel with 9 activity types and JSON serialization\n- Implement FeedRepository with 11 API methods for activity operations\n- Create FeedController with pagination, like/delete/report actions\n- Build FeedPage with tabs (Following/Recommend/Hot) and infinite scroll\n- Implement ActivityCard widget supporting all activity types\n- Add UserProfileController with follow toggle and work loading\n- Create UserProfilePage with header, stats, and tabs\n- Include 19 unit tests (8 profile + 11 feed) - all passing\n- Add API endpoints for activity feed operations\n\nModules completed:\n- SOCIAL-001: User Profile Page\n- SOCIAL-002: Activity Feed (动态广场)\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-01-27T10:01:37+08:00"}],"HeadCommit":{"Sha1":"01f709c72d84bbcd3e98adfb6cdb8eacabf9607a","Message":"test(core): skip toast tests that require widget testing context\n\nToastService uses GetX snackbar which requires GetMaterialApp navigation\ncontext. Skip these tests in unit test environment with clear documentation.\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-01-27T14:13:02+08:00"},"CompareURL":"luoanwu/JHSongApp/compare/0535b9d4b6884a2121cdc8b7a38aadc1f5ef5f61...01f709c72d84bbcd3e98adfb6cdb8eacabf9607a","Len":10}...
|
1772247728
|
Edit
Delete
|
|
153
|
5
|
5
|
5
|
12
|
0
|
0
|
refs/heads/main
|
0
|
|
1772247909
|
Edit
Delete
|
|
154
|
5
|
5
|
5
|
12
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"8d9e6b6ad {"Commits":[{"Sha1":"8d9e6b6ad57051dab70fd0528ffa867dae6ca59f","Message":"feat: 巨嗨科技官网 V2.0 初始化\n\n- Nuxt.js 框架搭建\n- 首页、城市页、解决方案页\n- ROI 计算器组件\n- 行业洞察文章页\n- 页头页脚组件\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-28T11:04:47+08:00"}],"HeadCommit":{"Sha1":"8d9e6b6ad57051dab70fd0528ffa867dae6ca59f","Message":"feat: 巨嗨科技官网 V2.0 初始化\n\n- Nuxt.js 框架搭建\n- 首页、城市页、解决方案页\n- ROI 计算器组件\n- 行业洞察文章页\n- 页头页脚组件\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-02-28T11:04:47+08:00"},"CompareURL":"","Len":1}...
|
1772247909
|
Edit
Delete
|
|
156
|
5
|
5
|
5
|
13
|
0
|
0
|
refs/heads/main
|
0
|
|
1772248014
|
Edit
Delete
|
|
157
|
5
|
5
|
5
|
13
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"6c80c0097 {"Commits":[{"Sha1":"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","AuthorEmail":"hi.laoluo@hilaoluodeMacBook-Pro.local","AuthorName":"hi.laoluo","CommitterEmail":"hi.laoluo@hilaoluodeMacBook-Pro.local","CommitterName":"hi.laoluo","Timestamp":"2026-01-21T00:05:33+08:00"},{"Sha1":"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","AuthorEmail":"hi.laoluo@hilaoluodeMacBook-Pro.local","AuthorName":"hi.laoluo","CommitterEmail":"hi.laoluo@hilaoluodeMacBook-Pro.local","CommitterName":"hi.laoluo","Timestamp":"2026-01-20T23:54:24+08:00"},{"Sha1":"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","AuthorEmail":"hi.laoluo@hilaoluodeMacBook-Pro.local","AuthorName":"hi.laoluo","CommitterEmail":"hi.laoluo@hilaoluodeMacBook-Pro.local","CommitterName":"hi.laoluo","Timestamp":"2026-01-20T23:38:29+08:00"},{"Sha1":"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","AuthorEmail":"hi.laoluo@hilaoluodeMacBook-Pro.local","AuthorName":"hi.laoluo","CommitterEmail":"hi.laoluo@hilaoluodeMacBook-Pro.local","CommitterName":"hi.laoluo","Timestamp":"2026-01-20T23:28:57+08:00"},{"Sha1":"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","AuthorEmail":"hi.laoluo@hilaoluodeMacBook-Pro.local","AuthorName":"hi.laoluo","CommitterEmail":"hi.laoluo@hilaoluodeMacBook-Pro.local","CommitterName":"hi.laoluo","Timestamp":"2026-01-20T23:12:50+08:00"}],"HeadCommit":{"Sha1":"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","AuthorEmail":"hi.laoluo@hilaoluodeMacBook-Pro.local","AuthorName":"hi.laoluo","CommitterEmail":"hi.laoluo@hilaoluodeMacBook-Pro.local","CommitterName":"hi.laoluo","Timestamp":"2026-01-21T00:05:33+08:00"},"CompareURL":"luoanwu/printer-server/compare/c254333cc45c082124d3d4fd01a4a3fc3fda7296...6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","Len":10}...
|
1772248014
|
Edit
Delete
|
|
159
|
5
|
5
|
5
|
14
|
0
|
0
|
refs/heads/main
|
1
|
|
1772251945
|
Edit
Delete
|
|
160
|
5
|
5
|
5
|
14
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"931b208a7 {"Commits":[{"Sha1":"931b208a722a746f1912ae595417881f2405834f","Message":"feat: 巨嗨场馆运维中心初始化提交\n\n- Laravel 11 后端:设备监控、巡检任务、通知中心 API\n- Vue 3 + Element Plus 前端:移动端运维管理 App\n- Docker Compose 部署配置(MySQL + Redis + Nginx)\n- 支持 KTV / 棋牌 / 台球三类场馆\n","AuthorEmail":"luoanwu@g-hi.com","AuthorName":"luoanwu","CommitterEmail":"luoanwu@g-hi.com","CommitterName":"luoanwu","Timestamp":"2026-02-28T12:12:10+08:00"}],"HeadCommit":{"Sha1":"931b208a722a746f1912ae595417881f2405834f","Message":"feat: 巨嗨场馆运维中心初始化提交\n\n- Laravel 11 后端:设备监控、巡检任务、通知中心 API\n- Vue 3 + Element Plus 前端:移动端运维管理 App\n- Docker Compose 部署配置(MySQL + Redis + Nginx)\n- 支持 KTV / 棋牌 / 台球三类场馆\n","AuthorEmail":"luoanwu@g-hi.com","AuthorName":"luoanwu","CommitterEmail":"luoanwu@g-hi.com","CommitterName":"luoanwu","Timestamp":"2026-02-28T12:12:10+08:00"},"CompareURL":"","Len":1}...
|
1772251945
|
Edit
Delete
|
|
161
|
5
|
5
|
5
|
14
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"1300bf943 {"Commits":[{"Sha1":"1300bf9430ace637fba9931b50090670d6c1e585","Message":"refactor: 重构全栈架构,对齐设计规范与原型文档\n\n后端:\n- 新增 BaseController(统一 success/error/paginated 响应格式)\n- 新增 MonitorController、InspectController\n- 重构 NotificationController 继承 BaseController\n- 重构 Room、RoomDeviceStatus、TaskTemplate、TaskInstance、OpsNotification、DeviceDefinition 模型\n- 新增 DeviceStatusService、TaskInstanceGeneratorService\n- 新增 FormRequest 请求验证层\n- 新增 DemoDataSeeder、NotificationSeeder,接入 DatabaseSeeder\n- 重构 routes/api.php,补全全部 RESTful 接口注册\n- 更新 DeviceScanService\n\n前端:\n- 重构目录结构:api/ 拆分为 request.ts + monitor.ts + inspect.ts + notification.ts\n- 新增 types/models.ts(唯一类型定义源)、types/enums.ts\n- 新增 stores/notificationStore.ts,移除旧 monitorStore/inspectStore/notifStore\n- 新增 components/NotificationSheet.vue\n- 重构 views 为 Monitor/ 和 Inspect/ 目录结构\n- 重构 App.vue、router/index.ts、main.ts、style.css、vite.config.ts\n- 移除旧 api/index.ts 等冗余模块及旧组件\n\n文档:\n- 完善 CLAUDE.md,补充全栈开发规范、状态机规范、防踩坑清单、审查清单\n","AuthorEmail":"luoanwu@g-hi.com","AuthorName":"luoanwu","CommitterEmail":"luoanwu@g-hi.com","CommitterName":"luoanwu","Timestamp":"2026-02-28T13:00:44+08:00"}],"HeadCommit":{"Sha1":"1300bf9430ace637fba9931b50090670d6c1e585","Message":"refactor: 重构全栈架构,对齐设计规范与原型文档\n\n后端:\n- 新增 BaseController(统一 success/error/paginated 响应格式)\n- 新增 MonitorController、InspectController\n- 重构 NotificationController 继承 BaseController\n- 重构 Room、RoomDeviceStatus、TaskTemplate、TaskInstance、OpsNotification、DeviceDefinition 模型\n- 新增 DeviceStatusService、TaskInstanceGeneratorService\n- 新增 FormRequest 请求验证层\n- 新增 DemoDataSeeder、NotificationSeeder,接入 DatabaseSeeder\n- 重构 routes/api.php,补全全部 RESTful 接口注册\n- 更新 DeviceScanService\n\n前端:\n- 重构目录结构:api/ 拆分为 request.ts + monitor.ts + inspect.ts + notification.ts\n- 新增 types/models.ts(唯一类型定义源)、types/enums.ts\n- 新增 stores/notificationStore.ts,移除旧 monitorStore/inspectStore/notifStore\n- 新增 components/NotificationSheet.vue\n- 重构 views 为 Monitor/ 和 Inspect/ 目录结构\n- 重构 App.vue、router/index.ts、main.ts、style.css、vite.config.ts\n- 移除旧 api/index.ts 等冗余模块及旧组件\n\n文档:\n- 完善 CLAUDE.md,补充全栈开发规范、状态机规范、防踩坑清单、审查清单\n","AuthorEmail":"luoanwu@g-hi.com","AuthorName":"luoanwu","CommitterEmail":"luoanwu@g-hi.com","CommitterName":"luoanwu","Timestamp":"2026-02-28T13:00:44+08:00"},"CompareURL":"luoanwu/juhi-ops/compare/931b208a722a746f1912ae595417881f2405834f...1300bf9430ace637fba9931b50090670d6c1e585","Len":1}...
|
1772254853
|
Edit
Delete
|
|
162
|
5
|
5
|
5
|
14
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"6bcd0f0b6 {"Commits":[{"Sha1":"6bcd0f0b608c7161cdf8589d556a56257ee178bd","Message":"feat: 全栈功能完善 + 开发环境免登录配置\n\n- 新增 AuthController 登录/登出/me 接口(token driver)\n- 新增 WorkspaceController、WorkOrderController、HygieneController\n- 新增卫生维护模块全栈实现(区域/模板/任务/检查项)\n- 新增工单模块(创建/更新/列表)\n- 新增角色权限中间件 CheckVenueRole + Role/UserVenueRole 模型\n- 新增 DevAutoAuth 中间件,开发环境自动注入 admin 用户\n- 新增前端免登录配置:VITE_AUTH_DISABLED + localStorage token 注入\n- 新增 WebSocket/Reverb noop 存根,开发环境静默连接失败\n- 新增数据库迁移:工单/卫生/角色/workflow 字段/API token\n- 新增 HygieneSeeder、AuthTest、HygieneTest 等测试\n- 新增 GitHub Actions CI 工作流\n- 新增 DeviceDetectorService + 检测器模式重构\n- 前端新增 Login/Hygiene/WorkOrder/Workspace 视图\n- 前端新增 authStore、composables、e2e 测试框架\n","AuthorEmail":"luoanwu@g-hi.com","AuthorName":"luoanwu","CommitterEmail":"luoanwu@g-hi.com","CommitterName":"luoanwu","Timestamp":"2026-03-01T12:36:50+08:00"}],"HeadCommit":{"Sha1":"6bcd0f0b608c7161cdf8589d556a56257ee178bd","Message":"feat: 全栈功能完善 + 开发环境免登录配置\n\n- 新增 AuthController 登录/登出/me 接口(token driver)\n- 新增 WorkspaceController、WorkOrderController、HygieneController\n- 新增卫生维护模块全栈实现(区域/模板/任务/检查项)\n- 新增工单模块(创建/更新/列表)\n- 新增角色权限中间件 CheckVenueRole + Role/UserVenueRole 模型\n- 新增 DevAutoAuth 中间件,开发环境自动注入 admin 用户\n- 新增前端免登录配置:VITE_AUTH_DISABLED + localStorage token 注入\n- 新增 WebSocket/Reverb noop 存根,开发环境静默连接失败\n- 新增数据库迁移:工单/卫生/角色/workflow 字段/API token\n- 新增 HygieneSeeder、AuthTest、HygieneTest 等测试\n- 新增 GitHub Actions CI 工作流\n- 新增 DeviceDetectorService + 检测器模式重构\n- 前端新增 Login/Hygiene/WorkOrder/Workspace 视图\n- 前端新增 authStore、composables、e2e 测试框架\n","AuthorEmail":"luoanwu@g-hi.com","AuthorName":"luoanwu","CommitterEmail":"luoanwu@g-hi.com","CommitterName":"luoanwu","Timestamp":"2026-03-01T12:36:50+08:00"},"CompareURL":"luoanwu/juhi-ops/compare/1300bf9430ace637fba9931b50090670d6c1e585...6bcd0f0b608c7161cdf8589d556a56257ee178bd","Len":1}...
|
1772339824
|
Edit
Delete
|
|
164
|
5
|
5
|
5
|
15
|
0
|
0
|
refs/heads/main
|
0
|
|
1772364118
|
Edit
Delete
|
|
165
|
5
|
5
|
5
|
15
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"2e89fbf38 {"Commits":[{"Sha1":"2e89fbf3867ecf59322bc6dce936d088d616dcbf","Message":"Initial commit: AutoDance 2.0 project\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-03-01T19:20:11+08:00"}],"HeadCommit":{"Sha1":"2e89fbf3867ecf59322bc6dce936d088d616dcbf","Message":"Initial commit: AutoDance 2.0 project\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-03-01T19:20:11+08:00"},"CompareURL":"","Len":1}...
|
1772364118
|
Edit
Delete
|
|
166
|
5
|
5
|
5
|
15
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"5fc673840 {"Commits":[{"Sha1":"5fc6738402ace326d9f73f6eb9d6d879f2b674bf","Message":"Update: add tests and fix validators\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-03-01T20:21:37+08:00"}],"HeadCommit":{"Sha1":"5fc6738402ace326d9f73f6eb9d6d879f2b674bf","Message":"Update: add tests and fix validators\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-03-01T20:21:37+08:00"},"CompareURL":"luoanwu/autodance-2.0/compare/2e89fbf3867ecf59322bc6dce936d088d616dcbf...5fc6738402ace326d9f73f6eb9d6d879f2b674bf","Len":1}...
|
1772367702
|
Edit
Delete
|
|
167
|
5
|
5
|
5
|
15
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"229d8a4c9 {"Commits":[{"Sha1":"229d8a4c9638a803210f7ee6c31d9684cb412b50","Message":"Update: shared/types/src/index.ts\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-03-01T21:53:41+08:00"}],"HeadCommit":{"Sha1":"229d8a4c9638a803210f7ee6c31d9684cb412b50","Message":"Update: shared/types/src/index.ts\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-03-01T21:53:41+08:00"},"CompareURL":"luoanwu/autodance-2.0/compare/5fc6738402ace326d9f73f6eb9d6d879f2b674bf...229d8a4c9638a803210f7ee6c31d9684cb412b50","Len":1}...
|
1772373226
|
Edit
Delete
|
|
168
|
5
|
5
|
5
|
15
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"7b8a679d8 {"Commits":[{"Sha1":"7b8a679d80feb3b5c627aeef4b7675495a6ad3aa","Message":"feat: add web-editor package, enhance services with tests and Dockerfiles\n\n- New web-editor package with React + Vite + TailwindCSS\n- Add Dockerfiles for admin-api, feedback-service, publish-service\n- Add basic tests for services\n- Enhance admin-api with chart management and song params routes\n- Enhance feedback-service with self-learning auto-tuning logic\n- Add shared/database module\n- Update chart schema with lane2 and segmentType fields\n- Fix orchestrator pipeline endpoints\n- Add mock audio analysis endpoint\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-03-01T22:37:49+08:00"},{"Sha1":"be4a02290113242c5b68aa33654125f87269f05c","Message":"feat(core): implement database persistence and asynchronous chart generation queue\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-03-01T22:17:25+08:00"},{"Sha1":"5f5677e094a98af7de8fb51ba557c58931688a35","Message":"docs: finalize technical debt report in PRD\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-03-01T22:12:50+08:00"},{"Sha1":"41907dba1dbe3a7ee86aea2a24630e4ae2492786","Message":"feat(core): complete AutoDance 2.0 microservice cluster \u0026 E2E pipeline\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-03-01T22:10:22+08:00"}],"HeadCommit":{"Sha1":"7b8a679d80feb3b5c627aeef4b7675495a6ad3aa","Message":"feat: add web-editor package, enhance services with tests and Dockerfiles\n\n- New web-editor package with React + Vite + TailwindCSS\n- Add Dockerfiles for admin-api, feedback-service, publish-service\n- Add basic tests for services\n- Enhance admin-api with chart management and song params routes\n- Enhance feedback-service with self-learning auto-tuning logic\n- Add shared/database module\n- Update chart schema with lane2 and segmentType fields\n- Fix orchestrator pipeline endpoints\n- Add mock audio analysis endpoint\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-03-01T22:37:49+08:00"},"CompareURL":"luoanwu/autodance-2.0/compare/229d8a4c9638a803210f7ee6c31d9684cb412b50...7b8a679d80feb3b5c627aeef4b7675495a6ad3aa","Len":4}...
|
1772375900
|
Edit
Delete
|
|
169
|
5
|
5
|
5
|
15
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"42ddde738 {"Commits":[{"Sha1":"42ddde738a33023b235ad23d6c4059df6d2e28c5","Message":"feat(validate): add calorie consumption calculator with MET-based estimation\n\n- New calorie-calculator module implementing MET-based calorie calculation\n- Support for fatigue-based MET adjustment and combo bonus\n- Integration with validateChart to provide calorie estimates in validation reports\n- Add debug logging for window insertion when DEBUG_WINDOW=1\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-03-01T23:06:54+08:00"},{"Sha1":"35a3dd25e1a20076ca576b32e9e6d6befe33c9b2","Message":"fix(core): unify dependency versions, resolve admin-api build issues, and stabilize frontend types\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-03-01T23:04:34+08:00"}],"HeadCommit":{"Sha1":"42ddde738a33023b235ad23d6c4059df6d2e28c5","Message":"feat(validate): add calorie consumption calculator with MET-based estimation\n\n- New calorie-calculator module implementing MET-based calorie calculation\n- Support for fatigue-based MET adjustment and combo bonus\n- Integration with validateChart to provide calorie estimates in validation reports\n- Add debug logging for window insertion when DEBUG_WINDOW=1\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-03-01T23:06:54+08:00"},"CompareURL":"luoanwu/autodance-2.0/compare/7b8a679d80feb3b5c627aeef4b7675495a6ad3aa...42ddde738a33023b235ad23d6c4059df6d2e28c5","Len":2}...
|
1772377622
|
Edit
Delete
|
|
170
|
5
|
5
|
5
|
15
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"18c8e31c6 {"Commits":[{"Sha1":"18c8e31c6eba575024f2360c7b2572f0705b180c","Message":"feat: add calorie estimation model and API documentation\n\n- New calorie calculator with MET-based estimation model\n- Support for fatigue adjustment, combo bonus, and difficulty-based MET scaling\n- Updated API docs with calorie estimation endpoint and configuration\n- Docker optimizations: multi-stage builds and domestic mirror support\n- Admin API: API key authentication and improved error handling\n- Chart engine: mathjs for safe expression evaluation, window-scoped double count\n- Services: DATABASE_URL configuration and Jest test stability fixes\n- Audio service: file type validation and content-based songId generation\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-03-01T23:58:21+08:00"},{"Sha1":"5e41c96c7ab55ccd6f876fb4e658e88a70b467d8","Message":"chore(docker): optimize docker-compose, implement multi-stage dockerfiles, and add bootstrap script\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-03-01T23:09:44+08:00"}],"HeadCommit":{"Sha1":"18c8e31c6eba575024f2360c7b2572f0705b180c","Message":"feat: add calorie estimation model and API documentation\n\n- New calorie calculator with MET-based estimation model\n- Support for fatigue adjustment, combo bonus, and difficulty-based MET scaling\n- Updated API docs with calorie estimation endpoint and configuration\n- Docker optimizations: multi-stage builds and domestic mirror support\n- Admin API: API key authentication and improved error handling\n- Chart engine: mathjs for safe expression evaluation, window-scoped double count\n- Services: DATABASE_URL configuration and Jest test stability fixes\n- Audio service: file type validation and content-based songId generation\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-03-01T23:58:21+08:00"},"CompareURL":"luoanwu/autodance-2.0/compare/42ddde738a33023b235ad23d6c4059df6d2e28c5...18c8e31c6eba575024f2360c7b2572f0705b180c","Len":2}...
|
1772380708
|
Edit
Delete
|
|
171
|
5
|
5
|
5
|
15
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"1014093d9 {"Commits":[{"Sha1":"1014093d95916bf58b59c908996813b26d0560b6","Message":"feat: add generation task audit and step feedback tracking, fix double-step bias\n\n- Database: Add GenerationTask model for tracking chart generation parameters and outcomes\n- Database: Add StepFeedback model for per-step hit/miss tracking and timing analysis\n- Types: Add hold_collision_tolerance_sec to DifficultyCfg for HOLD collision detection\n- Validate: Fix systematic LF bias after BOTH steps - use distance-based foot selection\n- Tests: Add foot-state.test.ts for foot selection logic validation\n- Web-editor: Improve chart player and app component functionality\n- Scripts: Add atomic-e2e.sh and e2e-integration-v2.ts for enhanced E2E testing\n- Services: Update admin-api, chart-engine, feedback-service, publish-service with improved error handling and queue worker optimizations\n- Config: Update difficulty configs (blaze, happy, hype)\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-03-02T09:14:07+08:00"}],"HeadCommit":{"Sha1":"1014093d95916bf58b59c908996813b26d0560b6","Message":"feat: add generation task audit and step feedback tracking, fix double-step bias\n\n- Database: Add GenerationTask model for tracking chart generation parameters and outcomes\n- Database: Add StepFeedback model for per-step hit/miss tracking and timing analysis\n- Types: Add hold_collision_tolerance_sec to DifficultyCfg for HOLD collision detection\n- Validate: Fix systematic LF bias after BOTH steps - use distance-based foot selection\n- Tests: Add foot-state.test.ts for foot selection logic validation\n- Web-editor: Improve chart player and app component functionality\n- Scripts: Add atomic-e2e.sh and e2e-integration-v2.ts for enhanced E2E testing\n- Services: Update admin-api, chart-engine, feedback-service, publish-service with improved error handling and queue worker optimizations\n- Config: Update difficulty configs (blaze, happy, hype)\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-03-02T09:14:07+08:00"},"CompareURL":"luoanwu/autodance-2.0/compare/18c8e31c6eba575024f2360c7b2572f0705b180c...1014093d95916bf58b59c908996813b26d0560b6","Len":1}...
|
1772414053
|
Edit
Delete
|
|
172
|
5
|
5
|
5
|
15
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"ad414a238 {"Commits":[{"Sha1":"ad414a2387c06b2d1c10affca48fd5620b6f6f9e","Message":"chore: update system configuration and service implementations\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-03-02T09:56:00+08:00"}],"HeadCommit":{"Sha1":"ad414a2387c06b2d1c10affca48fd5620b6f6f9e","Message":"chore: update system configuration and service implementations\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","AuthorEmail":"laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"laoluojuhai@users.noreply.github.com","CommitterName":"laoluojuhai","Timestamp":"2026-03-02T09:56:00+08:00"},"CompareURL":"luoanwu/autodance-2.0/compare/1014093d95916bf58b59c908996813b26d0560b6...ad414a2387c06b2d1c10affca48fd5620b6f6f9e","Len":1}...
|
1772416567
|
Edit
Delete
|