vibego 1.0.7__tar.gz → 1.0.13__tar.gz

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.

Files changed (468) hide show
  1. {vibego-1.0.7/vibego.egg-info → vibego-1.0.13}/PKG-INFO +1 -1
  2. {vibego-1.0.7 → vibego-1.0.13}/bot.py +218 -73
  3. {vibego-1.0.7 → vibego-1.0.13}/pyproject.toml +2 -2
  4. {vibego-1.0.7 → vibego-1.0.13}/scripts/session_pointer_watch.py +7 -2
  5. {vibego-1.0.7 → vibego-1.0.13}/scripts/start_tmux_codex.sh +4 -1
  6. {vibego-1.0.7 → vibego-1.0.13}/tasks/service.py +1 -46
  7. {vibego-1.0.7 → vibego-1.0.13}/tests/test_chat_menu_buttons.py +7 -0
  8. {vibego-1.0.7 → vibego-1.0.13}/tests/test_session_lock.py +92 -7
  9. {vibego-1.0.7 → vibego-1.0.13}/tests/test_session_pointer_watch.py +1 -1
  10. {vibego-1.0.7 → vibego-1.0.13}/tests/test_task_create_flow.py +16 -17
  11. {vibego-1.0.7 → vibego-1.0.13}/tests/test_task_description.py +201 -15
  12. {vibego-1.0.7 → vibego-1.0.13/vibego.egg-info}/PKG-INFO +1 -1
  13. {vibego-1.0.7 → vibego-1.0.13}/vibego_cli/__init__.py +1 -1
  14. {vibego-1.0.7 → vibego-1.0.13}/LICENSE +0 -0
  15. {vibego-1.0.7 → vibego-1.0.13}/MANIFEST.in +0 -0
  16. {vibego-1.0.7 → vibego-1.0.13}/README.md +0 -0
  17. {vibego-1.0.7 → vibego-1.0.13}/config/projects.json.example +0 -0
  18. {vibego-1.0.7 → vibego-1.0.13}/logging_setup.py +0 -0
  19. {vibego-1.0.7 → vibego-1.0.13}/master.py +0 -0
  20. {vibego-1.0.7 → vibego-1.0.13}/project_repository.py +0 -0
  21. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/__init__.py +0 -0
  22. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/__main__.py +0 -0
  23. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/__pip-runner__.py +0 -0
  24. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/__init__.py +0 -0
  25. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/build_env.py +0 -0
  26. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/cache.py +0 -0
  27. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/cli/__init__.py +0 -0
  28. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/cli/autocompletion.py +0 -0
  29. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/cli/base_command.py +0 -0
  30. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/cli/cmdoptions.py +0 -0
  31. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/cli/command_context.py +0 -0
  32. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/cli/index_command.py +0 -0
  33. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/cli/main.py +0 -0
  34. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/cli/main_parser.py +0 -0
  35. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/cli/parser.py +0 -0
  36. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/cli/progress_bars.py +0 -0
  37. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/cli/req_command.py +0 -0
  38. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/cli/spinners.py +0 -0
  39. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/cli/status_codes.py +0 -0
  40. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/commands/__init__.py +0 -0
  41. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/commands/cache.py +0 -0
  42. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/commands/check.py +0 -0
  43. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/commands/completion.py +0 -0
  44. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/commands/configuration.py +0 -0
  45. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/commands/debug.py +0 -0
  46. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/commands/download.py +0 -0
  47. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/commands/freeze.py +0 -0
  48. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/commands/hash.py +0 -0
  49. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/commands/help.py +0 -0
  50. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/commands/index.py +0 -0
  51. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/commands/inspect.py +0 -0
  52. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/commands/install.py +0 -0
  53. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/commands/list.py +0 -0
  54. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/commands/lock.py +0 -0
  55. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/commands/search.py +0 -0
  56. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/commands/show.py +0 -0
  57. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/commands/uninstall.py +0 -0
  58. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/commands/wheel.py +0 -0
  59. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/configuration.py +0 -0
  60. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/distributions/__init__.py +0 -0
  61. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/distributions/base.py +0 -0
  62. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/distributions/installed.py +0 -0
  63. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/distributions/sdist.py +0 -0
  64. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/distributions/wheel.py +0 -0
  65. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/exceptions.py +0 -0
  66. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/index/__init__.py +0 -0
  67. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/index/collector.py +0 -0
  68. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/index/package_finder.py +0 -0
  69. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/index/sources.py +0 -0
  70. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/locations/__init__.py +0 -0
  71. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/locations/_distutils.py +0 -0
  72. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/locations/_sysconfig.py +0 -0
  73. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/locations/base.py +0 -0
  74. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/main.py +0 -0
  75. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/metadata/__init__.py +0 -0
  76. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/metadata/_json.py +0 -0
  77. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/metadata/base.py +0 -0
  78. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/metadata/importlib/__init__.py +0 -0
  79. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/metadata/importlib/_compat.py +0 -0
  80. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/metadata/importlib/_dists.py +0 -0
  81. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/metadata/importlib/_envs.py +0 -0
  82. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/metadata/pkg_resources.py +0 -0
  83. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/models/__init__.py +0 -0
  84. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/models/candidate.py +0 -0
  85. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/models/direct_url.py +0 -0
  86. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/models/format_control.py +0 -0
  87. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/models/index.py +0 -0
  88. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/models/installation_report.py +0 -0
  89. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/models/link.py +0 -0
  90. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/models/pylock.py +0 -0
  91. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/models/scheme.py +0 -0
  92. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/models/search_scope.py +0 -0
  93. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/models/selection_prefs.py +0 -0
  94. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/models/target_python.py +0 -0
  95. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/models/wheel.py +0 -0
  96. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/network/__init__.py +0 -0
  97. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/network/auth.py +0 -0
  98. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/network/cache.py +0 -0
  99. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/network/download.py +0 -0
  100. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/network/lazy_wheel.py +0 -0
  101. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/network/session.py +0 -0
  102. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/network/utils.py +0 -0
  103. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/network/xmlrpc.py +0 -0
  104. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/operations/__init__.py +0 -0
  105. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/operations/build/__init__.py +0 -0
  106. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/operations/build/build_tracker.py +0 -0
  107. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/operations/build/metadata.py +0 -0
  108. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/operations/build/metadata_editable.py +0 -0
  109. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/operations/build/metadata_legacy.py +0 -0
  110. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/operations/build/wheel.py +0 -0
  111. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/operations/build/wheel_editable.py +0 -0
  112. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/operations/build/wheel_legacy.py +0 -0
  113. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/operations/check.py +0 -0
  114. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/operations/freeze.py +0 -0
  115. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/operations/install/__init__.py +0 -0
  116. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/operations/install/editable_legacy.py +0 -0
  117. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/operations/install/wheel.py +0 -0
  118. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/operations/prepare.py +0 -0
  119. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/pyproject.py +0 -0
  120. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/req/__init__.py +0 -0
  121. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/req/constructors.py +0 -0
  122. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/req/req_dependency_group.py +0 -0
  123. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/req/req_file.py +0 -0
  124. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/req/req_install.py +0 -0
  125. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/req/req_set.py +0 -0
  126. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/req/req_uninstall.py +0 -0
  127. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/resolution/__init__.py +0 -0
  128. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/resolution/base.py +0 -0
  129. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/resolution/legacy/__init__.py +0 -0
  130. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/resolution/legacy/resolver.py +0 -0
  131. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/resolution/resolvelib/__init__.py +0 -0
  132. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/resolution/resolvelib/base.py +0 -0
  133. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/resolution/resolvelib/candidates.py +0 -0
  134. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/resolution/resolvelib/factory.py +0 -0
  135. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py +0 -0
  136. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/resolution/resolvelib/provider.py +0 -0
  137. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/resolution/resolvelib/reporter.py +0 -0
  138. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/resolution/resolvelib/requirements.py +0 -0
  139. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/resolution/resolvelib/resolver.py +0 -0
  140. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/self_outdated_check.py +0 -0
  141. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/utils/__init__.py +0 -0
  142. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/utils/_jaraco_text.py +0 -0
  143. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/utils/_log.py +0 -0
  144. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/utils/appdirs.py +0 -0
  145. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/utils/compat.py +0 -0
  146. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/utils/compatibility_tags.py +0 -0
  147. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/utils/datetime.py +0 -0
  148. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/utils/deprecation.py +0 -0
  149. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/utils/direct_url_helpers.py +0 -0
  150. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/utils/egg_link.py +0 -0
  151. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/utils/entrypoints.py +0 -0
  152. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/utils/filesystem.py +0 -0
  153. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/utils/filetypes.py +0 -0
  154. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/utils/glibc.py +0 -0
  155. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/utils/hashes.py +0 -0
  156. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/utils/logging.py +0 -0
  157. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/utils/misc.py +0 -0
  158. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/utils/packaging.py +0 -0
  159. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/utils/retry.py +0 -0
  160. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/utils/setuptools_build.py +0 -0
  161. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/utils/subprocess.py +0 -0
  162. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/utils/temp_dir.py +0 -0
  163. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/utils/unpacking.py +0 -0
  164. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/utils/urls.py +0 -0
  165. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/utils/virtualenv.py +0 -0
  166. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/utils/wheel.py +0 -0
  167. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/vcs/__init__.py +0 -0
  168. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/vcs/bazaar.py +0 -0
  169. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/vcs/git.py +0 -0
  170. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/vcs/mercurial.py +0 -0
  171. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/vcs/subversion.py +0 -0
  172. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/vcs/versioncontrol.py +0 -0
  173. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_internal/wheel_builder.py +0 -0
  174. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/__init__.py +0 -0
  175. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/cachecontrol/__init__.py +0 -0
  176. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/cachecontrol/_cmd.py +0 -0
  177. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/cachecontrol/adapter.py +0 -0
  178. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/cachecontrol/cache.py +0 -0
  179. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/cachecontrol/caches/__init__.py +0 -0
  180. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py +0 -0
  181. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py +0 -0
  182. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/cachecontrol/controller.py +0 -0
  183. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/cachecontrol/filewrapper.py +0 -0
  184. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/cachecontrol/heuristics.py +0 -0
  185. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/cachecontrol/serialize.py +0 -0
  186. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/cachecontrol/wrapper.py +0 -0
  187. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/certifi/__init__.py +0 -0
  188. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/certifi/__main__.py +0 -0
  189. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/certifi/core.py +0 -0
  190. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/dependency_groups/__init__.py +0 -0
  191. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/dependency_groups/__main__.py +0 -0
  192. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/dependency_groups/_implementation.py +0 -0
  193. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/dependency_groups/_lint_dependency_groups.py +0 -0
  194. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/dependency_groups/_pip_wrapper.py +0 -0
  195. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/dependency_groups/_toml_compat.py +0 -0
  196. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/distlib/__init__.py +0 -0
  197. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/distlib/compat.py +0 -0
  198. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/distlib/resources.py +0 -0
  199. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/distlib/scripts.py +0 -0
  200. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/distlib/util.py +0 -0
  201. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/distro/__init__.py +0 -0
  202. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/distro/__main__.py +0 -0
  203. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/distro/distro.py +0 -0
  204. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/idna/__init__.py +0 -0
  205. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/idna/codec.py +0 -0
  206. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/idna/compat.py +0 -0
  207. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/idna/core.py +0 -0
  208. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/idna/idnadata.py +0 -0
  209. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/idna/intranges.py +0 -0
  210. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/idna/package_data.py +0 -0
  211. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/idna/uts46data.py +0 -0
  212. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/msgpack/__init__.py +0 -0
  213. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/msgpack/exceptions.py +0 -0
  214. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/msgpack/ext.py +0 -0
  215. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/msgpack/fallback.py +0 -0
  216. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/packaging/__init__.py +0 -0
  217. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/packaging/_elffile.py +0 -0
  218. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/packaging/_manylinux.py +0 -0
  219. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/packaging/_musllinux.py +0 -0
  220. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/packaging/_parser.py +0 -0
  221. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/packaging/_structures.py +0 -0
  222. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/packaging/_tokenizer.py +0 -0
  223. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/packaging/licenses/__init__.py +0 -0
  224. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/packaging/licenses/_spdx.py +0 -0
  225. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/packaging/markers.py +0 -0
  226. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/packaging/metadata.py +0 -0
  227. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/packaging/requirements.py +0 -0
  228. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/packaging/specifiers.py +0 -0
  229. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/packaging/tags.py +0 -0
  230. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/packaging/utils.py +0 -0
  231. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/packaging/version.py +0 -0
  232. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/pkg_resources/__init__.py +0 -0
  233. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/platformdirs/__init__.py +0 -0
  234. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/platformdirs/__main__.py +0 -0
  235. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/platformdirs/android.py +0 -0
  236. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/platformdirs/api.py +0 -0
  237. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/platformdirs/macos.py +0 -0
  238. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/platformdirs/unix.py +0 -0
  239. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/platformdirs/version.py +0 -0
  240. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/platformdirs/windows.py +0 -0
  241. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/__init__.py +0 -0
  242. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/__main__.py +0 -0
  243. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/console.py +0 -0
  244. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/filter.py +0 -0
  245. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/filters/__init__.py +0 -0
  246. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/formatter.py +0 -0
  247. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/formatters/__init__.py +0 -0
  248. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/formatters/_mapping.py +0 -0
  249. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/lexer.py +0 -0
  250. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/lexers/__init__.py +0 -0
  251. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/lexers/_mapping.py +0 -0
  252. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/lexers/python.py +0 -0
  253. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/modeline.py +0 -0
  254. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/plugin.py +0 -0
  255. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/regexopt.py +0 -0
  256. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/scanner.py +0 -0
  257. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/sphinxext.py +0 -0
  258. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/style.py +0 -0
  259. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/styles/__init__.py +0 -0
  260. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/styles/_mapping.py +0 -0
  261. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/token.py +0 -0
  262. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/unistring.py +0 -0
  263. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/util.py +0 -0
  264. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/pyproject_hooks/__init__.py +0 -0
  265. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/pyproject_hooks/_impl.py +0 -0
  266. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/pyproject_hooks/_in_process/__init__.py +0 -0
  267. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py +0 -0
  268. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/requests/__init__.py +0 -0
  269. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/requests/__version__.py +0 -0
  270. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/requests/_internal_utils.py +0 -0
  271. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/requests/adapters.py +0 -0
  272. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/requests/api.py +0 -0
  273. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/requests/auth.py +0 -0
  274. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/requests/certs.py +0 -0
  275. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/requests/compat.py +0 -0
  276. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/requests/cookies.py +0 -0
  277. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/requests/exceptions.py +0 -0
  278. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/requests/help.py +0 -0
  279. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/requests/hooks.py +0 -0
  280. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/requests/models.py +0 -0
  281. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/requests/packages.py +0 -0
  282. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/requests/sessions.py +0 -0
  283. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/requests/status_codes.py +0 -0
  284. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/requests/structures.py +0 -0
  285. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/requests/utils.py +0 -0
  286. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/resolvelib/__init__.py +0 -0
  287. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/resolvelib/providers.py +0 -0
  288. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/resolvelib/reporters.py +0 -0
  289. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/resolvelib/resolvers/__init__.py +0 -0
  290. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/resolvelib/resolvers/abstract.py +0 -0
  291. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/resolvelib/resolvers/criterion.py +0 -0
  292. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/resolvelib/resolvers/exceptions.py +0 -0
  293. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/resolvelib/resolvers/resolution.py +0 -0
  294. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/resolvelib/structs.py +0 -0
  295. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/__init__.py +0 -0
  296. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/__main__.py +0 -0
  297. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_cell_widths.py +0 -0
  298. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_emoji_codes.py +0 -0
  299. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_emoji_replace.py +0 -0
  300. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_export_format.py +0 -0
  301. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_extension.py +0 -0
  302. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_fileno.py +0 -0
  303. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_inspect.py +0 -0
  304. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_log_render.py +0 -0
  305. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_loop.py +0 -0
  306. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_null_file.py +0 -0
  307. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_palettes.py +0 -0
  308. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_pick.py +0 -0
  309. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_ratio.py +0 -0
  310. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_spinners.py +0 -0
  311. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_stack.py +0 -0
  312. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_timer.py +0 -0
  313. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_win32_console.py +0 -0
  314. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_windows.py +0 -0
  315. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_windows_renderer.py +0 -0
  316. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_wrap.py +0 -0
  317. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/abc.py +0 -0
  318. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/align.py +0 -0
  319. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/ansi.py +0 -0
  320. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/bar.py +0 -0
  321. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/box.py +0 -0
  322. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/cells.py +0 -0
  323. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/color.py +0 -0
  324. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/color_triplet.py +0 -0
  325. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/columns.py +0 -0
  326. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/console.py +0 -0
  327. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/constrain.py +0 -0
  328. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/containers.py +0 -0
  329. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/control.py +0 -0
  330. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/default_styles.py +0 -0
  331. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/diagnose.py +0 -0
  332. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/emoji.py +0 -0
  333. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/errors.py +0 -0
  334. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/file_proxy.py +0 -0
  335. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/filesize.py +0 -0
  336. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/highlighter.py +0 -0
  337. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/json.py +0 -0
  338. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/jupyter.py +0 -0
  339. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/layout.py +0 -0
  340. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/live.py +0 -0
  341. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/live_render.py +0 -0
  342. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/logging.py +0 -0
  343. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/markup.py +0 -0
  344. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/measure.py +0 -0
  345. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/padding.py +0 -0
  346. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/pager.py +0 -0
  347. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/palette.py +0 -0
  348. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/panel.py +0 -0
  349. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/pretty.py +0 -0
  350. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/progress.py +0 -0
  351. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/progress_bar.py +0 -0
  352. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/prompt.py +0 -0
  353. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/protocol.py +0 -0
  354. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/region.py +0 -0
  355. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/repr.py +0 -0
  356. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/rule.py +0 -0
  357. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/scope.py +0 -0
  358. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/screen.py +0 -0
  359. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/segment.py +0 -0
  360. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/spinner.py +0 -0
  361. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/status.py +0 -0
  362. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/style.py +0 -0
  363. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/styled.py +0 -0
  364. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/syntax.py +0 -0
  365. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/table.py +0 -0
  366. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/terminal_theme.py +0 -0
  367. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/text.py +0 -0
  368. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/theme.py +0 -0
  369. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/themes.py +0 -0
  370. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/traceback.py +0 -0
  371. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/rich/tree.py +0 -0
  372. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/tomli/__init__.py +0 -0
  373. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/tomli/_parser.py +0 -0
  374. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/tomli/_re.py +0 -0
  375. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/tomli/_types.py +0 -0
  376. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/tomli_w/__init__.py +0 -0
  377. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/tomli_w/_writer.py +0 -0
  378. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/truststore/__init__.py +0 -0
  379. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/truststore/_api.py +0 -0
  380. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/truststore/_macos.py +0 -0
  381. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/truststore/_openssl.py +0 -0
  382. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/truststore/_ssl_constants.py +0 -0
  383. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/truststore/_windows.py +0 -0
  384. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/__init__.py +0 -0
  385. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/_collections.py +0 -0
  386. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/_version.py +0 -0
  387. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/connection.py +0 -0
  388. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/connectionpool.py +0 -0
  389. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/contrib/__init__.py +0 -0
  390. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py +0 -0
  391. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py +0 -0
  392. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py +0 -0
  393. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py +0 -0
  394. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/contrib/appengine.py +0 -0
  395. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py +0 -0
  396. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py +0 -0
  397. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/contrib/securetransport.py +0 -0
  398. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/contrib/socks.py +0 -0
  399. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/exceptions.py +0 -0
  400. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/fields.py +0 -0
  401. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/filepost.py +0 -0
  402. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/packages/__init__.py +0 -0
  403. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py +0 -0
  404. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py +0 -0
  405. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/packages/backports/weakref_finalize.py +0 -0
  406. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/packages/six.py +0 -0
  407. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/poolmanager.py +0 -0
  408. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/request.py +0 -0
  409. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/response.py +0 -0
  410. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/util/__init__.py +0 -0
  411. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/util/connection.py +0 -0
  412. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/util/proxy.py +0 -0
  413. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/util/queue.py +0 -0
  414. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/util/request.py +0 -0
  415. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/util/response.py +0 -0
  416. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/util/retry.py +0 -0
  417. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/util/ssl_.py +0 -0
  418. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/util/ssl_match_hostname.py +0 -0
  419. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/util/ssltransport.py +0 -0
  420. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/util/timeout.py +0 -0
  421. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/util/url.py +0 -0
  422. {vibego-1.0.7 → vibego-1.0.13}/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/util/wait.py +0 -0
  423. {vibego-1.0.7 → vibego-1.0.13}/scripts/__init__.py +0 -0
  424. {vibego-1.0.7 → vibego-1.0.13}/scripts/bump_version.sh +0 -0
  425. {vibego-1.0.7 → vibego-1.0.13}/scripts/log_writer.py +0 -0
  426. {vibego-1.0.7 → vibego-1.0.13}/scripts/master_healthcheck.py +0 -0
  427. {vibego-1.0.7 → vibego-1.0.13}/scripts/models/claudecode.sh +0 -0
  428. {vibego-1.0.7 → vibego-1.0.13}/scripts/models/codex.sh +0 -0
  429. {vibego-1.0.7 → vibego-1.0.13}/scripts/models/common.sh +0 -0
  430. {vibego-1.0.7 → vibego-1.0.13}/scripts/models/gemini.sh +0 -0
  431. {vibego-1.0.7 → vibego-1.0.13}/scripts/publish.sh +0 -0
  432. {vibego-1.0.7 → vibego-1.0.13}/scripts/requirements.txt +0 -0
  433. {vibego-1.0.7 → vibego-1.0.13}/scripts/run_bot.sh +0 -0
  434. {vibego-1.0.7 → vibego-1.0.13}/scripts/start.sh +0 -0
  435. {vibego-1.0.7 → vibego-1.0.13}/scripts/stop_all.sh +0 -0
  436. {vibego-1.0.7 → vibego-1.0.13}/scripts/stop_bot.sh +0 -0
  437. {vibego-1.0.7 → vibego-1.0.13}/scripts/test_deps_check.sh +0 -0
  438. {vibego-1.0.7 → vibego-1.0.13}/setup.cfg +0 -0
  439. {vibego-1.0.7 → vibego-1.0.13}/tasks/__init__.py +0 -0
  440. {vibego-1.0.7 → vibego-1.0.13}/tasks/commands.py +0 -0
  441. {vibego-1.0.7 → vibego-1.0.13}/tasks/constants.py +0 -0
  442. {vibego-1.0.7 → vibego-1.0.13}/tasks/fsm.py +0 -0
  443. {vibego-1.0.7 → vibego-1.0.13}/tasks/models.py +0 -0
  444. {vibego-1.0.7 → vibego-1.0.13}/tests/test_attachment_prompt_format.py +0 -0
  445. {vibego-1.0.7 → vibego-1.0.13}/tests/test_auto_compact.py +0 -0
  446. {vibego-1.0.7 → vibego-1.0.13}/tests/test_claudecode_jsonl.py +0 -0
  447. {vibego-1.0.7 → vibego-1.0.13}/tests/test_long_poll_mechanism.py +0 -0
  448. {vibego-1.0.7 → vibego-1.0.13}/tests/test_markdown_guard.py +0 -0
  449. {vibego-1.0.7 → vibego-1.0.13}/tests/test_master_project_management.py +0 -0
  450. {vibego-1.0.7 → vibego-1.0.13}/tests/test_master_restart.py +0 -0
  451. {vibego-1.0.7 → vibego-1.0.13}/tests/test_master_update_notifications.py +0 -0
  452. {vibego-1.0.7 → vibego-1.0.13}/tests/test_numbered_reply_inputs.py +0 -0
  453. {vibego-1.0.7 → vibego-1.0.13}/tests/test_plan_progress.py +0 -0
  454. {vibego-1.0.7 → vibego-1.0.13}/tests/test_task_detail_back.py +0 -0
  455. {vibego-1.0.7 → vibego-1.0.13}/tests/test_task_list_entry.py +0 -0
  456. {vibego-1.0.7 → vibego-1.0.13}/tests/test_telegram_markdown_renderer.py +0 -0
  457. {vibego-1.0.7 → vibego-1.0.13}/tests/test_unescape_markdown.py +0 -0
  458. {vibego-1.0.7 → vibego-1.0.13}/tests/test_version_display.py +0 -0
  459. {vibego-1.0.7 → vibego-1.0.13}/vibego.egg-info/SOURCES.txt +0 -0
  460. {vibego-1.0.7 → vibego-1.0.13}/vibego.egg-info/dependency_links.txt +0 -0
  461. {vibego-1.0.7 → vibego-1.0.13}/vibego.egg-info/entry_points.txt +0 -0
  462. {vibego-1.0.7 → vibego-1.0.13}/vibego.egg-info/requires.txt +0 -0
  463. {vibego-1.0.7 → vibego-1.0.13}/vibego.egg-info/top_level.txt +0 -0
  464. {vibego-1.0.7 → vibego-1.0.13}/vibego_cli/__main__.py +0 -0
  465. {vibego-1.0.7 → vibego-1.0.13}/vibego_cli/config.py +0 -0
  466. {vibego-1.0.7 → vibego-1.0.13}/vibego_cli/data/worker_requirements.txt +0 -0
  467. {vibego-1.0.7 → vibego-1.0.13}/vibego_cli/deps.py +0 -0
  468. {vibego-1.0.7 → vibego-1.0.13}/vibego_cli/main.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vibego
3
- Version: 1.0.7
3
+ Version: 1.0.13
4
4
  Summary: vibego CLI: tools for bootstrapping and managing the Telegram Master Bot
5
5
  Author: DavidChan
6
6
  License-Expression: LicenseRef-Proprietary
@@ -20,6 +20,7 @@ from aiogram.filters import Command, CommandStart
20
20
  from aiogram.filters.command import CommandObject
21
21
  from aiogram.fsm.context import FSMContext
22
22
  from aiogram.fsm.storage.memory import MemoryStorage
23
+ from aiogram.dispatcher.event.bases import SkipHandler
23
24
  from aiogram.types import (
24
25
  Message,
25
26
  BufferedInputFile,
@@ -258,6 +259,7 @@ SEND_FAILURE_NOTICE_COOLDOWN = float(os.environ.get("SEND_FAILURE_NOTICE_COOLDOW
258
259
  SESSION_INITIAL_BACKTRACK_BYTES = int(os.environ.get("SESSION_INITIAL_BACKTRACK_BYTES", "16384"))
259
260
  ENABLE_PLAN_PROGRESS = (os.environ.get("ENABLE_PLAN_PROGRESS", "1").strip().lower() not in {"0", "false", "no", "off"})
260
261
  AUTO_COMPACT_THRESHOLD = max(_env_int("AUTO_COMPACT_THRESHOLD", 0), 0)
262
+ SESSION_LOCK_REQUIRED = (os.environ.get("SESSION_LOCK_REQUIRED", "1").strip().lower() not in {"0", "false", "no", "off"})
261
263
 
262
264
  PLAN_STATUS_LABELS = {
263
265
  "completed": "✅",
@@ -989,6 +991,22 @@ async def _dispatch_prompt_to_model(
989
991
  ) -> tuple[bool, Optional[Path]]:
990
992
  """Handle session binding, acknowledgement, and watcher setup after pushing a prompt."""
991
993
 
994
+ if _is_menu_control_message(prompt):
995
+ worker_log.warning(
996
+ "Rejected menu control prompt before tmux dispatch",
997
+ extra={
998
+ "chat": chat_id,
999
+ **_session_extra(),
1000
+ "token": _normalize_choice_token(prompt),
1001
+ },
1002
+ )
1003
+ await _reply_to_chat(
1004
+ chat_id,
1005
+ "Skip/Cancel inputs are ignored outside interactive menus. Please send an actual prompt.",
1006
+ reply_to=reply_to,
1007
+ )
1008
+ return False, None
1009
+
992
1010
  prev_watcher = CHAT_WATCHERS.pop(chat_id, None)
993
1011
  if prev_watcher is not None:
994
1012
  if not prev_watcher.done():
@@ -1038,6 +1056,7 @@ async def _dispatch_prompt_to_model(
1038
1056
  pointer_path = resolve_path(CODEX_SESSION_FILE_PATH)
1039
1057
 
1040
1058
  lock_session = _read_session_lock_path()
1059
+ lock_required = _is_session_lock_enforced()
1041
1060
  if lock_session is not None:
1042
1061
  if session_path is None:
1043
1062
  worker_log.info(
@@ -1056,53 +1075,65 @@ async def _dispatch_prompt_to_model(
1056
1075
  _sync_pointer_with_lock(pointer_path, lock_session)
1057
1076
  session_path = lock_session
1058
1077
  else:
1059
- if pointer_path is not None and session_path is None:
1060
- session_path = _read_pointer_path(pointer_path)
1061
- if session_path is not None:
1062
- worker_log.info(
1063
- "[session-map] chat=%s pointer -> %s",
1064
- chat_id,
1065
- session_path,
1066
- extra=_session_extra(path=session_path),
1067
- )
1068
- elif session_path is not None:
1078
+ if session_path is not None:
1069
1079
  worker_log.info(
1070
1080
  "[session-map] chat=%s reuse session %s",
1071
1081
  chat_id,
1072
1082
  session_path,
1073
1083
  extra=_session_extra(path=session_path),
1074
1084
  )
1075
-
1076
- target_cwd = CODEX_WORKDIR if CODEX_WORKDIR else None
1077
- if pointer_path is not None:
1078
- current_cwd = _read_session_meta_cwd(session_path) if session_path else None
1079
- if session_path is None or (target_cwd and current_cwd != target_cwd):
1080
- latest = _find_latest_rollout_for_cwd(pointer_path, target_cwd)
1081
- if latest is not None:
1082
- try:
1083
- SESSION_OFFSETS[str(latest)] = latest.stat().st_size
1084
- except FileNotFoundError:
1085
- SESSION_OFFSETS[str(latest)] = 0
1086
- _update_pointer(pointer_path, latest)
1087
- session_path = latest
1088
- worker_log.info(
1089
- "[session-map] chat=%s switch to cwd-matched %s",
1090
- chat_id,
1091
- session_path,
1092
- extra=_session_extra(path=session_path),
1093
- )
1094
- if _is_claudecode_model():
1095
- fallback = _find_latest_claudecode_rollout(pointer_path)
1096
- if fallback is not None and fallback != session_path:
1097
- _update_pointer(pointer_path, fallback)
1098
- session_path = fallback
1085
+ elif lock_required:
1086
+ await _reply_to_chat(
1087
+ chat_id,
1088
+ _session_lock_missing_message(),
1089
+ reply_to=reply_to,
1090
+ )
1091
+ worker_log.error(
1092
+ "[session-lock] Session lock required but missing",
1093
+ extra={"chat": chat_id, "lock_file": SESSION_LOCK_FILE_PATH or "-"},
1094
+ )
1095
+ return False, None
1096
+ else:
1097
+ if pointer_path is not None and session_path is None:
1098
+ session_path = _read_pointer_path(pointer_path)
1099
+ if session_path is not None:
1099
1100
  worker_log.info(
1100
- "[session-map] chat=%s fallback to ClaudeCode session %s",
1101
+ "[session-map] chat=%s pointer -> %s",
1101
1102
  chat_id,
1102
1103
  session_path,
1103
1104
  extra=_session_extra(path=session_path),
1104
1105
  )
1105
1106
 
1107
+ target_cwd = CODEX_WORKDIR if CODEX_WORKDIR else None
1108
+ if pointer_path is not None:
1109
+ current_cwd = _read_session_meta_cwd(session_path) if session_path else None
1110
+ if session_path is None or (target_cwd and current_cwd != target_cwd):
1111
+ latest = _find_latest_rollout_for_cwd(pointer_path, target_cwd)
1112
+ if latest is not None:
1113
+ try:
1114
+ SESSION_OFFSETS[str(latest)] = latest.stat().st_size
1115
+ except FileNotFoundError:
1116
+ SESSION_OFFSETS[str(latest)] = 0
1117
+ _update_pointer(pointer_path, latest)
1118
+ session_path = latest
1119
+ worker_log.info(
1120
+ "[session-map] chat=%s (lock disabled) switch to cwd-matched %s",
1121
+ chat_id,
1122
+ session_path,
1123
+ extra=_session_extra(path=session_path),
1124
+ )
1125
+ if _is_claudecode_model():
1126
+ fallback = _find_latest_claudecode_rollout(pointer_path)
1127
+ if fallback is not None and fallback != session_path:
1128
+ _update_pointer(pointer_path, fallback)
1129
+ session_path = fallback
1130
+ worker_log.info(
1131
+ "[session-map] chat=%s (lock disabled) fallback to ClaudeCode session %s",
1132
+ chat_id,
1133
+ session_path,
1134
+ extra=_session_extra(path=session_path),
1135
+ )
1136
+
1106
1137
  needs_session_wait = session_path is None
1107
1138
  if needs_session_wait and pointer_path is None:
1108
1139
  await _reply_to_chat(
@@ -1802,6 +1833,17 @@ async def _enqueue_media_group_message(message: Message, text_part: Optional[str
1802
1833
  async def _handle_prompt_dispatch(message: Message, prompt: str) -> None:
1803
1834
  """Wrapper routine that pushes prompts to the model."""
1804
1835
 
1836
+ if _is_menu_control_message(prompt):
1837
+ worker_log.info(
1838
+ "Dropped menu control prompt during dispatch",
1839
+ extra={
1840
+ **_session_extra(),
1841
+ "chat": getattr(message.chat, "id", None),
1842
+ "token": _normalize_choice_token(prompt),
1843
+ },
1844
+ )
1845
+ return
1846
+
1805
1847
  if ENV_ISSUES:
1806
1848
  message_text = _format_env_issue_message()
1807
1849
  worker_log.warning(
@@ -1840,8 +1882,33 @@ BOT_COMMANDS: list[tuple[str, str]] = [
1840
1882
  COMMAND_KEYWORDS: set[str] = {command for command, _ in BOT_COMMANDS}
1841
1883
  COMMAND_KEYWORDS.update({"task_child", "task_children", "task_delete"})
1842
1884
 
1843
- WORKER_MENU_BUTTON_TEXT = "📋 Task List"
1844
- WORKER_CREATE_TASK_BUTTON_TEXT = "➕ Create Task"
1885
+ def _button_text_variants(env_key: str, fallback: Sequence[str]) -> tuple[str, ...]:
1886
+ """Return button label candidates sourced from env or fallback list."""
1887
+
1888
+ raw = (os.environ.get(env_key) or "").strip()
1889
+ if not raw:
1890
+ return tuple(fallback)
1891
+ variants = []
1892
+ for segment in raw.split("|"):
1893
+ cleaned = segment.strip()
1894
+ if cleaned and cleaned not in variants:
1895
+ variants.append(cleaned)
1896
+ return tuple(variants or fallback)
1897
+
1898
+
1899
+ WORKER_MENU_BUTTON_TEXT_VARIANTS = _button_text_variants(
1900
+ "WORKER_MENU_BUTTON_TEXTS",
1901
+ ("📋 Task List", "📋 任务列表"),
1902
+ )
1903
+ WORKER_CREATE_TASK_BUTTON_TEXT_VARIANTS = _button_text_variants(
1904
+ "WORKER_CREATE_TASK_BUTTON_TEXTS",
1905
+ ("➕ Create Task", "➕ 创建任务"),
1906
+ )
1907
+
1908
+ WORKER_MENU_BUTTON_TEXT = WORKER_MENU_BUTTON_TEXT_VARIANTS[0]
1909
+ WORKER_CREATE_TASK_BUTTON_TEXT = WORKER_CREATE_TASK_BUTTON_TEXT_VARIANTS[0]
1910
+ WORKER_MENU_BUTTON_TEXT_SET = set(WORKER_MENU_BUTTON_TEXT_VARIANTS)
1911
+ WORKER_CREATE_TASK_BUTTON_TEXT_SET = set(WORKER_CREATE_TASK_BUTTON_TEXT_VARIANTS)
1845
1912
 
1846
1913
  TASK_ID_VALID_PATTERN = re.compile(r"^TASK_[A-Z0-9_]+$")
1847
1914
  TASK_ID_USAGE_TIP = "Invalid task ID format. Use patterns like TASK_0001."
@@ -2260,6 +2327,12 @@ def _is_cancel_message(value: Optional[str]) -> bool:
2260
2327
  return lowered in cancel_tokens
2261
2328
 
2262
2329
 
2330
+ def _is_menu_control_message(value: Optional[str]) -> bool:
2331
+ """Return True when the payload represents a generic Skip/Cancel menu action."""
2332
+
2333
+ return _is_skip_message(value) or _is_cancel_message(value)
2334
+
2335
+
2263
2336
  _MARKDOWN_ESCAPE_RE = re.compile(r"([_*\[\]()~`>#+=|{}.!])")
2264
2337
  TASK_REFERENCE_PATTERN = re.compile(r"/?TASK[_]?\d{4,}")
2265
2338
 
@@ -2355,6 +2428,9 @@ MODEL_PUSH_SUPPLEMENT_STATUSES: set[str] = {
2355
2428
  "research",
2356
2429
  "test",
2357
2430
  }
2431
+ PUSH_MODEL_SUPPLEMENT_IN_PROGRESS_TEXT = (
2432
+ "A supplementary description prompt is already active. Please respond or tap Skip/Cancel."
2433
+ )
2358
2434
 
2359
2435
  SUMMARY_COMMAND_PREFIX = "/task_summary_request_"
2360
2436
  SUMMARY_COMMAND_ALIASES: tuple[str, ...] = (
@@ -3030,6 +3106,9 @@ async def _build_history_context_for_model(task_id: str) -> tuple[str, int]:
3030
3106
  return "\n".join(trimmed_lines), len(trimmed_lines)
3031
3107
 
3032
3108
 
3109
+ SKIPPED_TASK_HISTORY_ACTIONS: set[str] = {"push_model", "summary_request"}
3110
+
3111
+
3033
3112
  async def _log_task_action(
3034
3113
  task_id: str,
3035
3114
  *,
@@ -3043,11 +3122,20 @@ async def _log_task_action(
3043
3122
  ) -> None:
3044
3123
  """Encapsulate task event writing and record logs when exceptions occur to avoid interrupting the main process."""
3045
3124
 
3125
+ action_token = (action or "").strip()
3126
+ if action_token in SKIPPED_TASK_HISTORY_ACTIONS:
3127
+ worker_log.debug(
3128
+ "Skipped logging task action in history: task_id=%s action=%s",
3129
+ task_id,
3130
+ action_token,
3131
+ extra=_session_extra(),
3132
+ )
3133
+ return
3046
3134
  data_payload: Optional[Dict[str, Any]]
3047
3135
  if payload is None:
3048
- data_payload = {"action": action}
3136
+ data_payload = {"action": action_token}
3049
3137
  else:
3050
- data_payload = {"action": action, **payload}
3138
+ data_payload = {"action": action_token, **payload}
3051
3139
  try:
3052
3140
  await TASK_SERVICE.log_task_event(
3053
3141
  task_id,
@@ -4318,29 +4406,12 @@ async def _log_model_reply_event(
4318
4406
  session_path: Path,
4319
4407
  event_offset: int,
4320
4408
  ) -> None:
4321
- """Write model responses to Task history."""
4409
+ """Model replies are no longer persisted to history."""
4322
4410
 
4323
- trimmed = _trim_history_value(content, limit=HISTORY_DISPLAY_VALUE_LIMIT)
4324
- payload = {
4325
- "model": ACTIVE_MODEL or "",
4326
- "session": str(session_path),
4327
- "offset": event_offset,
4328
- }
4329
- if content:
4330
- payload["content"] = content[:MODEL_REPLY_PAYLOAD_LIMIT]
4331
- try:
4332
- await TASK_SERVICE.log_task_event(
4333
- task_id,
4334
- event_type=HISTORY_EVENT_MODEL_REPLY,
4335
- actor=f"model/{ACTIVE_MODEL or 'codex'}",
4336
- new_value=trimmed,
4337
- payload=payload,
4338
- )
4339
- except ValueError:
4340
- worker_log.warning(
4341
- "The model reply writes fail: Task does not exist",
4342
- extra={"task_id": task_id, **_session_extra(path=session_path)},
4343
- )
4411
+ worker_log.debug(
4412
+ "Skipping history write for model reply",
4413
+ extra={"task_id": task_id, "session": str(session_path)},
4414
+ )
4344
4415
 
4345
4416
 
4346
4417
  async def _maybe_finalize_summary(
@@ -4813,6 +4884,7 @@ async def _ensure_session_watcher(chat_id: int) -> Optional[Path]:
4813
4884
  target_cwd = CODEX_WORKDIR or None
4814
4885
 
4815
4886
  lock_session = _read_session_lock_path()
4887
+ lock_required = _is_session_lock_enforced()
4816
4888
  if lock_session is not None:
4817
4889
  if session_path is None or session_path != lock_session:
4818
4890
  worker_log.info(
@@ -4824,6 +4896,12 @@ async def _ensure_session_watcher(chat_id: int) -> Optional[Path]:
4824
4896
  _sync_pointer_with_lock(pointer_path, lock_session)
4825
4897
  session_path = lock_session
4826
4898
  else:
4899
+ if lock_required:
4900
+ worker_log.error(
4901
+ "[session-lock] Session lock required but missing during watcher ensure",
4902
+ extra={"chat": chat_id, "lock_file": SESSION_LOCK_FILE_PATH or "-"},
4903
+ )
4904
+ return None
4827
4905
  if session_path is None and pointer_path is not None:
4828
4906
  session_path = _read_pointer_path(pointer_path)
4829
4907
  if session_path is not None:
@@ -5310,6 +5388,23 @@ def _session_lock_file() -> Optional[Path]:
5310
5388
  return resolve_path(SESSION_LOCK_FILE_PATH)
5311
5389
 
5312
5390
 
5391
+ def _is_session_lock_enforced() -> bool:
5392
+ """Return True when the worker must rely on the captured session lock."""
5393
+
5394
+ return SESSION_LOCK_REQUIRED and bool(SESSION_LOCK_FILE_PATH)
5395
+
5396
+
5397
+ def _session_lock_missing_message() -> str:
5398
+ """Build a human-readable error when the session lock is missing."""
5399
+
5400
+ target = SESSION_LOCK_FILE_PATH or "session_lock.json"
5401
+ return (
5402
+ "当前 worker 未检测到会话锁,无法定位本项目独占的模型会话。\n"
5403
+ f"缺失的锁文件:{target}\n"
5404
+ "请在对应项目目录重新执行 scripts/run_bot.sh(或等效启动脚本)以捕获新的 tmux 会话。"
5405
+ )
5406
+
5407
+
5313
5408
  def _read_session_lock_path() -> Optional[Path]:
5314
5409
  """Read the persisted session lock and return the rollout path when valid."""
5315
5410
 
@@ -6069,7 +6164,7 @@ async def on_task_list(message: Message) -> None:
6069
6164
  await _handle_task_list_request(message)
6070
6165
 
6071
6166
 
6072
- @router.message(F.text == WORKER_MENU_BUTTON_TEXT)
6167
+ @router.message(F.text.in_(WORKER_MENU_BUTTON_TEXT_SET))
6073
6168
  async def on_task_list_button(message: Message) -> None:
6074
6169
  await _handle_task_list_request(message)
6075
6170
 
@@ -6104,7 +6199,7 @@ async def _dispatch_task_new_command(source_message: Message, actor: Optional[Us
6104
6199
  await dp.feed_update(bot_instance, update)
6105
6200
 
6106
6201
 
6107
- @router.message(F.text == WORKER_CREATE_TASK_BUTTON_TEXT)
6202
+ @router.message(F.text.in_(WORKER_CREATE_TASK_BUTTON_TEXT_SET))
6108
6203
  async def on_task_create_button(message: Message, state: FSMContext) -> None:
6109
6204
  await state.clear()
6110
6205
  try:
@@ -6791,6 +6886,10 @@ async def on_task_push_model(callback: CallbackQuery, state: FSMContext) -> None
6791
6886
  await callback.answer("Callback parameter error.", show_alert=True)
6792
6887
  return
6793
6888
  _, _, task_id = parts
6889
+ current_state = await state.get_state()
6890
+ existing_context: Dict[str, Any] = {}
6891
+ if current_state == TaskPushStates.waiting_supplement.state:
6892
+ existing_context = await state.get_data()
6794
6893
  task = await TASK_SERVICE.get_task(task_id)
6795
6894
  if task is None:
6796
6895
  await callback.answer("Task does not exist", show_alert=True)
@@ -6801,10 +6900,20 @@ async def on_task_push_model(callback: CallbackQuery, state: FSMContext) -> None
6801
6900
  actor = _actor_from_callback(callback)
6802
6901
  chat_id = callback.message.chat.id if callback.message else callback.from_user.id
6803
6902
  if task.status in MODEL_PUSH_SUPPLEMENT_STATUSES:
6903
+ origin_message = callback.message
6904
+ origin_message_id = origin_message.message_id if origin_message else None
6905
+ if (
6906
+ current_state == TaskPushStates.waiting_supplement.state
6907
+ and existing_context.get("task_id") == task_id
6908
+ and existing_context.get("origin_message_id") == origin_message_id
6909
+ ):
6910
+ await callback.answer(PUSH_MODEL_SUPPLEMENT_IN_PROGRESS_TEXT)
6911
+ return
6804
6912
  await state.clear()
6805
6913
  await state.update_data(
6806
6914
  task_id=task_id,
6807
- origin_message=callback.message,
6915
+ origin_message=origin_message,
6916
+ origin_message_id=origin_message_id,
6808
6917
  chat_id=chat_id,
6809
6918
  actor=actor,
6810
6919
  )
@@ -6904,16 +7013,31 @@ async def on_task_push_model_fill(callback: CallbackQuery, state: FSMContext) ->
6904
7013
  await callback.answer("Callback parameter error.", show_alert=True)
6905
7014
  return
6906
7015
  _, _, task_id = parts
7016
+ current_state = await state.get_state()
7017
+ existing_context: Dict[str, Any] = {}
7018
+ if current_state == TaskPushStates.waiting_supplement.state:
7019
+ existing_context = await state.get_data()
6907
7020
  task = await TASK_SERVICE.get_task(task_id)
6908
7021
  if task is None:
6909
7022
  await state.clear()
6910
7023
  await callback.answer("Task does not exist", show_alert=True)
6911
7024
  return
6912
7025
  actor = _actor_from_callback(callback)
7026
+ origin_message = callback.message
7027
+ origin_message_id = origin_message.message_id if origin_message else None
7028
+ if (
7029
+ current_state == TaskPushStates.waiting_supplement.state
7030
+ and existing_context.get("task_id") == task_id
7031
+ and existing_context.get("origin_message_id") == origin_message_id
7032
+ ):
7033
+ await callback.answer(PUSH_MODEL_SUPPLEMENT_IN_PROGRESS_TEXT)
7034
+ return
7035
+ await state.clear()
6913
7036
  await state.update_data(
6914
7037
  task_id=task_id,
6915
- origin_message=callback.message,
6916
- chat_id=callback.message.chat.id if callback.message else callback.from_user.id,
7038
+ origin_message=origin_message,
7039
+ origin_message_id=origin_message_id,
7040
+ chat_id=origin_message.chat.id if origin_message else callback.from_user.id,
6917
7041
  actor=actor,
6918
7042
  )
6919
7043
  await state.set_state(TaskPushStates.waiting_supplement)
@@ -6931,18 +7055,18 @@ async def on_task_push_model_supplement(message: Message, state: FSMContext) ->
6931
7055
  if resolved == "Cancel" or trimmed == "Cancel":
6932
7056
  await state.clear()
6933
7057
  await message.answer("Push to the model cancelled.", reply_markup=_build_worker_main_keyboard())
6934
- return
7058
+ raise SkipHandler()
6935
7059
  data = await state.get_data()
6936
7060
  task_id = data.get("task_id")
6937
7061
  if not task_id:
6938
7062
  await state.clear()
6939
7063
  await message.answer("The push session has expired, please click the button again.", reply_markup=_build_worker_main_keyboard())
6940
- return
7064
+ raise SkipHandler()
6941
7065
  task = await TASK_SERVICE.get_task(task_id)
6942
7066
  if task is None:
6943
7067
  await state.clear()
6944
7068
  await message.answer("Task not found. Push cancelled.", reply_markup=_build_worker_main_keyboard())
6945
- return
7069
+ raise SkipHandler()
6946
7070
  supplement: Optional[str] = None
6947
7071
  if trimmed and resolved != SKIP_TEXT:
6948
7072
  if len(trimmed) > DESCRIPTION_MAX_LENGTH:
@@ -6950,7 +7074,7 @@ async def on_task_push_model_supplement(message: Message, state: FSMContext) ->
6950
7074
  f"Supplementary task description cannot exceed {DESCRIPTION_MAX_LENGTH} characters. Please re-enter:",
6951
7075
  reply_markup=_build_description_keyboard(),
6952
7076
  )
6953
- return
7077
+ raise SkipHandler()
6954
7078
  supplement = raw_text.strip()
6955
7079
  chat_id = data.get("chat_id") or message.chat.id
6956
7080
  origin_message = data.get("origin_message")
@@ -6971,11 +7095,11 @@ async def on_task_push_model_supplement(message: Message, state: FSMContext) ->
6971
7095
  extra={"task_id": task_id, "status": task.status if task else None},
6972
7096
  )
6973
7097
  await message.answer("Push failed: missing template configuration.", reply_markup=_build_worker_main_keyboard())
6974
- return
7098
+ raise SkipHandler()
6975
7099
  await state.clear()
6976
7100
  if not success:
6977
7101
  await message.answer("Push failed: model is not ready. Please retry shortly.", reply_markup=_build_worker_main_keyboard())
6978
- return
7102
+ raise SkipHandler()
6979
7103
  preview_block, preview_parse_mode = _wrap_text_in_code_block(prompt)
6980
7104
  await _reply_to_chat(
6981
7105
  chat_id,
@@ -6986,6 +7110,7 @@ async def on_task_push_model_supplement(message: Message, state: FSMContext) ->
6986
7110
  )
6987
7111
  if session_path is not None:
6988
7112
  await _send_session_ack(chat_id, session_path, reply_to=origin_message)
7113
+ raise SkipHandler()
6989
7114
 
6990
7115
 
6991
7116
  @router.callback_query(F.data.startswith("task:history:"))
@@ -8083,10 +8208,14 @@ async def on_start(m: Message):
8083
8208
  await m.answer(_format_env_issue_message())
8084
8209
 
8085
8210
  @router.message(F.text)
8086
- async def on_text(m: Message):
8211
+ async def on_text(m: Message, state: FSMContext | None = None):
8087
8212
  # Automatically record chat when first received message_id to state document
8088
8213
  _auto_record_chat_id(m.chat.id)
8089
8214
 
8215
+ current_state: Optional[str] = None
8216
+ if state is not None:
8217
+ current_state = await state.get_state()
8218
+
8090
8219
  prompt = (m.text or "").strip()
8091
8220
  if not prompt:
8092
8221
  return await m.answer("Please enter a non-empty prompt word")
@@ -8096,6 +8225,22 @@ async def on_text(m: Message):
8096
8225
  return
8097
8226
  if prompt.startswith("/"):
8098
8227
  return
8228
+ if current_state:
8229
+ worker_log.debug(
8230
+ "Suppressed model dispatch due to active wizard state",
8231
+ extra={**_session_extra(), "chat": m.chat.id, "state": current_state},
8232
+ )
8233
+ return
8234
+ if _is_menu_control_message(prompt):
8235
+ worker_log.info(
8236
+ "Suppressed stray menu control input without active wizard",
8237
+ extra={
8238
+ **_session_extra(),
8239
+ "chat": getattr(m.chat, "id", None),
8240
+ "token": _normalize_choice_token(prompt),
8241
+ },
8242
+ )
8243
+ return
8099
8244
  await _handle_prompt_dispatch(m, prompt)
8100
8245
 
8101
8246
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "vibego"
7
- version = "1.0.7"
7
+ version = "1.0.13"
8
8
  description = "vibego CLI: tools for bootstrapping and managing the Telegram Master Bot"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -42,7 +42,7 @@ include = ["vibego_cli", "tasks", "scripts"]
42
42
  "scripts" = ["*.sh", "models/*.sh"]
43
43
 
44
44
  [tool.bumpversion]
45
- current_version = "1.0.7"
45
+ current_version = "1.0.13"
46
46
  parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
47
47
  serialize = ["{major}.{minor}.{patch}"]
48
48
  search = "{current_version}"
@@ -239,8 +239,13 @@ def main(argv: Optional[list[str]] = None) -> int:
239
239
  observer.join(timeout=5)
240
240
 
241
241
  if session_path is None:
242
- log.error("Failed to detect rollout file within timeout %.1fs", args.timeout)
243
- return 0 # Do not fail startup; worker will fall back to legacy behaviour.
242
+ log.error(
243
+ "Failed to detect rollout file within timeout %.1fs (tmux session=%s, project=%s)",
244
+ args.timeout,
245
+ args.tmux_session or "-",
246
+ args.project or "-",
247
+ )
248
+ return 1
244
249
 
245
250
  _write_pointer(pointer_path, session_path)
246
251
  _write_lock(
@@ -163,7 +163,10 @@ if (( ! DRY_RUN )); then
163
163
  WATCH_ARGS+=("--additional-root" "$(dirname "$SESSION_POINTER_FILE")/sessions")
164
164
  WATCH_ARGS+=("--timeout" "$SESSION_CAPTURE_TIMEOUT")
165
165
  WATCH_ARGS+=("--poll" "$SESSION_CAPTURE_POLL_INTERVAL")
166
- "${WATCH_ARGS[@]}" >/dev/null 2>&1 &
166
+ if ! "${WATCH_ARGS[@]}"; then
167
+ echo "Failed to capture Codex/Claude session log for tmux session '$SESSION_NAME'. Please check CLI startup output." >&2
168
+ exit 1
169
+ fi
167
170
  fi
168
171
 
169
172
  exit 0
@@ -445,15 +445,6 @@ class TaskService:
445
445
  0,
446
446
  ),
447
447
  )
448
- await self._insert_history(
449
- db,
450
- task_id,
451
- "create",
452
- None,
453
- title,
454
- actor,
455
- created_at=now,
456
- )
457
448
  await db.commit()
458
449
  return TaskRecord(
459
450
  id=task_id,
@@ -605,10 +596,8 @@ class TaskService:
605
596
  raise ValueError("Task does not exist")
606
597
  updates = []
607
598
  params: List[object] = []
608
- history_items: List[Tuple[str, Optional[str], Optional[str]]] = []
609
599
  if title is not None and title != row["title"]:
610
600
  updates.append("title = ?")
611
- history_items.append(("title", row["title"], title))
612
601
  params.append(title)
613
602
  if status is not None:
614
603
  normalized_status = self._normalize_status_token(status, context="update")
@@ -624,35 +613,28 @@ class TaskService:
624
613
  status_value = None
625
614
  if status_value is not None and status_value != row["status"]:
626
615
  updates.append("status = ?")
627
- history_items.append(("status", row["status"], status_value))
628
616
  params.append(status_value)
629
617
  if priority is not None and priority != row["priority"]:
630
618
  updates.append("priority = ?")
631
- history_items.append(("priority", str(row["priority"]), str(priority)))
632
619
  params.append(priority)
633
620
  if task_type is not None and task_type != row["task_type"]:
634
621
  updates.append("task_type = ?")
635
- history_items.append(("task_type", row["task_type"], task_type))
636
622
  params.append(task_type)
637
623
  if tags is not None:
638
624
  tags_json = json.dumps(list(tags))
639
625
  if tags_json != row["tags"]:
640
626
  updates.append("tags = ?")
641
- history_items.append(("tags", row["tags"], tags_json))
642
627
  params.append(tags_json)
643
628
  if due_date is not None and due_date != row["due_date"]:
644
629
  updates.append("due_date = ?")
645
- history_items.append(("due_date", row["due_date"], due_date))
646
630
  params.append(due_date)
647
631
  if description is not None and description != row["description"]:
648
632
  updates.append("description = ?")
649
- history_items.append(("description", row["description"], description))
650
633
  params.append(description)
651
634
  if archived is not None:
652
635
  archived_int = 1 if archived else 0
653
636
  if archived_int != row["archived"]:
654
637
  updates.append("archived = ?")
655
- history_items.append(("archived", str(row["archived"]), str(archived_int)))
656
638
  params.append(archived_int)
657
639
  if updates:
658
640
  now = shanghai_now_iso()
@@ -663,16 +645,6 @@ class TaskService:
663
645
  f"UPDATE tasks SET {' , '.join(updates)} WHERE id = ?",
664
646
  params,
665
647
  )
666
- for field, old, new in history_items:
667
- await self._insert_history(
668
- db,
669
- task_id,
670
- field,
671
- old,
672
- new,
673
- actor,
674
- created_at=now,
675
- )
676
648
  await db.commit()
677
649
  updated = await self.get_task(task_id)
678
650
  if updated is None:
@@ -687,7 +659,7 @@ class TaskService:
687
659
  content: str,
688
660
  actor: Optional[str],
689
661
  ) -> TaskNoteRecord:
690
- """Append a note to a task and persist a corresponding history entry."""
662
+ """Append a note to a task (notes no longer create task history entries)."""
691
663
 
692
664
  canonical_task_id = self._canonical_task_id(task_id)
693
665
  if not canonical_task_id:
@@ -711,23 +683,6 @@ class TaskService:
711
683
  (task_id, note_type, content, now),
712
684
  )
713
685
  note_id = cursor.lastrowid
714
- payload = {
715
- "action": "add_note",
716
- "note_type": note_type,
717
- "note_id": note_id,
718
- "content_length": len(content or ""),
719
- }
720
- await self._insert_history(
721
- db,
722
- task_id,
723
- "note",
724
- None,
725
- content,
726
- actor,
727
- event_type="task_action",
728
- payload=json.dumps(payload, ensure_ascii=False),
729
- created_at=now,
730
- )
731
686
  await db.commit()
732
687
  return TaskNoteRecord(
733
688
  id=note_id,