@danieltmn/openbridge 0.6.3 → 0.6.4

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/CHANGELOG.md CHANGED
@@ -4,6 +4,14 @@ Todos los cambios relevantes de OpenBridge. Formato basado en
4
4
  [Keep a Changelog](https://keepachangelog.com/es-ES/1.1.0/) y
5
5
  [Versionado Semantico](https://semver.org/lang/es/).
6
6
 
7
+ ## [0.6.4] - 2026-09-16
8
+
9
+ ### Cambiado
10
+
11
+ - **Color por proyecto** en la lista de sesiones y en el sidebar (hash estable
12
+ de la ruta) para distinguir los proyectos de un vistazo, y nombre un poco mas
13
+ grande.
14
+
7
15
  ## [0.6.3] - 2026-09-15
8
16
 
9
17
  ### Agregado
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@danieltmn/openbridge",
3
- "version": "0.6.3",
3
+ "version": "0.6.4",
4
4
  "description": "Tu opencode en el celular, sin hosting: corre la app, el puente y un tunel publico desde tu PC.",
5
5
  "type": "commonjs",
6
6
  "author": "tamnora",
@@ -740,6 +740,15 @@ function projectLabel(folderPath) {
740
740
  return baseName(folderPath) || folderPath;
741
741
  }
742
742
 
743
+ // Color estable por proyecto (hash de la ruta) para distinguirlos de un vistazo.
744
+ function projectColor(folderPath) {
745
+ var s = String(folderPath || '');
746
+ if (!s) return '';
747
+ var h = 0;
748
+ for (var i = 0; i < s.length; i++) h = (h * 31 + s.charCodeAt(i)) % 360;
749
+ return 'hsl(' + h + ', 68%, 70%)';
750
+ }
751
+
743
752
  function loadOpenProjects() {
744
753
  if (state.openProjects) return state.openProjects;
745
754
  var stored = null;
@@ -956,7 +965,7 @@ function renderSidebar() {
956
965
  html += '<div class="prow' + active + '" data-folder="' + esc(pr.folder) + '">'
957
966
  + '<button type="button" class="proj-head" data-folder="' + esc(pr.folder) + '" title="Ver chats de ' + esc(pr.label) + '">'
958
967
  + '<span class="chev">▸</span>'
959
- + '<span class="pname">' + esc(pr.label) + '</span>'
968
+ + '<span class="pname"' + (pr.folder ? ' style="color:' + projectColor(pr.folder) + '"' : '') + '>' + esc(pr.label) + '</span>'
960
969
  + actHtml
961
970
  + '<span class="pcount">' + pr.sessions.length + '</span>'
962
971
  + '</button>'
@@ -1293,7 +1302,7 @@ function renderHome(sessions) {
1293
1302
  html += '<div class="projsec' + (open ? ' open' : '') + '" data-folder="' + esc(key) + '">'
1294
1303
  + '<button type="button" class="pshead" data-folder="' + esc(key) + '" title="' + (open ? 'Contraer' : 'Expandir') + '">'
1295
1304
  + '<span class="chev">' + (open ? '▾' : '▸') + '</span>'
1296
- + '<span class="psname">' + esc(label) + '</span>'
1305
+ + '<span class="psname"' + (key ? ' style="color:' + projectColor(key) + '"' : '') + '>' + esc(label) + '</span>'
1297
1306
  + actHtml
1298
1307
  + '<span class="pscount">' + total + (total === 1 ? ' sesión' : ' sesiones') + '</span>'
1299
1308
  + '</button>'
@@ -198,7 +198,7 @@
198
198
  .proj-head:hover { color: var(--text); }
199
199
  .proj-head .chev { width: 10px; display: inline-block; transition: transform .12s ease; }
200
200
  .proj-head.open .chev { transform: rotate(90deg); }
201
- .proj-head .pname { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text); font-weight: 600; }
201
+ .proj-head .pname { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text); font-weight: 600; font-size: 13.5px; }
202
202
  .proj-head .pcount { font-size: 11.5px; color: var(--muted); }
203
203
  .proj-sessions { display: none; }
204
204
  .proj.open .proj-sessions { display: block; }
@@ -506,7 +506,7 @@
506
506
  color: var(--text); font: inherit; cursor: pointer; text-align: left;
507
507
  }
508
508
  .projsec .pshead .chev { width: 13px; font-size: 10px; color: var(--muted); flex-shrink: 0; }
509
- .projsec .pshead .psname { font-size: 12.5px; font-weight: 600; color: var(--text); letter-spacing: .03em; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
509
+ .projsec .pshead .psname { font-size: 14px; font-weight: 700; color: var(--text); letter-spacing: .03em; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
510
510
  .projsec .pshead .pscount { font-size: 11px; color: var(--muted); flex-shrink: 0; }
511
511
  .projsec .pbody { display: none; }
512
512
  .projsec.open .pbody { display: block; }