sophhub 0.4.33 → 0.4.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1,12 +1,35 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "online-bug-report",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.10",
|
|
4
4
|
"types": [
|
|
5
5
|
"store"
|
|
6
6
|
],
|
|
7
7
|
"displayName": "在线提Bug",
|
|
8
8
|
"description": "当用户说「在线提交bug」时,收集问题描述并通过虾友 DM 提交工单。",
|
|
9
9
|
"changelog": [
|
|
10
|
+
{
|
|
11
|
+
"changes": [
|
|
12
|
+
"evals 断言改为引擎可识别的 contains/不包含 规则",
|
|
13
|
+
"design.md 同步联系电话与 --phone 说明"
|
|
14
|
+
],
|
|
15
|
+
"date": "2026-06-01",
|
|
16
|
+
"version": "1.0.10"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"changes": [
|
|
20
|
+
"新增 evals/evals.json(7 条 D1 用例,满足 CI check_evals)"
|
|
21
|
+
],
|
|
22
|
+
"date": "2026-06-01",
|
|
23
|
+
"version": "1.0.9"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"changes": [
|
|
27
|
+
"收集用户联系电话并在虾友工单中展示",
|
|
28
|
+
"send/preview 新增必填参数 --phone"
|
|
29
|
+
],
|
|
30
|
+
"date": "2026-06-01",
|
|
31
|
+
"version": "1.0.8"
|
|
32
|
+
},
|
|
10
33
|
{
|
|
11
34
|
"changes": [
|
|
12
35
|
"新增 ensure-friend 子命令,add_friend.py 删除逻辑内置",
|
|
@@ -75,5 +98,5 @@
|
|
|
75
98
|
}
|
|
76
99
|
],
|
|
77
100
|
"createdAt": "2026-05-18",
|
|
78
|
-
"updatedAt": "2026-
|
|
101
|
+
"updatedAt": "2026-06-01"
|
|
79
102
|
}
|
|
@@ -19,7 +19,7 @@ uv run {baseDir}/scripts/report_bug.py ensure-friend --json
|
|
|
19
19
|
| 2 | 回复「研发值班还不是您的好友,已自动发送申请。通过后请重新提交 Bug」→ 结束 |
|
|
20
20
|
| 其他 | 回复「提交 Bug 失败,失败原因为:{stderr}」→ 结束 |
|
|
21
21
|
|
|
22
|
-
## Step 2
|
|
22
|
+
## Step 2:收集描述与联系电话
|
|
23
23
|
|
|
24
24
|
回复以下内容让用户补充:
|
|
25
25
|
|
|
@@ -27,9 +27,14 @@ uv run {baseDir}/scripts/report_bug.py ensure-friend --json
|
|
|
27
27
|
好的,我来帮您提交 Bug 工单。
|
|
28
28
|
|
|
29
29
|
请补充一下您的具体问题/现象,如果能提供复现步骤,那更好。
|
|
30
|
+
同时请留下您的联系电话,方便我们跟进处理。
|
|
30
31
|
```
|
|
31
32
|
|
|
32
|
-
|
|
33
|
+
记录用户原话作为 Bug 描述;单独记录用户提供的电话号码(仅用于工单,不要写入描述正文)。
|
|
34
|
+
|
|
35
|
+
- 若现象描述不足 → 追问「请问具体现象是什么?」
|
|
36
|
+
- 若未提供电话号码 → 追问「请提供您的联系电话,方便我们跟进处理。」
|
|
37
|
+
- 描述与电话号码都齐备后再进入 Step 3
|
|
33
38
|
|
|
34
39
|
## Step 3:提交工单
|
|
35
40
|
|
|
@@ -38,6 +43,7 @@ uv run {baseDir}/scripts/report_bug.py ensure-friend --json
|
|
|
38
43
|
```bash
|
|
39
44
|
uv run {baseDir}/scripts/report_bug.py send \
|
|
40
45
|
--description "{用户完整描述}" \
|
|
46
|
+
--phone "{用户提供的电话号码}" \
|
|
41
47
|
--session-key "{sessionKey}" \
|
|
42
48
|
--agent-id "{agentId}" \
|
|
43
49
|
--json
|
|
@@ -163,6 +163,7 @@ class BugReport:
|
|
|
163
163
|
sender_id: str
|
|
164
164
|
sender_name: str
|
|
165
165
|
user_description: str
|
|
166
|
+
phone_number: str
|
|
166
167
|
openclaw_base_url: Optional[str] = None
|
|
167
168
|
session_key: Optional[str] = None
|
|
168
169
|
session_url: Optional[str] = None
|
|
@@ -180,6 +181,8 @@ class BugReport:
|
|
|
180
181
|
raise AppError("sender-name 不能为空")
|
|
181
182
|
if not self.user_description.strip():
|
|
182
183
|
raise AppError("description 不能为空")
|
|
184
|
+
if not self.phone_number.strip():
|
|
185
|
+
raise AppError("phone 不能为空")
|
|
183
186
|
for url in self.oss_urls:
|
|
184
187
|
normalize_http_url(url, field_name="oss-url")
|
|
185
188
|
|
|
@@ -190,6 +193,7 @@ def format_bug_message(report: BugReport) -> str:
|
|
|
190
193
|
f"【在线 Bug】{ts}",
|
|
191
194
|
f"▎发件人:{report.sender_name.strip()}",
|
|
192
195
|
f"▎ID: {report.sender_id.strip()}",
|
|
196
|
+
f"▎联系电话:{report.phone_number.strip()}",
|
|
193
197
|
f"▎会话:{report.session_key.strip() if report.session_key else '(无)'}",
|
|
194
198
|
]
|
|
195
199
|
if report.openclaw_base_url:
|
|
@@ -492,6 +496,7 @@ def build_report_from_args(args: argparse.Namespace) -> BugReport:
|
|
|
492
496
|
sender_id=sender_id,
|
|
493
497
|
sender_name=sender_name,
|
|
494
498
|
user_description=args.description,
|
|
499
|
+
phone_number=args.phone,
|
|
495
500
|
openclaw_base_url=openclaw_base,
|
|
496
501
|
session_key=session_key,
|
|
497
502
|
session_url=session_url,
|
|
@@ -574,6 +579,7 @@ def add_report_args(parser: argparse.ArgumentParser) -> None:
|
|
|
574
579
|
parser.add_argument("--sender-id", default="", help="发件人 ID(默认从 JWT 自动解析)")
|
|
575
580
|
parser.add_argument("--sender-name", default="", help="发件人展示名(默认从 JWT 自动解析)")
|
|
576
581
|
parser.add_argument("--description", required=True, help="用户 Bug 描述")
|
|
582
|
+
parser.add_argument("--phone", required=True, help="用户联系电话")
|
|
577
583
|
parser.add_argument("--session-key", default="", help="当前会话 sessionKey")
|
|
578
584
|
parser.add_argument("--agent-id", default="", help="当前 Agent ID(用于定位 sessions 目录)")
|
|
579
585
|
parser.add_argument(
|
|
@@ -683,6 +689,7 @@ def main(argv: Optional[list[str]] = None) -> int:
|
|
|
683
689
|
"report": {
|
|
684
690
|
"senderId": report.sender_id,
|
|
685
691
|
"senderName": report.sender_name,
|
|
692
|
+
"phoneNumber": report.phone_number,
|
|
686
693
|
"model": report.model,
|
|
687
694
|
"modelProvider": report.model_provider,
|
|
688
695
|
"contextTokens": report.context_tokens,
|