|
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
|
|
149
|
5
|
1
|
5
|
11
|
0
|
0
|
|
1
|
|
1772247677
|
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
|
|
158
|
5
|
1
|
5
|
14
|
0
|
0
|
|
1
|
|
1772251897
|
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
|
|
1794
|
4
|
1
|
4
|
20
|
0
|
0
|
|
1
|
|
1778224865
|
Edit
Delete
|
|
1795
|
4
|
5
|
4
|
20
|
0
|
0
|
refs/heads/master
|
1
|
|
1778225527
|
Edit
Delete
|
|
1796
|
4
|
5
|
4
|
20
|
0
|
0
|
refs/heads/master
|
1
|
{"Commits":[{"Sha1":"b67540a3d {"Commits":[{"Sha1":"b67540a3d946a34763315b7a73ac62de3610c28a","Message":"initial commit: httpclient_x86 with SOCK_CLOEXEC fix and version update 2026.05.08.01\n\n- Add SOCK_CLOEXEC to all UDP socket creations in UDP_Open() to prevent\n port inheritance by platformd child process on restart\n- Update version to 2026.05.08.01 / httpclientUpdateVersion to 2026050801\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-08T15:29:08+08:00"}],"HeadCommit":{"Sha1":"b67540a3d946a34763315b7a73ac62de3610c28a","Message":"initial commit: httpclient_x86 with SOCK_CLOEXEC fix and version update 2026.05.08.01\n\n- Add SOCK_CLOEXEC to all UDP socket creations in UDP_Open() to prevent\n port inheritance by platformd child process on restart\n- Update version to 2026.05.08.01 / httpclientUpdateVersion to 2026050801\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-08T15:29:08+08:00"},"CompareURL":"","Len":1}...
|
1778225527
|
Edit
Delete
|
|
1797
|
4
|
5
|
4
|
20
|
0
|
0
|
refs/heads/master
|
1
|
{"Commits":[{"Sha1":"d34986cbf {"Commits":[{"Sha1":"d34986cbf7d3a5571808f43bbf507187e50eeeba","Message":"fix: UDP socket 端口被 platformd 继承导致重启失败 \u0026 版本升级 2026.05.08.01\n\n【问题背景】\nhttpclient 崩溃后守护进程重启时,程序在 CheckPlatformd() 之后尝试\n绑定 UDP 端口(40001/50003/2446/50002/2348)时报 EADDRINUSE 而退出,\n形成循环重启无法恢复。\n\n【根本原因】\nhttpclient 通过 fork/exec 启动 platformd 子进程时,未设置\nSOCK_CLOEXEC,导致已打开的 UDP socket FD 被 platformd 继承。\nhttpclient 进程崩溃后 platformd 仍持有这些 FD,端口持续被占用。\n\n【修复内容】\n1. Function.cpp:2099 — UDP_Open() 中 socket() 调用添加 SOCK_CLOEXEC\n 所有通过 UDP_Open() 创建的 5 个 UDP 端口(40001/50003/2446/50002/2348)\n 均不再被 platformd 子进程继承,httpclient 崩溃重启后可正常绑定端口。\n\n2. Function.cpp:2282 — 查询本机 IP 用的临时 UDP socket 同步添加 SOCK_CLOEXEC\n\n3. main.cpp:46-47 — 版本号更新\n version: \"httpclient-laiqiaojie 2026.05.08.01\"\n httpclientUpdateVersion: \"2026050801\"\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-08T15:35:33+08:00"}],"HeadCommit":{"Sha1":"d34986cbf7d3a5571808f43bbf507187e50eeeba","Message":"fix: UDP socket 端口被 platformd 继承导致重启失败 \u0026 版本升级 2026.05.08.01\n\n【问题背景】\nhttpclient 崩溃后守护进程重启时,程序在 CheckPlatformd() 之后尝试\n绑定 UDP 端口(40001/50003/2446/50002/2348)时报 EADDRINUSE 而退出,\n形成循环重启无法恢复。\n\n【根本原因】\nhttpclient 通过 fork/exec 启动 platformd 子进程时,未设置\nSOCK_CLOEXEC,导致已打开的 UDP socket FD 被 platformd 继承。\nhttpclient 进程崩溃后 platformd 仍持有这些 FD,端口持续被占用。\n\n【修复内容】\n1. Function.cpp:2099 — UDP_Open() 中 socket() 调用添加 SOCK_CLOEXEC\n 所有通过 UDP_Open() 创建的 5 个 UDP 端口(40001/50003/2446/50002/2348)\n 均不再被 platformd 子进程继承,httpclient 崩溃重启后可正常绑定端口。\n\n2. Function.cpp:2282 — 查询本机 IP 用的临时 UDP socket 同步添加 SOCK_CLOEXEC\n\n3. main.cpp:46-47 — 版本号更新\n version: \"httpclient-laiqiaojie 2026.05.08.01\"\n httpclientUpdateVersion: \"2026050801\"\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-08T15:35:33+08:00"},"CompareURL":"laiqiaojie/httpclient_x86/compare/b67540a3d946a34763315b7a73ac62de3610c28a...d34986cbf7d3a5571808f43bbf507187e50eeeba","Len":1}...
|
1778225744
|
Edit
Delete
|
|
1798
|
4
|
5
|
4
|
20
|
0
|
0
|
refs/heads/master
|
1
|
{"Commits":[{"Sha1":"855a00f60 {"Commits":[{"Sha1":"855a00f60c91a68c2e8ad319c975b9d734758f41","Message":"docs: 添加 Claude Code 开发流程迁移文档\n\n- 新增 CLAUDE.md:项目架构、构建方式、协议约定、数据库 Schema、\n 开发注意事项等 AI 上下文文档\n- 新增 .claude/settings.json:Claude Code 权限配置(make/ssh/grep 等)\n- 新增 docs/protocol-udp.md:UDP 消息协议(function 码、端口分配、JSON 格式)\n- 新增 docs/protocol-tcp.md:TCP/IPSOCKETPKG 协议与 P2P 服务器通信\n- 新增 docs/api-http.md:云端 REST API 接口文档(逆向生成)\n- 新增 docs/api-socket.md:Function.cpp 全部 TCP/UDP socket 函数接口\n- 新增 docs/database-schema.md:三个数据库四张表的 DDL 与典型 SQL\n- 新增 docs/download-flow.md:CTask 状态机与完整下载流程\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-08T16:28:47+08:00"}],"HeadCommit":{"Sha1":"855a00f60c91a68c2e8ad319c975b9d734758f41","Message":"docs: 添加 Claude Code 开发流程迁移文档\n\n- 新增 CLAUDE.md:项目架构、构建方式、协议约定、数据库 Schema、\n 开发注意事项等 AI 上下文文档\n- 新增 .claude/settings.json:Claude Code 权限配置(make/ssh/grep 等)\n- 新增 docs/protocol-udp.md:UDP 消息协议(function 码、端口分配、JSON 格式)\n- 新增 docs/protocol-tcp.md:TCP/IPSOCKETPKG 协议与 P2P 服务器通信\n- 新增 docs/api-http.md:云端 REST API 接口文档(逆向生成)\n- 新增 docs/api-socket.md:Function.cpp 全部 TCP/UDP socket 函数接口\n- 新增 docs/database-schema.md:三个数据库四张表的 DDL 与典型 SQL\n- 新增 docs/download-flow.md:CTask 状态机与完整下载流程\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-08T16:28:47+08:00"},"CompareURL":"laiqiaojie/httpclient_x86/compare/d34986cbf7d3a5571808f43bbf507187e50eeeba...855a00f60c91a68c2e8ad319c975b9d734758f41","Len":1}...
|
1778229299
|
Edit
Delete
|
|
1799
|
4
|
5
|
4
|
20
|
0
|
0
|
refs/heads/master
|
1
|
{"Commits":[{"Sha1":"72e4c3603 {"Commits":[{"Sha1":"72e4c36034d9ac0f45c22b76722e992b2bfba3b5","Message":"docs: 区分编译环境与运行验证环境,记录编译机 IP\n\n- CLAUDE.md 新增\"开发环境说明\"章节,明确区分:\n 编译环境(VMware 192.168.3.41)与运行验证环境(KTV 实体设备)\n- .claude/settings.json 新增 BUILD_HOST/BUILD_USER/BUILD_PROJECT\n 和 DEPLOY_HOST/DEPLOY_USER 环境变量\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-08T16:44:23+08:00"}],"HeadCommit":{"Sha1":"72e4c36034d9ac0f45c22b76722e992b2bfba3b5","Message":"docs: 区分编译环境与运行验证环境,记录编译机 IP\n\n- CLAUDE.md 新增\"开发环境说明\"章节,明确区分:\n 编译环境(VMware 192.168.3.41)与运行验证环境(KTV 实体设备)\n- .claude/settings.json 新增 BUILD_HOST/BUILD_USER/BUILD_PROJECT\n 和 DEPLOY_HOST/DEPLOY_USER 环境变量\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-08T16:44:23+08:00"},"CompareURL":"laiqiaojie/httpclient_x86/compare/855a00f60c91a68c2e8ad319c975b9d734758f41...72e4c36034d9ac0f45c22b76722e992b2bfba3b5","Len":1}...
|
1778229866
|
Edit
Delete
|
|
1800
|
4
|
5
|
4
|
20
|
0
|
0
|
refs/heads/master
|
1
|
{"Commits":[{"Sha1":"d315418f8 {"Commits":[{"Sha1":"d315418f8d49ded5f9a28dc74c844b636da4a413","Message":"docs: 补充运行验证环境 IP(192.168.3.45)\n\n- CLAUDE.md 更新运行验证环境 IP,补充完整部署验证命令\n- .claude/settings.json 更新 DEPLOY_HOST=192.168.3.45\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-08T16:45:37+08:00"}],"HeadCommit":{"Sha1":"d315418f8d49ded5f9a28dc74c844b636da4a413","Message":"docs: 补充运行验证环境 IP(192.168.3.45)\n\n- CLAUDE.md 更新运行验证环境 IP,补充完整部署验证命令\n- .claude/settings.json 更新 DEPLOY_HOST=192.168.3.45\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-08T16:45:37+08:00"},"CompareURL":"laiqiaojie/httpclient_x86/compare/72e4c36034d9ac0f45c22b76722e992b2bfba3b5...d315418f8d49ded5f9a28dc74c844b636da4a413","Len":1}...
|
1778229939
|
Edit
Delete
|
|
1801
|
4
|
5
|
4
|
20
|
0
|
0
|
refs/heads/master
|
1
|
{"Commits":[{"Sha1":"7eb14fbca {"Commits":[{"Sha1":"7eb14fbcafe5e5f5eb49d5cb29c70517a5134dbf","Message":"fix: correct VMware shared folder path in settings and CLAUDE.md\n\nUpdate BUILD_PROJECT from /mnt/hgfs/httpclient_x86 to the actual path\n/mnt/hgfs/workspace/bistroApp/Linux/httpclient_x86 confirmed by successful\ncompilation on 2026-05-08.\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-08T17:07:38+08:00"}],"HeadCommit":{"Sha1":"7eb14fbcafe5e5f5eb49d5cb29c70517a5134dbf","Message":"fix: correct VMware shared folder path in settings and CLAUDE.md\n\nUpdate BUILD_PROJECT from /mnt/hgfs/httpclient_x86 to the actual path\n/mnt/hgfs/workspace/bistroApp/Linux/httpclient_x86 confirmed by successful\ncompilation on 2026-05-08.\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-08T17:07:38+08:00"},"CompareURL":"laiqiaojie/httpclient_x86/compare/d315418f8d49ded5f9a28dc74c844b636da4a413...7eb14fbcafe5e5f5eb49d5cb29c70517a5134dbf","Len":1}...
|
1778231263
|
Edit
Delete
|
|
1802
|
4
|
5
|
4
|
20
|
0
|
0
|
refs/heads/master
|
1
|
{"Commits":[{"Sha1":"a1f24e1c4 {"Commits":[{"Sha1":"a1f24e1c44238d58c016ffaeed9e4bb86a0f7c2c","Message":"docs: add deployment notes for watchdog script and SCP compatibility\n\nDocument the /etc/tool/httpclientktv.sh watchdog behavior on the KTV\ndevice, correct deploy sequence (kill watchdog before process), and\nthe -O flag requirement for scp with OpenSSH 10.x vs old server.\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-08T17:14:08+08:00"}],"HeadCommit":{"Sha1":"a1f24e1c44238d58c016ffaeed9e4bb86a0f7c2c","Message":"docs: add deployment notes for watchdog script and SCP compatibility\n\nDocument the /etc/tool/httpclientktv.sh watchdog behavior on the KTV\ndevice, correct deploy sequence (kill watchdog before process), and\nthe -O flag requirement for scp with OpenSSH 10.x vs old server.\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-08T17:14:08+08:00"},"CompareURL":"laiqiaojie/httpclient_x86/compare/7eb14fbcafe5e5f5eb49d5cb29c70517a5134dbf...a1f24e1c44238d58c016ffaeed9e4bb86a0f7c2c","Len":1}...
|
1778231652
|
Edit
Delete
|
|
1803
|
4
|
5
|
4
|
20
|
0
|
0
|
refs/heads/master
|
1
|
{"Commits":[{"Sha1":"d1d787e98 {"Commits":[{"Sha1":"d1d787e981030a2d7012aed000dbfdc71bc292e6","Message":"docs: restructure build/deploy/verify section in CLAUDE.md\n\nConsolidate scattered deployment notes into a single clean workflow:\n- Merge env intro, build, deploy and verify into one section\n- Remove repeated SSH -o flags (both hosts now in ~/.ssh/config)\n- Add expected log output for startup verification\n- Simplify watchdog script description\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-08T17:16:14+08:00"}],"HeadCommit":{"Sha1":"d1d787e981030a2d7012aed000dbfdc71bc292e6","Message":"docs: restructure build/deploy/verify section in CLAUDE.md\n\nConsolidate scattered deployment notes into a single clean workflow:\n- Merge env intro, build, deploy and verify into one section\n- Remove repeated SSH -o flags (both hosts now in ~/.ssh/config)\n- Add expected log output for startup verification\n- Simplify watchdog script description\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-08T17:16:14+08:00"},"CompareURL":"laiqiaojie/httpclient_x86/compare/a1f24e1c44238d58c016ffaeed9e4bb86a0f7c2c...d1d787e981030a2d7012aed000dbfdc71bc292e6","Len":1}...
|
1778231777
|
Edit
Delete
|
|
2021
|
4
|
1
|
4
|
24
|
0
|
0
|
|
1
|
|
1778663202
|
Edit
Delete
|
|
2145
|
4
|
5
|
4
|
20
|
0
|
0
|
refs/heads/master
|
1
|
{"Commits":[{"Sha1":"e7903e9e7 {"Commits":[{"Sha1":"e7903e9e7794ec054036431a7c1fc0a6b7aaf835","Message":"fix: 修复2001接口无错误详情及失败无重试问题\n\n- LIBCURLWrapper: 检查curl_easy_perform返回值,失败时记录errcode/errmsg/http状态码/耗时\n- LIBCURLWrapper: 修正CURLOPT_CONNECTTIMEOUT单位错误(秒误传毫秒),改用CURLOPT_CONNECTTIMEOUT_MS\n- LIBCURLWrapper: response日志增加耗时差值,便于定位慢请求\n- main: GetSongsNamePath失败后最多重试3次(间隔3秒),避免偶发网络抖动丢失下载任务\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-15T17:51:33+08:00"}],"HeadCommit":{"Sha1":"e7903e9e7794ec054036431a7c1fc0a6b7aaf835","Message":"fix: 修复2001接口无错误详情及失败无重试问题\n\n- LIBCURLWrapper: 检查curl_easy_perform返回值,失败时记录errcode/errmsg/http状态码/耗时\n- LIBCURLWrapper: 修正CURLOPT_CONNECTTIMEOUT单位错误(秒误传毫秒),改用CURLOPT_CONNECTTIMEOUT_MS\n- LIBCURLWrapper: response日志增加耗时差值,便于定位慢请求\n- main: GetSongsNamePath失败后最多重试3次(间隔3秒),避免偶发网络抖动丢失下载任务\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-15T17:51:33+08:00"},"CompareURL":"laiqiaojie/httpclient_x86/compare/d1d787e981030a2d7012aed000dbfdc71bc292e6...e7903e9e7794ec054036431a7c1fc0a6b7aaf835","Len":1}...
|
1778838701
|
Edit
Delete
|
|
5192
|
4
|
1
|
4
|
26
|
0
|
0
|
|
1
|
|
1779718182
|
Edit
Delete
|
|
5193
|
4
|
2
|
4
|
26
|
0
|
0
|
|
1
|
AI----
|
1779718248
|
Edit
Delete
|
|
5194
|
4
|
1
|
4
|
27
|
0
|
0
|
|
1
|
|
1779718429
|
Edit
Delete
|
|
5195
|
4
|
5
|
4
|
27
|
0
|
0
|
refs/heads/main
|
1
|
|
1779718439
|
Edit
Delete
|
|
5196
|
4
|
5
|
4
|
27
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"aabeecb96 {"Commits":[{"Sha1":"aabeecb96a6025fb42becd8cd25ed1f62213747a","Message":"Initial commit: lyric-driven AI video generation\n\n- Auto ASR lyric recognition (DashScope Paraformer-v2)\n- Every 2 lyric lines generate one scene\n- Lyric imagery drives image prompt generation\n- Segment parallel I2V for speed\n- Fade transition between clips synced to lyrics\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@gitea.g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@gitea.g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-25T22:04:55+08:00"}],"HeadCommit":{"Sha1":"aabeecb96a6025fb42becd8cd25ed1f62213747a","Message":"Initial commit: lyric-driven AI video generation\n\n- Auto ASR lyric recognition (DashScope Paraformer-v2)\n- Every 2 lyric lines generate one scene\n- Lyric imagery drives image prompt generation\n- Segment parallel I2V for speed\n- Fade transition between clips synced to lyrics\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@gitea.g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@gitea.g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-25T22:04:55+08:00"},"CompareURL":"","Len":1}...
|
1779718439
|
Edit
Delete
|
|
5197
|
4
|
5
|
4
|
27
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"3270836b6 {"Commits":[{"Sha1":"3270836b6afd45fd99d44b185bef8e545d0fc77d","Message":"feat: burn lyric subtitles synced to music into final video\n\n- Add _write_ass() to generate ASS subtitle file from Scene lyrics\n- Add _burn_subtitles() to bake subtitles via FFmpeg ass filter\n- build_video() accepts burn_lyrics=True to trigger subtitle burn\n- gui/app.py enables burn_lyrics in lyric-driven mode\n- Two lyric lines displayed with \\N line break, timed to scene start/end\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@gitea.g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@gitea.g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-25T22:29:14+08:00"}],"HeadCommit":{"Sha1":"3270836b6afd45fd99d44b185bef8e545d0fc77d","Message":"feat: burn lyric subtitles synced to music into final video\n\n- Add _write_ass() to generate ASS subtitle file from Scene lyrics\n- Add _burn_subtitles() to bake subtitles via FFmpeg ass filter\n- build_video() accepts burn_lyrics=True to trigger subtitle burn\n- gui/app.py enables burn_lyrics in lyric-driven mode\n- Two lyric lines displayed with \\N line break, timed to scene start/end\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@gitea.g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@gitea.g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-25T22:29:14+08:00"},"CompareURL":"laiqiaojie/AI-video/compare/aabeecb96a6025fb42becd8cd25ed1f62213747a...3270836b6afd45fd99d44b185bef8e545d0fc77d","Len":1}...
|
1779719354
|
Edit
Delete
|
|
5198
|
4
|
5
|
4
|
27
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"f8e9694fe {"Commits":[{"Sha1":"f8e9694febf6aa26156c8122b2b1129df2f323b6","Message":"fix: remove lyric subtitles; improve character quality in prompts\n\n- Disable burn_lyrics to remove subtitle overlay\n- Add beauty/handsomeness descriptors to quality string:\n beautiful female with delicate features, handsome male with\n chiseled jawline, perfect anatomy, no distortion, sharp focus\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@gitea.g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@gitea.g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-25T22:57:58+08:00"}],"HeadCommit":{"Sha1":"f8e9694febf6aa26156c8122b2b1129df2f323b6","Message":"fix: remove lyric subtitles; improve character quality in prompts\n\n- Disable burn_lyrics to remove subtitle overlay\n- Add beauty/handsomeness descriptors to quality string:\n beautiful female with delicate features, handsome male with\n chiseled jawline, perfect anatomy, no distortion, sharp focus\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@gitea.g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@gitea.g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-25T22:57:58+08:00"},"CompareURL":"laiqiaojie/AI-video/compare/3270836b6afd45fd99d44b185bef8e545d0fc77d...f8e9694febf6aa26156c8122b2b1129df2f323b6","Len":1}...
|
1779721080
|
Edit
Delete
|
|
5199
|
4
|
5
|
4
|
27
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"c79bd1999 {"Commits":[{"Sha1":"c79bd1999b45cd257c5c6ac197df02560611b70d","Message":"feat: skip image generation in lyric mode, use T2V directly\n\n- Add generate_all_videos_lyric() for fully parallel T2V generation\n- Add _build_lyric_video_prompt() converting lyrics to cinematic prompts\n with safety filters (no violence/blood/nudity) and character quality\n- Add T2V_MODEL = \"wan2.7-t2v-2026-04-25\" to config.py\n- gui/app.py: lyric mode bypasses image generation entirely\n → all scenes submitted in parallel (no chain dependency)\n → beat mode keeps existing image gen + segment-parallel I2V flow\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@gitea.g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@gitea.g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-25T23:11:34+08:00"}],"HeadCommit":{"Sha1":"c79bd1999b45cd257c5c6ac197df02560611b70d","Message":"feat: skip image generation in lyric mode, use T2V directly\n\n- Add generate_all_videos_lyric() for fully parallel T2V generation\n- Add _build_lyric_video_prompt() converting lyrics to cinematic prompts\n with safety filters (no violence/blood/nudity) and character quality\n- Add T2V_MODEL = \"wan2.7-t2v-2026-04-25\" to config.py\n- gui/app.py: lyric mode bypasses image generation entirely\n → all scenes submitted in parallel (no chain dependency)\n → beat mode keeps existing image gen + segment-parallel I2V flow\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@gitea.g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@gitea.g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-25T23:11:34+08:00"},"CompareURL":"laiqiaojie/AI-video/compare/f8e9694febf6aa26156c8122b2b1129df2f323b6...c79bd1999b45cd257c5c6ac197df02560611b70d","Len":1}...
|
1779721897
|
Edit
Delete
|
|
5200
|
4
|
5
|
4
|
27
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"9a2987af6 {"Commits":[{"Sha1":"9a2987af624e2406fb3cb2353b3c4b51f192ff0f","Message":"feat: add T2V model selector in GUI settings panel\n\n- Add \"文生视频模型 (歌词驱动)\" combo with wan2.7/wan2.1 T2V options\n- Rename I2V section to \"图生视频模型 (节拍驱动)\" for clarity\n- Add _on_t2v_model_change() callback updating config.T2V_MODEL\n- Add tooltip explaining lyric-driven T2V vs beat-driven I2V\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@gitea.g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@gitea.g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-25T23:14:31+08:00"}],"HeadCommit":{"Sha1":"9a2987af624e2406fb3cb2353b3c4b51f192ff0f","Message":"feat: add T2V model selector in GUI settings panel\n\n- Add \"文生视频模型 (歌词驱动)\" combo with wan2.7/wan2.1 T2V options\n- Rename I2V section to \"图生视频模型 (节拍驱动)\" for clarity\n- Add _on_t2v_model_change() callback updating config.T2V_MODEL\n- Add tooltip explaining lyric-driven T2V vs beat-driven I2V\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@gitea.g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@gitea.g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-25T23:14:31+08:00"},"CompareURL":"laiqiaojie/AI-video/compare/c79bd1999b45cd257c5c6ac197df02560611b70d...9a2987af624e2406fb3cb2353b3c4b51f192ff0f","Len":1}...
|
1779722073
|
Edit
Delete
|
|
5201
|
4
|
5
|
4
|
27
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"3f6f7ca2f {"Commits":[{"Sha1":"3f6f7ca2ff79d15f9ec9f89abeffafa4a80ac104","Message":"fix: inject selected visual style into T2V prompt\n\n- _build_lyric_video_prompt() now accepts style_name parameter\n- Loads style prefix and energy modifier from styles.json\n- Propagates through _submit_and_poll_t2v → generate_all_videos_lyric\n- gui/app.py passes style variable to generate_all_videos_lyric\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@gitea.g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@gitea.g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-25T23:31:14+08:00"}],"HeadCommit":{"Sha1":"3f6f7ca2ff79d15f9ec9f89abeffafa4a80ac104","Message":"fix: inject selected visual style into T2V prompt\n\n- _build_lyric_video_prompt() now accepts style_name parameter\n- Loads style prefix and energy modifier from styles.json\n- Propagates through _submit_and_poll_t2v → generate_all_videos_lyric\n- gui/app.py passes style variable to generate_all_videos_lyric\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@gitea.g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@gitea.g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-25T23:31:14+08:00"},"CompareURL":"laiqiaojie/AI-video/compare/9a2987af624e2406fb3cb2353b3c4b51f192ff0f...3f6f7ca2ff79d15f9ec9f89abeffafa4a80ac104","Len":1}...
|
1779723074
|
Edit
Delete
|
|
5202
|
4
|
5
|
4
|
27
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"753cb3573 {"Commits":[{"Sha1":"753cb3573ea9b14f0bbf61ca0479ca07eed705fa","Message":"docs: add PROJECT_STATUS.md for session continuity\n","AuthorEmail":"laiqiaojie@gitea.g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@gitea.g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-25T23:36:46+08:00"}],"HeadCommit":{"Sha1":"753cb3573ea9b14f0bbf61ca0479ca07eed705fa","Message":"docs: add PROJECT_STATUS.md for session continuity\n","AuthorEmail":"laiqiaojie@gitea.g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@gitea.g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-25T23:36:46+08:00"},"CompareURL":"laiqiaojie/AI-video/compare/3f6f7ca2ff79d15f9ec9f89abeffafa4a80ac104...753cb3573ea9b14f0bbf61ca0479ca07eed705fa","Len":1}...
|
1779723407
|
Edit
Delete
|
|
5203
|
4
|
5
|
4
|
27
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"a64b1b32c {"Commits":[{"Sha1":"a64b1b32ca5c7b0d373bdb8f75ad325c7cdcc139","Message":"fix: correct T2V/I2V model names (wan2.1 → wanx2.1)\n\n- wanx2.1-t2v-turbo / wanx2.1-t2v-plus (was wan2.1-t2v-*)\n- wanx2.1-i2v-turbo / wanx2.1-i2v-plus (was wan2.1-i2v-*)\n- Default T2V_MODEL changed to wanx2.1-t2v-turbo (fastest)\n- Add tests/test_t2v_models.py: 12 tests covering\n - T2V/I2V model existence via API probe\n - config defaults in GUI list\n - lyric prompt style injection\n - safety filter presence\n - no-lyric edge case\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@gitea.g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@gitea.g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-25T23:58:25+08:00"}],"HeadCommit":{"Sha1":"a64b1b32ca5c7b0d373bdb8f75ad325c7cdcc139","Message":"fix: correct T2V/I2V model names (wan2.1 → wanx2.1)\n\n- wanx2.1-t2v-turbo / wanx2.1-t2v-plus (was wan2.1-t2v-*)\n- wanx2.1-i2v-turbo / wanx2.1-i2v-plus (was wan2.1-i2v-*)\n- Default T2V_MODEL changed to wanx2.1-t2v-turbo (fastest)\n- Add tests/test_t2v_models.py: 12 tests covering\n - T2V/I2V model existence via API probe\n - config defaults in GUI list\n - lyric prompt style injection\n - safety filter presence\n - no-lyric edge case\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@gitea.g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@gitea.g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-25T23:58:25+08:00"},"CompareURL":"laiqiaojie/AI-video/compare/753cb3573ea9b14f0bbf61ca0479ca07eed705fa...a64b1b32ca5c7b0d373bdb8f75ad325c7cdcc139","Len":1}...
|
1779724707
|
Edit
Delete
|
|
5204
|
4
|
5
|
4
|
27
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"ec4be1eba {"Commits":[{"Sha1":"ec4be1eba01ab1b3fcf798c27622800f7cae5676","Message":"fix: wanx2.1 models don't support duration parameter\n\n- Add _supports_duration(model) helper: returns False for wanx2.1-*\n- _submit_and_poll_t2v: omit duration for wanx2.1 T2V models\n- _submit_and_poll (I2V): omit duration for wanx2.1 I2V models\n- Add 4 new tests: _supports_duration logic + API acceptance without duration\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@gitea.g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@gitea.g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-26T00:01:45+08:00"}],"HeadCommit":{"Sha1":"ec4be1eba01ab1b3fcf798c27622800f7cae5676","Message":"fix: wanx2.1 models don't support duration parameter\n\n- Add _supports_duration(model) helper: returns False for wanx2.1-*\n- _submit_and_poll_t2v: omit duration for wanx2.1 T2V models\n- _submit_and_poll (I2V): omit duration for wanx2.1 I2V models\n- Add 4 new tests: _supports_duration logic + API acceptance without duration\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@gitea.g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@gitea.g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-26T00:01:45+08:00"},"CompareURL":"laiqiaojie/AI-video/compare/a64b1b32ca5c7b0d373bdb8f75ad325c7cdcc139...ec4be1eba01ab1b3fcf798c27622800f7cae5676","Len":1}...
|
1779724906
|
Edit
Delete
|
|
5205
|
4
|
5
|
4
|
27
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"a587df237 {"Commits":[{"Sha1":"a587df237b38deb9d2f135998dcf66da032d0ccb","Message":"docs: update PROJECT_STATUS.md with test coverage and model compatibility table\n","AuthorEmail":"laiqiaojie@gitea.g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@gitea.g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-26T00:10:32+08:00"}],"HeadCommit":{"Sha1":"a587df237b38deb9d2f135998dcf66da032d0ccb","Message":"docs: update PROJECT_STATUS.md with test coverage and model compatibility table\n","AuthorEmail":"laiqiaojie@gitea.g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@gitea.g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-26T00:10:32+08:00"},"CompareURL":"laiqiaojie/AI-video/compare/ec4be1eba01ab1b3fcf798c27622800f7cae5676...a587df237b38deb9d2f135998dcf66da032d0ccb","Len":1}...
|
1779725433
|
Edit
Delete
|
|
5206
|
4
|
5
|
4
|
27
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"694177981 {"Commits":[{"Sha1":"694177981c8c594843b5456fe8abc9bbc1598056","Message":"test: mark API probe tests as @pytest.mark.network\n\n- Add pytest.ini with 'network' marker registration\n- Tag test_t2v_model_exists, test_i2v_model_exists,\n test_t2v_no_duration_param_accepted with @pytest.mark.network\n- Daily CI: pytest tests/ -m \"not network\" (fast, no API calls)\n- Manual full check: pytest tests/test_t2v_models.py -v\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@gitea.g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@gitea.g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-26T00:15:26+08:00"}],"HeadCommit":{"Sha1":"694177981c8c594843b5456fe8abc9bbc1598056","Message":"test: mark API probe tests as @pytest.mark.network\n\n- Add pytest.ini with 'network' marker registration\n- Tag test_t2v_model_exists, test_i2v_model_exists,\n test_t2v_no_duration_param_accepted with @pytest.mark.network\n- Daily CI: pytest tests/ -m \"not network\" (fast, no API calls)\n- Manual full check: pytest tests/test_t2v_models.py -v\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@gitea.g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@gitea.g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-26T00:15:26+08:00"},"CompareURL":"laiqiaojie/AI-video/compare/a587df237b38deb9d2f135998dcf66da032d0ccb...694177981c8c594843b5456fe8abc9bbc1598056","Len":1}...
|
1779725727
|
Edit
Delete
|
|
5210
|
4
|
5
|
4
|
27
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"0fd1fcee6 {"Commits":[{"Sha1":"0fd1fcee668f994bee9259a29a25402b841f9914","Message":"test: mark I2VSpeedBenchmark as @pytest.mark.network\n\nPrevents 5+ min real API calls from running in daily CI.\n\"not network\" suite now completes in ~12s instead of 5m37s.\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@gitea.g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@gitea.g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-26T00:22:45+08:00"}],"HeadCommit":{"Sha1":"0fd1fcee668f994bee9259a29a25402b841f9914","Message":"test: mark I2VSpeedBenchmark as @pytest.mark.network\n\nPrevents 5+ min real API calls from running in daily CI.\n\"not network\" suite now completes in ~12s instead of 5m37s.\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"laiqiaojie@gitea.g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@gitea.g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-05-26T00:22:45+08:00"},"CompareURL":"laiqiaojie/AI-video/compare/694177981c8c594843b5456fe8abc9bbc1598056...0fd1fcee668f994bee9259a29a25402b841f9914","Len":1}...
|
1779726167
|
Edit
Delete
|
|
7375
|
4
|
1
|
4
|
29
|
0
|
0
|
|
1
|
|
1780312724
|
Edit
Delete
|
|
7376
|
4
|
5
|
4
|
29
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"d4dcb1813 {"Commits":[{"Sha1":"d4dcb1813534e74f4fb3ce00ec0f056a73e07796","Message":"add ssh-connect skill with business rules\n","AuthorEmail":"laiqiaojie@g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-06-01T19:19:21+08:00"}],"HeadCommit":{"Sha1":"d4dcb1813534e74f4fb3ce00ec0f056a73e07796","Message":"add ssh-connect skill with business rules\n","AuthorEmail":"laiqiaojie@g-hi.com","AuthorName":"laiqiaojie","CommitterEmail":"laiqiaojie@g-hi.com","CommitterName":"laiqiaojie","Timestamp":"2026-06-01T19:19:21+08:00"},"CompareURL":"laiqiaojie/claude-skills/compare/6971732d037a5d6c7a8b6110bdd30ec8e3d73567...d4dcb1813534e74f4fb3ce00ec0f056a73e07796","Len":1}...
|
1780312767
|
Edit
Delete
|