@mindexec/cli 0.2.70 → 0.2.72

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mindexec/cli",
3
- "version": "0.2.70",
3
+ "version": "0.2.72",
4
4
  "description": "MindExec local runtime and bridge CLI",
5
5
  "main": "server.js",
6
6
  "type": "module",
@@ -714,11 +714,16 @@ try {
714
714
  Object.keys(child.dataset || {}).join(',') || child.tagName).join('|');
715
715
  assert.ok(bodyChildOrder.endsWith('remoteFleetStatusRail'), bodyChildOrder);
716
716
  assert.ok(statusFooter.style.cssText.includes('flex-direction: row'));
717
+ assert.ok(statusFooter.style.cssText.includes('justify-content: flex-end'));
717
718
  assert.match(statusFooter.style.cssText, /box-sizing:\s*border-box;/);
718
719
  assert.equal(statusFooter.querySelectorAll('[data-remote-fleet-status-item]').length, 5);
719
720
  assert.ok(statusFooter.querySelector('[data-remote-fleet-status-item="route"]'));
720
721
  const initialDetailPanel = bodyView.querySelector('[data-remote-fleet-detail-panel="true"]');
721
722
  assert.equal(initialDetailPanel?.dataset.deviceId, focusedDevice.DeviceId);
723
+ const initialSelectedCard = bodyView.querySelector(`article[data-device-id="${focusedDevice.DeviceId}"]`);
724
+ assert.equal(initialSelectedCard?.dataset.remoteFleetSelected, 'true');
725
+ assert.equal(initialSelectedCard?.getAttribute('aria-pressed'), 'true');
726
+ assert.ok(initialSelectedCard?.querySelector('[data-remote-fleet-selected-indicator="true"]'));
722
727
  assert.equal(bodyView.querySelectorAll('[data-remote-fleet-action="pin-device"]').length, 1);
723
728
  assert.equal(bodyView.querySelectorAll('[data-remote-fleet-action="task-device"]').length, 0);
724
729
  assert.equal(bodyView.querySelectorAll('[data-remote-fleet-action="thumbnail-device"]').length, focusedDevice.Connected && focusedDevice.ThumbnailEnabled ? 1 : 0);
@@ -755,6 +760,10 @@ try {
755
760
  alternateCard.dispatchEvent({ type: 'click' });
756
761
  assert.equal(bodyView.dataset.remoteFleetSelectedDeviceId, alternateDevice.DeviceId);
757
762
  assert.equal(bodyView.querySelector('[data-remote-fleet-detail-panel="true"]')?.dataset.deviceId, alternateDevice.DeviceId);
763
+ const selectedAfterClick = bodyView.querySelector(`article[data-device-id="${alternateDevice.DeviceId}"]`);
764
+ assert.equal(selectedAfterClick?.dataset.remoteFleetSelected, 'true');
765
+ assert.equal(selectedAfterClick?.getAttribute('aria-pressed'), 'true');
766
+ assert.ok(selectedAfterClick?.querySelector('[data-remote-fleet-selected-indicator="true"]'));
758
767
  const livePanel = bodyView.querySelector('[data-remote-fleet-live-panel="true"]');
759
768
  assert.equal(livePanel?.dataset.deviceId, focusedDevice.DeviceId);
760
769
  assert.equal(bodyView.querySelector('[data-remote-fleet-action="task-visible"]'), null);
@@ -12513,7 +12513,7 @@
12513
12513
  display: flex;
12514
12514
  flex-direction: row;
12515
12515
  align-items: center;
12516
- justify-content: center;
12516
+ justify-content: flex-end;
12517
12517
  gap: 6px;
12518
12518
  width: calc(100% - ${REMOTE_FLEET_CENTER_NUDGE_PX * 2}px);
12519
12519
  max-width: 100%;
@@ -15948,6 +15948,7 @@
15948
15948
  card.dataset.remoteFleetSelected = isSelected ? 'true' : 'false';
15949
15949
  card.dataset.remoteFleetAction = 'select-device';
15950
15950
  card.setAttribute('role', 'button');
15951
+ card.setAttribute('aria-pressed', isSelected ? 'true' : 'false');
15951
15952
  card.setAttribute('aria-label', `Show details for ${name}`);
15952
15953
  card.tabIndex = 0;
15953
15954
  card.title = name;
@@ -15972,6 +15973,30 @@
15972
15973
  user-select: none;
15973
15974
  `;
15974
15975
  card.appendChild(createDevicePreview(device, 'tile'));
15976
+ if (isSelected) {
15977
+ const selectedIndicator = document.createElement('span');
15978
+ selectedIndicator.dataset.remoteFleetSelectedIndicator = 'true';
15979
+ selectedIndicator.innerHTML = '<i class="fa-solid fa-check" aria-hidden="true"></i>';
15980
+ selectedIndicator.title = 'Selected screen';
15981
+ selectedIndicator.style.cssText = `
15982
+ position: absolute;
15983
+ right: 6px;
15984
+ top: 6px;
15985
+ width: 18px;
15986
+ height: 18px;
15987
+ display: inline-flex;
15988
+ align-items: center;
15989
+ justify-content: center;
15990
+ border-radius: 999px;
15991
+ background: #2563eb;
15992
+ color: #ffffff;
15993
+ font-size: 9px;
15994
+ line-height: 1;
15995
+ box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.16), 0 8px 16px rgba(15, 23, 42, 0.16);
15996
+ pointer-events: none;
15997
+ `;
15998
+ card.appendChild(selectedIndicator);
15999
+ }
15975
16000
  grid.appendChild(card);
15976
16001
  });
15977
16002
 
@@ -7,8 +7,8 @@
7
7
  <title>MindExec | Run your ideas as AI task graphs</title>
8
8
  <meta name="description" content="MindExec is an AI execution canvas for solo builders, researchers, developers, and creators. Start with free browser tools, then move serious work into saved MindCanvas projects." />
9
9
  <base href="/" />
10
- <link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260614-mac-image-submit-v526" />
11
- <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260614-mac-image-submit-v526" />
10
+ <link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260614-remote-monitor-selection-v527" />
11
+ <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260614-remote-monitor-selection-v527" />
12
12
  <!-- ?쇄뼹??Font Awesome (local) ?쇄뼹??-->
13
13
  <link rel="stylesheet" href="_content/MindExecution.Shared/lib/font-awesome/css/all.min.css" />
14
14
  <!-- ?꿎뼯??-->
@@ -579,7 +579,7 @@
579
579
  }
580
580
 
581
581
  const base = '_content/MindExecution.Shared/js/';
582
- const scriptVersion = '20260614-mac-image-submit-v526';
582
+ const scriptVersion = '20260614-remote-monitor-selection-v527';
583
583
  const scriptUrl = (script) => `${base}${script}?v=${scriptVersion}`;
584
584
  console.log(`[Script Loader] Shared JS version: ${scriptVersion}`);
585
585
  const criticalScripts = [
@@ -1,5 +1,5 @@
1
1
  self.assetsManifest = {
2
- "version": "IYLeanCN",
2
+ "version": "2Z4LSqbS",
3
3
  "assets": [
4
4
  {
5
5
  "hash": "sha256-+CSYMcqLNTsq3VnH11jgYyOCCdxvHzL74CBmo4sCmMU=",
@@ -86,7 +86,7 @@
86
86
  "url": "_content/MindExecution.Shared/js/mind-map-core.js.backup"
87
87
  },
88
88
  {
89
- "hash": "sha256-zyFZF5acISTtKzhs2Y2vrhI/4eBB3lAKL6yiuYlV9dk=",
89
+ "hash": "sha256-ITFlIgAsq32TTITY+WwaAhQNq4JSQg6EPr8ZeyYbI+A=",
90
90
  "url": "_content/MindExecution.Shared/js/mind-map-css3d-manager.js"
91
91
  },
92
92
  {
@@ -834,7 +834,7 @@
834
834
  "url": "image-manifest.json"
835
835
  },
836
836
  {
837
- "hash": "sha256-WY0JvKPysCqV9AymKm71//d2P/rWFCwaznPq3w5H9RM=",
837
+ "hash": "sha256-p6etmqWjxJ5G7ogEIiXjjgKIu8t4hAJGYYSvtWyJuGk=",
838
838
  "url": "index.html"
839
839
  },
840
840
  {
@@ -1,4 +1,4 @@
1
- /* Manifest version: IYLeanCN */
1
+ /* Manifest version: 2Z4LSqbS */
2
2
  // Hosted deployments should prefer the network over stale offline caches.
3
3
  // This service worker immediately clears old Blazor offline caches and unregisters itself.
4
4