Skip to content

feat: notebooks with coding agents integration#561

Draft
emrberk wants to merge 53 commits into
mainfrom
feat/notebooks
Draft

feat: notebooks with coding agents integration#561
emrberk wants to merge 53 commits into
mainfrom
feat/notebooks

Conversation

@emrberk

@emrberk emrberk commented May 12, 2026

Copy link
Copy Markdown
Collaborator
  • Pull this branch, then yarn && yarn start and see web console on localhost:9999 as before.
  • Clone https://github.com/questdb/mcp-bridge and yarn && yarn build. We will use the script ...clone path.../mcp-bridge/dist/index.js in the next step.
  • Configure the MCP:
    • In Codex, there is a UI to set up the MCP (field values the same as below), or you can run codex mcp add questdb --env CONSOLE_ORIGIN=http://localhost:9999/ -- ...clone path.../mcp-bridge/dist/index.js
    • For using with Claude, find the Claude config file (~/.claude.json on Mac). Then add this to the config:
"mcpServers": {
    "questdb": {
      "type": "stdio",
      "command": "...clone path.../mcp-bridge/dist/index.js",
      "args": [],
      "env": {
        "CONSOLE_ORIGIN": "http://localhost:9999/"
      }
    }
  },
  • Start Claude, you should see questdb (connected) in the list when you type command /mcp.
  • Ask it to pair with web console and then follow Claude instructions. You can also directly say "create ... dashboard in web console" and it will guide you.

@emrberk emrberk changed the title Feat/notebooks feat: notebooks with coding agents integration May 12, 2026
Comment thread e2e/tests/console/mcpBridgePermissions.spec.js
Comment thread src/utils/mcp/consumePendingPair.test.ts
emrberk and others added 26 commits June 9, 2026 22:35
…-only pairing default

- key result snapshots to the executed SQL and guard the single-query
  completion write so mid-run edits / agent invalidation can't mislabel
  or resurrect results; supersede run generations on unmount so aborted
  runs don't overwrite the last good snapshot
- debounce the draw-cell fetch pipeline (300ms) so typing no longer
  fires validate/execute requests per keystroke
- validate and sanitize notebookViewState on tab import (malformed
  imports crashed the notebook scene)
- emit user_moved_cell from arrow-key reorder so paired agents see it
- default new MCP pairings to read-only; write needs explicit upgrade
- "Reset to auto" reuses the canonical first-draw chart inference

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…, designated timestamp highlight from exec response

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…duplicate lost on reload)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
A run cell tracks its outcome only in the live result during a session.
buildAppliedCells dropped that result on any value change, wiping the
run-history signal, so the next apply saw the cell as never-run and
auto-executed the write again (duplicate INSERT/UPDATE/DROP). Collapse
the dropped result into lastRunStatus so ranBefore stays true.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ve_value in apply_notebook_state

Duplicated cells/notebooks keep their collapsed run status so apply's
auto-run never re-fires a write that already ran through the original.

Cell reads no longer truncate silently: get_cell caps at 4 KB with
out-of-band truncated/full_length flags and takes get_full_content for
the verbatim value (hard 1 MB ceiling, fails loudly); snapshot previews
flag preview_truncated/full_length when cut. apply_notebook_state cells
take exactly one of value / preserve_value:true, so agents keep cells
they aren't changing instead of echoing possibly-stale or truncated
copies; preserved cells retain value, results, and run history.
STATE_STALE recovery text now steers agents to preserve_value and full
re-reads so user edits survive the documented retry path.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
apply_notebook_state and add_cell(run:true) now skip cells containing
DDL/DML regardless of run history or the write permission, returning
skipped:true with a note pointing at an explicit, user-consented
run_cell. Removes the fragile ranBefore distinction entirely.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ender

- Drop the source id on validation-failed tabs during import so bulkAdd
  assigns a fresh key; keeping it could collide with an existing buffer
  and abort the whole import transaction, leaving nothing imported.
- Include areaStyle/step/stack presence in the chart structural key so a
  subtype switch (e.g. area->line, stacked->grouped bar) forces a remount
  instead of an echarts merge that kept the previous fill/step/stack.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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