diff --git a/TAPD接口文档.md b/TAPD接口文档.md index 4d40c82..5c84634 100644 --- a/TAPD接口文档.md +++ b/TAPD接口文档.md @@ -564,6 +564,98 @@ curl -u 'api_user:api_password' -d 'name=story_created_by_api&workspace_id=10158 } ``` + + +## 获取需求 + +### url + +``` +https://api.tapd.cn/stories +``` + +### [#](https://open.tapd.cn/document/api-doc/API文档/api_reference/story/get_stories.html#支持格式)支持格式 + +JSON/XML(默认JSON格式) + +### [#](https://open.tapd.cn/document/api-doc/API文档/api_reference/story/get_stories.html#http请求方式)HTTP请求方式 + +GET + +### [#](https://open.tapd.cn/document/api-doc/API文档/api_reference/story/get_stories.html#请求数限制)请求数限制 + +默认返回 30 条。可通过传 limit 参数设置,最大取 200。也可以传 page 参数翻页 + +### [#](https://open.tapd.cn/document/api-doc/API文档/api_reference/story/get_stories.html#请求参数)请求参数 + +| 字段名 | 必选 | 类型及范围 | 说明 | 特殊规则 | +| :-------------------: | :--: | :---------------: | :----------------------------------------------------------: | :------------------------------------: | +| id | 否 | integer | ID | 支持多ID查询 | +| name | 否 | string | 标题 | 支持模糊匹配 | +| priority | 否 | string | 优先级。为了兼容自定义优先级,`请使用 priority_label 字段`,详情参考:[如何兼容自定义优先级](https://open.tapd.cn/document/api-doc/API文档/subject/custom_priority/) | | +| priority_label | 否 | string | 优先级。推荐使用这个字段 | | +| business_value | 否 | integer | 业务价值 | | +| status | 否 | string | 状态 | 支持枚举查询 | +| v_status | 否 | string | 状态(支持传入中文状态名称) | | +| with_v_status | 否 | string | 值=1可以返回中文状态 | | +| label | 否 | string | 标签查询 | 支持枚举查询 | +| workitem_type_id | 否 | string | 需求类别ID | 支持枚举查询 | +| version | 否 | string | 版本 | | +| module | 否 | string | 模块 | | +| feature | 否 | string | 特性 | | +| test_focus | 否 | string | 测试重点 | | +| size | 否 | integer | 规模 | | +| tech_risk | 否 | string | 技术风险 | | +| business_value | 否 | string | 业务价值 | | +| owner | 否 | string | 处理人 | 支持模糊匹配 | +| cc | 否 | string | 抄送人 | 支持模糊匹配 | +| creator | 否 | string | 创建人 | 支持多人员查询 | +| developer | 否 | string | 开发人员 | | +| begin | 否 | date | 预计开始 | 支持时间查询 | +| due | 否 | date | 预计结束 | 支持时间查询 | +| created | 否 | datetime | 创建时间 | 支持时间查询 | +| modified | 否 | datetime | 最后修改时间 | 支持时间查询 | +| completed | 否 | datetime | 完成时间 | 支持时间查询 | +| iteration_id | 否 | string | 迭代ID | 支持不等于查询或枚举查询 | +| include_sub_iteration | 否 | string | 是否包含子迭代 | 取值 0或者1,默认取 0 | +| effort | 否 | string | 预估工时 | | +| effort_completed | 否 | string | 完成工时 | | +| remain | 否 | float | 剩余工时 | | +| exceed | 否 | float | 超出工时 | | +| category_id | 否 | integer | 需求分类 | 支持枚举查询 | +| include_sub_category | 否 | string | 是否包含子分类 | 取值 0或者1,默认取 0 | +| release_id | 否 | integer | 发布计划 | | +| source | 否 | string | 需求来源 | | +| type | 否 | string | 需求类型 | | +| ancestor_id | 否 | integer | 祖先需求,查询指定需求下所有子需求 | | +| parent_id | 否 | integer | 父需求 | | +| children_id | 否 | string | 子需求 | 为空查询传:丨 | +| include_leaf_stories | 否 | string | 是否包含子需求 | 取值 0或者1,默认取 0 | +| description | 否 | string | 详细描述 | 支持模糊匹配 | +| workspace_id | `是` | integer | 项目ID | | +| custom_field_* | 否 | string或者integer | 自定义字段参数,具体字段名通过接口 [获取需求自定义字段配置](https://open.tapd.cn/document/api-doc/API文档/api_reference/story/get_story_custom_fields_settings.html) 获取 | 支持枚举查询 | +| custom_plan_field_* | 否 | string或者integer | 自定义计划应用参数,具体字段名通过接口 [获取自定义计划应用](https://open.tapd.cn/document/api-doc/API文档/api_reference/iteration/get_plan_apps.html) 获取 | | +| limit | 否 | integer | 设置返回数量限制,默认为30 | | +| page | 否 | integer | 返回当前数量限制下第N页的数据,默认为1(第一页) | | +| order | 否 | string | 排序规则,规则:字段名 ASC或者DESC,然后 urlencode | 如按创建时间逆序:order=created%20desc | +| fields | 否 | string | 设置获取的字段,多个字段间以','逗号隔开 | | + +### [#](https://open.tapd.cn/document/api-doc/API文档/api_reference/story/get_stories.html#调用示例及返回结果)调用示例及返回结果 + +#### [#](https://open.tapd.cn/document/api-doc/API文档/api_reference/story/get_stories.html#获取项目下需求)获取项目下需求 + +#### [#](https://open.tapd.cn/document/api-doc/API文档/api_reference/story/get_stories.html#curl-使用-basic-auth-鉴权调用示例)curl 使用 Basic Auth 鉴权调用示例 + +``` +curl -u 'api_user:api_password' 'https://api.tapd.cn/stories?workspace_id=10158231' +``` + + + + + + + # 缺陷 ## 获取缺陷所有字段及候选值 @@ -599,7 +691,7 @@ GET ### [#](https://open.tapd.cn/document/api-doc/API文档/api_reference/bug/get_bug_fields_info.html#调用示例及返回结果)调用示例及返回结果 -## [#](https://open.tapd.cn/document/api-doc/API文档/api_reference/bug/get_bug_fields_info.html#获取项目下的缺陷字段)获取项目下的缺陷字段 +### [#](https://open.tapd.cn/document/api-doc/API文档/api_reference/bug/get_bug_fields_info.html#获取项目下的缺陷字段)获取项目下的缺陷字段 ### [#](https://open.tapd.cn/document/api-doc/API文档/api_reference/bug/get_bug_fields_info.html#curl-使用-basic-auth-鉴权调用示例)curl 使用 Basic Auth 鉴权调用示例 diff --git a/config3/config.ini b/config3/config.ini new file mode 100644 index 0000000..37e9da8 --- /dev/null +++ b/config3/config.ini @@ -0,0 +1,13 @@ +[TAPD] +workspace_id = 58335167 + +[Schedule] +push_time = 09:30 +skip_weekend = true + +[WeWork] +webhook_url = https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=026670e0-9e8d-4f61-9b3f-1f81365954ff + +[TechTeam] +# TAPD用户名到企微UserID的映射(逗号分隔,格式:TAPD用户名:企微UserID) +members =BardLin:BardLin,星渊:xingyuan,mithril:mi diff --git a/logs3/api_log_2026-03-11.jsonl b/logs3/api_log_2026-03-11.jsonl new file mode 100644 index 0000000..97ab9b4 --- /dev/null +++ b/logs3/api_log_2026-03-11.jsonl @@ -0,0 +1,13 @@ +{"event_type": "start_sync", "timestamp": "2026-03-11 20:29:35", "task": "task3", "sync_id": "task3_20260311_202935_219bd63a", "trigger": "manual", "metadata": {}} +{"event_type": "api_call", "timestamp": "2026-03-11 20:29:36", "task": "task3", "sync_id": "task3_20260311_202935_219bd63a", "module": "tapd", "operation": "stories", "success": false, "request": {"workspace_id": "58335167", "owner": "范宇", "fields": "id,name,owner,due,status,created"}, "response": {}, "error_message": "HTTPSConnectionPool(host='tapd-api.bilibili.co', port=443): Max retries exceeded with url: /tapd/stories?workspace_id=58335167&owner=%E8%8C%83%E5%AE%87&fields=id%2Cname%2Cowner%2Cdue%2Cstatus%2Ccreated (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1017)')))", "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-11 20:29:37", "task": "task3", "sync_id": "task3_20260311_202935_219bd63a", "module": "tapd", "operation": "stories", "success": false, "request": {"workspace_id": "58335167", "owner": "杰割", "fields": "id,name,owner,due,status,created"}, "response": {}, "error_message": "HTTPSConnectionPool(host='tapd-api.bilibili.co', port=443): Max retries exceeded with url: /tapd/stories?workspace_id=58335167&owner=%E6%9D%B0%E5%89%B2&fields=id%2Cname%2Cowner%2Cdue%2Cstatus%2Ccreated (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1017)')))", "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-11 20:29:38", "task": "task3", "sync_id": "task3_20260311_202935_219bd63a", "module": "tapd", "operation": "stories", "success": false, "request": {"workspace_id": "58335167", "owner": "周浩", "fields": "id,name,owner,due,status,created"}, "response": {}, "error_message": "HTTPSConnectionPool(host='tapd-api.bilibili.co', port=443): Max retries exceeded with url: /tapd/stories?workspace_id=58335167&owner=%E5%91%A8%E6%B5%A9&fields=id%2Cname%2Cowner%2Cdue%2Cstatus%2Ccreated (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1017)')))", "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-11 20:29:39", "task": "task3", "sync_id": "task3_20260311_202935_219bd63a", "module": "tapd", "operation": "bugs", "success": false, "request": {"workspace_id": "58335167", "current_owner": "范宇", "fields": "id,title,current_owner,deadline,status,created"}, "response": {}, "error_message": "HTTPSConnectionPool(host='tapd-api.bilibili.co', port=443): Max retries exceeded with url: /tapd/bugs?workspace_id=58335167¤t_owner=%E8%8C%83%E5%AE%87&fields=id%2Ctitle%2Ccurrent_owner%2Cdeadline%2Cstatus%2Ccreated (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1017)')))", "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-11 20:29:40", "task": "task3", "sync_id": "task3_20260311_202935_219bd63a", "module": "tapd", "operation": "bugs", "success": false, "request": {"workspace_id": "58335167", "current_owner": "杰割", "fields": "id,title,current_owner,deadline,status,created"}, "response": {}, "error_message": "HTTPSConnectionPool(host='tapd-api.bilibili.co', port=443): Max retries exceeded with url: /tapd/bugs?workspace_id=58335167¤t_owner=%E6%9D%B0%E5%89%B2&fields=id%2Ctitle%2Ccurrent_owner%2Cdeadline%2Cstatus%2Ccreated (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1017)')))", "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-11 20:29:41", "task": "task3", "sync_id": "task3_20260311_202935_219bd63a", "module": "tapd", "operation": "bugs", "success": false, "request": {"workspace_id": "58335167", "current_owner": "周浩", "fields": "id,title,current_owner,deadline,status,created"}, "response": {}, "error_message": "HTTPSConnectionPool(host='tapd-api.bilibili.co', port=443): Max retries exceeded with url: /tapd/bugs?workspace_id=58335167¤t_owner=%E5%91%A8%E6%B5%A9&fields=id%2Ctitle%2Ccurrent_owner%2Cdeadline%2Cstatus%2Ccreated (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1017)')))", "duration_ms": null, "extra": {}} +{"event_type": "end_sync", "timestamp": "2026-03-11 20:29:41", "task": "task3", "sync_id": "task3_20260311_202935_219bd63a", "success": true, "stats": {"overdue_count": 0}, "error_message": null, "extra": {}} +{"event_type": "start_sync", "timestamp": "2026-03-11 20:40:51", "task": "task3", "sync_id": "task3_20260311_204051_3d8eac8e", "trigger": "manual", "metadata": {}} +{"event_type": "api_call", "timestamp": "2026-03-11 20:40:52", "task": "task3", "sync_id": "task3_20260311_204051_3d8eac8e", "module": "tapd", "operation": "stories", "success": true, "request": {"workspace_id": "58335167", "owner": "BardLin", "fields": "id,name,owner,due,status,created"}, "response": {"status": 1, "data": [{"Story": {"id": "1158335167004866823", "name": "3C-基础移动-Bug-Dodge卡帧", "owner": "BardLin;星渊;英豪;", "due": "2026-03-10", "status": "status_9", "created": "2026-03-10 10:57:09"}}, {"Story": {"id": "1158335167004834011", "name": "【动画】2026年1月 - 凡人各组月度产出梳理", "owner": "BardLin;", "due": "2026-01-28", "status": "status_8", "created": "2026-01-26 16:22:15"}}, {"Story": {"id": "1158335167004828079", "name": "飞遁动画", "owner": "BardLin;", "due": "2026-01-30", "status": "status_9", "created": "2026-01-20 14:19:45"}}, {"Story": {"id": "1158335167004828030", "name": "大啼魂-初绑", "owner": "BardLin;", "due": "2026-03-02", "status": "status_8", "created": "2026-01-20 14:14:39"}}, {"Story": {"id": "1158335167004827998", "name": "血色披风预研", "owner": "BardLin;", "due": "2026-02-14", "status": "status_8", "created": "2026-01-20 14:08:10"}}, {"Story": {"id": "1158335167004827996", "name": "青凝镜-回收Layout", "owner": "BardLin;", "due": "2026-02-27", "status": "status_9", "created": "2026-01-20 14:07:39"}}, {"Story": {"id": "1158335167004827994", "name": "青凝镜-待机", "owner": "BardLin;", "due": "2026-03-20", "status": "status_9", "created": "2026-01-20 14:07:31"}}, {"Story": {"id": "1158335167004827991", "name": "青凝镜-检视表演Layout", "owner": "BardLin;", "due": "2026-02-28", "status": "status_9", "created": "2026-01-20 14:07:23"}}, {"Story": {"id": "1158335167004827989", "name": "青凝镜-召唤Layout", "owner": "BardLin;", "due": "2026-02-28", "status": "status_9", "created": "2026-01-20 14:07:11"}}, {"Story": {"id": "1158335167004827987", "name": "青凝镜-初绑", "owner": "BardLin;", "due": "2026-01-30", "status": "status_8", "created": "2026-01-20 14:06:58"}}, {"Story": {"id": "1158335167004827946", "name": "玄铁飞天盾-初绑", "owner": "BardLin;", "due": "2026-01-23", "status": "status_8", "created": "2026-01-20 12:28:27"}}, {"Story": {"id": "1158335167004827929", "name": "噬金虫召唤动画Layout", "owner": "BardLin;", "due": "2026-03-09", "status": "status_9", "created": "2026-01-20 12:26:10"}}, {"Story": {"id": "1158335167004827926", "name": "噬金虫召-初绑", "owner": "BardLin;", "due": "2026-01-26", "status": "status_8", "created": "2026-01-20 12:25:53"}}, {"Story": {"id": "1158335167004827921", "name": "飞剑-解控", "owner": "BardLin;", "due": "2026-03-27", "status": "status_9", "created": "2026-01-20 12:15:44"}}, {"Story": {"id": "1158335167004827920", "name": "飞剑-检视表演", "owner": "BardLin;", "due": "2026-03-27", "status": "status_7", "created": "2026-01-20 12:15:25"}}, {"Story": {"id": "1158335167004827919", "name": "飞剑-检视表演Layout", "owner": "BardLin;", "due": "2026-03-13", "status": "status_7", "created": "2026-01-20 12:15:17"}}, {"Story": {"id": "1158335167004827914", "name": "剑影分光·闪回", "owner": "BardLin;", "due": "2026-03-27", "status": "status_9", "created": "2026-01-20 12:14:57"}}, {"Story": {"id": "1158335167004827912", "name": "剑影分光·上挑", "owner": "BardLin;", "due": "2026-03-27", "status": "status_9", "created": "2026-01-20 12:14:53"}}, {"Story": {"id": "1158335167004827910", "name": "空中右键下劈", "owner": "BardLin;", "due": "2026-02-28", "status": "status_5", "created": "2026-01-20 12:14:26"}}, {"Story": {"id": "1158335167004827909", "name": "右键垫步突进", "owner": "BardLin;", "due": "2026-02-06", "status": "status_5", "created": "2026-01-20 12:14:20"}}, {"Story": {"id": "1158335167004827852", "name": "动画制作 - 【法宝】青竹蜂云剑", "owner": "BardLin;", "due": "2026-03-28", "status": "status_7", "created": "2026-01-20 11:53:07"}}, {"Story": {"id": "1158335167004816915", "name": "3C-飞遁 - 状态机重构", "owner": "BardLin;英豪;", "due": "2026-01-09", "status": "status_8", "created": "2026-01-08 13:58:26"}}, {"Story": {"id": "1158335167004815661", "name": "3C-飞遁 - W输入HighSpeed状态", "owner": "BardLin;英豪;", "due": "2026-01-09", "status": "status_8", "created": "2026-01-07 14:44:18"}}, {"Story": {"id": "1158335167004787978", "name": "通用受击 - 动作资源", "owner": "BardLin;", "due": null, "status": "status_7", "created": "2025-12-08 14:14:07"}}, {"Story": {"id": "1158335167004787977", "name": "海王兽 - 动作资源", "owner": "BardLin;v_liyanyan;", "due": null, "status": "status_7", "created": "2025-12-08 14:13:51"}}, {"Story": {"id": "1158335167004787973", "name": "主角战斗 - 动作资源", "owner": "BardLin;", "due": "2025-12-30", "status": "status_7", "created": "2025-12-08 14:11:47"}}, {"Story": {"id": "1158335167004774665", "name": "地面待机", "owner": "BardLin;巴鲁;", "due": "2025-12-30", "status": "status_8", "created": "2025-11-24 20:19:08"}}, {"Story": {"id": "1158335167004774664", "name": "空中待机", "owner": "BardLin;巴鲁;", "due": "2025-12-30", "status": "status_7", "created": "2025-11-24 20:19:08"}}, {"Story": {"id": "1158335167004774629", "name": "雷属性受击 - 起始", "owner": "BardLin;巴鲁;", "due": "2025-12-30", "status": "status_7", "created": "2025-11-24 20:19:02"}}, {"Story": {"id": "1158335167004774628", "name": "雷属性受击 - 循环", "owner": "BardLin;巴鲁;", "due": "2025-12-30", "status": "status_7", "created": "2025-11-24 20:19:02"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-11 20:40:52", "task": "task3", "sync_id": "task3_20260311_204051_3d8eac8e", "module": "tapd", "operation": "bugs", "success": true, "request": {"workspace_id": "58335167", "current_owner": "BardLin", "fields": "id,title,current_owner,deadline,status,created"}, "response": {"status": 1, "data": [{"Bug": {"id": "1158335167002283694", "title": "受击动画中,root质心需要跟随人物模型运动(如击飞、击浮空时root需要向上跟随),否则浮空连击时,敌人位置会频繁上下跳动。", "current_owner": "BardLin", "deadline": "2025-12-05", "status": "closed", "created": "2025-12-04 14:48:53"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-11 20:40:52", "task": "task3", "sync_id": "task3_20260311_204051_3d8eac8e", "module": "wework", "operation": "webhook/send", "success": true, "request": {"msgtype": "markdown", "markdown": {"content": "⏰ TAPD 过期单提醒(2026-03-11)\n\n@BardLin;(8 条过期)\n1.【需求】主角战斗 - 动作资源 | 过期 71 天 | [查看](https://tapd.bilibili.co/58335167/prong/stories/view/1158335167004787973)\n2.【需求】飞遁动画 | 过期 40 天 | [查看](https://tapd.bilibili.co/58335167/prong/stories/view/1158335167004828079)\n3.【需求】右键垫步突进 | 过期 33 天 | [查看](https://tapd.bilibili.co/58335167/prong/stories/view/1158335167004827909)\n4.【需求】青凝镜-回收Layout | 过期 12 天 | [查看](https://tapd.bilibili.co/58335167/prong/stories/view/1158335167004827996)\n5.【需求】青凝镜-检视表演Layout | 过期 11 天 | [查看](https://tapd.bilibili.co/58335167/prong/stories/view/1158335167004827991)\n6.【需求】青凝镜-召唤Layout | 过期 11 天 | [查看](https://tapd.bilibili.co/58335167/prong/stories/view/1158335167004827989)\n7.【需求】空中右键下劈 | 过期 11 天 | [查看](https://tapd.bilibili.co/58335167/prong/stories/view/1158335167004827910)\n8.【需求】噬金虫召唤动画Layout | 过期 2 天 | [查看](https://tapd.bilibili.co/58335167/prong/stories/view/1158335167004827929)\n\n@BardLin;巴鲁;(3 条过期)\n9.【需求】空中待机 | 过期 71 天 | [查看](https://tapd.bilibili.co/58335167/prong/stories/view/1158335167004774664)\n10.【需求】雷属性受击 - 起始 | 过期 71 天 | [查看](https://tapd.bilibili.co/58335167/prong/stories/view/1158335167004774629)\n11.【需求】雷属性受击 - 循环 | 过期 71 天 | [查看](https://tapd.bilibili.co/58335167/prong/stories/view/1158335167004774628)\n\n@BardLin;星渊;英豪;(1 条过期)\n12.【需求】3C-基础移动-Bug-Dodge卡帧 | 过期 1 天 | [查看](https://tapd.bilibili.co/58335167/prong/stories/view/1158335167004866823)\n\n共 12 条过期单,请今日内更新状态 🙏"}, "mentioned_list": ["BardLin;", "BardLin;巴鲁;", "BardLin;星渊;英豪;"]}, "response": {"errcode": 0, "errmsg": "ok"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "end_sync", "timestamp": "2026-03-11 20:40:52", "task": "task3", "sync_id": "task3_20260311_204051_3d8eac8e", "success": true, "stats": {"overdue_count": 12}, "error_message": null, "extra": {}} diff --git a/logs3/api_log_2026-03-12.jsonl b/logs3/api_log_2026-03-12.jsonl new file mode 100644 index 0000000..d006203 --- /dev/null +++ b/logs3/api_log_2026-03-12.jsonl @@ -0,0 +1,70 @@ +{"event_type": "start_sync", "timestamp": "2026-03-12 11:45:30", "task": "task3", "sync_id": "task3_20260312_114530_bed15d44", "trigger": "manual", "metadata": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:45:31", "task": "task3", "sync_id": "task3_20260312_114530_bed15d44", "module": "tapd", "operation": "stories", "success": true, "request": {"workspace_id": "58335167", "owner": "BardLin", "fields": "id,name,due,status"}, "response": {"status": 1, "data": [{"Story": {"id": "1158335167004866823", "name": "3C-基础移动-Bug-Dodge卡帧", "due": "2026-03-10", "status": "status_9"}}, {"Story": {"id": "1158335167004834011", "name": "【动画】2026年1月 - 凡人各组月度产出梳理", "due": "2026-01-28", "status": "status_8"}}, {"Story": {"id": "1158335167004828079", "name": "飞遁动画", "due": "2026-01-30", "status": "status_9"}}, {"Story": {"id": "1158335167004828030", "name": "大啼魂-初绑", "due": "2026-03-02", "status": "status_8"}}, {"Story": {"id": "1158335167004827998", "name": "血色披风预研", "due": "2026-02-14", "status": "status_8"}}, {"Story": {"id": "1158335167004827996", "name": "青凝镜-回收Layout", "due": "2026-02-27", "status": "status_9"}}, {"Story": {"id": "1158335167004827994", "name": "青凝镜-待机", "due": "2026-03-20", "status": "status_9"}}, {"Story": {"id": "1158335167004827991", "name": "青凝镜-检视表演Layout", "due": "2026-02-28", "status": "status_9"}}, {"Story": {"id": "1158335167004827989", "name": "青凝镜-召唤Layout", "due": "2026-02-28", "status": "status_9"}}, {"Story": {"id": "1158335167004827987", "name": "青凝镜-初绑", "due": "2026-01-30", "status": "status_8"}}, {"Story": {"id": "1158335167004827946", "name": "玄铁飞天盾-初绑", "due": "2026-01-23", "status": "status_8"}}, {"Story": {"id": "1158335167004827929", "name": "噬金虫召唤动画Layout", "due": "2026-03-09", "status": "status_9"}}, {"Story": {"id": "1158335167004827926", "name": "噬金虫召-初绑", "due": "2026-01-26", "status": "status_8"}}, {"Story": {"id": "1158335167004827921", "name": "飞剑-解控", "due": "2026-03-27", "status": "status_9"}}, {"Story": {"id": "1158335167004827920", "name": "飞剑-检视表演", "due": "2026-03-27", "status": "status_7"}}, {"Story": {"id": "1158335167004827919", "name": "飞剑-检视表演Layout", "due": "2026-03-13", "status": "status_7"}}, {"Story": {"id": "1158335167004827914", "name": "剑影分光·闪回", "due": "2026-03-27", "status": "status_9"}}, {"Story": {"id": "1158335167004827912", "name": "剑影分光·上挑", "due": "2026-03-27", "status": "status_9"}}, {"Story": {"id": "1158335167004827910", "name": "空中右键下劈", "due": "2026-02-28", "status": "status_5"}}, {"Story": {"id": "1158335167004827909", "name": "右键垫步突进", "due": "2026-02-06", "status": "status_5"}}, {"Story": {"id": "1158335167004827852", "name": "动画制作 - 【法宝】青竹蜂云剑", "due": "2026-03-28", "status": "status_7"}}, {"Story": {"id": "1158335167004816915", "name": "3C-飞遁 - 状态机重构", "due": "2026-01-09", "status": "status_8"}}, {"Story": {"id": "1158335167004815661", "name": "3C-飞遁 - W输入HighSpeed状态", "due": "2026-01-09", "status": "status_8"}}, {"Story": {"id": "1158335167004787978", "name": "通用受击 - 动作资源", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004787977", "name": "海王兽 - 动作资源", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004787973", "name": "主角战斗 - 动作资源", "due": "2025-12-30", "status": "status_7"}}, {"Story": {"id": "1158335167004774665", "name": "地面待机", "due": "2025-12-30", "status": "status_8"}}, {"Story": {"id": "1158335167004774664", "name": "空中待机", "due": "2025-12-30", "status": "status_7"}}, {"Story": {"id": "1158335167004774629", "name": "雷属性受击 - 起始", "due": "2025-12-30", "status": "status_7"}}, {"Story": {"id": "1158335167004774628", "name": "雷属性受击 - 循环", "due": "2025-12-30", "status": "status_7"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:45:31", "task": "task3", "sync_id": "task3_20260312_114530_bed15d44", "module": "tapd", "operation": "stories", "success": true, "request": {"workspace_id": "58335167", "owner": "星渊", "fields": "id,name,due,status"}, "response": {"status": 1, "data": [{"Story": {"id": "1158335167004866823", "name": "3C-基础移动-Bug-Dodge卡帧", "due": "2026-03-10", "status": "status_9"}}, {"Story": {"id": "1158335167004839323", "name": "材质Mask模式不受motion blur影响", "due": "2026-02-05", "status": "status_9"}}, {"Story": {"id": "1158335167004839302", "name": "AS脚本Bind扩展", "due": "2026-02-03", "status": "status_10"}}, {"Story": {"id": "1158335167004839301", "name": "尝试AS写Validator", "due": "2026-02-03", "status": "status_10"}}, {"Story": {"id": "1158335167004839299", "name": "简单Sample跑下流程", "due": "2026-02-03", "status": "status_8"}}, {"Story": {"id": "1158335167004839298", "name": "文档阅读", "due": "2026-02-03", "status": "status_8"}}, {"Story": {"id": "1158335167004839272", "name": "Kawaii,Magic,AnimVelet调研", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839270", "name": "Chaos布料算法调研", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839267", "name": "编译Android版", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839266", "name": "对GPU解算进行改近", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839263", "name": "育碧GPU布料结算的GDC Paper", "due": "2026-02-13", "status": "status_8"}}, {"Story": {"id": "1158335167004839259", "name": "理解GPU算法", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839251", "name": "增加Profiler", "due": "2026-02-13", "status": "status_8"}}, {"Story": {"id": "1158335167004839246", "name": "调试和理解NvCloth算法", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839242", "name": "编译NvCloth", "due": "2026-02-13", "status": "status_8"}}, {"Story": {"id": "1158335167004839241", "name": "NvCloth调研", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839239", "name": "布料解算基建", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839234", "name": "Data Validator框架", "due": "2026-02-03", "status": "status_5"}}, {"Story": {"id": "1158335167004834466", "name": "Horde相关-持续开发项", "due": "2026-05-30", "status": "status_5"}}, {"Story": {"id": "1158335167004834018", "name": "【引擎/TA】2026年1月 - 凡人各组月度产出梳理", "due": "2026-01-28", "status": "status_8"}}, {"Story": {"id": "1158335167004828309", "name": "技术基建-基础可过滤编辑器控件开发", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004802628", "name": "技术基建-XianDebugger-法术场Debugger", "due": null, "status": "status_9"}}, {"Story": {"id": "1158335167004802626", "name": "技术基建-XianDebugger", "due": null, "status": "status_5"}}, {"Story": {"id": "1158335167004800837", "name": "VAT贴图Foramt以及各种选项的意义", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004800834", "name": "VAT贴图尺寸和种类优化", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800832", "name": "VAT内存优化", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004800829", "name": "内存Profiling", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800828", "name": "内存优化", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800819", "name": "Async优化Lumen反射", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800816", "name": "优化Lumen反射,包括水的反射性能", "due": null, "status": "status_8"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:45:31", "task": "task3", "sync_id": "task3_20260312_114530_bed15d44", "module": "tapd", "operation": "bugs", "success": true, "request": {"workspace_id": "58335167", "current_owner": "BardLin", "fields": "id,title,deadline,status"}, "response": {"status": 1, "data": [{"Bug": {"id": "1158335167002283694", "title": "受击动画中,root质心需要跟随人物模型运动(如击飞、击浮空时root需要向上跟随),否则浮空连击时,敌人位置会频繁上下跳动。", "deadline": "2025-12-05", "status": "closed"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:45:31", "task": "task3", "sync_id": "task3_20260312_114530_bed15d44", "module": "tapd", "operation": "bugs", "success": true, "request": {"workspace_id": "58335167", "current_owner": "星渊", "fields": "id,title,deadline,status"}, "response": {"status": 1, "data": [{"Bug": {"id": "1158335167002296797", "title": "优化性能,分辨率提升为1080P,静态帧率基本稳定60fps", "deadline": "2025-12-22", "status": "closed"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:45:32", "task": "task3", "sync_id": "task3_20260312_114530_bed15d44", "module": "wework", "operation": "webhook/send", "success": true, "request": {"msgtype": "markdown", "markdown": {"content": "⏰ TAPD 过期单提醒(2026-03-12)\n\n@BardLin(12 条过期)\n1.【需求】主角战斗 - 动作资源 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004787973)\n2.【需求】空中待机 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004774664)\n3.【需求】雷属性受击 - 起始 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004774629)\n4.【需求】雷属性受击 - 循环 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004774628)\n5.【需求】飞遁动画 | 过期 41 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004828079)\n6.【需求】右键垫步突进 | 过期 34 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827909)\n7.【需求】青凝镜-回收Layout | 过期 13 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827996)\n8.【需求】青凝镜-检视表演Layout | 过期 12 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827991)\n9.【需求】青凝镜-召唤Layout | 过期 12 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827989)\n10.【需求】空中右键下劈 | 过期 12 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827910)\n11.【需求】噬金虫召唤动画Layout | 过期 3 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827929)\n12.【需求】3C-基础移动-Bug-Dodge卡帧 | 过期 2 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004866823)\n\n@星渊(13 条过期)\n13.【需求】AS脚本Bind扩展 | 过期 37 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839302)\n14.【需求】尝试AS写Validator | 过期 37 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839301)\n15.【需求】Data Validator框架 | 过期 37 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839234)\n16.【需求】材质Mask模式不受motion blur影响 | 过期 35 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839323)\n17.【需求】Kawaii,Magic,AnimVelet调研 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839272)\n18.【需求】Chaos布料算法调研 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839270)\n19.【需求】编译Android版 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839267)\n20.【需求】对GPU解算进行改近 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839266)\n21.【需求】理解GPU算法 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839259)\n22.【需求】调试和理解NvCloth算法 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839246)\n23.【需求】NvCloth调研 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839241)\n24.【需求】布料解算基建 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839239)\n25.【需求】3C-基础移动-Bug-Dodge卡帧 | 过期 2 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004866823)\n\n共 25 条过期单,请今日内更新状态 🙏"}, "mentioned_list": ["BardLin", "xingyuan"]}, "response": {"errcode": 0, "errmsg": "ok"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "end_sync", "timestamp": "2026-03-12 11:45:32", "task": "task3", "sync_id": "task3_20260312_114530_bed15d44", "success": true, "stats": {"overdue_count": 25}, "error_message": null, "extra": {}} +{"event_type": "start_sync", "timestamp": "2026-03-12 11:48:56", "task": "task3", "sync_id": "task3_20260312_114856_2aa09865", "trigger": "manual", "metadata": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:48:56", "task": "task3", "sync_id": "task3_20260312_114856_2aa09865", "module": "tapd", "operation": "stories", "success": true, "request": {"workspace_id": "58335167", "owner": "BardLin", "fields": "id,name,due,status"}, "response": {"status": 1, "data": [{"Story": {"id": "1158335167004866823", "name": "3C-基础移动-Bug-Dodge卡帧", "due": "2026-03-10", "status": "status_9"}}, {"Story": {"id": "1158335167004834011", "name": "【动画】2026年1月 - 凡人各组月度产出梳理", "due": "2026-01-28", "status": "status_8"}}, {"Story": {"id": "1158335167004828079", "name": "飞遁动画", "due": "2026-01-30", "status": "status_9"}}, {"Story": {"id": "1158335167004828030", "name": "大啼魂-初绑", "due": "2026-03-02", "status": "status_8"}}, {"Story": {"id": "1158335167004827998", "name": "血色披风预研", "due": "2026-02-14", "status": "status_8"}}, {"Story": {"id": "1158335167004827996", "name": "青凝镜-回收Layout", "due": "2026-02-27", "status": "status_9"}}, {"Story": {"id": "1158335167004827994", "name": "青凝镜-待机", "due": "2026-03-20", "status": "status_9"}}, {"Story": {"id": "1158335167004827991", "name": "青凝镜-检视表演Layout", "due": "2026-02-28", "status": "status_9"}}, {"Story": {"id": "1158335167004827989", "name": "青凝镜-召唤Layout", "due": "2026-02-28", "status": "status_9"}}, {"Story": {"id": "1158335167004827987", "name": "青凝镜-初绑", "due": "2026-01-30", "status": "status_8"}}, {"Story": {"id": "1158335167004827946", "name": "玄铁飞天盾-初绑", "due": "2026-01-23", "status": "status_8"}}, {"Story": {"id": "1158335167004827929", "name": "噬金虫召唤动画Layout", "due": "2026-03-09", "status": "status_9"}}, {"Story": {"id": "1158335167004827926", "name": "噬金虫召-初绑", "due": "2026-01-26", "status": "status_8"}}, {"Story": {"id": "1158335167004827921", "name": "飞剑-解控", "due": "2026-03-27", "status": "status_9"}}, {"Story": {"id": "1158335167004827920", "name": "飞剑-检视表演", "due": "2026-03-27", "status": "status_7"}}, {"Story": {"id": "1158335167004827919", "name": "飞剑-检视表演Layout", "due": "2026-03-13", "status": "status_7"}}, {"Story": {"id": "1158335167004827914", "name": "剑影分光·闪回", "due": "2026-03-27", "status": "status_9"}}, {"Story": {"id": "1158335167004827912", "name": "剑影分光·上挑", "due": "2026-03-27", "status": "status_9"}}, {"Story": {"id": "1158335167004827910", "name": "空中右键下劈", "due": "2026-02-28", "status": "status_5"}}, {"Story": {"id": "1158335167004827909", "name": "右键垫步突进", "due": "2026-02-06", "status": "status_5"}}, {"Story": {"id": "1158335167004827852", "name": "动画制作 - 【法宝】青竹蜂云剑", "due": "2026-03-28", "status": "status_7"}}, {"Story": {"id": "1158335167004816915", "name": "3C-飞遁 - 状态机重构", "due": "2026-01-09", "status": "status_8"}}, {"Story": {"id": "1158335167004815661", "name": "3C-飞遁 - W输入HighSpeed状态", "due": "2026-01-09", "status": "status_8"}}, {"Story": {"id": "1158335167004787978", "name": "通用受击 - 动作资源", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004787977", "name": "海王兽 - 动作资源", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004787973", "name": "主角战斗 - 动作资源", "due": "2025-12-30", "status": "status_7"}}, {"Story": {"id": "1158335167004774665", "name": "地面待机", "due": "2025-12-30", "status": "status_8"}}, {"Story": {"id": "1158335167004774664", "name": "空中待机", "due": "2025-12-30", "status": "status_7"}}, {"Story": {"id": "1158335167004774629", "name": "雷属性受击 - 起始", "due": "2025-12-30", "status": "status_7"}}, {"Story": {"id": "1158335167004774628", "name": "雷属性受击 - 循环", "due": "2025-12-30", "status": "status_7"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:48:56", "task": "task3", "sync_id": "task3_20260312_114856_2aa09865", "module": "tapd", "operation": "stories", "success": true, "request": {"workspace_id": "58335167", "owner": "星渊", "fields": "id,name,due,status"}, "response": {"status": 1, "data": [{"Story": {"id": "1158335167004866823", "name": "3C-基础移动-Bug-Dodge卡帧", "due": "2026-03-10", "status": "status_9"}}, {"Story": {"id": "1158335167004839323", "name": "材质Mask模式不受motion blur影响", "due": "2026-02-05", "status": "status_9"}}, {"Story": {"id": "1158335167004839302", "name": "AS脚本Bind扩展", "due": "2026-02-03", "status": "status_10"}}, {"Story": {"id": "1158335167004839301", "name": "尝试AS写Validator", "due": "2026-02-03", "status": "status_10"}}, {"Story": {"id": "1158335167004839299", "name": "简单Sample跑下流程", "due": "2026-02-03", "status": "status_8"}}, {"Story": {"id": "1158335167004839298", "name": "文档阅读", "due": "2026-02-03", "status": "status_8"}}, {"Story": {"id": "1158335167004839272", "name": "Kawaii,Magic,AnimVelet调研", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839270", "name": "Chaos布料算法调研", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839267", "name": "编译Android版", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839266", "name": "对GPU解算进行改近", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839263", "name": "育碧GPU布料结算的GDC Paper", "due": "2026-02-13", "status": "status_8"}}, {"Story": {"id": "1158335167004839259", "name": "理解GPU算法", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839251", "name": "增加Profiler", "due": "2026-02-13", "status": "status_8"}}, {"Story": {"id": "1158335167004839246", "name": "调试和理解NvCloth算法", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839242", "name": "编译NvCloth", "due": "2026-02-13", "status": "status_8"}}, {"Story": {"id": "1158335167004839241", "name": "NvCloth调研", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839239", "name": "布料解算基建", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839234", "name": "Data Validator框架", "due": "2026-02-03", "status": "status_5"}}, {"Story": {"id": "1158335167004834466", "name": "Horde相关-持续开发项", "due": "2026-05-30", "status": "status_5"}}, {"Story": {"id": "1158335167004834018", "name": "【引擎/TA】2026年1月 - 凡人各组月度产出梳理", "due": "2026-01-28", "status": "status_8"}}, {"Story": {"id": "1158335167004828309", "name": "技术基建-基础可过滤编辑器控件开发", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004802628", "name": "技术基建-XianDebugger-法术场Debugger", "due": null, "status": "status_9"}}, {"Story": {"id": "1158335167004802626", "name": "技术基建-XianDebugger", "due": null, "status": "status_5"}}, {"Story": {"id": "1158335167004800837", "name": "VAT贴图Foramt以及各种选项的意义", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004800834", "name": "VAT贴图尺寸和种类优化", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800832", "name": "VAT内存优化", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004800829", "name": "内存Profiling", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800828", "name": "内存优化", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800819", "name": "Async优化Lumen反射", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800816", "name": "优化Lumen反射,包括水的反射性能", "due": null, "status": "status_8"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:48:57", "task": "task3", "sync_id": "task3_20260312_114856_2aa09865", "module": "tapd", "operation": "stories", "success": true, "request": {"workspace_id": "58335167", "owner": "mithril", "fields": "id,name,due,status"}, "response": {"status": 1, "data": [{"Story": {"id": "1158335167004865833", "name": "客户端审核 - 噬金虫相关功能", "due": "2026-03-13", "status": "status_7"}}, {"Story": {"id": "1158335167004840448", "name": "技能触发条件接入及联调。", "due": "2026-01-31", "status": "status_8"}}, {"Story": {"id": "1158335167004838325", "name": "AI Codereview", "due": "2026-05-30", "status": "status_5"}}, {"Story": {"id": "1158335167004838322", "name": "界面调整迭代", "due": "2026-02-28", "status": "status_8"}}, {"Story": {"id": "1158335167004838321", "name": "重构MainMenu", "due": "2026-02-28", "status": "status_8"}}, {"Story": {"id": "1158335167004838320", "name": "common ui调研,手机端测试", "due": "2026-03-20", "status": "status_7"}}, {"Story": {"id": "1158335167004836875", "name": "- 技能槽位系统重构-迭代", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004834469", "name": "Horde编译失败群通知", "due": "2026-05-30", "status": "status_9"}}, {"Story": {"id": "1158335167004834468", "name": "Horde 自动触发逻辑", "due": "2026-05-30", "status": "status_9"}}, {"Story": {"id": "1158335167004829003", "name": "补全运行时日志", "due": "2026-04-03", "status": "status_7"}}, {"Story": {"id": "1158335167004828993", "name": "接入xiandebug,可预览运行时子弹及相关数据", "due": "2026-04-03", "status": "status_7"}}, {"Story": {"id": "1158335167004828719", "name": "客户端审核 - 武器装备-UI逻辑", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004828716", "name": "客户端审核 - 法宝装备-UI逻辑", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004828709", "name": "客户端审核 - 武器装备界面逻辑", "due": "2026-03-13", "status": "status_12"}}, {"Story": {"id": "1158335167004828708", "name": "客户端审核 - 法宝装备界面逻辑", "due": "2026-03-13", "status": "status_12"}}, {"Story": {"id": "1158335167004828679", "name": "客户端审核 - 消耗品使用逻辑", "due": "2026-03-06", "status": "status_5"}}, {"Story": {"id": "1158335167004828673", "name": "客户端审核 - SkillSlotMgr新逻辑迭代", "due": "2026-01-28", "status": "status_8"}}, {"Story": {"id": "1158335167004828672", "name": "客户端审核 - 武器槽位映射逻辑重构", "due": "2026-01-30", "status": "status_8"}}, {"Story": {"id": "1158335167004827634", "name": "客户端审核 - 绑定Ability——左右键、派生技、武器战技和武器通用技能", "due": "2026-03-22", "status": "status_5"}}, {"Story": {"id": "1158335167004827625", "name": "客户端审核 - 可追踪角度、追踪速度等参数可靠性优化", "due": "2026-04-04", "status": "status_7"}}, {"Story": {"id": "1158335167004827584", "name": "客户端审核 - 根据血量裂纹和破碎效果", "due": "2026-04-11", "status": "status_7"}}, {"Story": {"id": "1158335167004827583", "name": "客户端审核 - 表现优化,接入动画资源", "due": "2026-04-10", "status": "status_7"}}, {"Story": {"id": "1158335167004806717", "name": "分支上增加显示玩家名称的功能", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800802", "name": "PSO收集", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004794635", "name": "客户端审核 - 格挡功能-子弹奉还", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004794632", "name": "客户端审核 - 弹道系统现有配置优化", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004794631", "name": "客户端审核 - 弹道系统优化- 激光类bullet", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004794629", "name": "客户端审核 - 弹道系统优化- AOE伤害&子弹爆炸", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004792154", "name": "玄铁飞天盾 - 格挡成功超出弧度生成多个盾后,若当前盾X秒内未再次受击则消散,直到仅剩下一个盾时,回到1倍大小", "due": "2026-04-10", "status": "status_7"}}, {"Story": {"id": "1158335167004792153", "name": "玄铁飞天盾 - 格挡成功后,X秒内未再次受击,则平滑往环绕半径轨道上移动", "due": "2026-04-10", "status": "status_7"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:48:57", "task": "task3", "sync_id": "task3_20260312_114856_2aa09865", "module": "tapd", "operation": "bugs", "success": true, "request": {"workspace_id": "58335167", "current_owner": "BardLin", "fields": "id,title,deadline,status"}, "response": {"status": 1, "data": [{"Bug": {"id": "1158335167002283694", "title": "受击动画中,root质心需要跟随人物模型运动(如击飞、击浮空时root需要向上跟随),否则浮空连击时,敌人位置会频繁上下跳动。", "deadline": "2025-12-05", "status": "closed"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:48:57", "task": "task3", "sync_id": "task3_20260312_114856_2aa09865", "module": "tapd", "operation": "bugs", "success": true, "request": {"workspace_id": "58335167", "current_owner": "星渊", "fields": "id,title,deadline,status"}, "response": {"status": 1, "data": [{"Bug": {"id": "1158335167002296797", "title": "优化性能,分辨率提升为1080P,静态帧率基本稳定60fps", "deadline": "2025-12-22", "status": "closed"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:48:57", "task": "task3", "sync_id": "task3_20260312_114856_2aa09865", "module": "tapd", "operation": "bugs", "success": true, "request": {"workspace_id": "58335167", "current_owner": "mithril", "fields": "id,title,deadline,status"}, "response": {"status": 1, "data": [{"Bug": {"id": "1158335167002280921", "title": "【UI】【单机】血条UI歪了,不在屏幕正中间了@mithril(hanjingchao)", "deadline": "2025-12-01", "status": "closed"}}, {"Bug": {"id": "1158335167002280929", "title": "【联机】【弹道】左键第三段,第四段,飞剑子弹数量会丢失几根@mithril(hanjingchao)", "deadline": "2025-12-02", "status": "closed"}}, {"Bug": {"id": "1158335167002280930", "title": "【联机】【弹道】子弹受击特效丢失了@mithril(hanjingchao)", "deadline": "2025-12-01", "status": "closed"}}, {"Bug": {"id": "1158335167002280931", "title": "【联机】【UI】对方的体力条会显示得特别大@mithril(hanjingchao)", "deadline": "2025-12-02", "status": "closed"}}, {"Bug": {"id": "1158335167002283432", "title": "更新之后,放左键,没目标时弹道坏了,不会正确追踪地形", "deadline": "2025-12-09", "status": "closed"}}, {"Bug": {"id": "1158335167002287668", "title": "格挡成功后,延迟时间内盾也要保证和角色相对移动,(当前是会静止在原地,不跟随角色移动)", "deadline": "2025-12-12", "status": "closed"}}, {"Bug": {"id": "1158335167002287671", "title": "格挡成功后,延迟时间内再次格挡,则要刷新当前延迟时间(当前延迟时间内再次受击,延迟时间感觉并没有被刷新)", "deadline": "2025-12-16", "status": "closed"}}, {"Bug": {"id": "1158335167002287675", "title": "在新生成盾时,盾的内外表现不对,且旋转方向不对", "deadline": "2025-12-12", "status": "closed"}}, {"Bug": {"id": "1158335167002294091", "title": "【联机】【符箓】土牢符会把自己困住", "deadline": "2025-12-18", "status": "closed"}}, {"Bug": {"id": "1158335167002294096", "title": "【联机】【法宝】飞天盾会挡住自己的子弹", "deadline": "2025-12-18", "status": "closed"}}, {"Bug": {"id": "1158335167002295354", "title": "飞天盾相关bug - 子弹会穿盾,对角色造成伤害", "deadline": "2025-12-20", "status": "closed"}}, {"Bug": {"id": "1158335167002295358", "title": "限制生成初始总数量为1,避免多次使用生成多个盾(再次使用时刷新盾血量和持续时间)", "deadline": "2025-12-20", "status": "closed"}}, {"Bug": {"id": "1158335167002295360", "title": "飞天盾相关bug - 持续时间配置,避免盾一直不消失", "deadline": "2025-12-20", "status": "closed"}}, {"Bug": {"id": "1158335167002296688", "title": "【BUG】包里能不能默认 DisableAllScreenMessages", "deadline": "2025-12-22", "status": "closed"}}, {"Bug": {"id": "1158335167002297733", "title": "【高-BUG】左键普攻,第四段飞剑命中后会延迟一会才消失,希望和前三段一样快速消失", "deadline": "2025-12-25", "status": "closed"}}, {"Bug": {"id": "1158335167002299602", "title": "【高-BUG】土牢符的符纸,自己能锁定", "deadline": "2025-12-27", "status": "closed"}}, {"Bug": {"id": "1158335167002300378", "title": "【bug】土牢符陷阱现在不开神识探查也能看见", "deadline": "2025-12-30", "status": "in_progress"}}, {"Bug": {"id": "1158335167002300531", "title": "【致命-BUG】按G会Crash,复现较为频繁", "deadline": "2025-12-28", "status": "closed"}}, {"Bug": {"id": "1158335167002300717", "title": "【高-BUG】巨剑术诀子弹,命中海王兽场景海面底下的地面时没有正确触发overlap事件,停在表面并播特效", "deadline": "2025-12-31", "status": "closed"}}, {"Bug": {"id": "1158335167002300837", "title": "【高-bug】MoveToTargetEX触发的时候,能直接从土牢符里穿出来,需要正常阻挡自身和目标穿出土牢符", "deadline": "2025-12-31", "status": "closed"}}, {"Bug": {"id": "1158335167002304061", "title": "【需Merge分支】【高-BUG】【联机】现在破定期间Q环绕飞剑,只环绕一次就消失了。", "deadline": "2026-01-07", "status": "closed"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:48:58", "task": "task3", "sync_id": "task3_20260312_114856_2aa09865", "module": "wework", "operation": "webhook/send", "success": true, "request": {"msgtype": "markdown", "markdown": {"content": "⏰ TAPD 过期单提醒(2026-03-12)\n\n<@BardLin>(12 条过期)\n1.【需求】主角战斗 - 动作资源 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004787973)\n2.【需求】空中待机 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004774664)\n3.【需求】雷属性受击 - 起始 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004774629)\n4.【需求】雷属性受击 - 循环 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004774628)\n5.【需求】飞遁动画 | 过期 41 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004828079)\n6.【需求】右键垫步突进 | 过期 34 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827909)\n7.【需求】青凝镜-回收Layout | 过期 13 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827996)\n8.【需求】青凝镜-检视表演Layout | 过期 12 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827991)\n9.【需求】青凝镜-召唤Layout | 过期 12 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827989)\n10.【需求】空中右键下劈 | 过期 12 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827910)\n11.【需求】噬金虫召唤动画Layout | 过期 3 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827929)\n12.【需求】3C-基础移动-Bug-Dodge卡帧 | 过期 2 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004866823)\n\n<@mi>(2 条过期)\n13.【缺陷】【bug】土牢符陷阱现在不开神识探查也能看见 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/bugtrace/bugs/view?bug_id=1158335167002300378)\n14.【需求】客户端审核 - 消耗品使用逻辑 | 过期 6 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004828679)\n\n<@xingyuan>(13 条过期)\n15.【需求】AS脚本Bind扩展 | 过期 37 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839302)\n16.【需求】尝试AS写Validator | 过期 37 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839301)\n17.【需求】Data Validator框架 | 过期 37 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839234)\n18.【需求】材质Mask模式不受motion blur影响 | 过期 35 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839323)\n19.【需求】Kawaii,Magic,AnimVelet调研 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839272)\n20.【需求】Chaos布料算法调研 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839270)\n21.【需求】编译Android版 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839267)\n22.【需求】对GPU解算进行改近 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839266)\n23.【需求】理解GPU算法 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839259)\n24.【需求】调试和理解NvCloth算法 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839246)\n25.【需求】NvCloth调研 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839241)\n26.【需求】布料解算基建 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839239)\n27.【需求】3C-基础移动-Bug-Dodge卡帧 | 过期 2 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004866823)\n\n共 27 条过期单,请今日内更新状态 🙏"}, "mentioned_list": ["BardLin", "mi", "xingyuan"]}, "response": {"errcode": 0, "errmsg": "ok"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "end_sync", "timestamp": "2026-03-12 11:48:58", "task": "task3", "sync_id": "task3_20260312_114856_2aa09865", "success": true, "stats": {"overdue_count": 27}, "error_message": null, "extra": {}} +{"event_type": "start_sync", "timestamp": "2026-03-12 11:51:37", "task": "task3", "sync_id": "task3_20260312_115137_176b8282", "trigger": "manual", "metadata": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:51:38", "task": "task3", "sync_id": "task3_20260312_115137_176b8282", "module": "tapd", "operation": "stories", "success": true, "request": {"workspace_id": "58335167", "owner": "BardLin", "fields": "id,name,due,status"}, "response": {"status": 1, "data": [{"Story": {"id": "1158335167004866823", "name": "3C-基础移动-Bug-Dodge卡帧", "due": "2026-03-10", "status": "status_9"}}, {"Story": {"id": "1158335167004834011", "name": "【动画】2026年1月 - 凡人各组月度产出梳理", "due": "2026-01-28", "status": "status_8"}}, {"Story": {"id": "1158335167004828079", "name": "飞遁动画", "due": "2026-01-30", "status": "status_9"}}, {"Story": {"id": "1158335167004828030", "name": "大啼魂-初绑", "due": "2026-03-02", "status": "status_8"}}, {"Story": {"id": "1158335167004827998", "name": "血色披风预研", "due": "2026-02-14", "status": "status_8"}}, {"Story": {"id": "1158335167004827996", "name": "青凝镜-回收Layout", "due": "2026-02-27", "status": "status_9"}}, {"Story": {"id": "1158335167004827994", "name": "青凝镜-待机", "due": "2026-03-20", "status": "status_9"}}, {"Story": {"id": "1158335167004827991", "name": "青凝镜-检视表演Layout", "due": "2026-02-28", "status": "status_9"}}, {"Story": {"id": "1158335167004827989", "name": "青凝镜-召唤Layout", "due": "2026-02-28", "status": "status_9"}}, {"Story": {"id": "1158335167004827987", "name": "青凝镜-初绑", "due": "2026-01-30", "status": "status_8"}}, {"Story": {"id": "1158335167004827946", "name": "玄铁飞天盾-初绑", "due": "2026-01-23", "status": "status_8"}}, {"Story": {"id": "1158335167004827929", "name": "噬金虫召唤动画Layout", "due": "2026-03-09", "status": "status_9"}}, {"Story": {"id": "1158335167004827926", "name": "噬金虫召-初绑", "due": "2026-01-26", "status": "status_8"}}, {"Story": {"id": "1158335167004827921", "name": "飞剑-解控", "due": "2026-03-27", "status": "status_9"}}, {"Story": {"id": "1158335167004827920", "name": "飞剑-检视表演", "due": "2026-03-27", "status": "status_7"}}, {"Story": {"id": "1158335167004827919", "name": "飞剑-检视表演Layout", "due": "2026-03-13", "status": "status_7"}}, {"Story": {"id": "1158335167004827914", "name": "剑影分光·闪回", "due": "2026-03-27", "status": "status_9"}}, {"Story": {"id": "1158335167004827912", "name": "剑影分光·上挑", "due": "2026-03-27", "status": "status_9"}}, {"Story": {"id": "1158335167004827910", "name": "空中右键下劈", "due": "2026-02-28", "status": "status_5"}}, {"Story": {"id": "1158335167004827909", "name": "右键垫步突进", "due": "2026-02-06", "status": "status_5"}}, {"Story": {"id": "1158335167004827852", "name": "动画制作 - 【法宝】青竹蜂云剑", "due": "2026-03-28", "status": "status_7"}}, {"Story": {"id": "1158335167004816915", "name": "3C-飞遁 - 状态机重构", "due": "2026-01-09", "status": "status_8"}}, {"Story": {"id": "1158335167004815661", "name": "3C-飞遁 - W输入HighSpeed状态", "due": "2026-01-09", "status": "status_8"}}, {"Story": {"id": "1158335167004787978", "name": "通用受击 - 动作资源", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004787977", "name": "海王兽 - 动作资源", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004787973", "name": "主角战斗 - 动作资源", "due": "2025-12-30", "status": "status_7"}}, {"Story": {"id": "1158335167004774665", "name": "地面待机", "due": "2025-12-30", "status": "status_8"}}, {"Story": {"id": "1158335167004774664", "name": "空中待机", "due": "2025-12-30", "status": "status_7"}}, {"Story": {"id": "1158335167004774629", "name": "雷属性受击 - 起始", "due": "2025-12-30", "status": "status_7"}}, {"Story": {"id": "1158335167004774628", "name": "雷属性受击 - 循环", "due": "2025-12-30", "status": "status_7"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:51:38", "task": "task3", "sync_id": "task3_20260312_115137_176b8282", "module": "tapd", "operation": "stories", "success": true, "request": {"workspace_id": "58335167", "owner": "星渊", "fields": "id,name,due,status"}, "response": {"status": 1, "data": [{"Story": {"id": "1158335167004866823", "name": "3C-基础移动-Bug-Dodge卡帧", "due": "2026-03-10", "status": "status_9"}}, {"Story": {"id": "1158335167004839323", "name": "材质Mask模式不受motion blur影响", "due": "2026-02-05", "status": "status_9"}}, {"Story": {"id": "1158335167004839302", "name": "AS脚本Bind扩展", "due": "2026-02-03", "status": "status_10"}}, {"Story": {"id": "1158335167004839301", "name": "尝试AS写Validator", "due": "2026-02-03", "status": "status_10"}}, {"Story": {"id": "1158335167004839299", "name": "简单Sample跑下流程", "due": "2026-02-03", "status": "status_8"}}, {"Story": {"id": "1158335167004839298", "name": "文档阅读", "due": "2026-02-03", "status": "status_8"}}, {"Story": {"id": "1158335167004839272", "name": "Kawaii,Magic,AnimVelet调研", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839270", "name": "Chaos布料算法调研", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839267", "name": "编译Android版", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839266", "name": "对GPU解算进行改近", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839263", "name": "育碧GPU布料结算的GDC Paper", "due": "2026-02-13", "status": "status_8"}}, {"Story": {"id": "1158335167004839259", "name": "理解GPU算法", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839251", "name": "增加Profiler", "due": "2026-02-13", "status": "status_8"}}, {"Story": {"id": "1158335167004839246", "name": "调试和理解NvCloth算法", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839242", "name": "编译NvCloth", "due": "2026-02-13", "status": "status_8"}}, {"Story": {"id": "1158335167004839241", "name": "NvCloth调研", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839239", "name": "布料解算基建", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839234", "name": "Data Validator框架", "due": "2026-02-03", "status": "status_5"}}, {"Story": {"id": "1158335167004834466", "name": "Horde相关-持续开发项", "due": "2026-05-30", "status": "status_5"}}, {"Story": {"id": "1158335167004834018", "name": "【引擎/TA】2026年1月 - 凡人各组月度产出梳理", "due": "2026-01-28", "status": "status_8"}}, {"Story": {"id": "1158335167004828309", "name": "技术基建-基础可过滤编辑器控件开发", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004802628", "name": "技术基建-XianDebugger-法术场Debugger", "due": null, "status": "status_9"}}, {"Story": {"id": "1158335167004802626", "name": "技术基建-XianDebugger", "due": null, "status": "status_5"}}, {"Story": {"id": "1158335167004800837", "name": "VAT贴图Foramt以及各种选项的意义", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004800834", "name": "VAT贴图尺寸和种类优化", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800832", "name": "VAT内存优化", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004800829", "name": "内存Profiling", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800828", "name": "内存优化", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800819", "name": "Async优化Lumen反射", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800816", "name": "优化Lumen反射,包括水的反射性能", "due": null, "status": "status_8"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:51:38", "task": "task3", "sync_id": "task3_20260312_115137_176b8282", "module": "tapd", "operation": "stories", "success": true, "request": {"workspace_id": "58335167", "owner": "mithril", "fields": "id,name,due,status"}, "response": {"status": 1, "data": [{"Story": {"id": "1158335167004865833", "name": "客户端审核 - 噬金虫相关功能", "due": "2026-03-13", "status": "status_7"}}, {"Story": {"id": "1158335167004840448", "name": "技能触发条件接入及联调。", "due": "2026-01-31", "status": "status_8"}}, {"Story": {"id": "1158335167004838325", "name": "AI Codereview", "due": "2026-05-30", "status": "status_5"}}, {"Story": {"id": "1158335167004838322", "name": "界面调整迭代", "due": "2026-02-28", "status": "status_8"}}, {"Story": {"id": "1158335167004838321", "name": "重构MainMenu", "due": "2026-02-28", "status": "status_8"}}, {"Story": {"id": "1158335167004838320", "name": "common ui调研,手机端测试", "due": "2026-03-20", "status": "status_7"}}, {"Story": {"id": "1158335167004836875", "name": "- 技能槽位系统重构-迭代", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004834469", "name": "Horde编译失败群通知", "due": "2026-05-30", "status": "status_9"}}, {"Story": {"id": "1158335167004834468", "name": "Horde 自动触发逻辑", "due": "2026-05-30", "status": "status_9"}}, {"Story": {"id": "1158335167004829003", "name": "补全运行时日志", "due": "2026-04-03", "status": "status_7"}}, {"Story": {"id": "1158335167004828993", "name": "接入xiandebug,可预览运行时子弹及相关数据", "due": "2026-04-03", "status": "status_7"}}, {"Story": {"id": "1158335167004828719", "name": "客户端审核 - 武器装备-UI逻辑", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004828716", "name": "客户端审核 - 法宝装备-UI逻辑", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004828709", "name": "客户端审核 - 武器装备界面逻辑", "due": "2026-03-13", "status": "status_12"}}, {"Story": {"id": "1158335167004828708", "name": "客户端审核 - 法宝装备界面逻辑", "due": "2026-03-13", "status": "status_12"}}, {"Story": {"id": "1158335167004828679", "name": "客户端审核 - 消耗品使用逻辑", "due": "2026-03-06", "status": "status_5"}}, {"Story": {"id": "1158335167004828673", "name": "客户端审核 - SkillSlotMgr新逻辑迭代", "due": "2026-01-28", "status": "status_8"}}, {"Story": {"id": "1158335167004828672", "name": "客户端审核 - 武器槽位映射逻辑重构", "due": "2026-01-30", "status": "status_8"}}, {"Story": {"id": "1158335167004827634", "name": "客户端审核 - 绑定Ability——左右键、派生技、武器战技和武器通用技能", "due": "2026-03-22", "status": "status_5"}}, {"Story": {"id": "1158335167004827625", "name": "客户端审核 - 可追踪角度、追踪速度等参数可靠性优化", "due": "2026-04-04", "status": "status_7"}}, {"Story": {"id": "1158335167004827584", "name": "客户端审核 - 根据血量裂纹和破碎效果", "due": "2026-04-11", "status": "status_7"}}, {"Story": {"id": "1158335167004827583", "name": "客户端审核 - 表现优化,接入动画资源", "due": "2026-04-10", "status": "status_7"}}, {"Story": {"id": "1158335167004806717", "name": "分支上增加显示玩家名称的功能", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800802", "name": "PSO收集", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004794635", "name": "客户端审核 - 格挡功能-子弹奉还", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004794632", "name": "客户端审核 - 弹道系统现有配置优化", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004794631", "name": "客户端审核 - 弹道系统优化- 激光类bullet", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004794629", "name": "客户端审核 - 弹道系统优化- AOE伤害&子弹爆炸", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004792154", "name": "玄铁飞天盾 - 格挡成功超出弧度生成多个盾后,若当前盾X秒内未再次受击则消散,直到仅剩下一个盾时,回到1倍大小", "due": "2026-04-10", "status": "status_7"}}, {"Story": {"id": "1158335167004792153", "name": "玄铁飞天盾 - 格挡成功后,X秒内未再次受击,则平滑往环绕半径轨道上移动", "due": "2026-04-10", "status": "status_7"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:51:39", "task": "task3", "sync_id": "task3_20260312_115137_176b8282", "module": "tapd", "operation": "bugs", "success": true, "request": {"workspace_id": "58335167", "current_owner": "BardLin", "fields": "id,title,deadline,status"}, "response": {"status": 1, "data": [{"Bug": {"id": "1158335167002283694", "title": "受击动画中,root质心需要跟随人物模型运动(如击飞、击浮空时root需要向上跟随),否则浮空连击时,敌人位置会频繁上下跳动。", "deadline": "2025-12-05", "status": "closed"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:51:39", "task": "task3", "sync_id": "task3_20260312_115137_176b8282", "module": "tapd", "operation": "bugs", "success": true, "request": {"workspace_id": "58335167", "current_owner": "星渊", "fields": "id,title,deadline,status"}, "response": {"status": 1, "data": [{"Bug": {"id": "1158335167002296797", "title": "优化性能,分辨率提升为1080P,静态帧率基本稳定60fps", "deadline": "2025-12-22", "status": "closed"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:51:39", "task": "task3", "sync_id": "task3_20260312_115137_176b8282", "module": "tapd", "operation": "bugs", "success": true, "request": {"workspace_id": "58335167", "current_owner": "mithril", "fields": "id,title,deadline,status"}, "response": {"status": 1, "data": [{"Bug": {"id": "1158335167002280921", "title": "【UI】【单机】血条UI歪了,不在屏幕正中间了@mithril(hanjingchao)", "deadline": "2025-12-01", "status": "closed"}}, {"Bug": {"id": "1158335167002280929", "title": "【联机】【弹道】左键第三段,第四段,飞剑子弹数量会丢失几根@mithril(hanjingchao)", "deadline": "2025-12-02", "status": "closed"}}, {"Bug": {"id": "1158335167002280930", "title": "【联机】【弹道】子弹受击特效丢失了@mithril(hanjingchao)", "deadline": "2025-12-01", "status": "closed"}}, {"Bug": {"id": "1158335167002280931", "title": "【联机】【UI】对方的体力条会显示得特别大@mithril(hanjingchao)", "deadline": "2025-12-02", "status": "closed"}}, {"Bug": {"id": "1158335167002283432", "title": "更新之后,放左键,没目标时弹道坏了,不会正确追踪地形", "deadline": "2025-12-09", "status": "closed"}}, {"Bug": {"id": "1158335167002287668", "title": "格挡成功后,延迟时间内盾也要保证和角色相对移动,(当前是会静止在原地,不跟随角色移动)", "deadline": "2025-12-12", "status": "closed"}}, {"Bug": {"id": "1158335167002287671", "title": "格挡成功后,延迟时间内再次格挡,则要刷新当前延迟时间(当前延迟时间内再次受击,延迟时间感觉并没有被刷新)", "deadline": "2025-12-16", "status": "closed"}}, {"Bug": {"id": "1158335167002287675", "title": "在新生成盾时,盾的内外表现不对,且旋转方向不对", "deadline": "2025-12-12", "status": "closed"}}, {"Bug": {"id": "1158335167002294091", "title": "【联机】【符箓】土牢符会把自己困住", "deadline": "2025-12-18", "status": "closed"}}, {"Bug": {"id": "1158335167002294096", "title": "【联机】【法宝】飞天盾会挡住自己的子弹", "deadline": "2025-12-18", "status": "closed"}}, {"Bug": {"id": "1158335167002295354", "title": "飞天盾相关bug - 子弹会穿盾,对角色造成伤害", "deadline": "2025-12-20", "status": "closed"}}, {"Bug": {"id": "1158335167002295358", "title": "限制生成初始总数量为1,避免多次使用生成多个盾(再次使用时刷新盾血量和持续时间)", "deadline": "2025-12-20", "status": "closed"}}, {"Bug": {"id": "1158335167002295360", "title": "飞天盾相关bug - 持续时间配置,避免盾一直不消失", "deadline": "2025-12-20", "status": "closed"}}, {"Bug": {"id": "1158335167002296688", "title": "【BUG】包里能不能默认 DisableAllScreenMessages", "deadline": "2025-12-22", "status": "closed"}}, {"Bug": {"id": "1158335167002297733", "title": "【高-BUG】左键普攻,第四段飞剑命中后会延迟一会才消失,希望和前三段一样快速消失", "deadline": "2025-12-25", "status": "closed"}}, {"Bug": {"id": "1158335167002299602", "title": "【高-BUG】土牢符的符纸,自己能锁定", "deadline": "2025-12-27", "status": "closed"}}, {"Bug": {"id": "1158335167002300378", "title": "【bug】土牢符陷阱现在不开神识探查也能看见", "deadline": "2025-12-30", "status": "in_progress"}}, {"Bug": {"id": "1158335167002300531", "title": "【致命-BUG】按G会Crash,复现较为频繁", "deadline": "2025-12-28", "status": "closed"}}, {"Bug": {"id": "1158335167002300717", "title": "【高-BUG】巨剑术诀子弹,命中海王兽场景海面底下的地面时没有正确触发overlap事件,停在表面并播特效", "deadline": "2025-12-31", "status": "closed"}}, {"Bug": {"id": "1158335167002300837", "title": "【高-bug】MoveToTargetEX触发的时候,能直接从土牢符里穿出来,需要正常阻挡自身和目标穿出土牢符", "deadline": "2025-12-31", "status": "closed"}}, {"Bug": {"id": "1158335167002304061", "title": "【需Merge分支】【高-BUG】【联机】现在破定期间Q环绕飞剑,只环绕一次就消失了。", "deadline": "2026-01-07", "status": "closed"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:51:39", "task": "task3", "sync_id": "task3_20260312_115137_176b8282", "module": "wework", "operation": "webhook/send", "success": true, "request": {"msgtype": "markdown", "markdown": {"content": "⏰ TAPD 过期单提醒(2026-03-12)\n\n\n<@BardLin>(12 条过期)\n1.【需求】主角战斗 - 动作资源 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004787973)\n2.【需求】空中待机 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004774664)\n3.【需求】雷属性受击 - 起始 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004774629)\n4.【需求】雷属性受击 - 循环 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004774628)\n5.【需求】飞遁动画 | 过期 41 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004828079)\n6.【需求】右键垫步突进 | 过期 34 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827909)\n7.【需求】青凝镜-回收Layout | 过期 13 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827996)\n8.【需求】青凝镜-检视表演Layout | 过期 12 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827991)\n9.【需求】青凝镜-召唤Layout | 过期 12 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827989)\n10.【需求】空中右键下劈 | 过期 12 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827910)\n11.【需求】噬金虫召唤动画Layout | 过期 3 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827929)\n12.【需求】3C-基础移动-Bug-Dodge卡帧 | 过期 2 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004866823)\n\n<@mi>(2 条过期)\n13.【缺陷】【bug】土牢符陷阱现在不开神识探查也能看见 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/bugtrace/bugs/view?bug_id=1158335167002300378)\n14.【需求】客户端审核 - 消耗品使用逻辑 | 过期 6 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004828679)\n\n<@xingyuan>(13 条过期)\n15.【需求】AS脚本Bind扩展 | 过期 37 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839302)\n16.【需求】尝试AS写Validator | 过期 37 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839301)\n17.【需求】Data Validator框架 | 过期 37 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839234)\n18.【需求】材质Mask模式不受motion blur影响 | 过期 35 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839323)\n19.【需求】Kawaii,Magic,AnimVelet调研 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839272)\n20.【需求】Chaos布料算法调研 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839270)\n21.【需求】编译Android版 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839267)\n22.【需求】对GPU解算进行改近 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839266)\n23.【需求】理解GPU算法 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839259)\n24.【需求】调试和理解NvCloth算法 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839246)\n25.【需求】NvCloth调研 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839241)\n26.【需求】布料解算基建 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839239)\n27.【需求】3C-基础移动-Bug-Dodge卡帧 | 过期 2 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004866823)\n共 27 条过期单,请今日内更新状态 🙏"}, "mentioned_list": ["BardLin", "mi", "xingyuan"]}, "response": {"errcode": 0, "errmsg": "ok"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "end_sync", "timestamp": "2026-03-12 11:51:39", "task": "task3", "sync_id": "task3_20260312_115137_176b8282", "success": true, "stats": {"overdue_count": 27}, "error_message": null, "extra": {}} +{"event_type": "start_sync", "timestamp": "2026-03-12 11:55:21", "task": "task3", "sync_id": "task3_20260312_115521_87933704", "trigger": "manual", "metadata": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:55:21", "task": "task3", "sync_id": "task3_20260312_115521_87933704", "module": "tapd", "operation": "stories", "success": true, "request": {"workspace_id": "58335167", "owner": "BardLin", "fields": "id,name,due,status"}, "response": {"status": 1, "data": [{"Story": {"id": "1158335167004866823", "name": "3C-基础移动-Bug-Dodge卡帧", "due": "2026-03-10", "status": "status_9"}}, {"Story": {"id": "1158335167004834011", "name": "【动画】2026年1月 - 凡人各组月度产出梳理", "due": "2026-01-28", "status": "status_8"}}, {"Story": {"id": "1158335167004828079", "name": "飞遁动画", "due": "2026-01-30", "status": "status_9"}}, {"Story": {"id": "1158335167004828030", "name": "大啼魂-初绑", "due": "2026-03-02", "status": "status_8"}}, {"Story": {"id": "1158335167004827998", "name": "血色披风预研", "due": "2026-02-14", "status": "status_8"}}, {"Story": {"id": "1158335167004827996", "name": "青凝镜-回收Layout", "due": "2026-02-27", "status": "status_9"}}, {"Story": {"id": "1158335167004827994", "name": "青凝镜-待机", "due": "2026-03-20", "status": "status_9"}}, {"Story": {"id": "1158335167004827991", "name": "青凝镜-检视表演Layout", "due": "2026-02-28", "status": "status_9"}}, {"Story": {"id": "1158335167004827989", "name": "青凝镜-召唤Layout", "due": "2026-02-28", "status": "status_9"}}, {"Story": {"id": "1158335167004827987", "name": "青凝镜-初绑", "due": "2026-01-30", "status": "status_8"}}, {"Story": {"id": "1158335167004827946", "name": "玄铁飞天盾-初绑", "due": "2026-01-23", "status": "status_8"}}, {"Story": {"id": "1158335167004827929", "name": "噬金虫召唤动画Layout", "due": "2026-03-09", "status": "status_9"}}, {"Story": {"id": "1158335167004827926", "name": "噬金虫召-初绑", "due": "2026-01-26", "status": "status_8"}}, {"Story": {"id": "1158335167004827921", "name": "飞剑-解控", "due": "2026-03-27", "status": "status_9"}}, {"Story": {"id": "1158335167004827920", "name": "飞剑-检视表演", "due": "2026-03-27", "status": "status_7"}}, {"Story": {"id": "1158335167004827919", "name": "飞剑-检视表演Layout", "due": "2026-03-13", "status": "status_7"}}, {"Story": {"id": "1158335167004827914", "name": "剑影分光·闪回", "due": "2026-03-27", "status": "status_9"}}, {"Story": {"id": "1158335167004827912", "name": "剑影分光·上挑", "due": "2026-03-27", "status": "status_9"}}, {"Story": {"id": "1158335167004827910", "name": "空中右键下劈", "due": "2026-02-28", "status": "status_5"}}, {"Story": {"id": "1158335167004827909", "name": "右键垫步突进", "due": "2026-02-06", "status": "status_5"}}, {"Story": {"id": "1158335167004827852", "name": "动画制作 - 【法宝】青竹蜂云剑", "due": "2026-03-28", "status": "status_7"}}, {"Story": {"id": "1158335167004816915", "name": "3C-飞遁 - 状态机重构", "due": "2026-01-09", "status": "status_8"}}, {"Story": {"id": "1158335167004815661", "name": "3C-飞遁 - W输入HighSpeed状态", "due": "2026-01-09", "status": "status_8"}}, {"Story": {"id": "1158335167004787978", "name": "通用受击 - 动作资源", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004787977", "name": "海王兽 - 动作资源", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004787973", "name": "主角战斗 - 动作资源", "due": "2025-12-30", "status": "status_7"}}, {"Story": {"id": "1158335167004774665", "name": "地面待机", "due": "2025-12-30", "status": "status_8"}}, {"Story": {"id": "1158335167004774664", "name": "空中待机", "due": "2025-12-30", "status": "status_7"}}, {"Story": {"id": "1158335167004774629", "name": "雷属性受击 - 起始", "due": "2025-12-30", "status": "status_7"}}, {"Story": {"id": "1158335167004774628", "name": "雷属性受击 - 循环", "due": "2025-12-30", "status": "status_7"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:55:22", "task": "task3", "sync_id": "task3_20260312_115521_87933704", "module": "tapd", "operation": "stories", "success": true, "request": {"workspace_id": "58335167", "owner": "星渊", "fields": "id,name,due,status"}, "response": {"status": 1, "data": [{"Story": {"id": "1158335167004866823", "name": "3C-基础移动-Bug-Dodge卡帧", "due": "2026-03-10", "status": "status_9"}}, {"Story": {"id": "1158335167004839323", "name": "材质Mask模式不受motion blur影响", "due": "2026-02-05", "status": "status_9"}}, {"Story": {"id": "1158335167004839302", "name": "AS脚本Bind扩展", "due": "2026-02-03", "status": "status_10"}}, {"Story": {"id": "1158335167004839301", "name": "尝试AS写Validator", "due": "2026-02-03", "status": "status_10"}}, {"Story": {"id": "1158335167004839299", "name": "简单Sample跑下流程", "due": "2026-02-03", "status": "status_8"}}, {"Story": {"id": "1158335167004839298", "name": "文档阅读", "due": "2026-02-03", "status": "status_8"}}, {"Story": {"id": "1158335167004839272", "name": "Kawaii,Magic,AnimVelet调研", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839270", "name": "Chaos布料算法调研", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839267", "name": "编译Android版", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839266", "name": "对GPU解算进行改近", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839263", "name": "育碧GPU布料结算的GDC Paper", "due": "2026-02-13", "status": "status_8"}}, {"Story": {"id": "1158335167004839259", "name": "理解GPU算法", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839251", "name": "增加Profiler", "due": "2026-02-13", "status": "status_8"}}, {"Story": {"id": "1158335167004839246", "name": "调试和理解NvCloth算法", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839242", "name": "编译NvCloth", "due": "2026-02-13", "status": "status_8"}}, {"Story": {"id": "1158335167004839241", "name": "NvCloth调研", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839239", "name": "布料解算基建", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839234", "name": "Data Validator框架", "due": "2026-02-03", "status": "status_5"}}, {"Story": {"id": "1158335167004834466", "name": "Horde相关-持续开发项", "due": "2026-05-30", "status": "status_5"}}, {"Story": {"id": "1158335167004834018", "name": "【引擎/TA】2026年1月 - 凡人各组月度产出梳理", "due": "2026-01-28", "status": "status_8"}}, {"Story": {"id": "1158335167004828309", "name": "技术基建-基础可过滤编辑器控件开发", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004802628", "name": "技术基建-XianDebugger-法术场Debugger", "due": null, "status": "status_9"}}, {"Story": {"id": "1158335167004802626", "name": "技术基建-XianDebugger", "due": null, "status": "status_5"}}, {"Story": {"id": "1158335167004800837", "name": "VAT贴图Foramt以及各种选项的意义", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004800834", "name": "VAT贴图尺寸和种类优化", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800832", "name": "VAT内存优化", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004800829", "name": "内存Profiling", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800828", "name": "内存优化", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800819", "name": "Async优化Lumen反射", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800816", "name": "优化Lumen反射,包括水的反射性能", "due": null, "status": "status_8"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:55:22", "task": "task3", "sync_id": "task3_20260312_115521_87933704", "module": "tapd", "operation": "stories", "success": true, "request": {"workspace_id": "58335167", "owner": "mithril", "fields": "id,name,due,status"}, "response": {"status": 1, "data": [{"Story": {"id": "1158335167004865833", "name": "客户端审核 - 噬金虫相关功能", "due": "2026-03-13", "status": "status_7"}}, {"Story": {"id": "1158335167004840448", "name": "技能触发条件接入及联调。", "due": "2026-01-31", "status": "status_8"}}, {"Story": {"id": "1158335167004838325", "name": "AI Codereview", "due": "2026-05-30", "status": "status_5"}}, {"Story": {"id": "1158335167004838322", "name": "界面调整迭代", "due": "2026-02-28", "status": "status_8"}}, {"Story": {"id": "1158335167004838321", "name": "重构MainMenu", "due": "2026-02-28", "status": "status_8"}}, {"Story": {"id": "1158335167004838320", "name": "common ui调研,手机端测试", "due": "2026-03-20", "status": "status_7"}}, {"Story": {"id": "1158335167004836875", "name": "- 技能槽位系统重构-迭代", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004834469", "name": "Horde编译失败群通知", "due": "2026-05-30", "status": "status_9"}}, {"Story": {"id": "1158335167004834468", "name": "Horde 自动触发逻辑", "due": "2026-05-30", "status": "status_9"}}, {"Story": {"id": "1158335167004829003", "name": "补全运行时日志", "due": "2026-04-03", "status": "status_7"}}, {"Story": {"id": "1158335167004828993", "name": "接入xiandebug,可预览运行时子弹及相关数据", "due": "2026-04-03", "status": "status_7"}}, {"Story": {"id": "1158335167004828719", "name": "客户端审核 - 武器装备-UI逻辑", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004828716", "name": "客户端审核 - 法宝装备-UI逻辑", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004828709", "name": "客户端审核 - 武器装备界面逻辑", "due": "2026-03-13", "status": "status_12"}}, {"Story": {"id": "1158335167004828708", "name": "客户端审核 - 法宝装备界面逻辑", "due": "2026-03-13", "status": "status_12"}}, {"Story": {"id": "1158335167004828679", "name": "客户端审核 - 消耗品使用逻辑", "due": "2026-03-06", "status": "status_5"}}, {"Story": {"id": "1158335167004828673", "name": "客户端审核 - SkillSlotMgr新逻辑迭代", "due": "2026-01-28", "status": "status_8"}}, {"Story": {"id": "1158335167004828672", "name": "客户端审核 - 武器槽位映射逻辑重构", "due": "2026-01-30", "status": "status_8"}}, {"Story": {"id": "1158335167004827634", "name": "客户端审核 - 绑定Ability——左右键、派生技、武器战技和武器通用技能", "due": "2026-03-22", "status": "status_5"}}, {"Story": {"id": "1158335167004827625", "name": "客户端审核 - 可追踪角度、追踪速度等参数可靠性优化", "due": "2026-04-04", "status": "status_7"}}, {"Story": {"id": "1158335167004827584", "name": "客户端审核 - 根据血量裂纹和破碎效果", "due": "2026-04-11", "status": "status_7"}}, {"Story": {"id": "1158335167004827583", "name": "客户端审核 - 表现优化,接入动画资源", "due": "2026-04-10", "status": "status_7"}}, {"Story": {"id": "1158335167004806717", "name": "分支上增加显示玩家名称的功能", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800802", "name": "PSO收集", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004794635", "name": "客户端审核 - 格挡功能-子弹奉还", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004794632", "name": "客户端审核 - 弹道系统现有配置优化", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004794631", "name": "客户端审核 - 弹道系统优化- 激光类bullet", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004794629", "name": "客户端审核 - 弹道系统优化- AOE伤害&子弹爆炸", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004792154", "name": "玄铁飞天盾 - 格挡成功超出弧度生成多个盾后,若当前盾X秒内未再次受击则消散,直到仅剩下一个盾时,回到1倍大小", "due": "2026-04-10", "status": "status_7"}}, {"Story": {"id": "1158335167004792153", "name": "玄铁飞天盾 - 格挡成功后,X秒内未再次受击,则平滑往环绕半径轨道上移动", "due": "2026-04-10", "status": "status_7"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:55:22", "task": "task3", "sync_id": "task3_20260312_115521_87933704", "module": "tapd", "operation": "bugs", "success": true, "request": {"workspace_id": "58335167", "current_owner": "BardLin", "fields": "id,title,deadline,status"}, "response": {"status": 1, "data": [{"Bug": {"id": "1158335167002283694", "title": "受击动画中,root质心需要跟随人物模型运动(如击飞、击浮空时root需要向上跟随),否则浮空连击时,敌人位置会频繁上下跳动。", "deadline": "2025-12-05", "status": "closed"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:55:22", "task": "task3", "sync_id": "task3_20260312_115521_87933704", "module": "tapd", "operation": "bugs", "success": true, "request": {"workspace_id": "58335167", "current_owner": "星渊", "fields": "id,title,deadline,status"}, "response": {"status": 1, "data": [{"Bug": {"id": "1158335167002296797", "title": "优化性能,分辨率提升为1080P,静态帧率基本稳定60fps", "deadline": "2025-12-22", "status": "closed"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:55:22", "task": "task3", "sync_id": "task3_20260312_115521_87933704", "module": "tapd", "operation": "bugs", "success": true, "request": {"workspace_id": "58335167", "current_owner": "mithril", "fields": "id,title,deadline,status"}, "response": {"status": 1, "data": [{"Bug": {"id": "1158335167002280921", "title": "【UI】【单机】血条UI歪了,不在屏幕正中间了@mithril(hanjingchao)", "deadline": "2025-12-01", "status": "closed"}}, {"Bug": {"id": "1158335167002280929", "title": "【联机】【弹道】左键第三段,第四段,飞剑子弹数量会丢失几根@mithril(hanjingchao)", "deadline": "2025-12-02", "status": "closed"}}, {"Bug": {"id": "1158335167002280930", "title": "【联机】【弹道】子弹受击特效丢失了@mithril(hanjingchao)", "deadline": "2025-12-01", "status": "closed"}}, {"Bug": {"id": "1158335167002280931", "title": "【联机】【UI】对方的体力条会显示得特别大@mithril(hanjingchao)", "deadline": "2025-12-02", "status": "closed"}}, {"Bug": {"id": "1158335167002283432", "title": "更新之后,放左键,没目标时弹道坏了,不会正确追踪地形", "deadline": "2025-12-09", "status": "closed"}}, {"Bug": {"id": "1158335167002287668", "title": "格挡成功后,延迟时间内盾也要保证和角色相对移动,(当前是会静止在原地,不跟随角色移动)", "deadline": "2025-12-12", "status": "closed"}}, {"Bug": {"id": "1158335167002287671", "title": "格挡成功后,延迟时间内再次格挡,则要刷新当前延迟时间(当前延迟时间内再次受击,延迟时间感觉并没有被刷新)", "deadline": "2025-12-16", "status": "closed"}}, {"Bug": {"id": "1158335167002287675", "title": "在新生成盾时,盾的内外表现不对,且旋转方向不对", "deadline": "2025-12-12", "status": "closed"}}, {"Bug": {"id": "1158335167002294091", "title": "【联机】【符箓】土牢符会把自己困住", "deadline": "2025-12-18", "status": "closed"}}, {"Bug": {"id": "1158335167002294096", "title": "【联机】【法宝】飞天盾会挡住自己的子弹", "deadline": "2025-12-18", "status": "closed"}}, {"Bug": {"id": "1158335167002295354", "title": "飞天盾相关bug - 子弹会穿盾,对角色造成伤害", "deadline": "2025-12-20", "status": "closed"}}, {"Bug": {"id": "1158335167002295358", "title": "限制生成初始总数量为1,避免多次使用生成多个盾(再次使用时刷新盾血量和持续时间)", "deadline": "2025-12-20", "status": "closed"}}, {"Bug": {"id": "1158335167002295360", "title": "飞天盾相关bug - 持续时间配置,避免盾一直不消失", "deadline": "2025-12-20", "status": "closed"}}, {"Bug": {"id": "1158335167002296688", "title": "【BUG】包里能不能默认 DisableAllScreenMessages", "deadline": "2025-12-22", "status": "closed"}}, {"Bug": {"id": "1158335167002297733", "title": "【高-BUG】左键普攻,第四段飞剑命中后会延迟一会才消失,希望和前三段一样快速消失", "deadline": "2025-12-25", "status": "closed"}}, {"Bug": {"id": "1158335167002299602", "title": "【高-BUG】土牢符的符纸,自己能锁定", "deadline": "2025-12-27", "status": "closed"}}, {"Bug": {"id": "1158335167002300378", "title": "【bug】土牢符陷阱现在不开神识探查也能看见", "deadline": "2025-12-30", "status": "in_progress"}}, {"Bug": {"id": "1158335167002300531", "title": "【致命-BUG】按G会Crash,复现较为频繁", "deadline": "2025-12-28", "status": "closed"}}, {"Bug": {"id": "1158335167002300717", "title": "【高-BUG】巨剑术诀子弹,命中海王兽场景海面底下的地面时没有正确触发overlap事件,停在表面并播特效", "deadline": "2025-12-31", "status": "closed"}}, {"Bug": {"id": "1158335167002300837", "title": "【高-bug】MoveToTargetEX触发的时候,能直接从土牢符里穿出来,需要正常阻挡自身和目标穿出土牢符", "deadline": "2025-12-31", "status": "closed"}}, {"Bug": {"id": "1158335167002304061", "title": "【需Merge分支】【高-BUG】【联机】现在破定期间Q环绕飞剑,只环绕一次就消失了。", "deadline": "2026-01-07", "status": "closed"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:55:23", "task": "task3", "sync_id": "task3_20260312_115521_87933704", "module": "wework", "operation": "webhook/send", "success": true, "request": {"msgtype": "markdown", "markdown": {"content": "⏰ TAPD 过期单提醒(2026-03-12)\n\n<@BardLin>(12 条过期)\n1.【需求】主角战斗 - 动作资源 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004787973)\n2.【需求】空中待机 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004774664)\n3.【需求】雷属性受击 - 起始 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004774629)\n4.【需求】雷属性受击 - 循环 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004774628)\n5.【需求】飞遁动画 | 过期 41 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004828079)\n6.【需求】右键垫步突进 | 过期 34 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827909)\n7.【需求】青凝镜-回收Layout | 过期 13 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827996)\n8.【需求】青凝镜-检视表演Layout | 过期 12 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827991)\n9.【需求】青凝镜-召唤Layout | 过期 12 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827989)\n10.【需求】空中右键下劈 | 过期 12 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827910)\n11.【需求】噬金虫召唤动画Layout | 过期 3 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827929)\n12.【需求】3C-基础移动-Bug-Dodge卡帧 | 过期 2 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004866823)\n\n<@mi>(2 条过期)\n13.【缺陷】【bug】土牢符陷阱现在不开神识探查也能看见 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/bugtrace/bugs/view?bug_id=1158335167002300378)\n14.【需求】客户端审核 - 消耗品使用逻辑 | 过期 6 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004828679)\n\n<@xingyuan>(13 条过期)\n15.【需求】AS脚本Bind扩展 | 过期 37 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839302)\n16.【需求】尝试AS写Validator | 过期 37 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839301)\n17.【需求】Data Validator框架 | 过期 37 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839234)\n18.【需求】材质Mask模式不受motion blur影响 | 过期 35 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839323)\n19.【需求】Kawaii,Magic,AnimVelet调研 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839272)\n20.【需求】Chaos布料算法调研 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839270)\n21.【需求】编译Android版 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839267)\n22.【需求】对GPU解算进行改近 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839266)\n23.【需求】理解GPU算法 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839259)\n24.【需求】调试和理解NvCloth算法 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839246)\n25.【需求】NvCloth调研 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839241)\n26.【需求】布料解算基建 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839239)\n27.【需求】3C-基础移动-Bug-Dodge卡帧 | 过期 2 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004866823)\n\n共 27 条过期单,请今日内更新状态 🙏"}, "mentioned_list": ["BardLin", "mi", "xingyuan"]}, "response": {"errcode": 0, "errmsg": "ok"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "end_sync", "timestamp": "2026-03-12 11:55:23", "task": "task3", "sync_id": "task3_20260312_115521_87933704", "success": true, "stats": {"overdue_count": 27}, "error_message": null, "extra": {}} +{"event_type": "start_sync", "timestamp": "2026-03-12 11:56:48", "task": "task3", "sync_id": "task3_20260312_115648_2838ddca", "trigger": "manual", "metadata": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:56:48", "task": "task3", "sync_id": "task3_20260312_115648_2838ddca", "module": "tapd", "operation": "stories", "success": true, "request": {"workspace_id": "58335167", "owner": "BardLin", "fields": "id,name,due,status"}, "response": {"status": 1, "data": [{"Story": {"id": "1158335167004866823", "name": "3C-基础移动-Bug-Dodge卡帧", "due": "2026-03-10", "status": "status_9"}}, {"Story": {"id": "1158335167004834011", "name": "【动画】2026年1月 - 凡人各组月度产出梳理", "due": "2026-01-28", "status": "status_8"}}, {"Story": {"id": "1158335167004828079", "name": "飞遁动画", "due": "2026-01-30", "status": "status_9"}}, {"Story": {"id": "1158335167004828030", "name": "大啼魂-初绑", "due": "2026-03-02", "status": "status_8"}}, {"Story": {"id": "1158335167004827998", "name": "血色披风预研", "due": "2026-02-14", "status": "status_8"}}, {"Story": {"id": "1158335167004827996", "name": "青凝镜-回收Layout", "due": "2026-02-27", "status": "status_9"}}, {"Story": {"id": "1158335167004827994", "name": "青凝镜-待机", "due": "2026-03-20", "status": "status_9"}}, {"Story": {"id": "1158335167004827991", "name": "青凝镜-检视表演Layout", "due": "2026-02-28", "status": "status_9"}}, {"Story": {"id": "1158335167004827989", "name": "青凝镜-召唤Layout", "due": "2026-02-28", "status": "status_9"}}, {"Story": {"id": "1158335167004827987", "name": "青凝镜-初绑", "due": "2026-01-30", "status": "status_8"}}, {"Story": {"id": "1158335167004827946", "name": "玄铁飞天盾-初绑", "due": "2026-01-23", "status": "status_8"}}, {"Story": {"id": "1158335167004827929", "name": "噬金虫召唤动画Layout", "due": "2026-03-09", "status": "status_9"}}, {"Story": {"id": "1158335167004827926", "name": "噬金虫召-初绑", "due": "2026-01-26", "status": "status_8"}}, {"Story": {"id": "1158335167004827921", "name": "飞剑-解控", "due": "2026-03-27", "status": "status_9"}}, {"Story": {"id": "1158335167004827920", "name": "飞剑-检视表演", "due": "2026-03-27", "status": "status_7"}}, {"Story": {"id": "1158335167004827919", "name": "飞剑-检视表演Layout", "due": "2026-03-13", "status": "status_7"}}, {"Story": {"id": "1158335167004827914", "name": "剑影分光·闪回", "due": "2026-03-27", "status": "status_9"}}, {"Story": {"id": "1158335167004827912", "name": "剑影分光·上挑", "due": "2026-03-27", "status": "status_9"}}, {"Story": {"id": "1158335167004827910", "name": "空中右键下劈", "due": "2026-02-28", "status": "status_5"}}, {"Story": {"id": "1158335167004827909", "name": "右键垫步突进", "due": "2026-02-06", "status": "status_5"}}, {"Story": {"id": "1158335167004827852", "name": "动画制作 - 【法宝】青竹蜂云剑", "due": "2026-03-28", "status": "status_7"}}, {"Story": {"id": "1158335167004816915", "name": "3C-飞遁 - 状态机重构", "due": "2026-01-09", "status": "status_8"}}, {"Story": {"id": "1158335167004815661", "name": "3C-飞遁 - W输入HighSpeed状态", "due": "2026-01-09", "status": "status_8"}}, {"Story": {"id": "1158335167004787978", "name": "通用受击 - 动作资源", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004787977", "name": "海王兽 - 动作资源", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004787973", "name": "主角战斗 - 动作资源", "due": "2025-12-30", "status": "status_7"}}, {"Story": {"id": "1158335167004774665", "name": "地面待机", "due": "2025-12-30", "status": "status_8"}}, {"Story": {"id": "1158335167004774664", "name": "空中待机", "due": "2025-12-30", "status": "status_7"}}, {"Story": {"id": "1158335167004774629", "name": "雷属性受击 - 起始", "due": "2025-12-30", "status": "status_7"}}, {"Story": {"id": "1158335167004774628", "name": "雷属性受击 - 循环", "due": "2025-12-30", "status": "status_7"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:56:48", "task": "task3", "sync_id": "task3_20260312_115648_2838ddca", "module": "tapd", "operation": "stories", "success": true, "request": {"workspace_id": "58335167", "owner": "星渊", "fields": "id,name,due,status"}, "response": {"status": 1, "data": [{"Story": {"id": "1158335167004866823", "name": "3C-基础移动-Bug-Dodge卡帧", "due": "2026-03-10", "status": "status_9"}}, {"Story": {"id": "1158335167004839323", "name": "材质Mask模式不受motion blur影响", "due": "2026-02-05", "status": "status_9"}}, {"Story": {"id": "1158335167004839302", "name": "AS脚本Bind扩展", "due": "2026-02-03", "status": "status_10"}}, {"Story": {"id": "1158335167004839301", "name": "尝试AS写Validator", "due": "2026-02-03", "status": "status_10"}}, {"Story": {"id": "1158335167004839299", "name": "简单Sample跑下流程", "due": "2026-02-03", "status": "status_8"}}, {"Story": {"id": "1158335167004839298", "name": "文档阅读", "due": "2026-02-03", "status": "status_8"}}, {"Story": {"id": "1158335167004839272", "name": "Kawaii,Magic,AnimVelet调研", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839270", "name": "Chaos布料算法调研", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839267", "name": "编译Android版", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839266", "name": "对GPU解算进行改近", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839263", "name": "育碧GPU布料结算的GDC Paper", "due": "2026-02-13", "status": "status_8"}}, {"Story": {"id": "1158335167004839259", "name": "理解GPU算法", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839251", "name": "增加Profiler", "due": "2026-02-13", "status": "status_8"}}, {"Story": {"id": "1158335167004839246", "name": "调试和理解NvCloth算法", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839242", "name": "编译NvCloth", "due": "2026-02-13", "status": "status_8"}}, {"Story": {"id": "1158335167004839241", "name": "NvCloth调研", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839239", "name": "布料解算基建", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839234", "name": "Data Validator框架", "due": "2026-02-03", "status": "status_5"}}, {"Story": {"id": "1158335167004834466", "name": "Horde相关-持续开发项", "due": "2026-05-30", "status": "status_5"}}, {"Story": {"id": "1158335167004834018", "name": "【引擎/TA】2026年1月 - 凡人各组月度产出梳理", "due": "2026-01-28", "status": "status_8"}}, {"Story": {"id": "1158335167004828309", "name": "技术基建-基础可过滤编辑器控件开发", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004802628", "name": "技术基建-XianDebugger-法术场Debugger", "due": null, "status": "status_9"}}, {"Story": {"id": "1158335167004802626", "name": "技术基建-XianDebugger", "due": null, "status": "status_5"}}, {"Story": {"id": "1158335167004800837", "name": "VAT贴图Foramt以及各种选项的意义", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004800834", "name": "VAT贴图尺寸和种类优化", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800832", "name": "VAT内存优化", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004800829", "name": "内存Profiling", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800828", "name": "内存优化", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800819", "name": "Async优化Lumen反射", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800816", "name": "优化Lumen反射,包括水的反射性能", "due": null, "status": "status_8"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:56:48", "task": "task3", "sync_id": "task3_20260312_115648_2838ddca", "module": "tapd", "operation": "stories", "success": true, "request": {"workspace_id": "58335167", "owner": "mithril", "fields": "id,name,due,status"}, "response": {"status": 1, "data": [{"Story": {"id": "1158335167004865833", "name": "客户端审核 - 噬金虫相关功能", "due": "2026-03-13", "status": "status_7"}}, {"Story": {"id": "1158335167004840448", "name": "技能触发条件接入及联调。", "due": "2026-01-31", "status": "status_8"}}, {"Story": {"id": "1158335167004838325", "name": "AI Codereview", "due": "2026-05-30", "status": "status_5"}}, {"Story": {"id": "1158335167004838322", "name": "界面调整迭代", "due": "2026-02-28", "status": "status_8"}}, {"Story": {"id": "1158335167004838321", "name": "重构MainMenu", "due": "2026-02-28", "status": "status_8"}}, {"Story": {"id": "1158335167004838320", "name": "common ui调研,手机端测试", "due": "2026-03-20", "status": "status_7"}}, {"Story": {"id": "1158335167004836875", "name": "- 技能槽位系统重构-迭代", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004834469", "name": "Horde编译失败群通知", "due": "2026-05-30", "status": "status_9"}}, {"Story": {"id": "1158335167004834468", "name": "Horde 自动触发逻辑", "due": "2026-05-30", "status": "status_9"}}, {"Story": {"id": "1158335167004829003", "name": "补全运行时日志", "due": "2026-04-03", "status": "status_7"}}, {"Story": {"id": "1158335167004828993", "name": "接入xiandebug,可预览运行时子弹及相关数据", "due": "2026-04-03", "status": "status_7"}}, {"Story": {"id": "1158335167004828719", "name": "客户端审核 - 武器装备-UI逻辑", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004828716", "name": "客户端审核 - 法宝装备-UI逻辑", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004828709", "name": "客户端审核 - 武器装备界面逻辑", "due": "2026-03-13", "status": "status_12"}}, {"Story": {"id": "1158335167004828708", "name": "客户端审核 - 法宝装备界面逻辑", "due": "2026-03-13", "status": "status_12"}}, {"Story": {"id": "1158335167004828679", "name": "客户端审核 - 消耗品使用逻辑", "due": "2026-03-06", "status": "status_5"}}, {"Story": {"id": "1158335167004828673", "name": "客户端审核 - SkillSlotMgr新逻辑迭代", "due": "2026-01-28", "status": "status_8"}}, {"Story": {"id": "1158335167004828672", "name": "客户端审核 - 武器槽位映射逻辑重构", "due": "2026-01-30", "status": "status_8"}}, {"Story": {"id": "1158335167004827634", "name": "客户端审核 - 绑定Ability——左右键、派生技、武器战技和武器通用技能", "due": "2026-03-22", "status": "status_5"}}, {"Story": {"id": "1158335167004827625", "name": "客户端审核 - 可追踪角度、追踪速度等参数可靠性优化", "due": "2026-04-04", "status": "status_7"}}, {"Story": {"id": "1158335167004827584", "name": "客户端审核 - 根据血量裂纹和破碎效果", "due": "2026-04-11", "status": "status_7"}}, {"Story": {"id": "1158335167004827583", "name": "客户端审核 - 表现优化,接入动画资源", "due": "2026-04-10", "status": "status_7"}}, {"Story": {"id": "1158335167004806717", "name": "分支上增加显示玩家名称的功能", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800802", "name": "PSO收集", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004794635", "name": "客户端审核 - 格挡功能-子弹奉还", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004794632", "name": "客户端审核 - 弹道系统现有配置优化", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004794631", "name": "客户端审核 - 弹道系统优化- 激光类bullet", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004794629", "name": "客户端审核 - 弹道系统优化- AOE伤害&子弹爆炸", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004792154", "name": "玄铁飞天盾 - 格挡成功超出弧度生成多个盾后,若当前盾X秒内未再次受击则消散,直到仅剩下一个盾时,回到1倍大小", "due": "2026-04-10", "status": "status_7"}}, {"Story": {"id": "1158335167004792153", "name": "玄铁飞天盾 - 格挡成功后,X秒内未再次受击,则平滑往环绕半径轨道上移动", "due": "2026-04-10", "status": "status_7"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:56:49", "task": "task3", "sync_id": "task3_20260312_115648_2838ddca", "module": "tapd", "operation": "bugs", "success": true, "request": {"workspace_id": "58335167", "current_owner": "BardLin", "fields": "id,title,deadline,status"}, "response": {"status": 1, "data": [{"Bug": {"id": "1158335167002283694", "title": "受击动画中,root质心需要跟随人物模型运动(如击飞、击浮空时root需要向上跟随),否则浮空连击时,敌人位置会频繁上下跳动。", "deadline": "2025-12-05", "status": "closed"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:56:49", "task": "task3", "sync_id": "task3_20260312_115648_2838ddca", "module": "tapd", "operation": "bugs", "success": true, "request": {"workspace_id": "58335167", "current_owner": "星渊", "fields": "id,title,deadline,status"}, "response": {"status": 1, "data": [{"Bug": {"id": "1158335167002296797", "title": "优化性能,分辨率提升为1080P,静态帧率基本稳定60fps", "deadline": "2025-12-22", "status": "closed"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:56:49", "task": "task3", "sync_id": "task3_20260312_115648_2838ddca", "module": "tapd", "operation": "bugs", "success": true, "request": {"workspace_id": "58335167", "current_owner": "mithril", "fields": "id,title,deadline,status"}, "response": {"status": 1, "data": [{"Bug": {"id": "1158335167002280921", "title": "【UI】【单机】血条UI歪了,不在屏幕正中间了@mithril(hanjingchao)", "deadline": "2025-12-01", "status": "closed"}}, {"Bug": {"id": "1158335167002280929", "title": "【联机】【弹道】左键第三段,第四段,飞剑子弹数量会丢失几根@mithril(hanjingchao)", "deadline": "2025-12-02", "status": "closed"}}, {"Bug": {"id": "1158335167002280930", "title": "【联机】【弹道】子弹受击特效丢失了@mithril(hanjingchao)", "deadline": "2025-12-01", "status": "closed"}}, {"Bug": {"id": "1158335167002280931", "title": "【联机】【UI】对方的体力条会显示得特别大@mithril(hanjingchao)", "deadline": "2025-12-02", "status": "closed"}}, {"Bug": {"id": "1158335167002283432", "title": "更新之后,放左键,没目标时弹道坏了,不会正确追踪地形", "deadline": "2025-12-09", "status": "closed"}}, {"Bug": {"id": "1158335167002287668", "title": "格挡成功后,延迟时间内盾也要保证和角色相对移动,(当前是会静止在原地,不跟随角色移动)", "deadline": "2025-12-12", "status": "closed"}}, {"Bug": {"id": "1158335167002287671", "title": "格挡成功后,延迟时间内再次格挡,则要刷新当前延迟时间(当前延迟时间内再次受击,延迟时间感觉并没有被刷新)", "deadline": "2025-12-16", "status": "closed"}}, {"Bug": {"id": "1158335167002287675", "title": "在新生成盾时,盾的内外表现不对,且旋转方向不对", "deadline": "2025-12-12", "status": "closed"}}, {"Bug": {"id": "1158335167002294091", "title": "【联机】【符箓】土牢符会把自己困住", "deadline": "2025-12-18", "status": "closed"}}, {"Bug": {"id": "1158335167002294096", "title": "【联机】【法宝】飞天盾会挡住自己的子弹", "deadline": "2025-12-18", "status": "closed"}}, {"Bug": {"id": "1158335167002295354", "title": "飞天盾相关bug - 子弹会穿盾,对角色造成伤害", "deadline": "2025-12-20", "status": "closed"}}, {"Bug": {"id": "1158335167002295358", "title": "限制生成初始总数量为1,避免多次使用生成多个盾(再次使用时刷新盾血量和持续时间)", "deadline": "2025-12-20", "status": "closed"}}, {"Bug": {"id": "1158335167002295360", "title": "飞天盾相关bug - 持续时间配置,避免盾一直不消失", "deadline": "2025-12-20", "status": "closed"}}, {"Bug": {"id": "1158335167002296688", "title": "【BUG】包里能不能默认 DisableAllScreenMessages", "deadline": "2025-12-22", "status": "closed"}}, {"Bug": {"id": "1158335167002297733", "title": "【高-BUG】左键普攻,第四段飞剑命中后会延迟一会才消失,希望和前三段一样快速消失", "deadline": "2025-12-25", "status": "closed"}}, {"Bug": {"id": "1158335167002299602", "title": "【高-BUG】土牢符的符纸,自己能锁定", "deadline": "2025-12-27", "status": "closed"}}, {"Bug": {"id": "1158335167002300378", "title": "【bug】土牢符陷阱现在不开神识探查也能看见", "deadline": "2025-12-30", "status": "in_progress"}}, {"Bug": {"id": "1158335167002300531", "title": "【致命-BUG】按G会Crash,复现较为频繁", "deadline": "2025-12-28", "status": "closed"}}, {"Bug": {"id": "1158335167002300717", "title": "【高-BUG】巨剑术诀子弹,命中海王兽场景海面底下的地面时没有正确触发overlap事件,停在表面并播特效", "deadline": "2025-12-31", "status": "closed"}}, {"Bug": {"id": "1158335167002300837", "title": "【高-bug】MoveToTargetEX触发的时候,能直接从土牢符里穿出来,需要正常阻挡自身和目标穿出土牢符", "deadline": "2025-12-31", "status": "closed"}}, {"Bug": {"id": "1158335167002304061", "title": "【需Merge分支】【高-BUG】【联机】现在破定期间Q环绕飞剑,只环绕一次就消失了。", "deadline": "2026-01-07", "status": "closed"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:56:50", "task": "task3", "sync_id": "task3_20260312_115648_2838ddca", "module": "wework", "operation": "webhook/send", "success": true, "request": {"msgtype": "markdown", "markdown": {"content": "⏰ TAPD 过期单提醒(2026-03-12)\n\n<@BardLin>(12 条过期)\n1.【需求】主角战斗 - 动作资源 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004787973)\n2.【需求】空中待机 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004774664)\n3.【需求】雷属性受击 - 起始 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004774629)\n4.【需求】雷属性受击 - 循环 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004774628)\n5.【需求】飞遁动画 | 过期 41 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004828079)\n6.【需求】右键垫步突进 | 过期 34 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827909)\n7.【需求】青凝镜-回收Layout | 过期 13 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827996)\n8.【需求】青凝镜-检视表演Layout | 过期 12 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827991)\n9.【需求】青凝镜-召唤Layout | 过期 12 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827989)\n10.【需求】空中右键下劈 | 过期 12 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827910)\n11.【需求】噬金虫召唤动画Layout | 过期 3 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827929)\n12.【需求】3C-基础移动-Bug-Dodge卡帧 | 过期 2 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004866823)\n=======\n<@mi>(2 条过期)\n13.【缺陷】【bug】土牢符陷阱现在不开神识探查也能看见 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/bugtrace/bugs/view?bug_id=1158335167002300378)\n14.【需求】客户端审核 - 消耗品使用逻辑 | 过期 6 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004828679)\n=======\n<@xingyuan>(13 条过期)\n15.【需求】AS脚本Bind扩展 | 过期 37 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839302)\n16.【需求】尝试AS写Validator | 过期 37 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839301)\n17.【需求】Data Validator框架 | 过期 37 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839234)\n18.【需求】材质Mask模式不受motion blur影响 | 过期 35 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839323)\n19.【需求】Kawaii,Magic,AnimVelet调研 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839272)\n20.【需求】Chaos布料算法调研 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839270)\n21.【需求】编译Android版 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839267)\n22.【需求】对GPU解算进行改近 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839266)\n23.【需求】理解GPU算法 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839259)\n24.【需求】调试和理解NvCloth算法 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839246)\n25.【需求】NvCloth调研 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839241)\n26.【需求】布料解算基建 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839239)\n27.【需求】3C-基础移动-Bug-Dodge卡帧 | 过期 2 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004866823)\n=======\n共 27 条过期单,请今日内更新状态 🙏"}, "mentioned_list": ["BardLin", "mi", "xingyuan"]}, "response": {"errcode": 0, "errmsg": "ok"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "end_sync", "timestamp": "2026-03-12 11:56:50", "task": "task3", "sync_id": "task3_20260312_115648_2838ddca", "success": true, "stats": {"overdue_count": 27}, "error_message": null, "extra": {}} +{"event_type": "start_sync", "timestamp": "2026-03-12 11:57:28", "task": "task3", "sync_id": "task3_20260312_115728_e7f36b8f", "trigger": "manual", "metadata": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:57:29", "task": "task3", "sync_id": "task3_20260312_115728_e7f36b8f", "module": "tapd", "operation": "stories", "success": true, "request": {"workspace_id": "58335167", "owner": "BardLin", "fields": "id,name,due,status"}, "response": {"status": 1, "data": [{"Story": {"id": "1158335167004866823", "name": "3C-基础移动-Bug-Dodge卡帧", "due": "2026-03-10", "status": "status_9"}}, {"Story": {"id": "1158335167004834011", "name": "【动画】2026年1月 - 凡人各组月度产出梳理", "due": "2026-01-28", "status": "status_8"}}, {"Story": {"id": "1158335167004828079", "name": "飞遁动画", "due": "2026-01-30", "status": "status_9"}}, {"Story": {"id": "1158335167004828030", "name": "大啼魂-初绑", "due": "2026-03-02", "status": "status_8"}}, {"Story": {"id": "1158335167004827998", "name": "血色披风预研", "due": "2026-02-14", "status": "status_8"}}, {"Story": {"id": "1158335167004827996", "name": "青凝镜-回收Layout", "due": "2026-02-27", "status": "status_9"}}, {"Story": {"id": "1158335167004827994", "name": "青凝镜-待机", "due": "2026-03-20", "status": "status_9"}}, {"Story": {"id": "1158335167004827991", "name": "青凝镜-检视表演Layout", "due": "2026-02-28", "status": "status_9"}}, {"Story": {"id": "1158335167004827989", "name": "青凝镜-召唤Layout", "due": "2026-02-28", "status": "status_9"}}, {"Story": {"id": "1158335167004827987", "name": "青凝镜-初绑", "due": "2026-01-30", "status": "status_8"}}, {"Story": {"id": "1158335167004827946", "name": "玄铁飞天盾-初绑", "due": "2026-01-23", "status": "status_8"}}, {"Story": {"id": "1158335167004827929", "name": "噬金虫召唤动画Layout", "due": "2026-03-09", "status": "status_9"}}, {"Story": {"id": "1158335167004827926", "name": "噬金虫召-初绑", "due": "2026-01-26", "status": "status_8"}}, {"Story": {"id": "1158335167004827921", "name": "飞剑-解控", "due": "2026-03-27", "status": "status_9"}}, {"Story": {"id": "1158335167004827920", "name": "飞剑-检视表演", "due": "2026-03-27", "status": "status_7"}}, {"Story": {"id": "1158335167004827919", "name": "飞剑-检视表演Layout", "due": "2026-03-13", "status": "status_7"}}, {"Story": {"id": "1158335167004827914", "name": "剑影分光·闪回", "due": "2026-03-27", "status": "status_9"}}, {"Story": {"id": "1158335167004827912", "name": "剑影分光·上挑", "due": "2026-03-27", "status": "status_9"}}, {"Story": {"id": "1158335167004827910", "name": "空中右键下劈", "due": "2026-02-28", "status": "status_5"}}, {"Story": {"id": "1158335167004827909", "name": "右键垫步突进", "due": "2026-02-06", "status": "status_5"}}, {"Story": {"id": "1158335167004827852", "name": "动画制作 - 【法宝】青竹蜂云剑", "due": "2026-03-28", "status": "status_7"}}, {"Story": {"id": "1158335167004816915", "name": "3C-飞遁 - 状态机重构", "due": "2026-01-09", "status": "status_8"}}, {"Story": {"id": "1158335167004815661", "name": "3C-飞遁 - W输入HighSpeed状态", "due": "2026-01-09", "status": "status_8"}}, {"Story": {"id": "1158335167004787978", "name": "通用受击 - 动作资源", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004787977", "name": "海王兽 - 动作资源", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004787973", "name": "主角战斗 - 动作资源", "due": "2025-12-30", "status": "status_7"}}, {"Story": {"id": "1158335167004774665", "name": "地面待机", "due": "2025-12-30", "status": "status_8"}}, {"Story": {"id": "1158335167004774664", "name": "空中待机", "due": "2025-12-30", "status": "status_7"}}, {"Story": {"id": "1158335167004774629", "name": "雷属性受击 - 起始", "due": "2025-12-30", "status": "status_7"}}, {"Story": {"id": "1158335167004774628", "name": "雷属性受击 - 循环", "due": "2025-12-30", "status": "status_7"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:57:29", "task": "task3", "sync_id": "task3_20260312_115728_e7f36b8f", "module": "tapd", "operation": "stories", "success": true, "request": {"workspace_id": "58335167", "owner": "星渊", "fields": "id,name,due,status"}, "response": {"status": 1, "data": [{"Story": {"id": "1158335167004866823", "name": "3C-基础移动-Bug-Dodge卡帧", "due": "2026-03-10", "status": "status_9"}}, {"Story": {"id": "1158335167004839323", "name": "材质Mask模式不受motion blur影响", "due": "2026-02-05", "status": "status_9"}}, {"Story": {"id": "1158335167004839302", "name": "AS脚本Bind扩展", "due": "2026-02-03", "status": "status_10"}}, {"Story": {"id": "1158335167004839301", "name": "尝试AS写Validator", "due": "2026-02-03", "status": "status_10"}}, {"Story": {"id": "1158335167004839299", "name": "简单Sample跑下流程", "due": "2026-02-03", "status": "status_8"}}, {"Story": {"id": "1158335167004839298", "name": "文档阅读", "due": "2026-02-03", "status": "status_8"}}, {"Story": {"id": "1158335167004839272", "name": "Kawaii,Magic,AnimVelet调研", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839270", "name": "Chaos布料算法调研", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839267", "name": "编译Android版", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839266", "name": "对GPU解算进行改近", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839263", "name": "育碧GPU布料结算的GDC Paper", "due": "2026-02-13", "status": "status_8"}}, {"Story": {"id": "1158335167004839259", "name": "理解GPU算法", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839251", "name": "增加Profiler", "due": "2026-02-13", "status": "status_8"}}, {"Story": {"id": "1158335167004839246", "name": "调试和理解NvCloth算法", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839242", "name": "编译NvCloth", "due": "2026-02-13", "status": "status_8"}}, {"Story": {"id": "1158335167004839241", "name": "NvCloth调研", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839239", "name": "布料解算基建", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839234", "name": "Data Validator框架", "due": "2026-02-03", "status": "status_5"}}, {"Story": {"id": "1158335167004834466", "name": "Horde相关-持续开发项", "due": "2026-05-30", "status": "status_5"}}, {"Story": {"id": "1158335167004834018", "name": "【引擎/TA】2026年1月 - 凡人各组月度产出梳理", "due": "2026-01-28", "status": "status_8"}}, {"Story": {"id": "1158335167004828309", "name": "技术基建-基础可过滤编辑器控件开发", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004802628", "name": "技术基建-XianDebugger-法术场Debugger", "due": null, "status": "status_9"}}, {"Story": {"id": "1158335167004802626", "name": "技术基建-XianDebugger", "due": null, "status": "status_5"}}, {"Story": {"id": "1158335167004800837", "name": "VAT贴图Foramt以及各种选项的意义", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004800834", "name": "VAT贴图尺寸和种类优化", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800832", "name": "VAT内存优化", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004800829", "name": "内存Profiling", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800828", "name": "内存优化", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800819", "name": "Async优化Lumen反射", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800816", "name": "优化Lumen反射,包括水的反射性能", "due": null, "status": "status_8"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:57:29", "task": "task3", "sync_id": "task3_20260312_115728_e7f36b8f", "module": "tapd", "operation": "stories", "success": true, "request": {"workspace_id": "58335167", "owner": "mithril", "fields": "id,name,due,status"}, "response": {"status": 1, "data": [{"Story": {"id": "1158335167004865833", "name": "客户端审核 - 噬金虫相关功能", "due": "2026-03-13", "status": "status_7"}}, {"Story": {"id": "1158335167004840448", "name": "技能触发条件接入及联调。", "due": "2026-01-31", "status": "status_8"}}, {"Story": {"id": "1158335167004838325", "name": "AI Codereview", "due": "2026-05-30", "status": "status_5"}}, {"Story": {"id": "1158335167004838322", "name": "界面调整迭代", "due": "2026-02-28", "status": "status_8"}}, {"Story": {"id": "1158335167004838321", "name": "重构MainMenu", "due": "2026-02-28", "status": "status_8"}}, {"Story": {"id": "1158335167004838320", "name": "common ui调研,手机端测试", "due": "2026-03-20", "status": "status_7"}}, {"Story": {"id": "1158335167004836875", "name": "- 技能槽位系统重构-迭代", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004834469", "name": "Horde编译失败群通知", "due": "2026-05-30", "status": "status_9"}}, {"Story": {"id": "1158335167004834468", "name": "Horde 自动触发逻辑", "due": "2026-05-30", "status": "status_9"}}, {"Story": {"id": "1158335167004829003", "name": "补全运行时日志", "due": "2026-04-03", "status": "status_7"}}, {"Story": {"id": "1158335167004828993", "name": "接入xiandebug,可预览运行时子弹及相关数据", "due": "2026-04-03", "status": "status_7"}}, {"Story": {"id": "1158335167004828719", "name": "客户端审核 - 武器装备-UI逻辑", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004828716", "name": "客户端审核 - 法宝装备-UI逻辑", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004828709", "name": "客户端审核 - 武器装备界面逻辑", "due": "2026-03-13", "status": "status_12"}}, {"Story": {"id": "1158335167004828708", "name": "客户端审核 - 法宝装备界面逻辑", "due": "2026-03-13", "status": "status_12"}}, {"Story": {"id": "1158335167004828679", "name": "客户端审核 - 消耗品使用逻辑", "due": "2026-03-06", "status": "status_5"}}, {"Story": {"id": "1158335167004828673", "name": "客户端审核 - SkillSlotMgr新逻辑迭代", "due": "2026-01-28", "status": "status_8"}}, {"Story": {"id": "1158335167004828672", "name": "客户端审核 - 武器槽位映射逻辑重构", "due": "2026-01-30", "status": "status_8"}}, {"Story": {"id": "1158335167004827634", "name": "客户端审核 - 绑定Ability——左右键、派生技、武器战技和武器通用技能", "due": "2026-03-22", "status": "status_5"}}, {"Story": {"id": "1158335167004827625", "name": "客户端审核 - 可追踪角度、追踪速度等参数可靠性优化", "due": "2026-04-04", "status": "status_7"}}, {"Story": {"id": "1158335167004827584", "name": "客户端审核 - 根据血量裂纹和破碎效果", "due": "2026-04-11", "status": "status_7"}}, {"Story": {"id": "1158335167004827583", "name": "客户端审核 - 表现优化,接入动画资源", "due": "2026-04-10", "status": "status_7"}}, {"Story": {"id": "1158335167004806717", "name": "分支上增加显示玩家名称的功能", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800802", "name": "PSO收集", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004794635", "name": "客户端审核 - 格挡功能-子弹奉还", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004794632", "name": "客户端审核 - 弹道系统现有配置优化", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004794631", "name": "客户端审核 - 弹道系统优化- 激光类bullet", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004794629", "name": "客户端审核 - 弹道系统优化- AOE伤害&子弹爆炸", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004792154", "name": "玄铁飞天盾 - 格挡成功超出弧度生成多个盾后,若当前盾X秒内未再次受击则消散,直到仅剩下一个盾时,回到1倍大小", "due": "2026-04-10", "status": "status_7"}}, {"Story": {"id": "1158335167004792153", "name": "玄铁飞天盾 - 格挡成功后,X秒内未再次受击,则平滑往环绕半径轨道上移动", "due": "2026-04-10", "status": "status_7"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:57:29", "task": "task3", "sync_id": "task3_20260312_115728_e7f36b8f", "module": "tapd", "operation": "bugs", "success": true, "request": {"workspace_id": "58335167", "current_owner": "BardLin", "fields": "id,title,deadline,status"}, "response": {"status": 1, "data": [{"Bug": {"id": "1158335167002283694", "title": "受击动画中,root质心需要跟随人物模型运动(如击飞、击浮空时root需要向上跟随),否则浮空连击时,敌人位置会频繁上下跳动。", "deadline": "2025-12-05", "status": "closed"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:57:29", "task": "task3", "sync_id": "task3_20260312_115728_e7f36b8f", "module": "tapd", "operation": "bugs", "success": true, "request": {"workspace_id": "58335167", "current_owner": "星渊", "fields": "id,title,deadline,status"}, "response": {"status": 1, "data": [{"Bug": {"id": "1158335167002296797", "title": "优化性能,分辨率提升为1080P,静态帧率基本稳定60fps", "deadline": "2025-12-22", "status": "closed"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:57:29", "task": "task3", "sync_id": "task3_20260312_115728_e7f36b8f", "module": "tapd", "operation": "bugs", "success": true, "request": {"workspace_id": "58335167", "current_owner": "mithril", "fields": "id,title,deadline,status"}, "response": {"status": 1, "data": [{"Bug": {"id": "1158335167002280921", "title": "【UI】【单机】血条UI歪了,不在屏幕正中间了@mithril(hanjingchao)", "deadline": "2025-12-01", "status": "closed"}}, {"Bug": {"id": "1158335167002280929", "title": "【联机】【弹道】左键第三段,第四段,飞剑子弹数量会丢失几根@mithril(hanjingchao)", "deadline": "2025-12-02", "status": "closed"}}, {"Bug": {"id": "1158335167002280930", "title": "【联机】【弹道】子弹受击特效丢失了@mithril(hanjingchao)", "deadline": "2025-12-01", "status": "closed"}}, {"Bug": {"id": "1158335167002280931", "title": "【联机】【UI】对方的体力条会显示得特别大@mithril(hanjingchao)", "deadline": "2025-12-02", "status": "closed"}}, {"Bug": {"id": "1158335167002283432", "title": "更新之后,放左键,没目标时弹道坏了,不会正确追踪地形", "deadline": "2025-12-09", "status": "closed"}}, {"Bug": {"id": "1158335167002287668", "title": "格挡成功后,延迟时间内盾也要保证和角色相对移动,(当前是会静止在原地,不跟随角色移动)", "deadline": "2025-12-12", "status": "closed"}}, {"Bug": {"id": "1158335167002287671", "title": "格挡成功后,延迟时间内再次格挡,则要刷新当前延迟时间(当前延迟时间内再次受击,延迟时间感觉并没有被刷新)", "deadline": "2025-12-16", "status": "closed"}}, {"Bug": {"id": "1158335167002287675", "title": "在新生成盾时,盾的内外表现不对,且旋转方向不对", "deadline": "2025-12-12", "status": "closed"}}, {"Bug": {"id": "1158335167002294091", "title": "【联机】【符箓】土牢符会把自己困住", "deadline": "2025-12-18", "status": "closed"}}, {"Bug": {"id": "1158335167002294096", "title": "【联机】【法宝】飞天盾会挡住自己的子弹", "deadline": "2025-12-18", "status": "closed"}}, {"Bug": {"id": "1158335167002295354", "title": "飞天盾相关bug - 子弹会穿盾,对角色造成伤害", "deadline": "2025-12-20", "status": "closed"}}, {"Bug": {"id": "1158335167002295358", "title": "限制生成初始总数量为1,避免多次使用生成多个盾(再次使用时刷新盾血量和持续时间)", "deadline": "2025-12-20", "status": "closed"}}, {"Bug": {"id": "1158335167002295360", "title": "飞天盾相关bug - 持续时间配置,避免盾一直不消失", "deadline": "2025-12-20", "status": "closed"}}, {"Bug": {"id": "1158335167002296688", "title": "【BUG】包里能不能默认 DisableAllScreenMessages", "deadline": "2025-12-22", "status": "closed"}}, {"Bug": {"id": "1158335167002297733", "title": "【高-BUG】左键普攻,第四段飞剑命中后会延迟一会才消失,希望和前三段一样快速消失", "deadline": "2025-12-25", "status": "closed"}}, {"Bug": {"id": "1158335167002299602", "title": "【高-BUG】土牢符的符纸,自己能锁定", "deadline": "2025-12-27", "status": "closed"}}, {"Bug": {"id": "1158335167002300378", "title": "【bug】土牢符陷阱现在不开神识探查也能看见", "deadline": "2025-12-30", "status": "in_progress"}}, {"Bug": {"id": "1158335167002300531", "title": "【致命-BUG】按G会Crash,复现较为频繁", "deadline": "2025-12-28", "status": "closed"}}, {"Bug": {"id": "1158335167002300717", "title": "【高-BUG】巨剑术诀子弹,命中海王兽场景海面底下的地面时没有正确触发overlap事件,停在表面并播特效", "deadline": "2025-12-31", "status": "closed"}}, {"Bug": {"id": "1158335167002300837", "title": "【高-bug】MoveToTargetEX触发的时候,能直接从土牢符里穿出来,需要正常阻挡自身和目标穿出土牢符", "deadline": "2025-12-31", "status": "closed"}}, {"Bug": {"id": "1158335167002304061", "title": "【需Merge分支】【高-BUG】【联机】现在破定期间Q环绕飞剑,只环绕一次就消失了。", "deadline": "2026-01-07", "status": "closed"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 11:57:30", "task": "task3", "sync_id": "task3_20260312_115728_e7f36b8f", "module": "wework", "operation": "webhook/send", "success": true, "request": {"msgtype": "markdown", "markdown": {"content": "⏰ TAPD 过期单提醒(2026-03-12)\n\n<@BardLin>(12 条过期)\n1.【需求】主角战斗 - 动作资源 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004787973)\n2.【需求】空中待机 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004774664)\n3.【需求】雷属性受击 - 起始 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004774629)\n4.【需求】雷属性受击 - 循环 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004774628)\n5.【需求】飞遁动画 | 过期 41 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004828079)\n6.【需求】右键垫步突进 | 过期 34 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827909)\n7.【需求】青凝镜-回收Layout | 过期 13 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827996)\n8.【需求】青凝镜-检视表演Layout | 过期 12 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827991)\n9.【需求】青凝镜-召唤Layout | 过期 12 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827989)\n10.【需求】空中右键下劈 | 过期 12 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827910)\n11.【需求】噬金虫召唤动画Layout | 过期 3 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827929)\n12.【需求】3C-基础移动-Bug-Dodge卡帧 | 过期 2 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004866823)\n---\n<@mi>(2 条过期)\n13.【缺陷】【bug】土牢符陷阱现在不开神识探查也能看见 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/bugtrace/bugs/view?bug_id=1158335167002300378)\n14.【需求】客户端审核 - 消耗品使用逻辑 | 过期 6 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004828679)\n---\n<@xingyuan>(13 条过期)\n15.【需求】AS脚本Bind扩展 | 过期 37 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839302)\n16.【需求】尝试AS写Validator | 过期 37 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839301)\n17.【需求】Data Validator框架 | 过期 37 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839234)\n18.【需求】材质Mask模式不受motion blur影响 | 过期 35 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839323)\n19.【需求】Kawaii,Magic,AnimVelet调研 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839272)\n20.【需求】Chaos布料算法调研 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839270)\n21.【需求】编译Android版 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839267)\n22.【需求】对GPU解算进行改近 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839266)\n23.【需求】理解GPU算法 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839259)\n24.【需求】调试和理解NvCloth算法 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839246)\n25.【需求】NvCloth调研 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839241)\n26.【需求】布料解算基建 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839239)\n27.【需求】3C-基础移动-Bug-Dodge卡帧 | 过期 2 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004866823)\n---\n共 27 条过期单,请今日内更新状态 🙏"}, "mentioned_list": ["BardLin", "mi", "xingyuan"]}, "response": {"errcode": 0, "errmsg": "ok"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "end_sync", "timestamp": "2026-03-12 11:57:30", "task": "task3", "sync_id": "task3_20260312_115728_e7f36b8f", "success": true, "stats": {"overdue_count": 27}, "error_message": null, "extra": {}} +{"event_type": "start_sync", "timestamp": "2026-03-12 12:03:15", "task": "task3", "sync_id": "task3_20260312_120315_576256a6", "trigger": "manual", "metadata": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 12:03:16", "task": "task3", "sync_id": "task3_20260312_120315_576256a6", "module": "tapd", "operation": "stories", "success": true, "request": {"workspace_id": "58335167", "owner": "BardLin", "fields": "id,name,due,status"}, "response": {"status": 1, "data": [{"Story": {"id": "1158335167004866823", "name": "3C-基础移动-Bug-Dodge卡帧", "due": "2026-03-10", "status": "status_9"}}, {"Story": {"id": "1158335167004834011", "name": "【动画】2026年1月 - 凡人各组月度产出梳理", "due": "2026-01-28", "status": "status_8"}}, {"Story": {"id": "1158335167004828079", "name": "飞遁动画", "due": "2026-01-30", "status": "status_9"}}, {"Story": {"id": "1158335167004828030", "name": "大啼魂-初绑", "due": "2026-03-02", "status": "status_8"}}, {"Story": {"id": "1158335167004827998", "name": "血色披风预研", "due": "2026-02-14", "status": "status_8"}}, {"Story": {"id": "1158335167004827996", "name": "青凝镜-回收Layout", "due": "2026-02-27", "status": "status_9"}}, {"Story": {"id": "1158335167004827994", "name": "青凝镜-待机", "due": "2026-03-20", "status": "status_9"}}, {"Story": {"id": "1158335167004827991", "name": "青凝镜-检视表演Layout", "due": "2026-02-28", "status": "status_9"}}, {"Story": {"id": "1158335167004827989", "name": "青凝镜-召唤Layout", "due": "2026-02-28", "status": "status_9"}}, {"Story": {"id": "1158335167004827987", "name": "青凝镜-初绑", "due": "2026-01-30", "status": "status_8"}}, {"Story": {"id": "1158335167004827946", "name": "玄铁飞天盾-初绑", "due": "2026-01-23", "status": "status_8"}}, {"Story": {"id": "1158335167004827929", "name": "噬金虫召唤动画Layout", "due": "2026-03-09", "status": "status_9"}}, {"Story": {"id": "1158335167004827926", "name": "噬金虫召-初绑", "due": "2026-01-26", "status": "status_8"}}, {"Story": {"id": "1158335167004827921", "name": "飞剑-解控", "due": "2026-03-27", "status": "status_9"}}, {"Story": {"id": "1158335167004827920", "name": "飞剑-检视表演", "due": "2026-03-27", "status": "status_7"}}, {"Story": {"id": "1158335167004827919", "name": "飞剑-检视表演Layout", "due": "2026-03-13", "status": "status_7"}}, {"Story": {"id": "1158335167004827914", "name": "剑影分光·闪回", "due": "2026-03-27", "status": "status_9"}}, {"Story": {"id": "1158335167004827912", "name": "剑影分光·上挑", "due": "2026-03-27", "status": "status_9"}}, {"Story": {"id": "1158335167004827910", "name": "空中右键下劈", "due": "2026-02-28", "status": "status_5"}}, {"Story": {"id": "1158335167004827909", "name": "右键垫步突进", "due": "2026-02-06", "status": "status_5"}}, {"Story": {"id": "1158335167004827852", "name": "动画制作 - 【法宝】青竹蜂云剑", "due": "2026-03-28", "status": "status_7"}}, {"Story": {"id": "1158335167004816915", "name": "3C-飞遁 - 状态机重构", "due": "2026-01-09", "status": "status_8"}}, {"Story": {"id": "1158335167004815661", "name": "3C-飞遁 - W输入HighSpeed状态", "due": "2026-01-09", "status": "status_8"}}, {"Story": {"id": "1158335167004787978", "name": "通用受击 - 动作资源", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004787977", "name": "海王兽 - 动作资源", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004787973", "name": "主角战斗 - 动作资源", "due": "2025-12-30", "status": "status_7"}}, {"Story": {"id": "1158335167004774665", "name": "地面待机", "due": "2025-12-30", "status": "status_8"}}, {"Story": {"id": "1158335167004774664", "name": "空中待机", "due": "2025-12-30", "status": "status_7"}}, {"Story": {"id": "1158335167004774629", "name": "雷属性受击 - 起始", "due": "2025-12-30", "status": "status_7"}}, {"Story": {"id": "1158335167004774628", "name": "雷属性受击 - 循环", "due": "2025-12-30", "status": "status_7"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 12:03:16", "task": "task3", "sync_id": "task3_20260312_120315_576256a6", "module": "tapd", "operation": "stories", "success": true, "request": {"workspace_id": "58335167", "owner": "星渊", "fields": "id,name,due,status"}, "response": {"status": 1, "data": [{"Story": {"id": "1158335167004866823", "name": "3C-基础移动-Bug-Dodge卡帧", "due": "2026-03-10", "status": "status_9"}}, {"Story": {"id": "1158335167004839323", "name": "材质Mask模式不受motion blur影响", "due": "2026-02-05", "status": "status_9"}}, {"Story": {"id": "1158335167004839302", "name": "AS脚本Bind扩展", "due": "2026-02-03", "status": "status_10"}}, {"Story": {"id": "1158335167004839301", "name": "尝试AS写Validator", "due": "2026-02-03", "status": "status_10"}}, {"Story": {"id": "1158335167004839299", "name": "简单Sample跑下流程", "due": "2026-02-03", "status": "status_8"}}, {"Story": {"id": "1158335167004839298", "name": "文档阅读", "due": "2026-02-03", "status": "status_8"}}, {"Story": {"id": "1158335167004839272", "name": "Kawaii,Magic,AnimVelet调研", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839270", "name": "Chaos布料算法调研", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839267", "name": "编译Android版", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839266", "name": "对GPU解算进行改近", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839263", "name": "育碧GPU布料结算的GDC Paper", "due": "2026-02-13", "status": "status_8"}}, {"Story": {"id": "1158335167004839259", "name": "理解GPU算法", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839251", "name": "增加Profiler", "due": "2026-02-13", "status": "status_8"}}, {"Story": {"id": "1158335167004839246", "name": "调试和理解NvCloth算法", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839242", "name": "编译NvCloth", "due": "2026-02-13", "status": "status_8"}}, {"Story": {"id": "1158335167004839241", "name": "NvCloth调研", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839239", "name": "布料解算基建", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839234", "name": "Data Validator框架", "due": "2026-02-03", "status": "status_5"}}, {"Story": {"id": "1158335167004834466", "name": "Horde相关-持续开发项", "due": "2026-05-30", "status": "status_5"}}, {"Story": {"id": "1158335167004834018", "name": "【引擎/TA】2026年1月 - 凡人各组月度产出梳理", "due": "2026-01-28", "status": "status_8"}}, {"Story": {"id": "1158335167004828309", "name": "技术基建-基础可过滤编辑器控件开发", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004802628", "name": "技术基建-XianDebugger-法术场Debugger", "due": null, "status": "status_9"}}, {"Story": {"id": "1158335167004802626", "name": "技术基建-XianDebugger", "due": null, "status": "status_5"}}, {"Story": {"id": "1158335167004800837", "name": "VAT贴图Foramt以及各种选项的意义", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004800834", "name": "VAT贴图尺寸和种类优化", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800832", "name": "VAT内存优化", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004800829", "name": "内存Profiling", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800828", "name": "内存优化", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800819", "name": "Async优化Lumen反射", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800816", "name": "优化Lumen反射,包括水的反射性能", "due": null, "status": "status_8"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 12:03:16", "task": "task3", "sync_id": "task3_20260312_120315_576256a6", "module": "tapd", "operation": "stories", "success": true, "request": {"workspace_id": "58335167", "owner": "mithril", "fields": "id,name,due,status"}, "response": {"status": 1, "data": [{"Story": {"id": "1158335167004865833", "name": "客户端审核 - 噬金虫相关功能", "due": "2026-03-13", "status": "status_7"}}, {"Story": {"id": "1158335167004840448", "name": "技能触发条件接入及联调。", "due": "2026-01-31", "status": "status_8"}}, {"Story": {"id": "1158335167004838325", "name": "AI Codereview", "due": "2026-05-30", "status": "status_5"}}, {"Story": {"id": "1158335167004838322", "name": "界面调整迭代", "due": "2026-02-28", "status": "status_8"}}, {"Story": {"id": "1158335167004838321", "name": "重构MainMenu", "due": "2026-02-28", "status": "status_8"}}, {"Story": {"id": "1158335167004838320", "name": "common ui调研,手机端测试", "due": "2026-03-20", "status": "status_7"}}, {"Story": {"id": "1158335167004836875", "name": "- 技能槽位系统重构-迭代", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004834469", "name": "Horde编译失败群通知", "due": "2026-05-30", "status": "status_9"}}, {"Story": {"id": "1158335167004834468", "name": "Horde 自动触发逻辑", "due": "2026-05-30", "status": "status_9"}}, {"Story": {"id": "1158335167004829003", "name": "补全运行时日志", "due": "2026-04-03", "status": "status_7"}}, {"Story": {"id": "1158335167004828993", "name": "接入xiandebug,可预览运行时子弹及相关数据", "due": "2026-04-03", "status": "status_7"}}, {"Story": {"id": "1158335167004828719", "name": "客户端审核 - 武器装备-UI逻辑", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004828716", "name": "客户端审核 - 法宝装备-UI逻辑", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004828709", "name": "客户端审核 - 武器装备界面逻辑", "due": "2026-03-13", "status": "status_12"}}, {"Story": {"id": "1158335167004828708", "name": "客户端审核 - 法宝装备界面逻辑", "due": "2026-03-13", "status": "status_12"}}, {"Story": {"id": "1158335167004828679", "name": "客户端审核 - 消耗品使用逻辑", "due": "2026-03-06", "status": "status_5"}}, {"Story": {"id": "1158335167004828673", "name": "客户端审核 - SkillSlotMgr新逻辑迭代", "due": "2026-01-28", "status": "status_8"}}, {"Story": {"id": "1158335167004828672", "name": "客户端审核 - 武器槽位映射逻辑重构", "due": "2026-01-30", "status": "status_8"}}, {"Story": {"id": "1158335167004827634", "name": "客户端审核 - 绑定Ability——左右键、派生技、武器战技和武器通用技能", "due": "2026-03-22", "status": "status_5"}}, {"Story": {"id": "1158335167004827625", "name": "客户端审核 - 可追踪角度、追踪速度等参数可靠性优化", "due": "2026-04-04", "status": "status_7"}}, {"Story": {"id": "1158335167004827584", "name": "客户端审核 - 根据血量裂纹和破碎效果", "due": "2026-04-11", "status": "status_7"}}, {"Story": {"id": "1158335167004827583", "name": "客户端审核 - 表现优化,接入动画资源", "due": "2026-04-10", "status": "status_7"}}, {"Story": {"id": "1158335167004806717", "name": "分支上增加显示玩家名称的功能", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800802", "name": "PSO收集", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004794635", "name": "客户端审核 - 格挡功能-子弹奉还", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004794632", "name": "客户端审核 - 弹道系统现有配置优化", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004794631", "name": "客户端审核 - 弹道系统优化- 激光类bullet", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004794629", "name": "客户端审核 - 弹道系统优化- AOE伤害&子弹爆炸", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004792154", "name": "玄铁飞天盾 - 格挡成功超出弧度生成多个盾后,若当前盾X秒内未再次受击则消散,直到仅剩下一个盾时,回到1倍大小", "due": "2026-04-10", "status": "status_7"}}, {"Story": {"id": "1158335167004792153", "name": "玄铁飞天盾 - 格挡成功后,X秒内未再次受击,则平滑往环绕半径轨道上移动", "due": "2026-04-10", "status": "status_7"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 12:03:16", "task": "task3", "sync_id": "task3_20260312_120315_576256a6", "module": "tapd", "operation": "bugs", "success": true, "request": {"workspace_id": "58335167", "current_owner": "BardLin", "fields": "id,title,deadline,status"}, "response": {"status": 1, "data": [{"Bug": {"id": "1158335167002283694", "title": "受击动画中,root质心需要跟随人物模型运动(如击飞、击浮空时root需要向上跟随),否则浮空连击时,敌人位置会频繁上下跳动。", "deadline": "2025-12-05", "status": "closed"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 12:03:16", "task": "task3", "sync_id": "task3_20260312_120315_576256a6", "module": "tapd", "operation": "bugs", "success": true, "request": {"workspace_id": "58335167", "current_owner": "星渊", "fields": "id,title,deadline,status"}, "response": {"status": 1, "data": [{"Bug": {"id": "1158335167002296797", "title": "优化性能,分辨率提升为1080P,静态帧率基本稳定60fps", "deadline": "2025-12-22", "status": "closed"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 12:03:16", "task": "task3", "sync_id": "task3_20260312_120315_576256a6", "module": "tapd", "operation": "bugs", "success": true, "request": {"workspace_id": "58335167", "current_owner": "mithril", "fields": "id,title,deadline,status"}, "response": {"status": 1, "data": [{"Bug": {"id": "1158335167002280921", "title": "【UI】【单机】血条UI歪了,不在屏幕正中间了@mithril(hanjingchao)", "deadline": "2025-12-01", "status": "closed"}}, {"Bug": {"id": "1158335167002280929", "title": "【联机】【弹道】左键第三段,第四段,飞剑子弹数量会丢失几根@mithril(hanjingchao)", "deadline": "2025-12-02", "status": "closed"}}, {"Bug": {"id": "1158335167002280930", "title": "【联机】【弹道】子弹受击特效丢失了@mithril(hanjingchao)", "deadline": "2025-12-01", "status": "closed"}}, {"Bug": {"id": "1158335167002280931", "title": "【联机】【UI】对方的体力条会显示得特别大@mithril(hanjingchao)", "deadline": "2025-12-02", "status": "closed"}}, {"Bug": {"id": "1158335167002283432", "title": "更新之后,放左键,没目标时弹道坏了,不会正确追踪地形", "deadline": "2025-12-09", "status": "closed"}}, {"Bug": {"id": "1158335167002287668", "title": "格挡成功后,延迟时间内盾也要保证和角色相对移动,(当前是会静止在原地,不跟随角色移动)", "deadline": "2025-12-12", "status": "closed"}}, {"Bug": {"id": "1158335167002287671", "title": "格挡成功后,延迟时间内再次格挡,则要刷新当前延迟时间(当前延迟时间内再次受击,延迟时间感觉并没有被刷新)", "deadline": "2025-12-16", "status": "closed"}}, {"Bug": {"id": "1158335167002287675", "title": "在新生成盾时,盾的内外表现不对,且旋转方向不对", "deadline": "2025-12-12", "status": "closed"}}, {"Bug": {"id": "1158335167002294091", "title": "【联机】【符箓】土牢符会把自己困住", "deadline": "2025-12-18", "status": "closed"}}, {"Bug": {"id": "1158335167002294096", "title": "【联机】【法宝】飞天盾会挡住自己的子弹", "deadline": "2025-12-18", "status": "closed"}}, {"Bug": {"id": "1158335167002295354", "title": "飞天盾相关bug - 子弹会穿盾,对角色造成伤害", "deadline": "2025-12-20", "status": "closed"}}, {"Bug": {"id": "1158335167002295358", "title": "限制生成初始总数量为1,避免多次使用生成多个盾(再次使用时刷新盾血量和持续时间)", "deadline": "2025-12-20", "status": "closed"}}, {"Bug": {"id": "1158335167002295360", "title": "飞天盾相关bug - 持续时间配置,避免盾一直不消失", "deadline": "2025-12-20", "status": "closed"}}, {"Bug": {"id": "1158335167002296688", "title": "【BUG】包里能不能默认 DisableAllScreenMessages", "deadline": "2025-12-22", "status": "closed"}}, {"Bug": {"id": "1158335167002297733", "title": "【高-BUG】左键普攻,第四段飞剑命中后会延迟一会才消失,希望和前三段一样快速消失", "deadline": "2025-12-25", "status": "closed"}}, {"Bug": {"id": "1158335167002299602", "title": "【高-BUG】土牢符的符纸,自己能锁定", "deadline": "2025-12-27", "status": "closed"}}, {"Bug": {"id": "1158335167002300378", "title": "【bug】土牢符陷阱现在不开神识探查也能看见", "deadline": "2025-12-30", "status": "in_progress"}}, {"Bug": {"id": "1158335167002300531", "title": "【致命-BUG】按G会Crash,复现较为频繁", "deadline": "2025-12-28", "status": "closed"}}, {"Bug": {"id": "1158335167002300717", "title": "【高-BUG】巨剑术诀子弹,命中海王兽场景海面底下的地面时没有正确触发overlap事件,停在表面并播特效", "deadline": "2025-12-31", "status": "closed"}}, {"Bug": {"id": "1158335167002300837", "title": "【高-bug】MoveToTargetEX触发的时候,能直接从土牢符里穿出来,需要正常阻挡自身和目标穿出土牢符", "deadline": "2025-12-31", "status": "closed"}}, {"Bug": {"id": "1158335167002304061", "title": "【需Merge分支】【高-BUG】【联机】现在破定期间Q环绕飞剑,只环绕一次就消失了。", "deadline": "2026-01-07", "status": "closed"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 12:03:17", "task": "task3", "sync_id": "task3_20260312_120315_576256a6", "module": "wework", "operation": "webhook/send", "success": true, "request": {"msgtype": "markdown", "markdown": {"content": "⏰ TAPD 过期单提醒(2026-03-12)\n\n<@BardLin>(12 条过期)\n1.【需求】主角战斗 - 动作资源 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004787973)\n2.【需求】空中待机 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004774664)\n3.【需求】雷属性受击 - 起始 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004774629)\n4.【需求】雷属性受击 - 循环 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004774628)\n5.【需求】飞遁动画 | 过期 41 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004828079)\n6.【需求】右键垫步突进 | 过期 34 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827909)\n7.【需求】青凝镜-回收Layout | 过期 13 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827996)\n8.【需求】青凝镜-检视表演Layout | 过期 12 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827991)\n9.【需求】青凝镜-召唤Layout | 过期 12 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827989)\n10.【需求】空中右键下劈 | 过期 12 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827910)\n11.【需求】噬金虫召唤动画Layout | 过期 3 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827929)\n12.【需求】3C-基础移动-Bug-Dodge卡帧 | 过期 2 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004866823)\n========================\n<@mi>(2 条过期)\n13.【缺陷】【bug】土牢符陷阱现在不开神识探查也能看见 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/bugtrace/bugs/view?bug_id=1158335167002300378)\n14.【需求】客户端审核 - 消耗品使用逻辑 | 过期 6 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004828679)\n========================\n<@xingyuan>(13 条过期)\n15.【需求】AS脚本Bind扩展 | 过期 37 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839302)\n16.【需求】尝试AS写Validator | 过期 37 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839301)\n17.【需求】Data Validator框架 | 过期 37 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839234)\n18.【需求】材质Mask模式不受motion blur影响 | 过期 35 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839323)\n19.【需求】Kawaii,Magic,AnimVelet调研 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839272)\n20.【需求】Chaos布料算法调研 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839270)\n21.【需求】编译Android版 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839267)\n22.【需求】对GPU解算进行改近 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839266)\n23.【需求】理解GPU算法 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839259)\n24.【需求】调试和理解NvCloth算法 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839246)\n25.【需求】NvCloth调研 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839241)\n26.【需求】布料解算基建 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839239)\n27.【需求】3C-基础移动-Bug-Dodge卡帧 | 过期 2 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004866823)\n========================\n共 27 条过期单,请今日内更新状态 🙏"}, "mentioned_list": ["BardLin", "mi", "xingyuan"]}, "response": {"errcode": 0, "errmsg": "ok"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "end_sync", "timestamp": "2026-03-12 12:03:17", "task": "task3", "sync_id": "task3_20260312_120315_576256a6", "success": true, "stats": {"overdue_count": 27}, "error_message": null, "extra": {}} +{"event_type": "start_sync", "timestamp": "2026-03-12 12:05:37", "task": "task3", "sync_id": "task3_20260312_120537_b6645a54", "trigger": "manual", "metadata": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 12:05:38", "task": "task3", "sync_id": "task3_20260312_120537_b6645a54", "module": "tapd", "operation": "stories", "success": true, "request": {"workspace_id": "58335167", "owner": "BardLin", "fields": "id,name,due,status"}, "response": {"status": 1, "data": [{"Story": {"id": "1158335167004866823", "name": "3C-基础移动-Bug-Dodge卡帧", "due": "2026-03-10", "status": "status_9"}}, {"Story": {"id": "1158335167004834011", "name": "【动画】2026年1月 - 凡人各组月度产出梳理", "due": "2026-01-28", "status": "status_8"}}, {"Story": {"id": "1158335167004828079", "name": "飞遁动画", "due": "2026-01-30", "status": "status_9"}}, {"Story": {"id": "1158335167004828030", "name": "大啼魂-初绑", "due": "2026-03-02", "status": "status_8"}}, {"Story": {"id": "1158335167004827998", "name": "血色披风预研", "due": "2026-02-14", "status": "status_8"}}, {"Story": {"id": "1158335167004827996", "name": "青凝镜-回收Layout", "due": "2026-02-27", "status": "status_9"}}, {"Story": {"id": "1158335167004827994", "name": "青凝镜-待机", "due": "2026-03-20", "status": "status_9"}}, {"Story": {"id": "1158335167004827991", "name": "青凝镜-检视表演Layout", "due": "2026-02-28", "status": "status_9"}}, {"Story": {"id": "1158335167004827989", "name": "青凝镜-召唤Layout", "due": "2026-02-28", "status": "status_9"}}, {"Story": {"id": "1158335167004827987", "name": "青凝镜-初绑", "due": "2026-01-30", "status": "status_8"}}, {"Story": {"id": "1158335167004827946", "name": "玄铁飞天盾-初绑", "due": "2026-01-23", "status": "status_8"}}, {"Story": {"id": "1158335167004827929", "name": "噬金虫召唤动画Layout", "due": "2026-03-09", "status": "status_9"}}, {"Story": {"id": "1158335167004827926", "name": "噬金虫召-初绑", "due": "2026-01-26", "status": "status_8"}}, {"Story": {"id": "1158335167004827921", "name": "飞剑-解控", "due": "2026-03-27", "status": "status_9"}}, {"Story": {"id": "1158335167004827920", "name": "飞剑-检视表演", "due": "2026-03-27", "status": "status_7"}}, {"Story": {"id": "1158335167004827919", "name": "飞剑-检视表演Layout", "due": "2026-03-13", "status": "status_7"}}, {"Story": {"id": "1158335167004827914", "name": "剑影分光·闪回", "due": "2026-03-27", "status": "status_9"}}, {"Story": {"id": "1158335167004827912", "name": "剑影分光·上挑", "due": "2026-03-27", "status": "status_9"}}, {"Story": {"id": "1158335167004827910", "name": "空中右键下劈", "due": "2026-02-28", "status": "status_5"}}, {"Story": {"id": "1158335167004827909", "name": "右键垫步突进", "due": "2026-02-06", "status": "status_5"}}, {"Story": {"id": "1158335167004827852", "name": "动画制作 - 【法宝】青竹蜂云剑", "due": "2026-03-28", "status": "status_7"}}, {"Story": {"id": "1158335167004816915", "name": "3C-飞遁 - 状态机重构", "due": "2026-01-09", "status": "status_8"}}, {"Story": {"id": "1158335167004815661", "name": "3C-飞遁 - W输入HighSpeed状态", "due": "2026-01-09", "status": "status_8"}}, {"Story": {"id": "1158335167004787978", "name": "通用受击 - 动作资源", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004787977", "name": "海王兽 - 动作资源", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004787973", "name": "主角战斗 - 动作资源", "due": "2025-12-30", "status": "status_7"}}, {"Story": {"id": "1158335167004774665", "name": "地面待机", "due": "2025-12-30", "status": "status_8"}}, {"Story": {"id": "1158335167004774664", "name": "空中待机", "due": "2025-12-30", "status": "status_7"}}, {"Story": {"id": "1158335167004774629", "name": "雷属性受击 - 起始", "due": "2025-12-30", "status": "status_7"}}, {"Story": {"id": "1158335167004774628", "name": "雷属性受击 - 循环", "due": "2025-12-30", "status": "status_7"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 12:05:38", "task": "task3", "sync_id": "task3_20260312_120537_b6645a54", "module": "tapd", "operation": "stories", "success": true, "request": {"workspace_id": "58335167", "owner": "星渊", "fields": "id,name,due,status"}, "response": {"status": 1, "data": [{"Story": {"id": "1158335167004866823", "name": "3C-基础移动-Bug-Dodge卡帧", "due": "2026-03-10", "status": "status_9"}}, {"Story": {"id": "1158335167004839323", "name": "材质Mask模式不受motion blur影响", "due": "2026-02-05", "status": "status_9"}}, {"Story": {"id": "1158335167004839302", "name": "AS脚本Bind扩展", "due": "2026-02-03", "status": "status_10"}}, {"Story": {"id": "1158335167004839301", "name": "尝试AS写Validator", "due": "2026-02-03", "status": "status_10"}}, {"Story": {"id": "1158335167004839299", "name": "简单Sample跑下流程", "due": "2026-02-03", "status": "status_8"}}, {"Story": {"id": "1158335167004839298", "name": "文档阅读", "due": "2026-02-03", "status": "status_8"}}, {"Story": {"id": "1158335167004839272", "name": "Kawaii,Magic,AnimVelet调研", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839270", "name": "Chaos布料算法调研", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839267", "name": "编译Android版", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839266", "name": "对GPU解算进行改近", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839263", "name": "育碧GPU布料结算的GDC Paper", "due": "2026-02-13", "status": "status_8"}}, {"Story": {"id": "1158335167004839259", "name": "理解GPU算法", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839251", "name": "增加Profiler", "due": "2026-02-13", "status": "status_8"}}, {"Story": {"id": "1158335167004839246", "name": "调试和理解NvCloth算法", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839242", "name": "编译NvCloth", "due": "2026-02-13", "status": "status_8"}}, {"Story": {"id": "1158335167004839241", "name": "NvCloth调研", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839239", "name": "布料解算基建", "due": "2026-02-13", "status": "status_5"}}, {"Story": {"id": "1158335167004839234", "name": "Data Validator框架", "due": "2026-02-03", "status": "status_5"}}, {"Story": {"id": "1158335167004834466", "name": "Horde相关-持续开发项", "due": "2026-05-30", "status": "status_5"}}, {"Story": {"id": "1158335167004834018", "name": "【引擎/TA】2026年1月 - 凡人各组月度产出梳理", "due": "2026-01-28", "status": "status_8"}}, {"Story": {"id": "1158335167004828309", "name": "技术基建-基础可过滤编辑器控件开发", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004802628", "name": "技术基建-XianDebugger-法术场Debugger", "due": null, "status": "status_9"}}, {"Story": {"id": "1158335167004802626", "name": "技术基建-XianDebugger", "due": null, "status": "status_5"}}, {"Story": {"id": "1158335167004800837", "name": "VAT贴图Foramt以及各种选项的意义", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004800834", "name": "VAT贴图尺寸和种类优化", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800832", "name": "VAT内存优化", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004800829", "name": "内存Profiling", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800828", "name": "内存优化", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800819", "name": "Async优化Lumen反射", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800816", "name": "优化Lumen反射,包括水的反射性能", "due": null, "status": "status_8"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 12:05:38", "task": "task3", "sync_id": "task3_20260312_120537_b6645a54", "module": "tapd", "operation": "stories", "success": true, "request": {"workspace_id": "58335167", "owner": "mithril", "fields": "id,name,due,status"}, "response": {"status": 1, "data": [{"Story": {"id": "1158335167004865833", "name": "客户端审核 - 噬金虫相关功能", "due": "2026-03-13", "status": "status_7"}}, {"Story": {"id": "1158335167004840448", "name": "技能触发条件接入及联调。", "due": "2026-01-31", "status": "status_8"}}, {"Story": {"id": "1158335167004838325", "name": "AI Codereview", "due": "2026-05-30", "status": "status_5"}}, {"Story": {"id": "1158335167004838322", "name": "界面调整迭代", "due": "2026-02-28", "status": "status_8"}}, {"Story": {"id": "1158335167004838321", "name": "重构MainMenu", "due": "2026-02-28", "status": "status_8"}}, {"Story": {"id": "1158335167004838320", "name": "common ui调研,手机端测试", "due": "2026-03-20", "status": "status_7"}}, {"Story": {"id": "1158335167004836875", "name": "- 技能槽位系统重构-迭代", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004834469", "name": "Horde编译失败群通知", "due": "2026-05-30", "status": "status_9"}}, {"Story": {"id": "1158335167004834468", "name": "Horde 自动触发逻辑", "due": "2026-05-30", "status": "status_9"}}, {"Story": {"id": "1158335167004829003", "name": "补全运行时日志", "due": "2026-04-03", "status": "status_7"}}, {"Story": {"id": "1158335167004828993", "name": "接入xiandebug,可预览运行时子弹及相关数据", "due": "2026-04-03", "status": "status_7"}}, {"Story": {"id": "1158335167004828719", "name": "客户端审核 - 武器装备-UI逻辑", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004828716", "name": "客户端审核 - 法宝装备-UI逻辑", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004828709", "name": "客户端审核 - 武器装备界面逻辑", "due": "2026-03-13", "status": "status_12"}}, {"Story": {"id": "1158335167004828708", "name": "客户端审核 - 法宝装备界面逻辑", "due": "2026-03-13", "status": "status_12"}}, {"Story": {"id": "1158335167004828679", "name": "客户端审核 - 消耗品使用逻辑", "due": "2026-03-06", "status": "status_5"}}, {"Story": {"id": "1158335167004828673", "name": "客户端审核 - SkillSlotMgr新逻辑迭代", "due": "2026-01-28", "status": "status_8"}}, {"Story": {"id": "1158335167004828672", "name": "客户端审核 - 武器槽位映射逻辑重构", "due": "2026-01-30", "status": "status_8"}}, {"Story": {"id": "1158335167004827634", "name": "客户端审核 - 绑定Ability——左右键、派生技、武器战技和武器通用技能", "due": "2026-03-22", "status": "status_5"}}, {"Story": {"id": "1158335167004827625", "name": "客户端审核 - 可追踪角度、追踪速度等参数可靠性优化", "due": "2026-04-04", "status": "status_7"}}, {"Story": {"id": "1158335167004827584", "name": "客户端审核 - 根据血量裂纹和破碎效果", "due": "2026-04-11", "status": "status_7"}}, {"Story": {"id": "1158335167004827583", "name": "客户端审核 - 表现优化,接入动画资源", "due": "2026-04-10", "status": "status_7"}}, {"Story": {"id": "1158335167004806717", "name": "分支上增加显示玩家名称的功能", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004800802", "name": "PSO收集", "due": null, "status": "status_8"}}, {"Story": {"id": "1158335167004794635", "name": "客户端审核 - 格挡功能-子弹奉还", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004794632", "name": "客户端审核 - 弹道系统现有配置优化", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004794631", "name": "客户端审核 - 弹道系统优化- 激光类bullet", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004794629", "name": "客户端审核 - 弹道系统优化- AOE伤害&子弹爆炸", "due": null, "status": "status_7"}}, {"Story": {"id": "1158335167004792154", "name": "玄铁飞天盾 - 格挡成功超出弧度生成多个盾后,若当前盾X秒内未再次受击则消散,直到仅剩下一个盾时,回到1倍大小", "due": "2026-04-10", "status": "status_7"}}, {"Story": {"id": "1158335167004792153", "name": "玄铁飞天盾 - 格挡成功后,X秒内未再次受击,则平滑往环绕半径轨道上移动", "due": "2026-04-10", "status": "status_7"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 12:05:38", "task": "task3", "sync_id": "task3_20260312_120537_b6645a54", "module": "tapd", "operation": "bugs", "success": true, "request": {"workspace_id": "58335167", "current_owner": "BardLin", "fields": "id,title,deadline,status"}, "response": {"status": 1, "data": [{"Bug": {"id": "1158335167002283694", "title": "受击动画中,root质心需要跟随人物模型运动(如击飞、击浮空时root需要向上跟随),否则浮空连击时,敌人位置会频繁上下跳动。", "deadline": "2025-12-05", "status": "closed"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 12:05:38", "task": "task3", "sync_id": "task3_20260312_120537_b6645a54", "module": "tapd", "operation": "bugs", "success": true, "request": {"workspace_id": "58335167", "current_owner": "星渊", "fields": "id,title,deadline,status"}, "response": {"status": 1, "data": [{"Bug": {"id": "1158335167002296797", "title": "优化性能,分辨率提升为1080P,静态帧率基本稳定60fps", "deadline": "2025-12-22", "status": "closed"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 12:05:38", "task": "task3", "sync_id": "task3_20260312_120537_b6645a54", "module": "tapd", "operation": "bugs", "success": true, "request": {"workspace_id": "58335167", "current_owner": "mithril", "fields": "id,title,deadline,status"}, "response": {"status": 1, "data": [{"Bug": {"id": "1158335167002280921", "title": "【UI】【单机】血条UI歪了,不在屏幕正中间了@mithril(hanjingchao)", "deadline": "2025-12-01", "status": "closed"}}, {"Bug": {"id": "1158335167002280929", "title": "【联机】【弹道】左键第三段,第四段,飞剑子弹数量会丢失几根@mithril(hanjingchao)", "deadline": "2025-12-02", "status": "closed"}}, {"Bug": {"id": "1158335167002280930", "title": "【联机】【弹道】子弹受击特效丢失了@mithril(hanjingchao)", "deadline": "2025-12-01", "status": "closed"}}, {"Bug": {"id": "1158335167002280931", "title": "【联机】【UI】对方的体力条会显示得特别大@mithril(hanjingchao)", "deadline": "2025-12-02", "status": "closed"}}, {"Bug": {"id": "1158335167002283432", "title": "更新之后,放左键,没目标时弹道坏了,不会正确追踪地形", "deadline": "2025-12-09", "status": "closed"}}, {"Bug": {"id": "1158335167002287668", "title": "格挡成功后,延迟时间内盾也要保证和角色相对移动,(当前是会静止在原地,不跟随角色移动)", "deadline": "2025-12-12", "status": "closed"}}, {"Bug": {"id": "1158335167002287671", "title": "格挡成功后,延迟时间内再次格挡,则要刷新当前延迟时间(当前延迟时间内再次受击,延迟时间感觉并没有被刷新)", "deadline": "2025-12-16", "status": "closed"}}, {"Bug": {"id": "1158335167002287675", "title": "在新生成盾时,盾的内外表现不对,且旋转方向不对", "deadline": "2025-12-12", "status": "closed"}}, {"Bug": {"id": "1158335167002294091", "title": "【联机】【符箓】土牢符会把自己困住", "deadline": "2025-12-18", "status": "closed"}}, {"Bug": {"id": "1158335167002294096", "title": "【联机】【法宝】飞天盾会挡住自己的子弹", "deadline": "2025-12-18", "status": "closed"}}, {"Bug": {"id": "1158335167002295354", "title": "飞天盾相关bug - 子弹会穿盾,对角色造成伤害", "deadline": "2025-12-20", "status": "closed"}}, {"Bug": {"id": "1158335167002295358", "title": "限制生成初始总数量为1,避免多次使用生成多个盾(再次使用时刷新盾血量和持续时间)", "deadline": "2025-12-20", "status": "closed"}}, {"Bug": {"id": "1158335167002295360", "title": "飞天盾相关bug - 持续时间配置,避免盾一直不消失", "deadline": "2025-12-20", "status": "closed"}}, {"Bug": {"id": "1158335167002296688", "title": "【BUG】包里能不能默认 DisableAllScreenMessages", "deadline": "2025-12-22", "status": "closed"}}, {"Bug": {"id": "1158335167002297733", "title": "【高-BUG】左键普攻,第四段飞剑命中后会延迟一会才消失,希望和前三段一样快速消失", "deadline": "2025-12-25", "status": "closed"}}, {"Bug": {"id": "1158335167002299602", "title": "【高-BUG】土牢符的符纸,自己能锁定", "deadline": "2025-12-27", "status": "closed"}}, {"Bug": {"id": "1158335167002300378", "title": "【bug】土牢符陷阱现在不开神识探查也能看见", "deadline": "2025-12-30", "status": "in_progress"}}, {"Bug": {"id": "1158335167002300531", "title": "【致命-BUG】按G会Crash,复现较为频繁", "deadline": "2025-12-28", "status": "closed"}}, {"Bug": {"id": "1158335167002300717", "title": "【高-BUG】巨剑术诀子弹,命中海王兽场景海面底下的地面时没有正确触发overlap事件,停在表面并播特效", "deadline": "2025-12-31", "status": "closed"}}, {"Bug": {"id": "1158335167002300837", "title": "【高-bug】MoveToTargetEX触发的时候,能直接从土牢符里穿出来,需要正常阻挡自身和目标穿出土牢符", "deadline": "2025-12-31", "status": "closed"}}, {"Bug": {"id": "1158335167002304061", "title": "【需Merge分支】【高-BUG】【联机】现在破定期间Q环绕飞剑,只环绕一次就消失了。", "deadline": "2026-01-07", "status": "closed"}}], "info": "success"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "api_call", "timestamp": "2026-03-12 12:05:39", "task": "task3", "sync_id": "task3_20260312_120537_b6645a54", "module": "wework", "operation": "webhook/send", "success": true, "request": {"msgtype": "markdown", "markdown": {"content": "⏰ TAPD 过期单提醒(2026-03-12)\n\n\n\n<@BardLin>(12 条过期)\n1.【需求】主角战斗 - 动作资源 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004787973)\n2.【需求】空中待机 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004774664)\n3.【需求】雷属性受击 - 起始 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004774629)\n4.【需求】雷属性受击 - 循环 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004774628)\n5.【需求】飞遁动画 | 过期 41 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004828079)\n6.【需求】右键垫步突进 | 过期 34 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827909)\n7.【需求】青凝镜-回收Layout | 过期 13 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827996)\n8.【需求】青凝镜-检视表演Layout | 过期 12 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827991)\n9.【需求】青凝镜-召唤Layout | 过期 12 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827989)\n10.【需求】空中右键下劈 | 过期 12 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827910)\n11.【需求】噬金虫召唤动画Layout | 过期 3 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004827929)\n12.【需求】3C-基础移动-Bug-Dodge卡帧 | 过期 2 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004866823)\n========================\n\n\n<@mi>(2 条过期)\n13.【缺陷】【bug】土牢符陷阱现在不开神识探查也能看见 | 过期 72 天 | [查看](https://www.tapd.cn/58335167/bugtrace/bugs/view?bug_id=1158335167002300378)\n14.【需求】客户端审核 - 消耗品使用逻辑 | 过期 6 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004828679)\n========================\n\n\n<@xingyuan>(13 条过期)\n15.【需求】AS脚本Bind扩展 | 过期 37 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839302)\n16.【需求】尝试AS写Validator | 过期 37 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839301)\n17.【需求】Data Validator框架 | 过期 37 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839234)\n18.【需求】材质Mask模式不受motion blur影响 | 过期 35 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839323)\n19.【需求】Kawaii,Magic,AnimVelet调研 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839272)\n20.【需求】Chaos布料算法调研 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839270)\n21.【需求】编译Android版 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839267)\n22.【需求】对GPU解算进行改近 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839266)\n23.【需求】理解GPU算法 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839259)\n24.【需求】调试和理解NvCloth算法 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839246)\n25.【需求】NvCloth调研 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839241)\n26.【需求】布料解算基建 | 过期 27 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004839239)\n27.【需求】3C-基础移动-Bug-Dodge卡帧 | 过期 2 天 | [查看](https://www.tapd.cn/58335167/prong/stories/view/1158335167004866823)\n========================\n共 27 条过期单,请今日内更新状态 🙏"}, "mentioned_list": ["BardLin", "mi", "xingyuan"]}, "response": {"errcode": 0, "errmsg": "ok"}, "error_message": null, "duration_ms": null, "extra": {}} +{"event_type": "end_sync", "timestamp": "2026-03-12 12:05:39", "task": "task3", "sync_id": "task3_20260312_120537_b6645a54", "success": true, "stats": {"overdue_count": 27}, "error_message": null, "extra": {}} diff --git a/src3/__init__.py b/src3/__init__.py new file mode 100644 index 0000000..c32afa0 --- /dev/null +++ b/src3/__init__.py @@ -0,0 +1 @@ +# 任务三:TAPD过期单推送 diff --git a/src3/config.py b/src3/config.py new file mode 100644 index 0000000..4b46b7b --- /dev/null +++ b/src3/config.py @@ -0,0 +1,82 @@ +"""任务三配置管理""" +from src.config import ConfigManager +from pathlib import Path + + +class Task3ConfigManager(ConfigManager): + """任务三配置管理器""" + + def __init__(self): + project_root = Path(__file__).parent.parent + config_path = project_root / "config3" / "config.ini" + super().__init__(config_path) + + def get_workspace_id(self) -> str: + """获取TAPD工作空间ID""" + if not self.config.has_section('TAPD'): + raise ValueError("配置文件缺少[TAPD]节") + if not self.config.has_option('TAPD', 'workspace_id'): + raise ValueError("配置文件[TAPD]节缺少workspace_id配置项") + workspace_id = self.config.get('TAPD', 'workspace_id').strip() + if not workspace_id: + raise ValueError("workspace_id配置项不能为空") + return workspace_id + + def get_push_time(self) -> str: + """获取推送时间""" + if not self.config.has_section('Schedule'): + return "09:30" + return self.config.get('Schedule', 'push_time', fallback='09:30').strip() + + def get_skip_weekend(self) -> bool: + """是否跳过周末""" + if not self.config.has_section('Schedule'): + return True + return self.config.getboolean('Schedule', 'skip_weekend', fallback=True) + + def get_webhook_url(self) -> str: + """获取企微Webhook URL""" + if not self.config.has_section('WeWork'): + raise ValueError("配置文件缺少[WeWork]节") + if not self.config.has_option('WeWork', 'webhook_url'): + raise ValueError("配置文件[WeWork]节缺少webhook_url配置项") + webhook_url = self.config.get('WeWork', 'webhook_url').strip() + if not webhook_url: + raise ValueError("webhook_url配置项不能为空") + return webhook_url + + def get_tech_team_config(self) -> dict: + """解析技术组成员配置 + 返回: { + 'member_list': ['范宇', '杰割', '周浩'], + 'user_mapping': {'范宇': 'FanYu', '杰割': 'JieGe', '周浩': 'ZhouHao'} + } + """ + if not self.config.has_section('TechTeam'): + raise ValueError("配置文件缺少[TechTeam]节") + if not self.config.has_option('TechTeam', 'members'): + raise ValueError("配置文件[TechTeam]节缺少members配置项") + + members_str = self.config.get('TechTeam', 'members').strip() + if not members_str: + raise ValueError("members配置项不能为空") + + member_list = [] + user_mapping = {} + + for item in members_str.split(','): + item = item.strip() + if ':' not in item: + raise ValueError(f"成员配置格式错误: {item},应为'TAPD用户名:企微UserID'") + tapd_name, wework_id = item.split(':', 1) + tapd_name = tapd_name.strip() + wework_id = wework_id.strip() + if not tapd_name or not wework_id: + raise ValueError(f"成员配置格式错误: {item}") + member_list.append(tapd_name) + user_mapping[tapd_name] = wework_id + + return { + 'member_list': member_list, + 'user_mapping': user_mapping + } diff --git a/src3/logger.py b/src3/logger.py new file mode 100644 index 0000000..19bc590 --- /dev/null +++ b/src3/logger.py @@ -0,0 +1,14 @@ +"""任务三日志系统""" +from src.api_logger import APILogger +from pathlib import Path + +project_root = Path(__file__).parent.parent +TASK3_LOG_DIR = project_root / "logs3" +_task3_logger = None + +def get_task3_logger() -> APILogger: + """获取任务三日志实例""" + global _task3_logger + if _task3_logger is None: + _task3_logger = APILogger(log_dir=str(TASK3_LOG_DIR), task_name="task3") + return _task3_logger diff --git a/src3/main.py b/src3/main.py new file mode 100644 index 0000000..c9b9a98 --- /dev/null +++ b/src3/main.py @@ -0,0 +1,68 @@ +"""任务三主流程""" +import sys +from pathlib import Path +from datetime import datetime + +# 添加项目根目录到Python路径 +project_root = Path(__file__).parent.parent +sys.path.insert(0, str(project_root)) + +from src3.logger import get_task3_logger +from src3.config import Task3ConfigManager +from src3.overdue_fetcher import OverdueFetcher +from src3.message_formatter import MessageFormatter +from src3.webhook_sender import WebhookSender + + +def run_once(): + """执行一次过期单推送""" + logger = get_task3_logger() + sync_id = logger.start_sync("manual") + + try: + print("任务三:TAPD过期单推送") + + # 1. 加载配置 + config = Task3ConfigManager() + workspace_id = config.get_workspace_id() + webhook_url = config.get_webhook_url() + tech_team = config.get_tech_team_config() + member_list = tech_team['member_list'] + user_mapping = tech_team['user_mapping'] + print(f"技术组成员: {member_list}") + + # 2. 获取过期单 + fetcher = OverdueFetcher(workspace_id, logger) + items = fetcher.fetch_all_overdue(member_list) + + if not items: + print("没有过期单") + logger.end_sync_with_stats({"overdue_count": 0}, True, sync_id=sync_id) + return + + print(f"获取到 {len(items)} 条过期单") + + # 3. 格式化消息 + formatter = MessageFormatter() + today = datetime.now().strftime('%Y-%m-%d') + content, mentioned_list = formatter.format_message(items, user_mapping, today) + + # 4. 发送消息 + sender = WebhookSender(webhook_url, logger) + success = sender.send_markdown(content, mentioned_list) + + if success: + print(f"✓ 推送成功") + logger.end_sync_with_stats({"overdue_count": len(items)}, True, sync_id=sync_id) + else: + print("✗ 推送失败") + logger.end_sync_with_stats({"overdue_count": len(items)}, False, "推送失败", sync_id=sync_id) + + except Exception as e: + print(f"执行失败: {e}") + logger.end_sync_with_stats({}, False, str(e), sync_id=sync_id) + raise + + +if __name__ == "__main__": + run_once() diff --git a/src3/message_formatter.py b/src3/message_formatter.py new file mode 100644 index 0000000..753818a --- /dev/null +++ b/src3/message_formatter.py @@ -0,0 +1,72 @@ +"""消息格式化器""" +from typing import List, Dict +from datetime import datetime + + +class MessageFormatter: + """消息格式化器""" + + def format_message(self, items: List[dict], user_mapping: Dict[str, str], date: str = None) -> tuple: + """格式化消息 + 返回: (markdown_content, mentioned_list) + """ + if not items: + return None, [] + + if date is None: + date = datetime.now().strftime('%Y-%m-%d') + + # 按处理人分组 + grouped = self._group_by_owner(items) + + # 排序 + sorted_groups = self._sort_groups(grouped) + + # 生成Markdown + lines = [f"⏰ TAPD 过期单提醒({date})\n\n"] + mentioned_list = [] + total_count = 0 + item_index = 1 + + for owner, owner_items in sorted_groups: + wework_id = user_mapping.get(owner, owner) + mentioned_list.append(wework_id) + + lines.append(f"<@{wework_id}>({len(owner_items)} 条过期)") + + for item in owner_items: + type_label = "需求" if item['type'] == 'story' else "缺陷" + title = item.get('name') or item.get('title', '未命名') + lines.append(f"{item_index}.【{type_label}】{title} | 过期 {item['overdue_days']} 天 | [查看]({item['url']})") + item_index += 1 + total_count += 1 + + lines.append("\n\n========================") + + lines.append(f"共 {total_count} 条过期单,请今日内更新状态 🙏") + + return "\n".join(lines), mentioned_list + + def _group_by_owner(self, items: List[dict]) -> Dict[str, List[dict]]: + """按处理人分组""" + grouped = {} + for item in items: + owner = item['owner'] + if owner not in grouped: + grouped[owner] = [] + grouped[owner].append(item) + return grouped + + def _sort_groups(self, grouped: Dict[str, List[dict]]) -> List[tuple]: + """排序:组内按过期天数降序,组间按最大过期天数降序""" + sorted_groups = [] + + for owner, items in grouped.items(): + # 组内排序 + items.sort(key=lambda x: x['overdue_days'], reverse=True) + sorted_groups.append((owner, items)) + + # 组间排序 + sorted_groups.sort(key=lambda x: max(item['overdue_days'] for item in x[1]), reverse=True) + + return sorted_groups diff --git a/src3/overdue_fetcher.py b/src3/overdue_fetcher.py new file mode 100644 index 0000000..d6a15ac --- /dev/null +++ b/src3/overdue_fetcher.py @@ -0,0 +1,39 @@ +"""过期单获取器""" +from typing import List, Dict +from datetime import datetime +from src3.tapd_api import TAPDUnifiedApi + + +class OverdueFetcher: + """过期单获取器""" + + def __init__(self, workspace_id: str, logger): + self.workspace_id = workspace_id + self.logger = logger + self.api = TAPDUnifiedApi(workspace_id, logger) + + def fetch_all_overdue(self, owner_list: List[str]) -> List[dict]: + """获取所有过期单(需求+缺陷)""" + stories = self.api.get_overdue_stories(owner_list) + bugs = self.api.get_overdue_bugs(owner_list) + + # 合并并计算过期天数 + all_items = stories + bugs + for item in all_items: + item['overdue_days'] = self.calculate_overdue_days(item['due']) + item['url'] = self._get_url(item) + + return all_items + + def calculate_overdue_days(self, due_date: str) -> int: + """计算过期天数""" + today = datetime.now().date() + due = datetime.strptime(due_date, '%Y-%m-%d').date() + return (today - due).days + + def _get_url(self, item: dict) -> str: + """获取单据URL""" + if item['type'] == 'story': + return self.api.get_story_url(item['id']) + else: + return self.api.get_bug_url(item['id']) diff --git a/src3/tapd_api.py b/src3/tapd_api.py new file mode 100644 index 0000000..8ce18f5 --- /dev/null +++ b/src3/tapd_api.py @@ -0,0 +1,128 @@ +"""任务三TAPD API - 整合Story和Bug查询""" +import os +import requests +from typing import List, Dict +from requests.auth import HTTPBasicAuth +from datetime import datetime + + +class TAPDUnifiedApi: + """统一的TAPD API,整合Story和Bug查询""" + + BASE_URL = "https://tapd-api.bilibili.co/tapd" + + # 需求终态 + STORY_TERMINAL_STATUSES = ['status_8', 'status_12'] # 已完成、取消 + # 缺陷终态 + BUG_TERMINAL_STATUSES = ['rejected', 'closed'] # 取消、验证通过 + + def __init__(self, workspace_id: str, logger): + self.workspace_id = workspace_id + self.logger = logger + + self.api_user = os.environ.get('TAPD_API_USER') + self.api_password = os.environ.get('TAPD_API_PASSWORD') + + if not self.api_user or not self.api_password: + raise ValueError("TAPD认证信息未设置") + + self.auth = HTTPBasicAuth(self.api_user, self.api_password) + self.session = requests.Session() + + def _make_request(self, endpoint: str, params: Dict) -> Dict: + """发起TAPD API请求""" + url = f"{self.BASE_URL}/{endpoint}" + + try: + response = self.session.get(url, params=params, auth=self.auth, timeout=30) + response.raise_for_status() + result = response.json() + + if result.get('status') != 1: + raise RuntimeError(f"TAPD API返回错误: {result}") + + self.logger.log_api_call("tapd", endpoint, params, result, True) + return result + except Exception as e: + self.logger.log_api_call("tapd", endpoint, params, {}, False, str(e)) + raise + + def get_overdue_stories(self, owner_list: List[str]) -> List[dict]: + """获取过期需求""" + today = datetime.now().strftime('%Y-%m-%d') + all_stories = [] + + for owner in owner_list: + params = { + 'workspace_id': self.workspace_id, + 'owner': owner, + 'fields': 'id,name,due,status' + } + + try: + result = self._make_request("stories", params) + data = result.get('data', []) + + for item in data: + story = item.get('Story', {}) + due_date = story.get('due', '') + status = story.get('status', '') + + # 过滤:有截止日期、已过期、非终态 + if due_date and due_date < today and status not in self.STORY_TERMINAL_STATUSES: + all_stories.append({ + 'id': story.get('id'), + 'name': story.get('name'), + 'owner': owner, + 'due': due_date, + 'status': status, + 'type': 'story' + }) + except Exception as e: + pass + + return all_stories + + def get_overdue_bugs(self, owner_list: List[str]) -> List[dict]: + """获取过期缺陷""" + today = datetime.now().strftime('%Y-%m-%d') + all_bugs = [] + + for owner in owner_list: + params = { + 'workspace_id': self.workspace_id, + 'current_owner': owner, + 'fields': 'id,title,deadline,status' + } + + try: + result = self._make_request("bugs", params) + data = result.get('data', []) + + for item in data: + bug = item.get('Bug', {}) + deadline = bug.get('deadline', '') + status = bug.get('status', '') + + # 过滤:有截止日期、已过期、非终态 + if deadline and deadline < today and status not in self.BUG_TERMINAL_STATUSES: + all_bugs.append({ + 'id': bug.get('id'), + 'title': bug.get('title'), + 'owner': owner, + 'due': deadline, + 'status': status, + 'type': 'bug' + }) + except Exception as e: + pass + + return all_bugs + + def get_story_url(self, story_id: str) -> str: + """生成需求URL""" + return f"https://www.tapd.cn/{self.workspace_id}/prong/stories/view/{story_id}" + + def get_bug_url(self, bug_id: str) -> str: + """生成缺陷URL""" + return f"https://www.tapd.cn/{self.workspace_id}/bugtrace/bugs/view?bug_id={bug_id}" diff --git a/src3/webhook_sender.py b/src3/webhook_sender.py new file mode 100644 index 0000000..9391759 --- /dev/null +++ b/src3/webhook_sender.py @@ -0,0 +1,40 @@ +"""Webhook推送器""" +import requests +import time +from typing import List + + +class WebhookSender: + """企微Webhook推送器""" + + def __init__(self, webhook_url: str, logger): + self.webhook_url = webhook_url + self.logger = logger + + def send_markdown(self, content: str, mentioned_list: List[str]) -> bool: + """发送Markdown消息""" + payload = { + "msgtype": "markdown", + "markdown": { + "content": content + }, + "mentioned_list": mentioned_list + } + + for attempt in range(3): + try: + response = requests.post(self.webhook_url, json=payload, timeout=10) + response.raise_for_status() + result = response.json() + + self.logger.log_api_call("wework", "webhook/send", payload, result, result.get('errcode') == 0) + + if result.get('errcode') == 0: + return True + except Exception as e: + self.logger.log_api_call("wework", "webhook/send", payload, {}, False, str(e)) + + if attempt < 2: + time.sleep(30) + + return False