vibego 0.2.29__py3-none-any.whl → 0.2.30__py3-none-any.whl

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.

Potentially problematic release.


This version of vibego might be problematic. Click here for more details.

bot.py CHANGED
@@ -623,8 +623,10 @@ def _unescape_if_already_escaped(text: str) -> str:
623
623
 
624
624
  def _prepare_model_payload(text: str) -> str:
625
625
  if _IS_MARKDOWN_V2:
626
- # 先转换标准 Markdown 格式为 Telegram 支持的格式
627
- normalized = _normalize_to_telegram_markdown(text)
626
+ # 先反转义已转义的内容,避免双重转义
627
+ cleaned = _unescape_if_already_escaped(text)
628
+ # 转换标准 Markdown 格式为 Telegram 支持的格式
629
+ normalized = _normalize_to_telegram_markdown(cleaned)
628
630
  # 再进行 MarkdownV2 转义
629
631
  return _escape_markdown_v2(normalized)
630
632
  if _IS_MARKDOWN:
master.py CHANGED
@@ -62,9 +62,28 @@ CONFIG_DB_PATH = Path(os.environ.get("MASTER_PROJECTS_DB_PATH", ROOT_DIR / "conf
62
62
  STATE_PATH = Path(os.environ.get("MASTER_STATE_PATH", ROOT_DIR / "state/state.json"))
63
63
  RUN_SCRIPT = ROOT_DIR / "scripts/run_bot.sh"
64
64
  STOP_SCRIPT = ROOT_DIR / "scripts/stop_bot.sh"
65
- RESTART_SIGNAL_PATH = Path(
66
- os.environ.get("MASTER_RESTART_SIGNAL_PATH", ROOT_DIR / "state/restart_signal.json")
67
- )
65
+
66
+
67
+ def _get_restart_signal_path() -> Path:
68
+ """
69
+ 获取重启信号文件路径,使用健壮的默认值逻辑。
70
+
71
+ 优先级:
72
+ 1. 环境变量 MASTER_RESTART_SIGNAL_PATH
73
+ 2. 配置目录 $MASTER_CONFIG_ROOT/state/restart_signal.json
74
+ 3. 代码目录 ROOT_DIR/state/restart_signal.json(兜底)
75
+
76
+ 这样可以确保 pipx 安装的版本和源码运行的版本使用同一个信号文件。
77
+ """
78
+ if env_path := os.environ.get("MASTER_RESTART_SIGNAL_PATH"):
79
+ return Path(env_path)
80
+
81
+ # 默认使用配置目录而非代码目录,确保跨安装方式的一致性
82
+ config_root = Path(os.environ.get("MASTER_CONFIG_ROOT", Path.home() / ".config/vibego"))
83
+ return config_root / "state/restart_signal.json"
84
+
85
+
86
+ RESTART_SIGNAL_PATH = _get_restart_signal_path()
68
87
  RESTART_SIGNAL_TTL = int(os.environ.get("MASTER_RESTART_SIGNAL_TTL", "1800")) # 默认 30 分钟
69
88
  LOCAL_TZ = ZoneInfo(os.environ.get("MASTER_TIMEZONE", "Asia/Shanghai"))
70
89
  JUMP_BUTTON_TEXT_WIDTH = 40
@@ -2866,6 +2885,18 @@ async def main() -> None:
2866
2885
 
2867
2886
  manager = await bootstrap_manager()
2868
2887
 
2888
+ # 诊断日志:记录重启信号文件路径,便于排查问题
2889
+ log.info(
2890
+ "重启信号文件路径: %s (存在: %s)",
2891
+ RESTART_SIGNAL_PATH,
2892
+ RESTART_SIGNAL_PATH.exists(),
2893
+ extra={
2894
+ "signal_path": str(RESTART_SIGNAL_PATH),
2895
+ "signal_exists": RESTART_SIGNAL_PATH.exists(),
2896
+ "env_override": os.environ.get("MASTER_RESTART_SIGNAL_PATH"),
2897
+ },
2898
+ )
2899
+
2869
2900
  master_token = os.environ.get("MASTER_BOT_TOKEN")
2870
2901
  if not master_token:
2871
2902
  log.error("MASTER_BOT_TOKEN 未设置")
scripts/start.sh CHANGED
@@ -256,7 +256,8 @@ if [[ -n "${MASTER_RESTART_EXPECTED:-}" ]]; then
256
256
  fi
257
257
 
258
258
  log_info "准备启动 master 进程..."
259
- nohup python master.py >> /dev/null 2>&1 &
259
+ # 显式传递环境变量给 nohup 进程,确保重启信号文件路径正确
260
+ MASTER_RESTART_SIGNAL_PATH="$MASTER_RESTART_SIGNAL_PATH" nohup python master.py >> /dev/null 2>&1 &
260
261
  MASTER_PID=$!
261
262
 
262
263
  # 健壮性检查:确保进程成功启动
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vibego
3
- Version: 0.2.29
3
+ Version: 0.2.30
4
4
  Summary: vibego CLI:用于初始化与管理 Telegram Master Bot 的工具
5
5
  Author: Hypha
6
6
  License-Expression: LicenseRef-Proprietary
@@ -1,6 +1,6 @@
1
- bot.py,sha256=2CYEIkjH4DKxqa26WEYdFfYc6DttFRLX7buh3acSrKE,271931
1
+ bot.py,sha256=uJcmMJmj5SlpwUXSgtnIEeNiUGkBg-lG5g6kM9BobP4,272046
2
2
  logging_setup.py,sha256=gvxHi8mUwK3IhXJrsGNTDo-DR6ngkyav1X-tvlBF_IE,4613
3
- master.py,sha256=mA8eXtTGHrtqZ3MB4u56unHnq8NEMm3HZ2GikxRFeYY,108225
3
+ master.py,sha256=CHCsjOYAhr_gnNb1Yl7NaOsFQTbRL9CdhLLMIlrx3G0,109337
4
4
  project_repository.py,sha256=UcthtSGOJK0cTE5bQCneo3xkomRG-kyc1N1QVqxeHIs,17577
5
5
  scripts/__init__.py,sha256=LVrXUkvWKoc6Sb47X5G0gbIxu5aJ2ARW-qJ14vwi5vM,65
6
6
  scripts/bump_version.sh,sha256=a4uB8V8Y5LPsoqTCdzQKsEE8HhwpBmqRaQInG52LDig,4089
@@ -9,7 +9,7 @@ scripts/master_healthcheck.py,sha256=-X0VVsZ0AXaOb7izxTO_oyu23g_1jsirNdGIcP8nrSI
9
9
  scripts/publish.sh,sha256=ehLfMedcXuGKJ87jpZy3kuiFszG9Cpavp3zXPfR4h-g,3511
10
10
  scripts/requirements.txt,sha256=QSt30DSSSHtfucTFPpc7twk9kLS5rVLNTcvDiagxrZg,62
11
11
  scripts/run_bot.sh,sha256=rN4K1nz041XBaUJmnBBKHS2cHmQf11vPNX8wf1hbVR4,4596
12
- scripts/start.sh,sha256=b9YXd3pxCdSO8Ij1utCHfA897nhNK5Fcd4jsSW0tMPU,9857
12
+ scripts/start.sh,sha256=WxByzBXALfjcjhGPCrLHLkaD8hNYZ2WDQAZ0tpoQSeA,9996
13
13
  scripts/start_tmux_codex.sh,sha256=xyLv29p924q-ysxvZYAP3T6VrqLPBPMBWo9QP7cuL50,4438
14
14
  scripts/stop_all.sh,sha256=FOz07gi2CI9sMHxBb8XkqHtxRYs3jt1RYgGrEi-htVg,4086
15
15
  scripts/stop_bot.sh,sha256=ot6Sm0IYoXuRNslUVEflQmJKu5Agm-5xIUXXudJWyTM,5588
@@ -426,14 +426,14 @@ tasks/constants.py,sha256=tS1kZxBIUm3JJUMHm25XI-KHNUZl5NhbbuzjzL_rF-c,299
426
426
  tasks/fsm.py,sha256=rKXXLEieQQU4r2z_CZUvn1_70FXiZXBBugF40gpe_tQ,1476
427
427
  tasks/models.py,sha256=N_qqRBo9xMSV0vbn4k6bLBXT8C_dp_oTFUxvdx16ZQM,2459
428
428
  tasks/service.py,sha256=w_S_aWiVqRXzXEpimLDsuCCCX2lB5uDkff9aKThBw9c,41916
429
- vibego_cli/__init__.py,sha256=61buX089vb0PZ-RiczZ0GC5cWtW3UF8Rzrbtz2jaCeA,311
429
+ vibego_cli/__init__.py,sha256=cGLGVLdOGT2rC2HZZBaLnLPkoa2ofpzKfDuuMEhgNeY,311
430
430
  vibego_cli/__main__.py,sha256=qqTrYmRRLe4361fMzbI3-CqpZ7AhTofIHmfp4ykrrBY,158
431
431
  vibego_cli/config.py,sha256=VxkPJMq01tA3h3cOkH-z_tiP7pMgfSGGicRvUnCWkhI,3054
432
432
  vibego_cli/deps.py,sha256=1nRXI7Dd-S1hYE8DligzK5fIluQWETRUj4_OKL0DikQ,1419
433
433
  vibego_cli/main.py,sha256=X__NXwZnIDIFbdKSTbNyZgZHKcPlN0DQz9sqTI1aQ9E,12158
434
434
  vibego_cli/data/worker_requirements.txt,sha256=QSt30DSSSHtfucTFPpc7twk9kLS5rVLNTcvDiagxrZg,62
435
- vibego-0.2.29.dist-info/METADATA,sha256=pdMyS37l5cTSjvT3VDskVou0t_8f64wP1SQ6qwiDszk,10475
436
- vibego-0.2.29.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
437
- vibego-0.2.29.dist-info/entry_points.txt,sha256=Lsy_zm-dlyxt8-9DL9blBReIwU2k22c8-kifr46ND1M,48
438
- vibego-0.2.29.dist-info/top_level.txt,sha256=R56CT3nW5H5v3ce0l3QDN4-C4qxTrNWzRTwrxnkDX4U,69
439
- vibego-0.2.29.dist-info/RECORD,,
435
+ vibego-0.2.30.dist-info/METADATA,sha256=Ksc_G1L5Gn8gIEDXPTVHhQYXereR6HczAjdfEcsAdRc,10475
436
+ vibego-0.2.30.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
437
+ vibego-0.2.30.dist-info/entry_points.txt,sha256=Lsy_zm-dlyxt8-9DL9blBReIwU2k22c8-kifr46ND1M,48
438
+ vibego-0.2.30.dist-info/top_level.txt,sha256=R56CT3nW5H5v3ce0l3QDN4-C4qxTrNWzRTwrxnkDX4U,69
439
+ vibego-0.2.30.dist-info/RECORD,,
vibego_cli/__init__.py CHANGED
@@ -7,6 +7,6 @@ from __future__ import annotations
7
7
 
8
8
  __all__ = ["main", "__version__"]
9
9
 
10
- __version__ = "0.2.29"
10
+ __version__ = "0.2.30"
11
11
 
12
12
  from .main import main # noqa: E402