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.
- {webbee-0.5.6 → webbee-0.5.7}/CHANGELOG.md +6 -0
- {webbee-0.5.6 → webbee-0.5.7}/PKG-INFO +1 -1
- {webbee-0.5.6 → webbee-0.5.7}/pyproject.toml +1 -1
- webbee-0.5.7/src/webbee/__init__.py +1 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/_launch.py +6 -4
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_launch.py +21 -0
- webbee-0.5.6/src/webbee/__init__.py +0 -1
- {webbee-0.5.6 → webbee-0.5.7}/.github/workflows/publish.yml +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/.gitignore +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/LICENSE +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/README.md +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/install.sh +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/__main__.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/account.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/active_sessions.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/banner_art.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/boot.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/browser.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/checkpoints.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/cli.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/clipboard.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/clipboard_read.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/clipboard_session.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/coding_context.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/commands.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/config.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/consent.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/details.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/events.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/frames.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/home.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/home_view.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/http.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/instance_lock.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/intel/__init__.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/intel/graph.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/intel/outline.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/intel/query.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/intel/service.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/intel/store.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/intel/vectors.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/intel/watch.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/media.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/modals.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/mode_store.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/native_files.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/native_read.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/newtab_mode.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/output_pane.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/pricing_constants.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/queue_panel.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/reflow.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/remote.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/render.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/repl.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/repo.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/selection.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/session.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/sessions.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/sizing.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/slots.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/steer.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/stream.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/tab_store.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/tabs.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/thread.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/tier_store.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/todo_panel.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/tokens.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/tools.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/tui.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/update.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/urlopen.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/wallet.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/src/webbee/worktrees.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/__init__.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/conftest.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_account.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_active_sessions.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_audit_2026_07_25_findings.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_checkpoints.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_cli.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_clipboard.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_clipboard_read.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_coding_context.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_commands.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_config.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_cpc_contract_stable.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_cpc_outline.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_cross_loop_token.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_details.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_events.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_freeze_fix.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_home.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_home_view.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_home_view_mouse.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_inspect_page.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_instance_lock.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_intel_chunker.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_intel_embed.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_intel_graph.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_intel_no_numpy.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_intel_query.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_intel_service.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_intel_store.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_intel_vectors.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_intel_watch.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_marathon.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_modals_e2e.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_mode_store.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_native_files.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_newtab_mode.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_packaging.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_queue_manage_0337.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_reflow.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_render.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_repl.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_repo.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_resilient_http.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_session.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_sessions.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_sizing.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_slots.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_steer.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_stream.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_tab_bar_stability.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_tab_restore_0337.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_tabs.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_terminal_ux_0336.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_thread.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_tier_invalidation.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_tier_store.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_todo_panel.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_tokens.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_tools.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_tools_vision_websearch.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_tui.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_tui_hardening.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_update.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_update_badge_0340.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_urlopen.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_version.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_version_badge_corner.py +0 -0
- {webbee-0.5.6 → webbee-0.5.7}/tests/test_wallet.py +0 -0
- {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
|
|
@@ -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
|
-
|
|
174
|
-
|
|
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", "--
|
|
177
|
-
|
|
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
|
|
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
|