webbee 0.5.6__tar.gz → 0.5.7__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.
Files changed (145) hide show
  1. {webbee-0.5.6 → webbee-0.5.7}/CHANGELOG.md +6 -0
  2. {webbee-0.5.6 → webbee-0.5.7}/PKG-INFO +1 -1
  3. {webbee-0.5.6 → webbee-0.5.7}/pyproject.toml +1 -1
  4. webbee-0.5.7/src/webbee/__init__.py +1 -0
  5. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/_launch.py +6 -4
  6. {webbee-0.5.6 → webbee-0.5.7}/tests/test_launch.py +21 -0
  7. webbee-0.5.6/src/webbee/__init__.py +0 -1
  8. {webbee-0.5.6 → webbee-0.5.7}/.github/workflows/publish.yml +0 -0
  9. {webbee-0.5.6 → webbee-0.5.7}/.gitignore +0 -0
  10. {webbee-0.5.6 → webbee-0.5.7}/LICENSE +0 -0
  11. {webbee-0.5.6 → webbee-0.5.7}/README.md +0 -0
  12. {webbee-0.5.6 → webbee-0.5.7}/install.sh +0 -0
  13. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/__main__.py +0 -0
  14. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/account.py +0 -0
  15. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/active_sessions.py +0 -0
  16. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/banner_art.py +0 -0
  17. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/boot.py +0 -0
  18. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/browser.py +0 -0
  19. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/checkpoints.py +0 -0
  20. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/cli.py +0 -0
  21. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/clipboard.py +0 -0
  22. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/clipboard_read.py +0 -0
  23. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/clipboard_session.py +0 -0
  24. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/coding_context.py +0 -0
  25. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/commands.py +0 -0
  26. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/config.py +0 -0
  27. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/consent.py +0 -0
  28. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/details.py +0 -0
  29. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/events.py +0 -0
  30. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/frames.py +0 -0
  31. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/home.py +0 -0
  32. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/home_view.py +0 -0
  33. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/http.py +0 -0
  34. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/instance_lock.py +0 -0
  35. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/intel/__init__.py +0 -0
  36. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/intel/graph.py +0 -0
  37. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/intel/outline.py +0 -0
  38. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/intel/query.py +0 -0
  39. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/intel/service.py +0 -0
  40. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/intel/store.py +0 -0
  41. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/intel/vectors.py +0 -0
  42. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/intel/watch.py +0 -0
  43. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/media.py +0 -0
  44. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/modals.py +0 -0
  45. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/mode_store.py +0 -0
  46. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/native_files.py +0 -0
  47. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/native_read.py +0 -0
  48. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/newtab_mode.py +0 -0
  49. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/output_pane.py +0 -0
  50. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/pricing_constants.py +0 -0
  51. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/queue_panel.py +0 -0
  52. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/reflow.py +0 -0
  53. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/remote.py +0 -0
  54. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/render.py +0 -0
  55. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/repl.py +0 -0
  56. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/repo.py +0 -0
  57. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/selection.py +0 -0
  58. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/session.py +0 -0
  59. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/sessions.py +0 -0
  60. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/sizing.py +0 -0
  61. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/slots.py +0 -0
  62. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/steer.py +0 -0
  63. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/stream.py +0 -0
  64. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/tab_store.py +0 -0
  65. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/tabs.py +0 -0
  66. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/thread.py +0 -0
  67. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/tier_store.py +0 -0
  68. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/todo_panel.py +0 -0
  69. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/tokens.py +0 -0
  70. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/tools.py +0 -0
  71. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/tui.py +0 -0
  72. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/update.py +0 -0
  73. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/urlopen.py +0 -0
  74. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/wallet.py +0 -0
  75. {webbee-0.5.6 → webbee-0.5.7}/src/webbee/worktrees.py +0 -0
  76. {webbee-0.5.6 → webbee-0.5.7}/tests/__init__.py +0 -0
  77. {webbee-0.5.6 → webbee-0.5.7}/tests/conftest.py +0 -0
  78. {webbee-0.5.6 → webbee-0.5.7}/tests/test_account.py +0 -0
  79. {webbee-0.5.6 → webbee-0.5.7}/tests/test_active_sessions.py +0 -0
  80. {webbee-0.5.6 → webbee-0.5.7}/tests/test_audit_2026_07_25_findings.py +0 -0
  81. {webbee-0.5.6 → webbee-0.5.7}/tests/test_checkpoints.py +0 -0
  82. {webbee-0.5.6 → webbee-0.5.7}/tests/test_cli.py +0 -0
  83. {webbee-0.5.6 → webbee-0.5.7}/tests/test_clipboard.py +0 -0
  84. {webbee-0.5.6 → webbee-0.5.7}/tests/test_clipboard_read.py +0 -0
  85. {webbee-0.5.6 → webbee-0.5.7}/tests/test_coding_context.py +0 -0
  86. {webbee-0.5.6 → webbee-0.5.7}/tests/test_commands.py +0 -0
  87. {webbee-0.5.6 → webbee-0.5.7}/tests/test_config.py +0 -0
  88. {webbee-0.5.6 → webbee-0.5.7}/tests/test_cpc_contract_stable.py +0 -0
  89. {webbee-0.5.6 → webbee-0.5.7}/tests/test_cpc_outline.py +0 -0
  90. {webbee-0.5.6 → webbee-0.5.7}/tests/test_cross_loop_token.py +0 -0
  91. {webbee-0.5.6 → webbee-0.5.7}/tests/test_details.py +0 -0
  92. {webbee-0.5.6 → webbee-0.5.7}/tests/test_events.py +0 -0
  93. {webbee-0.5.6 → webbee-0.5.7}/tests/test_freeze_fix.py +0 -0
  94. {webbee-0.5.6 → webbee-0.5.7}/tests/test_home.py +0 -0
  95. {webbee-0.5.6 → webbee-0.5.7}/tests/test_home_view.py +0 -0
  96. {webbee-0.5.6 → webbee-0.5.7}/tests/test_home_view_mouse.py +0 -0
  97. {webbee-0.5.6 → webbee-0.5.7}/tests/test_inspect_page.py +0 -0
  98. {webbee-0.5.6 → webbee-0.5.7}/tests/test_instance_lock.py +0 -0
  99. {webbee-0.5.6 → webbee-0.5.7}/tests/test_intel_chunker.py +0 -0
  100. {webbee-0.5.6 → webbee-0.5.7}/tests/test_intel_embed.py +0 -0
  101. {webbee-0.5.6 → webbee-0.5.7}/tests/test_intel_graph.py +0 -0
  102. {webbee-0.5.6 → webbee-0.5.7}/tests/test_intel_no_numpy.py +0 -0
  103. {webbee-0.5.6 → webbee-0.5.7}/tests/test_intel_query.py +0 -0
  104. {webbee-0.5.6 → webbee-0.5.7}/tests/test_intel_service.py +0 -0
  105. {webbee-0.5.6 → webbee-0.5.7}/tests/test_intel_store.py +0 -0
  106. {webbee-0.5.6 → webbee-0.5.7}/tests/test_intel_vectors.py +0 -0
  107. {webbee-0.5.6 → webbee-0.5.7}/tests/test_intel_watch.py +0 -0
  108. {webbee-0.5.6 → webbee-0.5.7}/tests/test_marathon.py +0 -0
  109. {webbee-0.5.6 → webbee-0.5.7}/tests/test_modals_e2e.py +0 -0
  110. {webbee-0.5.6 → webbee-0.5.7}/tests/test_mode_store.py +0 -0
  111. {webbee-0.5.6 → webbee-0.5.7}/tests/test_native_files.py +0 -0
  112. {webbee-0.5.6 → webbee-0.5.7}/tests/test_newtab_mode.py +0 -0
  113. {webbee-0.5.6 → webbee-0.5.7}/tests/test_packaging.py +0 -0
  114. {webbee-0.5.6 → webbee-0.5.7}/tests/test_queue_manage_0337.py +0 -0
  115. {webbee-0.5.6 → webbee-0.5.7}/tests/test_reflow.py +0 -0
  116. {webbee-0.5.6 → webbee-0.5.7}/tests/test_render.py +0 -0
  117. {webbee-0.5.6 → webbee-0.5.7}/tests/test_repl.py +0 -0
  118. {webbee-0.5.6 → webbee-0.5.7}/tests/test_repo.py +0 -0
  119. {webbee-0.5.6 → webbee-0.5.7}/tests/test_resilient_http.py +0 -0
  120. {webbee-0.5.6 → webbee-0.5.7}/tests/test_session.py +0 -0
  121. {webbee-0.5.6 → webbee-0.5.7}/tests/test_sessions.py +0 -0
  122. {webbee-0.5.6 → webbee-0.5.7}/tests/test_sizing.py +0 -0
  123. {webbee-0.5.6 → webbee-0.5.7}/tests/test_slots.py +0 -0
  124. {webbee-0.5.6 → webbee-0.5.7}/tests/test_steer.py +0 -0
  125. {webbee-0.5.6 → webbee-0.5.7}/tests/test_stream.py +0 -0
  126. {webbee-0.5.6 → webbee-0.5.7}/tests/test_tab_bar_stability.py +0 -0
  127. {webbee-0.5.6 → webbee-0.5.7}/tests/test_tab_restore_0337.py +0 -0
  128. {webbee-0.5.6 → webbee-0.5.7}/tests/test_tabs.py +0 -0
  129. {webbee-0.5.6 → webbee-0.5.7}/tests/test_terminal_ux_0336.py +0 -0
  130. {webbee-0.5.6 → webbee-0.5.7}/tests/test_thread.py +0 -0
  131. {webbee-0.5.6 → webbee-0.5.7}/tests/test_tier_invalidation.py +0 -0
  132. {webbee-0.5.6 → webbee-0.5.7}/tests/test_tier_store.py +0 -0
  133. {webbee-0.5.6 → webbee-0.5.7}/tests/test_todo_panel.py +0 -0
  134. {webbee-0.5.6 → webbee-0.5.7}/tests/test_tokens.py +0 -0
  135. {webbee-0.5.6 → webbee-0.5.7}/tests/test_tools.py +0 -0
  136. {webbee-0.5.6 → webbee-0.5.7}/tests/test_tools_vision_websearch.py +0 -0
  137. {webbee-0.5.6 → webbee-0.5.7}/tests/test_tui.py +0 -0
  138. {webbee-0.5.6 → webbee-0.5.7}/tests/test_tui_hardening.py +0 -0
  139. {webbee-0.5.6 → webbee-0.5.7}/tests/test_update.py +0 -0
  140. {webbee-0.5.6 → webbee-0.5.7}/tests/test_update_badge_0340.py +0 -0
  141. {webbee-0.5.6 → webbee-0.5.7}/tests/test_urlopen.py +0 -0
  142. {webbee-0.5.6 → webbee-0.5.7}/tests/test_version.py +0 -0
  143. {webbee-0.5.6 → webbee-0.5.7}/tests/test_version_badge_corner.py +0 -0
  144. {webbee-0.5.6 → webbee-0.5.7}/tests/test_wallet.py +0 -0
  145. {webbee-0.5.6 → webbee-0.5.7}/tests/test_worktrees.py +0 -0
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.5.7
4
+
5
+ * **The one-time Python 3.12 setup cannot be steered by the folder it starts in**: uv now runs with
6
+ `--no-config` from the launcher's own folder, so a `uv.toml`, `pyproject.toml` or `.python-version` in
7
+ someone's repository can no longer pick the package index or the interpreter for the runtime.
8
+
3
9
  ## 0.5.6
4
10
 
5
11
  * **`pip install webbee` works on Python 3.7, 3.8 and 3.9** (macOS ships 3.9): webbee's dependencies need
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: webbee
3
- Version: 0.5.6
3
+ Version: 0.5.7
4
4
  Summary: Webbee 🐝 — the Imperal Cloud coding agent in your terminal
5
5
  Project-URL: Homepage, https://imperal.io
6
6
  Project-URL: Documentation, https://docs.imperal.io
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "webbee"
3
- version = "0.5.6"
3
+ version = "0.5.7"
4
4
  description = "Webbee 🐝 — the Imperal Cloud coding agent in your terminal"
5
5
  readme = "README.md"
6
6
  license = "GPL-3.0-or-later"
@@ -0,0 +1 @@
1
+ __version__ = "0.5.7"
@@ -170,11 +170,13 @@ def runtime(version):
170
170
  DIST, version, RUNTIME_PYTHON, prefix))
171
171
  uv = _find_uv(home) or _install_uv(home)
172
172
  shutil.rmtree(prefix, ignore_errors=True) # a half-made one from an interrupted setup
173
- subprocess.check_call([uv, "venv", "--quiet", "--python", RUNTIME_PYTHON, prefix],
174
- stdout=sys.stderr)
173
+ # --no-config and cwd=home: started inside someone's repository, a uv.toml, pyproject.toml
174
+ # or .python-version there must not pick the index or the interpreter for the runtime.
175
+ subprocess.check_call([uv, "venv", "--quiet", "--no-config", "--python", RUNTIME_PYTHON, prefix],
176
+ stdout=sys.stderr, cwd=home)
175
177
  spec = os.environ.get(SPEC_ENV) or "%s==%s" % (DIST, version)
176
- subprocess.check_call([uv, "pip", "install", "--quiet", "--python", _bin(prefix, "python"), spec],
177
- stdout=sys.stderr)
178
+ subprocess.check_call([uv, "pip", "install", "--quiet", "--no-config", "--python",
179
+ _bin(prefix, "python"), spec], stdout=sys.stderr, cwd=home)
178
180
  if not os.path.exists(exe):
179
181
  raise RuntimeError("%s is missing after the install" % exe)
180
182
  open(ready, "w").close()
@@ -158,3 +158,24 @@ def test_the_launcher_stays_python_37_syntax():
158
158
  assert not any(isinstance(n, ast.NamedExpr) for n in ast.walk(tree))
159
159
  init = os.path.join(os.path.dirname(L.__file__), "__init__.py")
160
160
  ast.parse(open(init).read(), feature_version=(3, 7))
161
+
162
+
163
+ def test_a_repository_config_cannot_steer_the_runtime_install(monkeypatch, tmp_path):
164
+ """Started inside someone's repository: its uv.toml / pyproject.toml / .python-version must not
165
+ choose the index or the interpreter -- uv runs with --no-config from the launcher's own folder."""
166
+ monkeypatch.setenv(L.HOME_ENV, str(tmp_path))
167
+ monkeypatch.setattr(L, "_WINDOWS", False)
168
+ monkeypatch.setattr(L, "_find_uv", lambda home: "/x/uv")
169
+ seen = []
170
+
171
+ def fake_call(cmd, **kw):
172
+ seen.append((cmd, kw.get("cwd")))
173
+ if cmd[1] == "venv":
174
+ os.makedirs(os.path.join(cmd[-1], "bin"))
175
+ else:
176
+ open(os.path.join(os.path.dirname(cmd[cmd.index("--python") + 1]), "webbee"), "w").close()
177
+ return 0
178
+ monkeypatch.setattr(L.subprocess, "check_call", fake_call)
179
+ L.runtime("1.2.3")
180
+ assert len(seen) == 2
181
+ assert all("--no-config" in cmd and cwd == str(tmp_path) for cmd, cwd in seen)
@@ -1 +0,0 @@
1
- __version__ = "0.5.6"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes