Skip to content

v5.0.0a1

Pre-release
Pre-release

Choose a tag to compare

@mbektas mbektas released this 22 May 14:55

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
  • use sparkles icon for coding agent section by @mbektas in #325
  • feat(claude): attach workspace files as @-mention in Claude mode by @pjdoland in #327
  • feat(icons): add brand icons for Codex and OpenCode launcher tiles by @CCDevelopForFun in #333
  • fix(claude-sessions): unwrap NBI preamble when joined with user prompt by @pjdoland in #331
  • Allow user choose dir from tile by @CCDevelopForFun in #332
  • feat(refresh): reload open document tabs when their files change on disk by @pjdoland in #330
  • fix(claude): steer system prompt away from over-eager notebook creation by @pjdoland in #336

New Contributors

Full Changelog: v4.8.0...v5.0.0a1

cc. @pjdoland