vibego 1.0.10__py3-none-any.whl → 1.0.11__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.
bot.py CHANGED
@@ -2394,6 +2394,9 @@ MODEL_PUSH_SUPPLEMENT_STATUSES: set[str] = {
2394
2394
  "research",
2395
2395
  "test",
2396
2396
  }
2397
+ PUSH_MODEL_SUPPLEMENT_IN_PROGRESS_TEXT = (
2398
+ "A supplementary description prompt is already active. Please respond or tap Skip/Cancel."
2399
+ )
2397
2400
 
2398
2401
  SUMMARY_COMMAND_PREFIX = "/task_summary_request_"
2399
2402
  SUMMARY_COMMAND_ALIASES: tuple[str, ...] = (
@@ -6849,6 +6852,10 @@ async def on_task_push_model(callback: CallbackQuery, state: FSMContext) -> None
6849
6852
  await callback.answer("Callback parameter error.", show_alert=True)
6850
6853
  return
6851
6854
  _, _, task_id = parts
6855
+ current_state = await state.get_state()
6856
+ existing_context: Dict[str, Any] = {}
6857
+ if current_state == TaskPushStates.waiting_supplement.state:
6858
+ existing_context = await state.get_data()
6852
6859
  task = await TASK_SERVICE.get_task(task_id)
6853
6860
  if task is None:
6854
6861
  await callback.answer("Task does not exist", show_alert=True)
@@ -6859,10 +6866,20 @@ async def on_task_push_model(callback: CallbackQuery, state: FSMContext) -> None
6859
6866
  actor = _actor_from_callback(callback)
6860
6867
  chat_id = callback.message.chat.id if callback.message else callback.from_user.id
6861
6868
  if task.status in MODEL_PUSH_SUPPLEMENT_STATUSES:
6869
+ origin_message = callback.message
6870
+ origin_message_id = origin_message.message_id if origin_message else None
6871
+ if (
6872
+ current_state == TaskPushStates.waiting_supplement.state
6873
+ and existing_context.get("task_id") == task_id
6874
+ and existing_context.get("origin_message_id") == origin_message_id
6875
+ ):
6876
+ await callback.answer(PUSH_MODEL_SUPPLEMENT_IN_PROGRESS_TEXT)
6877
+ return
6862
6878
  await state.clear()
6863
6879
  await state.update_data(
6864
6880
  task_id=task_id,
6865
- origin_message=callback.message,
6881
+ origin_message=origin_message,
6882
+ origin_message_id=origin_message_id,
6866
6883
  chat_id=chat_id,
6867
6884
  actor=actor,
6868
6885
  )
@@ -6962,16 +6979,31 @@ async def on_task_push_model_fill(callback: CallbackQuery, state: FSMContext) ->
6962
6979
  await callback.answer("Callback parameter error.", show_alert=True)
6963
6980
  return
6964
6981
  _, _, task_id = parts
6982
+ current_state = await state.get_state()
6983
+ existing_context: Dict[str, Any] = {}
6984
+ if current_state == TaskPushStates.waiting_supplement.state:
6985
+ existing_context = await state.get_data()
6965
6986
  task = await TASK_SERVICE.get_task(task_id)
6966
6987
  if task is None:
6967
6988
  await state.clear()
6968
6989
  await callback.answer("Task does not exist", show_alert=True)
6969
6990
  return
6970
6991
  actor = _actor_from_callback(callback)
6992
+ origin_message = callback.message
6993
+ origin_message_id = origin_message.message_id if origin_message else None
6994
+ if (
6995
+ current_state == TaskPushStates.waiting_supplement.state
6996
+ and existing_context.get("task_id") == task_id
6997
+ and existing_context.get("origin_message_id") == origin_message_id
6998
+ ):
6999
+ await callback.answer(PUSH_MODEL_SUPPLEMENT_IN_PROGRESS_TEXT)
7000
+ return
7001
+ await state.clear()
6971
7002
  await state.update_data(
6972
7003
  task_id=task_id,
6973
- origin_message=callback.message,
6974
- chat_id=callback.message.chat.id if callback.message else callback.from_user.id,
7004
+ origin_message=origin_message,
7005
+ origin_message_id=origin_message_id,
7006
+ chat_id=origin_message.chat.id if origin_message else callback.from_user.id,
6975
7007
  actor=actor,
6976
7008
  )
6977
7009
  await state.set_state(TaskPushStates.waiting_supplement)
@@ -8141,10 +8173,14 @@ async def on_start(m: Message):
8141
8173
  await m.answer(_format_env_issue_message())
8142
8174
 
8143
8175
  @router.message(F.text)
8144
- async def on_text(m: Message):
8176
+ async def on_text(m: Message, state: FSMContext | None = None):
8145
8177
  # Automatically record chat when first received message_id to state document
8146
8178
  _auto_record_chat_id(m.chat.id)
8147
8179
 
8180
+ current_state: Optional[str] = None
8181
+ if state is not None:
8182
+ current_state = await state.get_state()
8183
+
8148
8184
  prompt = (m.text or "").strip()
8149
8185
  if not prompt:
8150
8186
  return await m.answer("Please enter a non-empty prompt word")
@@ -8154,6 +8190,12 @@ async def on_text(m: Message):
8154
8190
  return
8155
8191
  if prompt.startswith("/"):
8156
8192
  return
8193
+ if current_state:
8194
+ worker_log.debug(
8195
+ "Suppressed model dispatch due to active wizard state",
8196
+ extra={**_session_extra(), "chat": m.chat.id, "state": current_state},
8197
+ )
8198
+ return
8157
8199
  await _handle_prompt_dispatch(m, prompt)
8158
8200
 
8159
8201
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vibego
3
- Version: 1.0.10
3
+ Version: 1.0.11
4
4
  Summary: vibego CLI: tools for bootstrapping and managing the Telegram Master Bot
5
5
  Author: DavidChan
6
6
  License-Expression: LicenseRef-Proprietary
@@ -1,4 +1,4 @@
1
- bot.py,sha256=bQ-tadaS-CX9699JhO6wtgBeAiXZsbb21GDRAusXJiQ,300928
1
+ bot.py,sha256=CZhCSzPAqoZnL_LDaO_qSNDTP562aU3JvHvafjPUz4s,302812
2
2
  logging_setup.py,sha256=ViXK11TNVakIbA8QMLKXa6ywpAV_j1ydcws0Hx2QqNo,5084
3
3
  master.py,sha256=bpcqGsUpk8kHW8sqD6QG6ss-5LGO1OsQ7zsdvkgDJ3E,132763
4
4
  project_repository.py,sha256=fdO3xzvt7eBLvek_3mXjXkFpALwllrNWDWeSjtscW2I,17675
@@ -427,15 +427,15 @@ tasks/constants.py,sha256=BNMxSnswF-PTij-p7paMK0G5Tj6wKN-6qpUlMwo1JQA,318
427
427
  tasks/fsm.py,sha256=6n0hdFNF3j6ZUcpdJ_TwZBgkrE8aMYHNLHppdGbXGO4,1494
428
428
  tasks/models.py,sha256=3OJL3F3nVZIQIejL6LplZkPQxYJXgOhCNA9Rikg8ihk,2461
429
429
  tasks/service.py,sha256=rzd2v3kZaRpTi54cEAg2GJbeg45VTufC8bGSL1nGJWc,40115
430
- vibego-1.0.10.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
431
- vibego_cli/__init__.py,sha256=FPYqYQIBrm5aP_ujpHbtBhSFUsvBDlKfE0fD-RdZFAo,350
430
+ vibego-1.0.11.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
431
+ vibego_cli/__init__.py,sha256=vIcx509KPFkxx_WGt0hrTRW9L4_1JAbHnojdgL2RZ7w,350
432
432
  vibego_cli/__main__.py,sha256=lM_m-i1x3yVNQhzRt8wqvuIYeeo1OlLNAEVoJVD7tmw,155
433
433
  vibego_cli/config.py,sha256=W-n5y4CTrRpencadWlmhpdrhUHX6tdXQEGXJG1pRM0U,3149
434
434
  vibego_cli/deps.py,sha256=nFT-DMsfAiD1lLFnDotxe6aYfeeD9V5TrIPbIbAMTF4,1478
435
435
  vibego_cli/main.py,sha256=CZAUHWr45GzzEfALoLuSrnvG2VUuCexiFuCpIvyH8Jc,12506
436
436
  vibego_cli/data/worker_requirements.txt,sha256=QSt30DSSSHtfucTFPpc7twk9kLS5rVLNTcvDiagxrZg,62
437
- vibego-1.0.10.dist-info/METADATA,sha256=gnkCSgLPXn8SwqS3DpNp4G8rIdrXxXZPvy3kRkVrHLI,11901
438
- vibego-1.0.10.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
439
- vibego-1.0.10.dist-info/entry_points.txt,sha256=Lsy_zm-dlyxt8-9DL9blBReIwU2k22c8-kifr46ND1M,48
440
- vibego-1.0.10.dist-info/top_level.txt,sha256=R56CT3nW5H5v3ce0l3QDN4-C4qxTrNWzRTwrxnkDX4U,69
441
- vibego-1.0.10.dist-info/RECORD,,
437
+ vibego-1.0.11.dist-info/METADATA,sha256=miT7a3hXzn39mpDcBtCQHHRY8gLVz0rnNw4_mHccn0g,11901
438
+ vibego-1.0.11.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
439
+ vibego-1.0.11.dist-info/entry_points.txt,sha256=Lsy_zm-dlyxt8-9DL9blBReIwU2k22c8-kifr46ND1M,48
440
+ vibego-1.0.11.dist-info/top_level.txt,sha256=R56CT3nW5H5v3ce0l3QDN4-C4qxTrNWzRTwrxnkDX4U,69
441
+ vibego-1.0.11.dist-info/RECORD,,
vibego_cli/__init__.py CHANGED
@@ -8,6 +8,6 @@ from __future__ import annotations
8
8
 
9
9
  __all__ = ["main", "__version__"]
10
10
 
11
- __version__ = "1.0.10"
11
+ __version__ = "1.0.11"
12
12
 
13
13
  from .main import main # noqa: E402