claude-memory-layer 1.0.51 → 1.0.53

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.
@@ -108,7 +108,7 @@ function updateProjectDetailUI() {
108
108
  <div class="cfg-section">
109
109
  <div class="cfg-section-title"><i class="ri-router-line"></i>Sources & outbox</div>
110
110
  <div style="display:flex; gap:6px; flex-wrap:wrap; margin-bottom:8px;">${sourceChips}</div>
111
- <div class="session-muted">${formatNumber(outbox.pending || 0)} pending · ${formatNumber(outbox.processing || 0)} processing · ${formatNumber(outbox.failed || 0)} failed · ${formatNumber(outbox.stuckProcessing || 0)} stuck</div>
111
+ <div class="session-muted">${formatNumber(outbox.pending || 0)} pending · ${formatNumber(outbox.processing || 0)} processing · ${formatNumber(outbox.failed || 0)} failed · ${formatNumber(outbox.retryableFailed || 0)} retryable · ${formatNumber(outbox.quarantinedFailed || 0)} quarantined · ${formatNumber(outbox.stuckProcessing || 0)} stuck</div>
112
112
  </div>
113
113
  </div>
114
114
  `;
@@ -505,6 +505,8 @@ function vectorOutboxTotals(outbox) {
505
505
  pending: vectorHealthCount(providedTotals?.pending ?? (vectorHealthCount(embedding.pending) + vectorHealthCount(vector.pending))),
506
506
  processing: vectorHealthCount(providedTotals?.processing ?? (vectorHealthCount(embedding.processing) + vectorHealthCount(vector.processing))),
507
507
  failed: vectorHealthCount(providedTotals?.failed ?? (vectorHealthCount(embedding.failed) + vectorHealthCount(vector.failed))),
508
+ retryableFailed: vectorHealthCount(providedTotals?.retryableFailed ?? (vectorHealthCount(embedding.retryableFailed) + vectorHealthCount(vector.retryableFailed))),
509
+ quarantinedFailed: vectorHealthCount(providedTotals?.quarantinedFailed ?? (vectorHealthCount(embedding.quarantinedFailed) + vectorHealthCount(vector.quarantinedFailed))),
508
510
  stuckProcessing: vectorHealthCount(providedTotals?.stuckProcessing ?? (vectorHealthCount(embedding.stuckProcessing) + vectorHealthCount(vector.stuckProcessing))),
509
511
  oldestProcessingAgeMs: providedTotals?.oldestProcessingAgeMs ?? maxNullableHealthAge(embedding.oldestProcessingAgeMs, vector.oldestProcessingAgeMs)
510
512
  };
@@ -533,15 +535,17 @@ function vectorOutboxQueueRow(label, stats) {
533
535
  const pending = vectorHealthCount(stats?.pending);
534
536
  const processing = vectorHealthCount(stats?.processing);
535
537
  const failed = vectorHealthCount(stats?.failed);
538
+ const retryable = vectorHealthCount(stats?.retryableFailed);
539
+ const quarantined = vectorHealthCount(stats?.quarantinedFailed);
536
540
  const stuck = vectorHealthCount(stats?.stuckProcessing);
537
541
  const total = vectorHealthCount(stats?.total);
538
542
  const age = formatVectorHealthAge(stats?.oldestProcessingAgeMs);
539
- const statusColor = failed > 0 || stuck > 0 ? 'var(--warning)' : 'var(--success)';
543
+ const statusColor = quarantined > 0 || stuck > 0 || failed > 0 ? 'var(--warning)' : 'var(--success)';
540
544
  return `
541
545
  <div class="shared-item">
542
546
  <div class="shared-info" style="flex-direction:column; align-items:flex-start; gap:2px; min-width:0;">
543
547
  <span style="font-size:12px; color:var(--text-secondary);">${escapeHtml(label)}</span>
544
- <span style="font-size:10px; color:var(--text-muted);">pending ${formatNumber(pending)} · processing ${formatNumber(processing)} · failed ${formatNumber(failed)} · stuck ${formatNumber(stuck)} · oldest ${age}</span>
548
+ <span style="font-size:10px; color:var(--text-muted);">pending ${formatNumber(pending)} · processing ${formatNumber(processing)} · failed ${formatNumber(failed)} · retryable ${formatNumber(retryable)} · quarantined ${formatNumber(quarantined)} · stuck ${formatNumber(stuck)} · oldest ${age}</span>
545
549
  </div>
546
550
  <div style="display:flex; flex-direction:column; align-items:flex-end; gap:2px; min-width:48px;">
547
551
  <span style="font-size:15px; font-weight:700; color:${statusColor};">${formatNumber(total)}</span>
@@ -612,6 +616,8 @@ function updateVectorHealthUI() {
612
616
  <span><strong>${formatNumber(totals.pending)} pending</strong></span>
613
617
  <span><strong>${formatNumber(totals.processing)} processing</strong></span>
614
618
  <span><strong>${formatNumber(totals.failed)} failed</strong></span>
619
+ <span><strong>${formatNumber(totals.retryableFailed)} retryable</strong></span>
620
+ <span><strong>${formatNumber(totals.quarantinedFailed)} quarantined</strong></span>
615
621
  <span><strong>${formatNumber(totals.stuckProcessing)} stuck</strong></span>
616
622
  <span><strong>${formatVectorHealthAge(totals.oldestProcessingAgeMs)} oldest processing</strong></span>
617
623
  </div>
@@ -930,7 +930,7 @@ function renderSetupProviderHealthCard(setupHealth) {
930
930
  <div class="cfg-row"><span class="cfg-row-label">Status</span><span class="cfg-row-value">${escapeHtml(storage.status || 'unknown')}</span></div>
931
931
  <div class="cfg-row"><span class="cfg-row-label">Events</span><span class="cfg-row-value">${formatNumber(storage.totalEvents || 0)} events</span></div>
932
932
  <div class="cfg-row"><span class="cfg-row-label">Vectors</span><span class="cfg-row-value">${formatNumber(storage.vectorCount || 0)} vectors</span></div>
933
- <div class="cfg-row"><span class="cfg-row-label">Outbox</span><span class="cfg-row-value">${formatNumber(outbox.pending || 0)} pending · ${formatNumber(outbox.failed || 0)} failed · ${formatNumber(outbox.stuckProcessing || 0)} stuck</span></div>
933
+ <div class="cfg-row"><span class="cfg-row-label">Outbox</span><span class="cfg-row-value">${formatNumber(outbox.pending || 0)} pending · ${formatNumber(outbox.failed || 0)} failed · ${formatNumber(outbox.retryableFailed || 0)} retryable · ${formatNumber(outbox.quarantinedFailed || 0)} quarantined · ${formatNumber(outbox.stuckProcessing || 0)} stuck</span></div>
934
934
  </div>
935
935
  <div class="cfg-section">
936
936
  <div class="cfg-section-title"><i class="ri-terminal-box-line"></i>Provider Readiness</div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-memory-layer",
3
- "version": "1.0.51",
3
+ "version": "1.0.53",
4
4
  "description": "Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -93,8 +93,10 @@
93
93
  "@types/better-sqlite3": "^7.6.13",
94
94
  "@types/node": "^20.11.0",
95
95
  "esbuild": "^0.28.0",
96
+ "eslint": "^9.39.4",
96
97
  "tsx": "^4.7.0",
97
98
  "typescript": "^5.4.0",
99
+ "typescript-eslint": "^8.62.0",
98
100
  "vitest": "^4.1.8"
99
101
  }
100
102
  }