sophhub 0.4.32 → 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,6 +1,6 @@
1
1
  {
2
2
  "name": "sophhub",
3
- "version": "0.4.32",
3
+ "version": "0.4.34",
4
4
  "description": "SophHub CLI - Manage and download AI Agent skills and agents",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,12 +1,35 @@
1
1
  {
2
2
  "name": "online-bug-report",
3
- "version": "1.0.7",
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-05-28"
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,