Releases: plmbr/notebook-intelligence
Releases · plmbr/notebook-intelligence
v5.2.0
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
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
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
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
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
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
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
...
v5.0.0a1
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...
v4.8.0
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
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
- @mcginnessjack made their first contribution in #159
- @zerone0x made their first contribution in #172
- @cSlat3r made their first contribution in #178
Full Changelog: v4.6.0...v4.7.0