4ff5d7021c167998bff538ae7441ccd4da6bcc84
Code review of 893f049 flagged 6 findings. This commit addresses them all:
#1 (real issue, production code): setSessionId was being called
TWICE per session switch - once explicitly from the cell-action
callback, and again from the prompt's _handleSwitchSession (which
also assigned _sessionId, called _resetStreamPointers, and set
_sessionSelect.value directly). The explicit setSessionId in the
cell-action callbacks (onCreateSession, onSwitchSession) is now
removed; the prompt's handlers do all of that bookkeeping through
a single setSessionId() call, which already implements the
dropdown + reset-stream-pointers logic.
#2 / #4 (test coverage): the existing switching test only checked
that the right HTTP call was made. New assertions: the prompt's
session-messages mock IS called again (history actually reloaded)
and the rendered history reflects the new session's content
(verifies the user sees the right messages, not stale DOM).
#3 (test coverage): new test for the error path. bind_existing
returns ok:false -> the prompt rolls the dropdown back to the
previous active id, leaves _sessionId unchanged, and shows a
Notification.error. This locks in the rollback behavior so a
future refactor can't silently break it.
#5 (test cleanup): mockedCallOpenCodeSessionMessages (the spy used
to verify history reload) is now declared at the top of the spec
file alongside the other mocked* variables, with a meaningful
name (mockedSessionMessages) instead of an inline jest.mocked()
that was hard to find.
#6 (source-doc): added a TODO(frontend) comment on
callOpenCodeSetActiveSession explaining why it is currently
unused (kept for a future 'switch between already-bound sessions'
flow that would avoid the bind round-trip) and warning a future
maintainer not to delete the corresponding server route without
removing the client function (or vice versa).
Tests: 77 jest (was 76), 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%