vibego 0.2.27__py3-none-any.whl → 0.2.29__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.

scripts/start.sh CHANGED
@@ -3,10 +3,16 @@ set -eo pipefail
3
3
 
4
4
  ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
5
5
  LOCK_FILE="$ROOT_DIR/state/master_restart.lock"
6
- START_LOG="$ROOT_DIR/logs/start.log"
6
+ LOG_DIR="$ROOT_DIR/logs"
7
+ START_LOG="$LOG_DIR/start.log"
7
8
  CODEX_STAMP_FILE="$ROOT_DIR/state/npm_codex_install.stamp"
8
9
  CODEX_INSTALL_TTL="${CODEX_INSTALL_TTL:-86400}"
9
10
 
11
+ # 统一重启信号文件路径:使用配置目录而非代码目录
12
+ # 这样 pipx 安装的 master 和源码运行的 master 可以共享同一个信号文件
13
+ MASTER_CONFIG_ROOT="${MASTER_CONFIG_ROOT:-$HOME/.config/vibego}"
14
+ export MASTER_RESTART_SIGNAL_PATH="$MASTER_CONFIG_ROOT/state/restart_signal.json"
15
+
10
16
  log_line() {
11
17
  local ts
12
18
  ts=$(date '+%Y-%m-%d %H:%M:%S%z')
@@ -217,9 +223,29 @@ else
217
223
  source .venv/bin/activate
218
224
 
219
225
  # 安装依赖
226
+ # 将 pip 输出重定向到日志文件,避免 BrokenPipe 错误
220
227
  log_info "开始执行 pip install -r $REQUIREMENTS_FILE"
221
- pip install -r "$REQUIREMENTS_FILE"
222
- log_info "依赖安装完成"
228
+ PIP_LOG_FILE="$LOG_DIR/pip_install_$(date +%Y%m%d_%H%M%S).log"
229
+ if pip install -r "$REQUIREMENTS_FILE" > "$PIP_LOG_FILE" 2>&1; then
230
+ log_info "依赖安装完成"
231
+ else
232
+ PIP_EXIT_CODE=$?
233
+ log_error "pip install 失败,退出码=$PIP_EXIT_CODE,详见 $PIP_LOG_FILE"
234
+ # 如果是 BrokenPipe (退出码 141),验证依赖是否实际已安装
235
+ if [[ $PIP_EXIT_CODE -eq 141 ]]; then
236
+ log_info "检测到 BrokenPipe 错误,验证依赖完整性..."
237
+ # 验证关键依赖包是否可导入
238
+ if "$ROOT_DIR/.venv/bin/python" -c "import aiogram, aiohttp, aiosqlite" 2>/dev/null; then
239
+ log_info "依赖验证通过,BrokenPipe 可忽略,继续执行"
240
+ else
241
+ log_error "依赖验证失败,虽然是 BrokenPipe 但依赖未完整安装"
242
+ exit 1
243
+ fi
244
+ else
245
+ # 其他错误直接退出
246
+ exit $PIP_EXIT_CODE
247
+ fi
248
+ fi
223
249
  fi
224
250
 
225
251
  # 后台启动 master,日志落在 vibe.log
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vibego
3
- Version: 0.2.27
3
+ Version: 0.2.29
4
4
  Summary: vibego CLI:用于初始化与管理 Telegram Master Bot 的工具
5
5
  Author: Hypha
6
6
  License-Expression: LicenseRef-Proprietary
@@ -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=dS18-vTIb7BE_9_UEhDXWkYtIygLCU2Pj2k6Zmxe7QI,8633
12
+ scripts/start.sh,sha256=b9YXd3pxCdSO8Ij1utCHfA897nhNK5Fcd4jsSW0tMPU,9857
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=JRH5O_PqUsvb2Fp5C04XkdBun5Ieqx8MCx39Ktx1qpU,311
429
+ vibego_cli/__init__.py,sha256=61buX089vb0PZ-RiczZ0GC5cWtW3UF8Rzrbtz2jaCeA,311
430
430
  vibego_cli/__main__.py,sha256=qqTrYmRRLe4361fMzbI3-CqpZ7AhTofIHmfp4ykrrBY,158
431
- vibego_cli/config.py,sha256=33WSORCfUIxrDtgASPEbVqVLBVNHh-RSFLpNy7tfc0s,2992
431
+ vibego_cli/config.py,sha256=VxkPJMq01tA3h3cOkH-z_tiP7pMgfSGGicRvUnCWkhI,3054
432
432
  vibego_cli/deps.py,sha256=1nRXI7Dd-S1hYE8DligzK5fIluQWETRUj4_OKL0DikQ,1419
433
- vibego_cli/main.py,sha256=e2W5Pb9U9rfmF-jNX9uIA3222lhM0GgcvSdFTDBZd2s,12086
433
+ vibego_cli/main.py,sha256=X__NXwZnIDIFbdKSTbNyZgZHKcPlN0DQz9sqTI1aQ9E,12158
434
434
  vibego_cli/data/worker_requirements.txt,sha256=QSt30DSSSHtfucTFPpc7twk9kLS5rVLNTcvDiagxrZg,62
435
- vibego-0.2.27.dist-info/METADATA,sha256=o10irhxjDgq2c2hvcicdUuRxKQ3-KFRIo1ueu-WDzqo,10475
436
- vibego-0.2.27.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
437
- vibego-0.2.27.dist-info/entry_points.txt,sha256=Lsy_zm-dlyxt8-9DL9blBReIwU2k22c8-kifr46ND1M,48
438
- vibego-0.2.27.dist-info/top_level.txt,sha256=R56CT3nW5H5v3ce0l3QDN4-C4qxTrNWzRTwrxnkDX4U,69
439
- vibego-0.2.27.dist-info/RECORD,,
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,,
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.27"
10
+ __version__ = "0.2.29"
11
11
 
12
12
  from .main import main # noqa: E402
vibego_cli/config.py CHANGED
@@ -39,6 +39,7 @@ PROJECTS_JSON: Path = CONFIG_DIR / "projects.json"
39
39
  MASTER_DB: Path = CONFIG_DIR / "master.db"
40
40
  MASTER_STATE: Path = STATE_DIR / "master_state.json"
41
41
  MASTER_PID_FILE: Path = STATE_DIR / "master.pid"
42
+ RESTART_SIGNAL_PATH: Path = STATE_DIR / "restart_signal.json"
42
43
  LOG_FILE: Path = LOG_DIR / "vibe.log"
43
44
 
44
45
 
vibego_cli/main.py CHANGED
@@ -148,6 +148,7 @@ def _build_master_env(base_env: Dict[str, str]) -> Dict[str, str]:
148
148
  env["MASTER_PROJECTS_PATH"] = str(config.PROJECTS_JSON)
149
149
  env["MASTER_PROJECTS_DB_PATH"] = str(config.MASTER_DB)
150
150
  env["MASTER_STATE_PATH"] = str(config.MASTER_STATE)
151
+ env["MASTER_RESTART_SIGNAL_PATH"] = str(config.RESTART_SIGNAL_PATH)
151
152
  env["LOG_ROOT"] = str(config.LOG_DIR)
152
153
  env["TASKS_DATA_ROOT"] = str(config.DATA_DIR)
153
154
  env["LOG_FILE"] = str(config.LOG_FILE)