webbee 0.7.0__tar.gz → 0.7.1__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.7.0 → webbee-0.7.1}/CHANGELOG.md +7 -0
- {webbee-0.7.0 → webbee-0.7.1}/PKG-INFO +2 -2
- {webbee-0.7.0 → webbee-0.7.1}/pyproject.toml +2 -2
- webbee-0.7.1/src/webbee/__init__.py +1 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/boot.py +11 -1
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/tools.py +5 -1
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_tools.py +15 -0
- webbee-0.7.0/src/webbee/__init__.py +0 -1
- {webbee-0.7.0 → webbee-0.7.1}/.github/workflows/publish.yml +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/.gitignore +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/LICENSE +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/README.md +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/install.sh +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/__main__.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/_launch.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/account.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/active_sessions.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/autoupdate.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/banner_art.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/browser.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/checkpoints.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/cli.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/clipboard.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/clipboard_read.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/clipboard_session.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/coding_context.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/commands.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/config.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/consent.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/details.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/events.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/frames.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/home.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/home_view.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/http.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/instance_lock.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/intel/__init__.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/intel/graph.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/intel/outline.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/intel/query.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/intel/service.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/intel/store.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/intel/tree.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/intel/vectors.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/intel/watch.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/media.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/modals.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/mode_store.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/native_files.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/native_read.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/newtab_mode.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/output_pane.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/pricing_constants.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/queue_panel.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/reflow.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/remote.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/render.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/repl.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/repo.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/selection.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/session.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/sessions.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/sizing.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/slots.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/steer.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/stream.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/tab_store.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/tabs.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/thread.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/tier_store.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/todo_panel.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/tokens.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/tui.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/update.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/urlopen.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/wallet.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/src/webbee/worktrees.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/__init__.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/conftest.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_account.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_active_sessions.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_audit_2026_07_25_findings.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_autoupdate.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_checkpoints.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_checkpoints_nested_1030.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_cli.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_clipboard.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_clipboard_read.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_code_map_fresh.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_coding_context.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_commands.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_config.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_cpc_contract_stable.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_cpc_outline.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_cross_loop_token.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_details.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_events.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_freeze_fix.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_home.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_home_view.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_home_view_mouse.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_inspect_page.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_instance_lock.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_intel_any_folder.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_intel_cache_and_sync_worker.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_intel_checksum_tree.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_intel_chunker.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_intel_embed.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_intel_graph.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_intel_no_numpy.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_intel_query.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_intel_service.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_intel_store.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_intel_vectors.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_intel_watch.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_launch.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_marathon.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_modals_e2e.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_mode_and_remote_0_6_8.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_mode_store.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_native_files.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_newtab_mode.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_packaging.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_probe_cost.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_queue_manage_0337.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_reflow.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_remote_code_reads.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_render.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_repl.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_repo.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_resilient_http.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_review_fixes_1030.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_session.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_session_review_1030.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_sessions.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_sizing.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_slots.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_steer.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_stream.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_tab_bar_stability.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_tab_restore_0337.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_tabs.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_terminal_ux_0336.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_thread.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_tier_invalidation.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_tier_store.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_todo_panel.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_tokens.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_tools_eol_cancel_1030.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_tools_vision_websearch.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_tui.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_tui_hardening.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_update.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_update_badge_0340.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_urlopen.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_version.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_version_badge_corner.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_wallet.py +0 -0
- {webbee-0.7.0 → webbee-0.7.1}/tests/test_worktrees.py +0 -0
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.7.1
|
|
4
|
+
|
|
5
|
+
* **A missing code index says why**: when the index did not start (a failure while building it, or it is turned off),
|
|
6
|
+
`impact_of_change`, `graph_slice` and the other code-map tools now name the real reason instead of the wrong
|
|
7
|
+
"install webbee[intel]" -- the index has shipped in the base install since 0.7.0, there is nothing to install.
|
|
8
|
+
* Needs imperal-mcp 0.9.1 (install commands that work on Debian 12+, Ubuntu 23.04+ and Homebrew: `pipx` / `uv tool`).
|
|
9
|
+
|
|
3
10
|
## 0.7.0
|
|
4
11
|
|
|
5
12
|
* **The local index takes any folder and every file kind**: open webbee in a home folder, a folder of contracts or a
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: webbee
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.1
|
|
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
|
|
@@ -31,7 +31,7 @@ Requires-Python: >=3.7
|
|
|
31
31
|
Requires-Dist: asyncssh>=2.14; python_version >= '3.10'
|
|
32
32
|
Requires-Dist: httpx-sse>=0.4; python_version >= '3.10'
|
|
33
33
|
Requires-Dist: httpx>=0.27; python_version >= '3.10'
|
|
34
|
-
Requires-Dist: imperal-mcp>=0.9.
|
|
34
|
+
Requires-Dist: imperal-mcp>=0.9.1; python_version >= '3.10'
|
|
35
35
|
Requires-Dist: imperal-sdk[universal-index]>=6.4.1; python_version >= '3.10'
|
|
36
36
|
Requires-Dist: model2vec>=0.8.2; python_version >= '3.10' and (sys_platform != 'darwin' or platform_machine != 'x86_64' or python_version < '3.13')
|
|
37
37
|
Requires-Dist: numpy>=2; python_version >= '3.10' and (sys_platform != 'darwin' or platform_machine != 'x86_64' or python_version < '3.13')
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "webbee"
|
|
3
|
-
version = "0.7.
|
|
3
|
+
version = "0.7.1"
|
|
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"
|
|
@@ -13,7 +13,7 @@ dependencies = [
|
|
|
13
13
|
# release on a Python 3.12 it sets up once with uv -- `uv` comes as a wheel on 3.8+,
|
|
14
14
|
# 3.7 fetches it with uv's own installer.
|
|
15
15
|
'uv>=0.4; python_version >= "3.8" and python_version < "3.10"',
|
|
16
|
-
'imperal-mcp>=0.9.
|
|
16
|
+
'imperal-mcp>=0.9.1; python_version >= "3.10"', # raised to the newest at each release
|
|
17
17
|
'imperal-sdk[universal-index]>=6.4.1; python_version >= "3.10"',
|
|
18
18
|
'asyncssh>=2.14; python_version >= "3.10"',
|
|
19
19
|
'httpx>=0.27; python_version >= "3.10"',
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.7.1"
|
|
@@ -7,6 +7,11 @@ import asyncio
|
|
|
7
7
|
import os
|
|
8
8
|
import subprocess
|
|
9
9
|
|
|
10
|
+
# Why the code index is NOT running in this process ("" while it runs or before the boot). The boot swallows the
|
|
11
|
+
# failure so the REPL never crashes -- but a tool that needs the index must be able to say the real reason instead of
|
|
12
|
+
# guessing ("install webbee[intel]" was wrong since 0.7.0: intel ships in the base install).
|
|
13
|
+
INTEL_DOWN_REASON = ""
|
|
14
|
+
|
|
10
15
|
|
|
11
16
|
def _git_branch(workspace: str) -> str:
|
|
12
17
|
try:
|
|
@@ -105,6 +110,7 @@ async def start_intel(cfg, workspace: str, intel_factory):
|
|
|
105
110
|
failure here (missing extra, bad repo, etc.) must degrade to
|
|
106
111
|
(None, None), never crash the boot -- coding still works, just
|
|
107
112
|
without repo intelligence. Returns (intel, watcher_task)."""
|
|
113
|
+
global INTEL_DOWN_REASON
|
|
108
114
|
try:
|
|
109
115
|
svc = (intel_factory or _default_intel_factory)(cfg, workspace)
|
|
110
116
|
await asyncio.to_thread(svc.build)
|
|
@@ -118,8 +124,10 @@ async def start_intel(cfg, workspace: str, intel_factory):
|
|
|
118
124
|
# its end is always collected: an exception is never printed when webbee quits ("Task exception was never
|
|
119
125
|
# retrieved", live 2026-10-25)
|
|
120
126
|
watcher_task.add_done_callback(lambda t: t.cancelled() or t.exception())
|
|
127
|
+
INTEL_DOWN_REASON = ""
|
|
121
128
|
return svc, watcher_task
|
|
122
|
-
except Exception:
|
|
129
|
+
except Exception as exc:
|
|
130
|
+
INTEL_DOWN_REASON = f"the code index failed to start: {type(exc).__name__}: {str(exc)[:200]}"
|
|
123
131
|
return None, None
|
|
124
132
|
|
|
125
133
|
|
|
@@ -155,10 +163,12 @@ async def boot_workspace(cfg, workspace: str, intel_factory, shadow_factory) ->
|
|
|
155
163
|
behavior per job (a crash in one never blocks the others or the boot),
|
|
156
164
|
just concurrent instead of serial."""
|
|
157
165
|
async def _intel_job():
|
|
166
|
+
global INTEL_DOWN_REASON
|
|
158
167
|
if cfg.intel_enabled:
|
|
159
168
|
# Guarded off-loop build + watcher; any failure degrades to
|
|
160
169
|
# intel=None, never crashes the boot (start_intel above).
|
|
161
170
|
return await start_intel(cfg, workspace, intel_factory)
|
|
171
|
+
INTEL_DOWN_REASON = "the code index is turned off in this configuration (intel_enabled = false)"
|
|
162
172
|
return None, None
|
|
163
173
|
|
|
164
174
|
(intel, watcher_task), shadow, git_branch = await asyncio.gather(
|
|
@@ -1002,7 +1002,11 @@ class LocalToolExecutor:
|
|
|
1002
1002
|
|
|
1003
1003
|
def _cpc_local(self, verb: str, a: dict) -> dict:
|
|
1004
1004
|
if self.indexer is None:
|
|
1005
|
-
|
|
1005
|
+
from webbee import boot
|
|
1006
|
+
why = boot.INTEL_DOWN_REASON or "the code index is not running in this session"
|
|
1007
|
+
return {"ok": False, "content": f"intel not available: {why}. It ships with webbee (no extra to install); "
|
|
1008
|
+
"restart webbee in the repository, and if it repeats, see "
|
|
1009
|
+
"~/.cache/webbee/tui-stderr.log"}
|
|
1006
1010
|
from webbee.intel import query
|
|
1007
1011
|
if verb == "repo_profile":
|
|
1008
1012
|
return query.repo_profile(self.indexer)
|
|
@@ -178,6 +178,21 @@ def test_cpc_shim_degrades_without_indexer(tmp_path):
|
|
|
178
178
|
ex = LocalToolExecutor(str(tmp_path)) # indexer=None
|
|
179
179
|
out = ex.run("graph_slice", {"symbols": ["x"]})
|
|
180
180
|
assert out["ok"] is False and "intel not available" in out["content"]
|
|
181
|
+
assert "install webbee[intel]" not in out["content"] # intel ships in the base install since 0.7.0
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
def test_cpc_shim_says_why_the_index_is_down(tmp_path, monkeypatch):
|
|
185
|
+
import asyncio
|
|
186
|
+
from webbee import boot
|
|
187
|
+
from webbee.tools import LocalToolExecutor
|
|
188
|
+
|
|
189
|
+
def broken_factory(cfg, ws):
|
|
190
|
+
raise PermissionError("cannot write the index cache")
|
|
191
|
+
monkeypatch.setattr(boot, "INTEL_DOWN_REASON", "")
|
|
192
|
+
assert asyncio.run(boot.start_intel(object(), str(tmp_path), broken_factory)) == (None, None)
|
|
193
|
+
out = LocalToolExecutor(str(tmp_path)).run("impact_of_change", {"symbols": ["x"]})
|
|
194
|
+
assert out["ok"] is False
|
|
195
|
+
assert "PermissionError: cannot write the index cache" in out["content"]
|
|
181
196
|
|
|
182
197
|
|
|
183
198
|
def test_cpc_graph_slice_coerces_stringified_symbols(tmp_path):
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.7.0"
|
|
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
|
|
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
|