Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -213,3 +213,7 @@ __marimo__/
# Bub
references/
.agents/
# Runtime-generated marimo notebooks
insights/dashboard.py
insights/index.py
insights/example_visualization.py
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@

bubseek turns fragmented data across operational systems, repositories, and agent runtime traces into **explainable, actionable, and shareable insights** without heavy ETL. It keeps the Bub runtime and extension model while packaging a practical default distribution for real deployments.

`bubseek` now boots through a single distribution entry point: local runs default to SQLite tape storage, while SeekDB/OceanBase remains a first-class production target through the SQLAlchemy URL or `OCEANBASE_*` settings.

## Features

- **Lightweight and on-demand** — Trigger analysis when needed instead of maintaining large offline pipelines.
Expand Down Expand Up @@ -36,6 +38,8 @@ BUB_API_KEY=sk-or-v1-...
BUB_API_BASE=https://openrouter.ai/api/v1
```

For local testing, you can keep the tape store unset and use the default SQLite database under `BUB_HOME`. For SeekDB or OceanBase, configure `BUB_TAPESTORE_SQLALCHEMY_URL=mysql+oceanbase://...` or the matching `OCEANBASE_*` variables.

## Add contrib

Contrib packages remain standard Python packages. Add them as normal dependencies.
Expand Down
5 changes: 3 additions & 2 deletions contrib/bubseek-marimo/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ Open `http://localhost:2718/` — marimo gallery. Click **dashboard** for chat +
## Insight Output

- Canonical runtime location: `<workspace>/insights/*.py`
- `dashboard.py`, `index.py`, and `example_visualization.py` are generated starter notebooks, not hand-maintained repository assets
- `workspace` resolution order: `BUB_MARIMO_WORKSPACE` -> `BUB_WORKSPACE_PATH` -> current working directory
- Packaged plugin installs still write generated notebooks into the active workspace, never into the installed package directory
- Format: single `.py` with `@app.cell`, PEP 723
Expand All @@ -42,13 +43,13 @@ Open `http://localhost:2718/` — marimo gallery. Click **dashboard** for chat +
uv run pytest contrib/bubseek-marimo/tests/test_marimo_e2e.py -v
```

Requires `.env` with `OPENROUTER_API_KEY` (or equivalent) for chat agent response.
The E2E suite runs with `BUB_RUNTIME_ENABLED=0`, so it does not need a remote model key to verify the dashboard flow.

## Configuration

| Variable | Description |
| --- | --- |
| `BUB_MARIMO_HOST` | Bind host (default: `0.0.0.0`) |
| `BUB_MARIMO_HOST` | Bind host (default: `127.0.0.1`) |
| `BUB_MARIMO_PORT` | Bind port (default: `2718`) |
| `BUB_MARIMO_WORKSPACE` | Override the Bub workspace root used for runtime notebook output |
| `BUB_WORKSPACE_PATH` | Default Bub workspace root when `BUB_MARIMO_WORKSPACE` is unset |
Loading
Loading