Skip to content

feat(notebook): add bounded Jupyter execution service and contracts - #218

Merged
tannerpolley merged 5 commits into
mainfrom
issue-210-notebooks-1-4-notebook-service-jupyter
Oct 28, 2026
Merged

tannerpolley merged 5 commits into
mainfrom
issue-210-notebooks-1-4-notebook-service-jupyter

Conversation

@tannerpolley

@tannerpolley tannerpolley commented Oct 28, 2026 •

Copy link
Copy Markdown
Owner

Summary

Adds the optional server foundation for running workspace notebooks through a configured loopback Jupyter Server. Notebook-owned modules retain lossless documents, own kernels, correlate executions, and publish bounded snapshots and deltas through typed, authorized fork RPCs.

Fork RPC → NotebookService → JupyterTransport → loopback Jupyter
                ↓                 ↓
       document + run owner   bounded message admission

Execution remains disabled in production composition until trusted configuration is supplied. Persistence/lifecycle, viewer controls and agent tools follow in #211–#213.

Closes #210

Evidence

  • Independent Codex checker accepted d5739bd76db1f62a947efd27675dfd0f7454eb4a after regression checks for generation fencing, cleanup retry, per-notebook locks, canonical ownership, bounded completion and output-loss attribution.
  • Before: valid aborted replies disconnected. After: actual-frame tests pass in both reply/idle orders; provenance retains the status, remaining cells do not run, and no error output is invented.
  • 52 focused tests pass; the changed-file gate passes formatting, lint, GraphQL and 65 tests. Contracts typecheck passes. Server typecheck has two independently confirmed baseline MCP SDK import errors; the overall changed-file gate also retains baseline mobile type and unused-code failures.
  • After merging current main without conflicts: contracts and server package typechecks and 63 affected tests passed. Dependencies were refreshed from the frozen lockfile. Current main fixes the previously reported MCP SDK import errors; the broader baseline mobile/unused-code findings remain disclosed above.
  • Real local Jupyter execution verified arithmetic, large source/error payloads, visible oversized-output loss, interrupt, restart/state reset, and cleanup to zero owned kernels. Only captured launch PIDs were stopped.
  • Binary kernel frames are explicitly unsupported. No browser, dev server, T3 installation, restart or release was performed.

Merge Danger

Door: Two-way

Blast Radius: Server

New optional fork RPC/contracts and notebook modules; no database migration or automatic execution on open.

Implemented and reviewed with Codex GPT-6.1 Sol through T3 Code's Codex harness.

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.

Notebooks 1/4: notebook service, Jupyter Server transport and contracts

1 participant