vibego 0.2.44__py3-none-any.whl → 0.2.45__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.
- master.py +30 -5
- {vibego-0.2.44.dist-info → vibego-0.2.45.dist-info}/METADATA +1 -1
- {vibego-0.2.44.dist-info → vibego-0.2.45.dist-info}/RECORD +7 -7
- vibego_cli/__init__.py +1 -1
- {vibego-0.2.44.dist-info → vibego-0.2.45.dist-info}/WHEEL +0 -0
- {vibego-0.2.44.dist-info → vibego-0.2.45.dist-info}/entry_points.txt +0 -0
- {vibego-0.2.44.dist-info → vibego-0.2.45.dist-info}/top_level.txt +0 -0
master.py
CHANGED
|
@@ -261,6 +261,25 @@ def _ensure_numbered_markup(markup: Optional[InlineKeyboardMarkup]) -> Optional[
|
|
|
261
261
|
return markup
|
|
262
262
|
|
|
263
263
|
|
|
264
|
+
def _get_project_runtime_state(manager: "MasterManager", slug: str) -> Optional["ProjectState"]:
|
|
265
|
+
"""归一化查询项目运行状态,避免误用 FSMContext。
|
|
266
|
+
|
|
267
|
+
这里集中处理 slug 大小写并注释说明原因,防止在路由中覆盖 aiogram
|
|
268
|
+
提供的 `FSMContext`(详见官方文档:https://docs.aiogram.dev/en/dev-3.x/dispatcher/fsm/context.html)。
|
|
269
|
+
"""
|
|
270
|
+
|
|
271
|
+
normalized = (slug or "").strip().lower()
|
|
272
|
+
if not normalized:
|
|
273
|
+
return None
|
|
274
|
+
store = manager.state_store
|
|
275
|
+
if normalized in store.data:
|
|
276
|
+
return store.data[normalized]
|
|
277
|
+
for known_slug, runtime_state in store.data.items():
|
|
278
|
+
if known_slug.lower() == normalized:
|
|
279
|
+
return runtime_state
|
|
280
|
+
return None
|
|
281
|
+
|
|
282
|
+
|
|
264
283
|
def _terminate_other_master_processes(grace: float = 3.0) -> None:
|
|
265
284
|
"""在新 master 启动后终止其他残留 master 进程"""
|
|
266
285
|
existing: list[int] = []
|
|
@@ -1554,8 +1573,9 @@ async def _start_project_delete(
|
|
|
1554
1573
|
repository = _ensure_repository()
|
|
1555
1574
|
original_record = repository.get_by_slug(cfg.project_slug)
|
|
1556
1575
|
original_slug = original_record.project_slug if original_record else cfg.project_slug
|
|
1557
|
-
|
|
1558
|
-
|
|
1576
|
+
# 删除前再次读取运行态,避免 FSM 上下文被误覆盖
|
|
1577
|
+
project_runtime_state = _get_project_runtime_state(manager, cfg.project_slug)
|
|
1578
|
+
if project_runtime_state and project_runtime_state.status == "running":
|
|
1559
1579
|
await callback.answer("请先停止该项目的 worker 后再删除。", show_alert=True)
|
|
1560
1580
|
return
|
|
1561
1581
|
current_state = await state.get_state()
|
|
@@ -2177,7 +2197,8 @@ async def on_project_action(callback: CallbackQuery, state: FSMContext) -> None:
|
|
|
2177
2197
|
await callback.answer("未知项目", show_alert=True)
|
|
2178
2198
|
return
|
|
2179
2199
|
|
|
2180
|
-
|
|
2200
|
+
# 关键:避免覆盖 aiogram 传入的 FSMContext,因此运行态单独保存在 project_runtime_state 中
|
|
2201
|
+
project_runtime_state = _get_project_runtime_state(manager, cfg.project_slug) if cfg else None
|
|
2181
2202
|
model_name_map = dict(SWITCHABLE_MODELS)
|
|
2182
2203
|
|
|
2183
2204
|
if cfg:
|
|
@@ -2224,7 +2245,9 @@ async def on_project_action(callback: CallbackQuery, state: FSMContext) -> None:
|
|
|
2224
2245
|
callback_data=f"project:edit:{cfg.project_slug}",
|
|
2225
2246
|
)
|
|
2226
2247
|
)
|
|
2227
|
-
current_model_value =
|
|
2248
|
+
current_model_value = (
|
|
2249
|
+
project_runtime_state.model if project_runtime_state else cfg.default_model
|
|
2250
|
+
)
|
|
2228
2251
|
current_model_key = (current_model_value or "").lower()
|
|
2229
2252
|
current_model_label = model_name_map.get(current_model_key, current_model_value or current_model_key or "-")
|
|
2230
2253
|
builder.row(
|
|
@@ -2258,7 +2281,9 @@ async def on_project_action(callback: CallbackQuery, state: FSMContext) -> None:
|
|
|
2258
2281
|
if cfg is None or callback.message is None:
|
|
2259
2282
|
await callback.answer("未知项目", show_alert=True)
|
|
2260
2283
|
return
|
|
2261
|
-
current_model = (
|
|
2284
|
+
current_model = (
|
|
2285
|
+
project_runtime_state.model if project_runtime_state else cfg.default_model
|
|
2286
|
+
).lower()
|
|
2262
2287
|
builder = InlineKeyboardBuilder()
|
|
2263
2288
|
for value, label in SWITCHABLE_MODELS:
|
|
2264
2289
|
prefix = "✅ " if current_model == value else ""
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
bot.py,sha256=TthqY_Rvndzd3pgLH6lvPcsDXQbwkuMfB4W9qt_Li8I,273832
|
|
2
2
|
logging_setup.py,sha256=gvxHi8mUwK3IhXJrsGNTDo-DR6ngkyav1X-tvlBF_IE,4613
|
|
3
|
-
master.py,sha256=
|
|
3
|
+
master.py,sha256=pba43vEuUWUl9sbRrl6YtFtYLCqA5z4yTbuOY2hhMZ4,115085
|
|
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
|
|
@@ -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=
|
|
429
|
+
vibego_cli/__init__.py,sha256=vkjlYE-1XFlODsNR3y6j5DOAjO18Tivxh9D5tWiEhw8,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.
|
|
436
|
-
vibego-0.2.
|
|
437
|
-
vibego-0.2.
|
|
438
|
-
vibego-0.2.
|
|
439
|
-
vibego-0.2.
|
|
435
|
+
vibego-0.2.45.dist-info/METADATA,sha256=j9LQ8f3IaH0QT5WlaPPKopquoSPcEvA9YrzTbLTdC7Q,10519
|
|
436
|
+
vibego-0.2.45.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
437
|
+
vibego-0.2.45.dist-info/entry_points.txt,sha256=Lsy_zm-dlyxt8-9DL9blBReIwU2k22c8-kifr46ND1M,48
|
|
438
|
+
vibego-0.2.45.dist-info/top_level.txt,sha256=R56CT3nW5H5v3ce0l3QDN4-C4qxTrNWzRTwrxnkDX4U,69
|
|
439
|
+
vibego-0.2.45.dist-info/RECORD,,
|
vibego_cli/__init__.py
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|