893f049eb79584351734c2027fdc83a1625a95ec
Bug: 400 from PUT /opencode-bridge/sessions/active when the user picked a session from the global list that wasn't yet bound to this notebook. The cell-action onSwitchSession callback was: 1. PUT /sessions/active (server checks bound -> 400) 2. PUT /sessions/notebook (bind, but never reached) The order was wrong: set_active requires the session to be bound FIRST. Fix: the PUT /sessions/notebook route does both bind AND set active in a single call (server handler: bind_existing() then response includes the new activeSessionId). So the callback now only needs to call bind-existing. The /sessions/active endpoint is still useful for future "switch between already-bound sessions" flows but the current "pick from global list" path doesn't need it. Tests: updated the switching test to assert bind-existing is called and set-active is NOT. Also added not.toHaveBeenCalled() to lock in the new behavior. 76 jest, 73 pytest, build green. Co-Authored-By: Claude <noreply@anthropic.com>
…
…
…
…
…
…
…
…
opencode_bridge
A JupyterLab extension.
This extension is composed of a Python package named opencode_bridge
for the server extension and a NPM package named opencode_bridge
for the frontend extension.
Requirements
- JupyterLab >= 4.0.0
Install
To install the extension, execute:
pip install opencode_bridge
Uninstall
To remove the extension, execute:
pip uninstall opencode_bridge
Troubleshoot
If you are seeing the frontend extension, but it is not working, check that the server extension is enabled:
jupyter server extension list
If the server extension is installed and enabled, but you are not seeing the frontend extension, check the frontend extension is installed:
jupyter labextension list
Contributing
If you would like to contribute to this extension, please refer to the Contributing Guide.
Releases
2
Release v0.1.1
Latest
Languages
TypeScript
55.6%
Python
38.8%
CSS
3.9%
JavaScript
0.9%
Shell
0.8%