Skip to content

Feat/mcp UI tool#478

Merged
paddymul merged 25 commits intomainfrom
feat/mcp-ui-tool
Feb 18, 2026
Merged

Feat/mcp UI tool#478
paddymul merged 25 commits intomainfrom
feat/mcp-ui-tool

Conversation

@paddymul
Copy link
Collaborator

No description provided.

paddymul and others added 25 commits February 17, 2026 21:19
Logs MCP tool activity and server subprocess output to ~/.buckaroo/logs/
for debuggability. Also accept .parq as a parquet file extension in
data_loading.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Extra space before `matrix:` key caused GitHub Actions to reject
the workflow file without running any jobs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add OS guard on cache-apt-pkgs-action (Linux only)
- Update OS checks from 'ubuntu-latest' to contains(matrix.os, 'ubuntu')
  to match the depot-ubuntu-latest runner name
- Use explicit `bash` shell for script steps on Windows
- Add OS to artifact name to avoid upload conflicts

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The docs check was previously never running due to the OS condition
mismatch. Now that it runs, it reveals a pre-existing failure.
Mark it non-blocking so it doesn't prevent the actual build/test steps.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The Playwright server tests require standalone.js to be present in
buckaroo/static/, but full_build.sh only built widget.js. This caused
all browser-rendering tests to timeout in CI.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The browser window never opened because of three stacked bugs:
1. MCP tool started server with --no-browser, disabling all browser mgmt
2. focus.py only supported Chrome, not the user's default browser
3. "found" substring matched "not_found", so find always returned True

Replace the old webbrowser.open/focus_browser_tab split with a single
idempotent find_or_create_session_window() that searches all Chromium
browsers (Chrome, Arc, Chromium) via AppleScript, creates a dedicated
window if none exists, and falls back to webbrowser.open on non-macOS.

Add optional BUCKAROO_APP_MODE=1 for Chrome --app mode (electron-light).

Add diagnostic info throughout so issues are immediately visible:
- /health returns pid, start time, uptime
- /load returns browser_action and server_pid
- MCP tool response includes a Server/Browser/Session footer
- Server logs to ~/.buckaroo/logs/server.log with timestamps and PIDs
- Session ID embedded in page <title> for app-mode window discovery

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- AppleScript: reorder activate→set index so target window ends up on
  top after Chrome is brought forward
- AppleScript: add reload parameter (set URL of t to URL of t) so
  existing tabs pick up newly loaded data
- LoadHandler: push full initial_state (not just metadata) to WS
  clients so the JS UI updates without a page reload
- Add browser focus primitives and rubrics design doc

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Moves the MCP tool module outside the buckaroo package so it
doesn't trigger buckaroo/__init__.py imports (which require
polars and other heavy optional deps). This fixes the MCP server
failing to start when installed via uvx --from "buckaroo[mcp]".

Also adds buckaroo_table as a second tool alias for view_data.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The health endpoint now returns uptime_s in addition to status.
Use toMatchObject instead of toEqual so the test doesn't break
when new fields are added.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Revert unscoped flex utility and gap-removal CSS rules from
dcf-npm.css that were applied globally and broke Jupyter Lab
rendering (search bar swallowed, status bar overlap).

The standalone server fix lives exclusively in handlers.py's
inline <style> tag, matching the same approach Jupyter uses
with .cell-output-ipywidget-background scoped rules.

Also add tsconfig.tsbuildinfo cleanup to full_build.sh to
prevent stale TypeScript build cache from producing outdated
CSS output.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@paddymul paddymul merged commit 7fb3dd7 into main Feb 18, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant