dd5667cea4290e33a8eab0016dbcc77d0f5468de
When the user picks a provider+model in the inline prompt, remember that choice across panel close/reopen AND across JupyterLab restarts, keyed by notebookPath. If the stored provider (or the model under it) is no longer present in the current providers payload, fall back to the default (first provider / default[pid] model) - never silently apply a stale value that would result in an empty or disabled select. - New module src/components/model_selection.ts with loadModelSelection / saveModelSelection / clearModelSelection. Best-effort: localStorage may be disabled (private mode), quota may be exhausted, value may be corrupt - all failure modes return null / no-op rather than throw. - IOpenCodeInlinePromptOptions gains notebookPath?: string. - Constructor resolves the initial selection: prefer stored+valid, else first provider / default[pid]. providerSelect.change and modelSelect.change listeners call _persistSelection() to keep storage in sync. - _rebuildModelSelect now accepts a preferredModelId; if it exists in the current provider's models it's used, else the default. - OpenCodeCellActions._showPrompt passes notebookPath = this._context?.notebookPath so the prompt can key the storage. Tests ----- - 10 unit tests in model_selection.spec.ts (load/save/clear + malformed JSON + per-notebook independence). - 4 prompt behavior tests in opencode_cell_actions.spec.ts (valid stored applied, provider removed -> default, model removed -> default, change -> saved). - 72 frontend jest (was 58), 52 backend pytest (unchanged), 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%