jupyterlab_claude_code_extension 1.0.53 → 1.0.54

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/README.md CHANGED
@@ -14,10 +14,10 @@ Browse, resume, and manage your Claude Code sessions from a JupyterLab side pane
14
14
 
15
15
  ## Features
16
16
 
17
- - **Three-section side panel** - Favourites, Recent, and All projects, each scrolling independently
17
+ - **Three-section side panel** - Favorites, Recent, and All projects, each scrolling independently
18
18
  - **Live indicator** - a green dot marks sessions that are currently running somewhere
19
19
  - **One-click resume** - click a row to jump back into that session in a terminal. If a terminal for the project is already open, it's reused instead of duplicated
20
- - **Favourites** - star projects you keep coming back to via the right-click menu
20
+ - **Favorites** - star projects you keep coming back to via the right-click menu
21
21
  - **Search** - fuzzy filter at the top of the panel
22
22
  - **Presentation modes** - label rows by session name, folder name, or path relative to the JupyterLab root
23
23
  - **Hover tooltip** with project path, last activity, message count, branch, and session id
package/lib/index.js CHANGED
@@ -7,7 +7,7 @@ const PLUGIN_ID = 'jupyterlab_claude_code_extension:plugin';
7
7
  const WIDGET_ID = 'jupyterlab-claude-code-extension';
8
8
  const plugin = {
9
9
  id: PLUGIN_ID,
10
- description: 'Side panel listing Claude Code sessions per project folder, with remote-control indicator, favourites, and one-click resume in a terminal.',
10
+ description: 'Side panel listing Claude Code sessions per project folder, with remote-control indicator, favorites, and one-click resume in a terminal.',
11
11
  autoStart: true,
12
12
  requires: [ILabShell],
13
13
  optional: [ILayoutRestorer, ISettingRegistry, ITerminalTracker],
package/lib/widget.js CHANGED
@@ -8,7 +8,7 @@ const DEFAULT_RECENT_LIMIT = 10;
8
8
  const EXPANDED_STORAGE_KEY = 'jupyterlab_claude_code_extension:expanded';
9
9
  const DEFAULT_PRESENTATION_MODE = 'session';
10
10
  const SECTION_LABELS = {
11
- favourites: 'Favourites',
11
+ favourites: 'Favorites',
12
12
  recent: 'Recent',
13
13
  all: 'All'
14
14
  };
@@ -607,7 +607,7 @@ export class ClaudeCodeSessionsWidget extends Widget {
607
607
  const empty = document.createElement('div');
608
608
  empty.className = 'jp-ClaudeSessionsPanel-emptySection';
609
609
  empty.textContent =
610
- key === 'favourites' ? 'No favourites yet.' : 'Empty.';
610
+ key === 'favourites' ? 'No favorites yet.' : 'Empty.';
611
611
  list.appendChild(empty);
612
612
  }
613
613
  else {
@@ -648,12 +648,12 @@ export class ClaudeCodeSessionsWidget extends Widget {
648
648
  name.className = 'jp-ClaudeSessionsPanel-name';
649
649
  name.textContent = this._lookupName(session);
650
650
  row.appendChild(name);
651
- // No star in the Favourites section - every row there is a favourite
651
+ // No star in the Favorites section - every row there is a favorite
652
652
  // by definition; stars are an indicator only useful in Recent/All.
653
653
  if (session.favourite && sectionKey !== 'favourites') {
654
654
  const star = document.createElement('span');
655
655
  star.className = 'jp-ClaudeSessionsPanel-favStar';
656
- star.title = 'Favourite';
656
+ star.title = 'Favorite';
657
657
  starFilledIcon.element({ container: star });
658
658
  row.appendChild(star);
659
659
  }
@@ -751,8 +751,8 @@ export class ClaudeCodeSessionsWidget extends Widget {
751
751
  label: () => {
752
752
  var _a;
753
753
  return ((_a = this._activeSession) === null || _a === void 0 ? void 0 : _a.favourite)
754
- ? 'Remove from Favourites'
755
- : 'Add to Favourites';
754
+ ? 'Remove from Favorites'
755
+ : 'Add to Favorites';
756
756
  },
757
757
  execute: () => {
758
758
  if (this._activeSession) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jupyterlab_claude_code_extension",
3
- "version": "1.0.53",
3
+ "version": "1.0.54",
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",
@@ -5,6 +5,7 @@ const session = (over: Partial<ISession> = {}): ISession => ({
5
5
  encoded_path: '-p',
6
6
  session_id: 'sid',
7
7
  name: 'P',
8
+ name_source: 'basename',
8
9
  summary: '',
9
10
  first_prompt: '',
10
11
  message_count: 0,
package/src/index.ts CHANGED
@@ -17,7 +17,7 @@ const WIDGET_ID = 'jupyterlab-claude-code-extension';
17
17
  const plugin: JupyterFrontEndPlugin<void> = {
18
18
  id: PLUGIN_ID,
19
19
  description:
20
- 'Side panel listing Claude Code sessions per project folder, with remote-control indicator, favourites, and one-click resume in a terminal.',
20
+ 'Side panel listing Claude Code sessions per project folder, with remote-control indicator, favorites, and one-click resume in a terminal.',
21
21
  autoStart: true,
22
22
  requires: [ILabShell],
23
23
  optional: [ILayoutRestorer, ISettingRegistry, ITerminalTracker],
package/src/widget.ts CHANGED
@@ -33,7 +33,7 @@ export type PresentationMode = 'session' | 'folder' | 'path';
33
33
  const DEFAULT_PRESENTATION_MODE: PresentationMode = 'session';
34
34
 
35
35
  const SECTION_LABELS: Record<SectionKey, string> = {
36
- favourites: 'Favourites',
36
+ favourites: 'Favorites',
37
37
  recent: 'Recent',
38
38
  all: 'All'
39
39
  };
@@ -724,7 +724,7 @@ export class ClaudeCodeSessionsWidget extends Widget {
724
724
  const empty = document.createElement('div');
725
725
  empty.className = 'jp-ClaudeSessionsPanel-emptySection';
726
726
  empty.textContent =
727
- key === 'favourites' ? 'No favourites yet.' : 'Empty.';
727
+ key === 'favourites' ? 'No favorites yet.' : 'Empty.';
728
728
  list.appendChild(empty);
729
729
  } else {
730
730
  for (const item of items) {
@@ -771,12 +771,12 @@ export class ClaudeCodeSessionsWidget extends Widget {
771
771
  name.textContent = this._lookupName(session);
772
772
  row.appendChild(name);
773
773
 
774
- // No star in the Favourites section - every row there is a favourite
774
+ // No star in the Favorites section - every row there is a favorite
775
775
  // by definition; stars are an indicator only useful in Recent/All.
776
776
  if (session.favourite && sectionKey !== 'favourites') {
777
777
  const star = document.createElement('span');
778
778
  star.className = 'jp-ClaudeSessionsPanel-favStar';
779
- star.title = 'Favourite';
779
+ star.title = 'Favorite';
780
780
  starFilledIcon.element({ container: star });
781
781
  row.appendChild(star);
782
782
  }
@@ -883,8 +883,8 @@ export class ClaudeCodeSessionsWidget extends Widget {
883
883
  this._commands.addCommand('claude-code-sessions:toggle-favourite', {
884
884
  label: () =>
885
885
  this._activeSession?.favourite
886
- ? 'Remove from Favourites'
887
- : 'Add to Favourites',
886
+ ? 'Remove from Favorites'
887
+ : 'Add to Favorites',
888
888
  execute: () => {
889
889
  if (this._activeSession) {
890
890
  void this._toggleFavourite(this._activeSession);
package/style/base.css CHANGED
@@ -24,13 +24,16 @@
24
24
  min-height: 24px;
25
25
  }
26
26
 
27
+ /* The panel title and section headers mirror the file browser's headers
28
+ (jp-Favorites-header / jp-FileBrowser-header) so the sidebar reads
29
+ uniformly: 600 weight, uppercase, ui-font-size0, 1px tracking. */
27
30
  .jp-ClaudeSessionsPanel-title {
28
31
  flex: 1 1 auto;
29
32
  font-weight: 600;
30
- letter-spacing: 0.04em;
33
+ letter-spacing: 1px;
31
34
  text-transform: uppercase;
32
35
  font-size: var(--jp-ui-font-size0);
33
- color: var(--jp-ui-font-color2);
36
+ color: var(--jp-ui-font-color1);
34
37
  }
35
38
 
36
39
  .jp-ClaudeSessionsPanel-iconButton {
@@ -123,7 +126,7 @@
123
126
  font-family: inherit;
124
127
  font-size: var(--jp-ui-font-size0);
125
128
  font-weight: 600;
126
- letter-spacing: 0.04em;
129
+ letter-spacing: 1px;
127
130
  text-transform: uppercase;
128
131
  }
129
132