jupyterlab_claude_code_extension 1.1.13 → 1.1.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/widget.d.ts CHANGED
@@ -50,7 +50,8 @@ export declare class ClaudeCodeSessionsWidget extends Widget {
50
50
  private _findTerminalForCwd;
51
51
  private _showCloseExistingDialog;
52
52
  /** Show a modal with a spinner while the terminal is being launched. The
53
- * caller must dismiss it via ``.resolve()`` once the work is done.
53
+ * caller must dismiss it via ``.dispose()`` once the work is done - the
54
+ * dialog has no buttons so ``.resolve()`` would be a no-op.
54
55
  */
55
56
  private _showLaunchSpinner;
56
57
  private _wireTerminalDisposal;
package/lib/widget.js CHANGED
@@ -346,7 +346,7 @@ export class ClaudeCodeSessionsWidget extends Widget {
346
346
  // via terminal:open. When claude exits, the tab closes. The launch
347
347
  // RPC + the WebSocket-resize waiter on the server can take a few
348
348
  // seconds, so show a modal spinner for visual feedback.
349
- const spinner = this._showLaunchSpinner(`Opening ${this._lookupName(session)}...`);
349
+ const spinner = this._showLaunchSpinner();
350
350
  try {
351
351
  const launched = await requestAPI('launch-terminal', this._serverSettings, {
352
352
  method: 'POST',
@@ -366,7 +366,7 @@ export class ClaudeCodeSessionsWidget extends Widget {
366
366
  }
367
367
  }
368
368
  finally {
369
- spinner.resolve();
369
+ spinner.dispose();
370
370
  }
371
371
  }
372
372
  catch (err) {
@@ -452,19 +452,16 @@ export class ClaudeCodeSessionsWidget extends Widget {
452
452
  });
453
453
  }
454
454
  /** Show a modal with a spinner while the terminal is being launched. The
455
- * caller must dismiss it via ``.resolve()`` once the work is done.
455
+ * caller must dismiss it via ``.dispose()`` once the work is done - the
456
+ * dialog has no buttons so ``.resolve()`` would be a no-op.
456
457
  */
457
- _showLaunchSpinner(label) {
458
+ _showLaunchSpinner() {
458
459
  const body = new Widget();
459
460
  body.node.className = 'jp-ClaudeSessionsPanel-launchOverlay';
460
461
  const spinner = document.createElement('div');
461
462
  spinner.className =
462
463
  'jp-claude-sessions-panel-spinner jp-ClaudeSessionsPanel-launchSpinner';
463
464
  body.node.appendChild(spinner);
464
- const text = document.createElement('div');
465
- text.className = 'jp-ClaudeSessionsPanel-launchLabel';
466
- text.textContent = label;
467
- body.node.appendChild(text);
468
465
  const dialog = new Dialog({
469
466
  title: 'Opening Claude Code session',
470
467
  body,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jupyterlab_claude_code_extension",
3
- "version": "1.1.13",
3
+ "version": "1.1.15",
4
4
  "description": "Browse, resume, and manage your Claude Code CLI sessions from a JupyterLab side panel. One click reactivates the right terminal - no duplicate tabs, live remote-control indicator, and favourites for the projects you keep coming back to.",
5
5
  "keywords": [
6
6
  "jupyter",
package/src/widget.ts CHANGED
@@ -431,9 +431,7 @@ export class ClaudeCodeSessionsWidget extends Widget {
431
431
  // via terminal:open. When claude exits, the tab closes. The launch
432
432
  // RPC + the WebSocket-resize waiter on the server can take a few
433
433
  // seconds, so show a modal spinner for visual feedback.
434
- const spinner = this._showLaunchSpinner(
435
- `Opening ${this._lookupName(session)}...`
436
- );
434
+ const spinner = this._showLaunchSpinner();
437
435
  try {
438
436
  const launched = await requestAPI<ILaunchTerminalResponse>(
439
437
  'launch-terminal',
@@ -457,7 +455,7 @@ export class ClaudeCodeSessionsWidget extends Widget {
457
455
  this._focusTerminal(widget);
458
456
  }
459
457
  } finally {
460
- spinner.resolve();
458
+ spinner.dispose();
461
459
  }
462
460
  } catch (err) {
463
461
  this._showError(err);
@@ -545,9 +543,10 @@ export class ClaudeCodeSessionsWidget extends Widget {
545
543
  }
546
544
 
547
545
  /** Show a modal with a spinner while the terminal is being launched. The
548
- * caller must dismiss it via ``.resolve()`` once the work is done.
546
+ * caller must dismiss it via ``.dispose()`` once the work is done - the
547
+ * dialog has no buttons so ``.resolve()`` would be a no-op.
549
548
  */
550
- private _showLaunchSpinner(label: string): Dialog<unknown> {
549
+ private _showLaunchSpinner(): Dialog<unknown> {
551
550
  const body = new Widget();
552
551
  body.node.className = 'jp-ClaudeSessionsPanel-launchOverlay';
553
552
 
@@ -556,11 +555,6 @@ export class ClaudeCodeSessionsWidget extends Widget {
556
555
  'jp-claude-sessions-panel-spinner jp-ClaudeSessionsPanel-launchSpinner';
557
556
  body.node.appendChild(spinner);
558
557
 
559
- const text = document.createElement('div');
560
- text.className = 'jp-ClaudeSessionsPanel-launchLabel';
561
- text.textContent = label;
562
- body.node.appendChild(text);
563
-
564
558
  const dialog = new Dialog<unknown>({
565
559
  title: 'Opening Claude Code session',
566
560
  body,
package/style/base.css CHANGED
@@ -256,13 +256,6 @@
256
256
  border-width: 3px;
257
257
  }
258
258
 
259
- .jp-ClaudeSessionsPanel-launchLabel {
260
- font-size: var(--jp-ui-font-size1);
261
- color: var(--jp-ui-font-color1);
262
- text-align: center;
263
- word-break: break-word;
264
- }
265
-
266
259
  .jp-ClaudeSessionsPanel-row.jp-mod-busy {
267
260
  opacity: 0.55;
268
261
  pointer-events: none;