@worca/ui 0.4.0 → 0.5.0

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/app/styles.css CHANGED
@@ -25,9 +25,9 @@
25
25
  --status-resuming: #3b82f6;
26
26
  --status-skipped: #94a3b8;
27
27
  /* legacy */
28
- --status-in-progress: #f59e0b;
28
+ --status-in-progress: #3b82f6;
29
29
  --status-error: #ef4444;
30
- --status-blocked: #3b82f6;
30
+ --status-blocked: #f59e0b;
31
31
 
32
32
  /* Log viewer */
33
33
  --log-bg: #0f172a;
@@ -47,7 +47,7 @@
47
47
  /* Shoelace token mapping */
48
48
  --sl-color-primary-600: var(--accent);
49
49
  --sl-color-success-600: var(--status-completed);
50
- --sl-color-warning-600: var(--status-in-progress);
50
+ --sl-color-warning-600: var(--status-blocked);
51
51
  --sl-color-danger-600: var(--status-error);
52
52
  --sl-color-neutral-600: var(--status-pending);
53
53
  --sl-border-radius-medium: var(--radius);
@@ -577,11 +577,11 @@ h1, h2, h3, h4, h5, h6 {
577
577
  }
578
578
 
579
579
  .timing-bar-thinking {
580
- background: var(--status-blocked, #3b82f6);
580
+ background: var(--status-blocked, #f59e0b);
581
581
  }
582
582
 
583
583
  .timing-bar-tools {
584
- background: var(--status-in-progress, #f59e0b);
584
+ background: var(--status-in-progress, #3b82f6);
585
585
  }
586
586
 
587
587
  .timing-bar-rest {
@@ -2613,6 +2613,10 @@ sl-option.template-grouped:focus::part(suffix) {
2613
2613
  border-style: dashed;
2614
2614
  }
2615
2615
 
2616
+ .beads-kanban-card--in_progress {
2617
+ border-color: var(--status-in-progress);
2618
+ }
2619
+
2616
2620
  .beads-kanban-card-header {
2617
2621
  display: flex;
2618
2622
  align-items: center;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@worca/ui",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "Pipeline monitoring UI for worca-cc",
5
5
  "license": "MIT",
6
6
  "author": "Sinisha Djukic",
@@ -26,6 +26,7 @@
26
26
  "server/*.js",
27
27
  "!server/*.test.js",
28
28
  "!server/test/",
29
+ "app/favicon-*.svg",
29
30
  "app/index.html",
30
31
  "app/main.bundle.js",
31
32
  "app/main.bundle.js.map",
package/server/app.js CHANGED
@@ -427,6 +427,16 @@ export function createApp(options = {}) {
427
427
  );
428
428
  }
429
429
 
430
+ // ─── Dynamic favicon ──────────────────────────────────────────────────
431
+ // Serve mode-specific favicon before express.static so it takes precedence.
432
+ app.get('/favicon.svg', (_req, res) => {
433
+ const faviconFile = projectRoot
434
+ ? 'favicon-project.svg'
435
+ : 'favicon-global.svg';
436
+ res.setHeader('Content-Type', 'image/svg+xml');
437
+ res.sendFile(faviconFile, { root: appDir });
438
+ });
439
+
430
440
  app.use(express.static(appDir));
431
441
  app.get('/{*splat}', (_req, res) => {
432
442
  res.sendFile('index.html', { root: appDir });
@@ -8,7 +8,7 @@ import { existsSync, watch } from 'node:fs';
8
8
  import { join, resolve } from 'node:path';
9
9
  import { listIssues } from './beads-reader.js';
10
10
 
11
- const BEADS_DEBOUNCE_MS = 300;
11
+ const BEADS_DEBOUNCE_MS = 500;
12
12
 
13
13
  /**
14
14
  * @param {{ worcaDir: string, broadcaster: { broadcast: Function }, projectId?: string }} deps
@@ -614,6 +614,12 @@ export function createMessageRouter({
614
614
  return;
615
615
  }
616
616
  const issues = await listIssuesByLabel(beadsDbPath, `run:${runId}`);
617
+ console.log(
618
+ '[list-beads-by-run] runId=%s count=%d statuses=%o',
619
+ runId,
620
+ issues.length,
621
+ issues.map((i) => i.status),
622
+ );
617
623
  ws.send(JSON.stringify(makeOk(req, { issues, runId })));
618
624
  return;
619
625
  }