webbee 0.3.29__tar.gz → 0.3.30__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.3.29 → webbee-0.3.30}/CHANGELOG.md +5 -0
- {webbee-0.3.29 → webbee-0.3.30}/PKG-INFO +1 -1
- {webbee-0.3.29 → webbee-0.3.30}/pyproject.toml +1 -1
- webbee-0.3.30/src/webbee/__init__.py +1 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/home_view.py +3 -4
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_home_view.py +6 -5
- webbee-0.3.29/src/webbee/__init__.py +0 -1
- {webbee-0.3.29 → webbee-0.3.30}/.github/workflows/publish.yml +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/.gitignore +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/LICENSE +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/README.md +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/docs/superpowers/plans/2026-07-21-interactive-home-dashboard.md +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/install.sh +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/account.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/active_sessions.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/banner_art.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/boot.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/checkpoints.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/cli.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/clipboard.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/coding_context.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/commands.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/config.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/consent.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/details.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/events.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/frames.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/home.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/http.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/instance_lock.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/intel/__init__.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/intel/chunker.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/intel/embed.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/intel/graph.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/intel/indexer.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/intel/models.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/intel/query.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/intel/service.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/intel/store.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/intel/vectors.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/intel/watch.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/mode_store.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/newtab_mode.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/output_pane.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/queue_panel.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/reflow.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/remote.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/render.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/repl.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/repo.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/selection.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/session.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/sessions.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/sizing.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/slots.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/steer.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/stream.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/tabs.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/thread.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/todo_panel.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/tokens.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/tools.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/tui.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/update.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/urlopen.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/wallet.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/src/webbee/worktrees.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/__init__.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/conftest.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_account.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_active_sessions.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_checkpoints.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_cli.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_clipboard.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_commands.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_config.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_cpc_contract_stable.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_details.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_events.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_freeze_fix.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_home.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_instance_lock.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_intel_chunker.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_intel_embed.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_intel_graph.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_intel_indexer.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_intel_no_numpy.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_intel_query.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_intel_service.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_intel_store.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_intel_vectors.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_intel_watch.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_marathon.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_mode_store.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_newtab_mode.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_packaging.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_reflow.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_render.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_repl.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_repo.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_session.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_sessions.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_sizing.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_slots.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_steer.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_stream.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_tabs.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_thread.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_todo_panel.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_tokens.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_tools.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_tui.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_tui_hardening.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_update.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_urlopen.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_version.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_wallet.py +0 -0
- {webbee-0.3.29 → webbee-0.3.30}/tests/test_worktrees.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.3.30"
|
|
@@ -596,10 +596,9 @@ class HomeView:
|
|
|
596
596
|
"· Ctrl+T new tab · Alt+N switch")])
|
|
597
597
|
return L
|
|
598
598
|
|
|
599
|
-
#
|
|
600
|
-
#
|
|
601
|
-
|
|
602
|
-
lines = [[("", "")], [("", " " * title_pad), ("class:home.header", "◆ Home")], [("", "")]]
|
|
599
|
+
# No center title — the tab bar's ◆ Home chip already names the tab,
|
|
600
|
+
# and the tiles below are Home's content. Just a leading blank line.
|
|
601
|
+
lines = [[("", "")]]
|
|
603
602
|
if two_column(width):
|
|
604
603
|
colw = max(20, (width // 2) - 3)
|
|
605
604
|
lines += _side_by_side(you_lines(), wallet_lines(), colw)
|
|
@@ -297,13 +297,14 @@ def test_you_tile_shows_expires_when_not_active():
|
|
|
297
297
|
assert "expires Aug 3" in text
|
|
298
298
|
|
|
299
299
|
|
|
300
|
-
def
|
|
301
|
-
#
|
|
302
|
-
#
|
|
300
|
+
def test_home_has_no_logo_and_no_center_title():
|
|
301
|
+
# The Webbee Code logo moved to each NEW session tab; the out-of-place
|
|
302
|
+
# center "◆ Home" title is gone too. Home's content starts with the tiles.
|
|
303
303
|
hv, _ = _view()
|
|
304
304
|
text = "".join(f[1] for f in hv._fragments())
|
|
305
|
-
assert "
|
|
306
|
-
assert "
|
|
305
|
+
assert "_____" not in text # no ascii logo on Home
|
|
306
|
+
assert "◆ Home" not in text # no center title (the tab-bar chip still has it)
|
|
307
|
+
assert "You" in text # the tiles are the top of Home
|
|
307
308
|
|
|
308
309
|
|
|
309
310
|
def test_home_virtualized_scroll_slices_and_clamps():
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.3.29"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{webbee-0.3.29 → webbee-0.3.30}/docs/superpowers/plans/2026-07-21-interactive-home-dashboard.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|