Skip to content

Releases: plmbr/notebook-intelligence

v5.2.0

18 Jun 02:38

Choose a tag to compare

What's Changed

  • perf(startup): defer provider SDK imports to first use by @pjdoland in #372
  • fix(claude): honor CLAUDE_CONFIG_DIR when listing session history by @pjdoland in #374
  • fix(claude): honor CLAUDE_CONFIG_DIR for user-scope MCP config and the plugin cache by @pjdoland in #376
  • feat(chat): Claude permission-mode selector with gated bypass by @pjdoland in #377

Full Changelog: v5.1.0...v5.2.0

v5.2.0a1

16 Jun 15:23

Choose a tag to compare

v5.2.0a1 Pre-release
Pre-release

What's Changed

  • perf(startup): defer provider SDK imports to first use by @pjdoland in #372
  • fix(claude): honor CLAUDE_CONFIG_DIR when listing session history by @pjdoland in #374
  • fix(claude): honor CLAUDE_CONFIG_DIR for user-scope MCP config and the plugin cache by @pjdoland in #376
  • feat(chat): Claude permission-mode selector with gated bypass by @pjdoland in #377

Full Changelog: v5.1.0...v5.2.0a1

v5.1.0

08 Jun 19:38

Choose a tag to compare

What's Changed

  • security(mcp): admin allowlist for stdio MCP server commands by @pjdoland in #298
  • security(github-copilot): warn and optionally refuse default token password on shared FS by @pjdoland in #302
  • fix(server): reject forged upload context paths by @herikwebb in #348
  • fix(frontend): quote Claude resume commands by @herikwebb in #349
  • feat(benchmarks): add Claude Code terminal vs NBI chat performance suite by @pjdoland in #350
  • refactor(agent): improve notebook prompts and tool response clarity by @moyiliyi in #351
  • docs: document 5.0.1 changes and refresh stale references by @pjdoland in #352
  • feat(chat): always-visible config for thumbs feedback by @herikwebb in #354
  • chore(dev): add opt-in Prettier pre-commit hook and editor format-on-save by @pjdoland in #355
  • style(chat): custom Claude spinner verbs from ~/.claude/settings.json by @mcginnessjack in #356
  • fix(claude): tear down the whole process tree when a Claude turn is cancelled by @pjdoland in #357
  • feat(chat): render Claude agent tool calls as persistent status cards by @pjdoland in #358
  • feat(chat): inline diffs, grouping, and unified tool maps for tool-call cards by @pjdoland in #360
  • style(chat): replace expandable-content inner glow with a flat fill by @pjdoland in #361
  • fix(chat): keep the response message id stable so the tool-call group stops flickering by @pjdoland in #364
  • docs(changelog): add 5.1.0 release notes and refresh version matrix by @pjdoland in #365
  • docs: document the duplicate-sidebar-icon issue from the scope rename (#367) by @pjdoland in #369

Full Changelog: v5.0.1...v5.1.0

v5.1.0a2

07 Jun 17:30

Choose a tag to compare

v5.1.0a2 Pre-release
Pre-release

What's Changed

  • security(mcp): admin allowlist for stdio MCP server commands by @pjdoland in #298
  • security(github-copilot): warn and optionally refuse default token password on shared FS by @pjdoland in #302
  • fix(server): reject forged upload context paths by @herikwebb in #348
  • fix(frontend): quote Claude resume commands by @herikwebb in #349
  • feat(benchmarks): add Claude Code terminal vs NBI chat performance suite by @pjdoland in #350
  • refactor(agent): improve notebook prompts and tool response clarity by @moyiliyi in #351
  • docs: document 5.0.1 changes and refresh stale references by @pjdoland in #352
  • feat(chat): always-visible config for thumbs feedback by @herikwebb in #354
  • chore(dev): add opt-in Prettier pre-commit hook and editor format-on-save by @pjdoland in #355
  • style(chat): custom Claude spinner verbs from ~/.claude/settings.json by @mcginnessjack in #356
  • fix(claude): tear down the whole process tree when a Claude turn is cancelled by @pjdoland in #357
  • feat(chat): render Claude agent tool calls as persistent status cards by @pjdoland in #358
  • feat(chat): inline diffs, grouping, and unified tool maps for tool-call cards by @pjdoland in #360
  • style(chat): replace expandable-content inner glow with a flat fill by @pjdoland in #361
  • fix(chat): keep the response message id stable so the tool-call group stops flickering by @pjdoland in #364
  • docs(changelog): add 5.1.0 release notes and refresh version matrix by @pjdoland in #365

Full Changelog: v5.0.1...v5.1.0a2

v5.1.0a1

07 Jun 03:04

Choose a tag to compare

v5.1.0a1 Pre-release
Pre-release

What's Changed

  • security(mcp): admin allowlist for stdio MCP server commands by @pjdoland in #298
  • security(github-copilot): warn and optionally refuse default token password on shared FS by @pjdoland in #302
  • fix(server): reject forged upload context paths by @herikwebb in #348
  • fix(frontend): quote Claude resume commands by @herikwebb in #349
  • feat(benchmarks): add Claude Code terminal vs NBI chat performance suite by @pjdoland in #350
  • refactor(agent): improve notebook prompts and tool response clarity by @moyiliyi in #351
  • docs: document 5.0.1 changes and refresh stale references by @pjdoland in #352
  • feat(chat): always-visible config for thumbs feedback by @herikwebb in #354
  • chore(dev): add opt-in Prettier pre-commit hook and editor format-on-save by @pjdoland in #355
  • style(chat): custom Claude spinner verbs from ~/.claude/settings.json by @mcginnessjack in #356
  • fix(claude): tear down the whole process tree when a Claude turn is cancelled by @pjdoland in #357
  • feat(chat): render Claude agent tool calls as persistent status cards by @pjdoland in #358
  • feat(chat): inline diffs, grouping, and unified tool maps for tool-call cards by @pjdoland in #360
  • style(chat): replace expandable-content inner glow with a flat fill by @pjdoland in #361

Full Changelog: v5.0.1...v5.1.0a1

v5.0.1

24 May 19:15

Choose a tag to compare

What's Changed

  • docs(readme): refresh blog URLs after org rename to plmbr by @pjdoland in #343
  • fix(chat): open AI-generated links in new tab instead of replacing Lab UI by @pjdoland in #347
  • feat(copilot): route Codex chat models through /responses endpoint by @pjdoland in #341

Full Changelog: v5.0.0...v5.0.1

v5.0.0

23 May 18:06
b030f48

Choose a tag to compare

What's Changed

  • fix(ui): anchor notebook inline chat to the cursor line by @herikwebb in #191
  • chore(security): upgrade dependencies to address known CVEs by @pjdoland in #197
  • a11y: keyboard + screen-reader fixes across chat sidebar and popovers by @pjdoland in #205
  • a11y(settings): convert tabs to ARIA tablist with arrow-key nav by @pjdoland in #206
  • test(ui): scaffold Galata-based Playwright UI test suite by @pjdoland in #207
  • feat(settings): promote Skills to a top-level tab + admin policy gate by @pjdoland in #224
  • feat(settings): add Claude-mode MCP Servers tab + admin policy gate by @pjdoland in #225
  • feat(settings): add Claude-mode Plugins management tab + admin policy gate by @pjdoland in #226
  • fix(notebook-toolbar): make update button work outside Claude mode by @pjdoland in #238
  • fix(launcher): show Claude Code tile whenever the CLI is available by @pjdoland in #239
  • fix(notebook-toolbar): focus prompt textarea when popover opens by @pjdoland in #240
  • feat(config): layer additional_skipped_workspace_directories on NBI config by @pjdoland in #241
  • docs(contributing): document traitlet vs env var vs config-file guidance by @pjdoland in #242
  • fix(claude): dedupe /clear in @-mention autocomplete by @pjdoland in #243
  • fix(settings): show persisted Claude model after JupyterLab restart by @pjdoland in #244
  • chore(deps): bump react-icons to ~5.6.0 by @pjdoland in #245
  • feat(chat-sidebar): add "+ New Chat session" button to restart Claude by @pjdoland in #246
  • fix(claude): stabilize is_connected() against the worker-spawn resurrection race by @pjdoland in #250
  • feat(copilot): add newer GitHub Copilot chat models by @zerone0x in #255
  • fix(notebook-tools): keep cell tools targeting the right notebook when the user switches tabs by @pjdoland in #253
  • feat(skills): raise GitHub archive cap to 100 MB, make overridable by @pjdoland in #257
  • fix(chat-sidebar): refresh @-mention picker when workspace files change by @pjdoland in #251
  • feat(chat-sidebar): real progress feedback during long Claude tasks by @pjdoland in #254
  • feat(terminal): drag-drop file attach with @-mention / raw modes by @pjdoland in #256
  • Touch ups by @mbektas in #263
  • fix(claude): mention zero-based indexing in cell-tool descriptions by @pjdoland in #265
  • fix(chat-sidebar): close workspace file picker on Escape from search input by @pjdoland in #266
  • feat(chat-sidebar): hover preview for image context thumbnails by @pjdoland in #267
  • feat(launcher): add tiles for opencode, Pi, and GitHub Copilot CLI by @pjdoland in #268
  • feat(copilot): dynamically discover available Copilot chat models by @pjdoland in #269
  • fix(extension): marshal websocket writes to the IOLoop thread by @pjdoland in #270
  • ux(chat-sidebar): clarify chat-input footer icons by @pjdoland in #271
  • test(ui): expand Galata coverage with high-signal user-flow specs by @pjdoland in #272
  • fix(claude): render tool-result check on the right of the label by @pjdoland in #277
  • fix(chat): keep disabled send button state neutral by @GHX5T-SOL in #276
  • fix plugin name on settings row by @mbektas in #280
  • feat(mcp): JSON-paste path in Add MCP server dialog by @pjdoland in #285
  • feat(claude-mcp): disable MCP servers per workspace by @pjdoland in #286
  • docs: cover post-4.8.0 changes across README, admin guide, skills, CHANGELOG by @pjdoland in #287
  • Add plugin marketplace picker by @puneetdixit200 in #284
  • security: add runtime kill switch for the managed-skills reconciler by @pjdoland in #291
  • feat(launcher): admin policy to hide coding-agent launcher tiles by @pjdoland in #288
  • security: sandbox shell-tool working_directory to jupyter_root by @pjdoland in #290
  • security: enforce 0o600 on the encrypted GitHub token file by @pjdoland in #293
  • fix(extension): free WS message-callback handlers when requests finish by @pjdoland in #294
  • security: detect GitHub Enterprise hosts for marketplace add by @pjdoland in #292
  • security: filter anchor URI schemes against XSS allowlist by @pjdoland in #296
  • security(mcp): validate user MCP config shape before persisting by @pjdoland in #299
  • security: scrub process-env secrets from shell-tool output by @pjdoland in #295
  • security(ws): authenticate and origin-check Copilot WebSocket upgrades by @pjdoland in #301
  • feat(plugins): show marketplace details and add an Update button by @pjdoland in #303
  • feat(onboarding): in-app first-run tour for the NBI sidebar by @pjdoland in #304
  • feat(skills): accept comma-separated list of managed-skills manifests by @pjdoland in #321
  • feat(skills): track upstream for user-imported GitHub skills by @pjdoland in #322
  • a11y(chat-sidebar): promote header icon-divs to keyboard-reachable buttons by @pjdoland in #305
  • a11y(popovers): keyboard-first workspace, tools, and slash popovers by @pjdoland in #306
  • a11y(ask-user-question): radio for single-select, form-scoped ids by @pjdoland in #307
  • a11y(claude-mcp): wire form labels to their inputs by @pjdoland in #308
  • a11y(checkbox): keyboard activation + WAI-ARIA checkbox role by @pjdoland in #309
  • fix(claude-sessions): unify session listing across NBI surfaces, drop history.jsonl gate by @pjdoland in #310
  • a11y(chat): make 'open notebook' link reachable by keyboard by @pjdoland in #311
  • a11y(skills-panel): real icons, focus reveal, drop nested-button wrapper by @pjdoland in #312
  • a11y(send-button): warn color + aria-label swap while stopping by @pjdoland in #313
  • a11y(inline-popover): use JupyterLab theme tokens for background by @pjdoland in #314
  • a11y(uploading): animated ellipsis + role=status / aria-live by @pjdoland in #315
  • a11y(drop-zone): theme-aware chip text for guaranteed contrast by @pjdoland in #316
  • a11y(generating): pause rotating border under prefers-reduced-motion by @pjdoland in #317
  • a11y(transcript): announce streaming chat replies via aria-live by @pjdoland in #318
  • a11y(focus): Ctrl/Cmd+Shift+L global shortcut to focus the chat input by @pjdoland in #320
  • security(claude): sandbox UI-bridge tool paths to jupyter_root by @pjdoland in #323
  • fix(deps): drop fastmcp for the official mcp SDK; pin urllib3 for CVE fixes by @pjdoland in #324
  • a11y(sidebar): visually-hidden 'Skip to message input' link by @pjdoland in #319
    ...
Read more

v5.0.0a1

22 May 14:55

Choose a tag to compare

v5.0.0a1 Pre-release
Pre-release

What's Changed

  • fix(ui): anchor notebook inline chat to the cursor line by @herikwebb in #191
  • chore(security): upgrade dependencies to address known CVEs by @pjdoland in #197
  • a11y: keyboard + screen-reader fixes across chat sidebar and popovers by @pjdoland in #205
  • a11y(settings): convert tabs to ARIA tablist with arrow-key nav by @pjdoland in #206
  • test(ui): scaffold Galata-based Playwright UI test suite by @pjdoland in #207
  • feat(settings): promote Skills to a top-level tab + admin policy gate by @pjdoland in #224
  • feat(settings): add Claude-mode MCP Servers tab + admin policy gate by @pjdoland in #225
  • feat(settings): add Claude-mode Plugins management tab + admin policy gate by @pjdoland in #226
  • fix(notebook-toolbar): make update button work outside Claude mode by @pjdoland in #238
  • fix(launcher): show Claude Code tile whenever the CLI is available by @pjdoland in #239
  • fix(notebook-toolbar): focus prompt textarea when popover opens by @pjdoland in #240
  • feat(config): layer additional_skipped_workspace_directories on NBI config by @pjdoland in #241
  • docs(contributing): document traitlet vs env var vs config-file guidance by @pjdoland in #242
  • fix(claude): dedupe /clear in @-mention autocomplete by @pjdoland in #243
  • fix(settings): show persisted Claude model after JupyterLab restart by @pjdoland in #244
  • chore(deps): bump react-icons to ~5.6.0 by @pjdoland in #245
  • feat(chat-sidebar): add "+ New Chat session" button to restart Claude by @pjdoland in #246
  • fix(claude): stabilize is_connected() against the worker-spawn resurrection race by @pjdoland in #250
  • feat(copilot): add newer GitHub Copilot chat models by @zerone0x in #255
  • fix(notebook-tools): keep cell tools targeting the right notebook when the user switches tabs by @pjdoland in #253
  • feat(skills): raise GitHub archive cap to 100 MB, make overridable by @pjdoland in #257
  • fix(chat-sidebar): refresh @-mention picker when workspace files change by @pjdoland in #251
  • feat(chat-sidebar): real progress feedback during long Claude tasks by @pjdoland in #254
  • feat(terminal): drag-drop file attach with @-mention / raw modes by @pjdoland in #256
  • Touch ups by @mbektas in #263
  • fix(claude): mention zero-based indexing in cell-tool descriptions by @pjdoland in #265
  • fix(chat-sidebar): close workspace file picker on Escape from search input by @pjdoland in #266
  • feat(chat-sidebar): hover preview for image context thumbnails by @pjdoland in #267
  • feat(launcher): add tiles for opencode, Pi, and GitHub Copilot CLI by @pjdoland in #268
  • feat(copilot): dynamically discover available Copilot chat models by @pjdoland in #269
  • fix(extension): marshal websocket writes to the IOLoop thread by @pjdoland in #270
  • ux(chat-sidebar): clarify chat-input footer icons by @pjdoland in #271
  • test(ui): expand Galata coverage with high-signal user-flow specs by @pjdoland in #272
  • fix(claude): render tool-result check on the right of the label by @pjdoland in #277
  • fix(chat): keep disabled send button state neutral by @GHX5T-SOL in #276
  • fix plugin name on settings row by @mbektas in #280
  • feat(mcp): JSON-paste path in Add MCP server dialog by @pjdoland in #285
  • feat(claude-mcp): disable MCP servers per workspace by @pjdoland in #286
  • docs: cover post-4.8.0 changes across README, admin guide, skills, CHANGELOG by @pjdoland in #287
  • Add plugin marketplace picker by @puneetdixit200 in #284
  • security: add runtime kill switch for the managed-skills reconciler by @pjdoland in #291
  • feat(launcher): admin policy to hide coding-agent launcher tiles by @pjdoland in #288
  • security: sandbox shell-tool working_directory to jupyter_root by @pjdoland in #290
  • security: enforce 0o600 on the encrypted GitHub token file by @pjdoland in #293
  • fix(extension): free WS message-callback handlers when requests finish by @pjdoland in #294
  • security: detect GitHub Enterprise hosts for marketplace add by @pjdoland in #292
  • security: filter anchor URI schemes against XSS allowlist by @pjdoland in #296
  • security(mcp): validate user MCP config shape before persisting by @pjdoland in #299
  • security: scrub process-env secrets from shell-tool output by @pjdoland in #295
  • security(ws): authenticate and origin-check Copilot WebSocket upgrades by @pjdoland in #301
  • feat(plugins): show marketplace details and add an Update button by @pjdoland in #303
  • feat(onboarding): in-app first-run tour for the NBI sidebar by @pjdoland in #304
  • feat(skills): accept comma-separated list of managed-skills manifests by @pjdoland in #321
  • feat(skills): track upstream for user-imported GitHub skills by @pjdoland in #322
  • a11y(chat-sidebar): promote header icon-divs to keyboard-reachable buttons by @pjdoland in #305
  • a11y(popovers): keyboard-first workspace, tools, and slash popovers by @pjdoland in #306
  • a11y(ask-user-question): radio for single-select, form-scoped ids by @pjdoland in #307
  • a11y(claude-mcp): wire form labels to their inputs by @pjdoland in #308
  • a11y(checkbox): keyboard activation + WAI-ARIA checkbox role by @pjdoland in #309
  • fix(claude-sessions): unify session listing across NBI surfaces, drop history.jsonl gate by @pjdoland in #310
  • a11y(chat): make 'open notebook' link reachable by keyboard by @pjdoland in #311
  • a11y(skills-panel): real icons, focus reveal, drop nested-button wrapper by @pjdoland in #312
  • a11y(send-button): warn color + aria-label swap while stopping by @pjdoland in #313
  • a11y(inline-popover): use JupyterLab theme tokens for background by @pjdoland in #314
  • a11y(uploading): animated ellipsis + role=status / aria-live by @pjdoland in https://github.com/note...
Read more

v4.8.0

12 May 03:23

Choose a tag to compare

What's Changed

  • feat(chat-sidebar): skip dot-prefixed files in context picker by @pjdoland in #221
  • harden(skills): block + scope redirects on remote skill fetches by @pjdoland in #203
  • feat(skills): add allow_github_skill_import traitlet to gate GitHub imports by @pjdoland in #222
  • fix(config): atomic NBIConfig.save() to prevent corruption on crash by @pjdoland in #202
  • feat(chat-sidebar): extensible workspace picker filters + .gitignore by @pjdoland in #223
  • perf(chat-sidebar): parallelize workspace file scan in @-mention picker by @pjdoland in #227
  • touch ups for 4.8.0 release by @mbektas in #228

Full Changelog: v4.7.0...v4.8.0

v4.7.0

08 May 04:35

Choose a tag to compare

What's Changed

  • feat: allow images as input to chat by @mcginnessjack in #159
  • Extend cell-output context with structured bundles and image support by @pjdoland in #160
  • feat(claude): stream inline-chat responses by @herikwebb in #161
  • fix(ui): preserve undo for inline chat edits by @herikwebb in #162
  • fix: connect Claude agent in background to unblock startup (#163) by @pjdoland in #168
  • feat: notebook toolbar button for quick notebook generation (#167) by @pjdoland in #170
  • fix: resolve symlinks when locating Claude session transcripts by @pjdoland in #171
  • fix(openai): drop unsupported tool strict flag for vLLM (#108) by @zerone0x in #172
  • fix: claude headers for inline completions by @ajayrgb in #176
  • feat: copy-to-clipboard for Claude session IDs (#164) by @pjdoland in #169
  • fix(rules): support repo-level AGENTS.md instructions by @zerone0x in #173
  • feat: Add Claude Code launcher Tile by @CCDevelopForFun in #175
  • feat: extend admin policy coverage to every settings panel control by @pjdoland in #177
  • fix(claude): prevent worker thread crash on cancellation by @cSlat3r in #178
  • fix(ui): stop "Generating..." row from reflowing on narrow sidebars by @pjdoland in #179
  • fix(claude): clean up picker previews and restore session resume by @pjdoland in #180
  • fix claude code launcher styling by @mbektas in #184
  • feat(claude): add WebSocket heartbeat to prevent timeout on long requests by @cSlat3r in #185
  • fix(claude): unify session pickers and gate launcher tile by @pjdoland in #190
  • fix(chat-sidebar): dismiss skills popup on click-outside and input clear by @mcginnessjack in #192
  • fix(claude): skip "Unknown skill:" in session-preview filter by @pjdoland in #193
  • fix(claude): drop preview row when no meaningful prompt exists by @pjdoland in #194
  • fix(claude): add ?scope=cwd query param to /claude-sessions by @pjdoland in #195
  • fix(launcher): keyboard a11y on Claude Code session picker by @pjdoland in #196
  • fix(launcher): start New Session in the active subdirectory by @pjdoland in #199
  • chore: silence traitlets DeprecationWarning on disabled_* config by @pjdoland in #198
  • ci: actually run pytest + jest on PRs by @pjdoland in #200
  • fix(api): NotImplementedError + Toolset default + Signal/registrar hygiene by @pjdoland in #201
  • fix(cell-output): handle nbformat multiline_string in bundles by @pjdoland in #204
  • fix(skills): ignore sibling writes to scope dir (fix #208) by @pjdoland in #209
  • docs: 4.7.0 release notes + cell-output / launcher / AGENTS.md surfaces by @pjdoland in #210
  • pin minimum versions of dependencies by @ajayrgb in #211
  • touch ups for 4.7.0 by @mbektas in #212

New Contributors

Full Changelog: v4.6.0...v4.7.0