reflectt-node 0.1.4 → 0.1.6

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.
Files changed (160) hide show
  1. package/README.md +63 -146
  2. package/defaults/TEAM-ROLES.yaml +221 -31
  3. package/dist/activationEvents.d.ts +13 -2
  4. package/dist/activationEvents.d.ts.map +1 -1
  5. package/dist/activationEvents.js +172 -38
  6. package/dist/activationEvents.js.map +1 -1
  7. package/dist/activity.d.ts +72 -0
  8. package/dist/activity.d.ts.map +1 -0
  9. package/dist/activity.js +510 -0
  10. package/dist/activity.js.map +1 -0
  11. package/dist/alert-preflight.d.ts +33 -0
  12. package/dist/alert-preflight.d.ts.map +1 -1
  13. package/dist/alert-preflight.js +218 -2
  14. package/dist/alert-preflight.js.map +1 -1
  15. package/dist/assignment.d.ts.map +1 -1
  16. package/dist/assignment.js +11 -6
  17. package/dist/assignment.js.map +1 -1
  18. package/dist/boardHealthWorker.d.ts.map +1 -1
  19. package/dist/boardHealthWorker.js +25 -12
  20. package/dist/boardHealthWorker.js.map +1 -1
  21. package/dist/canvas-slots.d.ts +1 -1
  22. package/dist/channels.d.ts +1 -1
  23. package/dist/chat-approval-detector.d.ts.map +1 -1
  24. package/dist/chat-approval-detector.js +29 -11
  25. package/dist/chat-approval-detector.js.map +1 -1
  26. package/dist/chat.d.ts +14 -0
  27. package/dist/chat.d.ts.map +1 -1
  28. package/dist/chat.js +68 -4
  29. package/dist/chat.js.map +1 -1
  30. package/dist/cli.js +349 -28
  31. package/dist/cli.js.map +1 -1
  32. package/dist/cloud.d.ts +28 -1
  33. package/dist/cloud.d.ts.map +1 -1
  34. package/dist/cloud.js +62 -25
  35. package/dist/cloud.js.map +1 -1
  36. package/dist/compliance-detector.d.ts +42 -0
  37. package/dist/compliance-detector.d.ts.map +1 -0
  38. package/dist/compliance-detector.js +286 -0
  39. package/dist/compliance-detector.js.map +1 -0
  40. package/dist/continuity-loop.d.ts.map +1 -1
  41. package/dist/continuity-loop.js +7 -3
  42. package/dist/continuity-loop.js.map +1 -1
  43. package/dist/dashboard.d.ts +6 -2
  44. package/dist/dashboard.d.ts.map +1 -1
  45. package/dist/dashboard.js +84 -28
  46. package/dist/dashboard.js.map +1 -1
  47. package/dist/db.d.ts.map +1 -1
  48. package/dist/db.js +24 -1
  49. package/dist/db.js.map +1 -1
  50. package/dist/doctor.d.ts.map +1 -1
  51. package/dist/doctor.js +17 -6
  52. package/dist/doctor.js.map +1 -1
  53. package/dist/executionSweeper.d.ts +2 -0
  54. package/dist/executionSweeper.d.ts.map +1 -1
  55. package/dist/executionSweeper.js +60 -4
  56. package/dist/executionSweeper.js.map +1 -1
  57. package/dist/focus.d.ts +20 -0
  58. package/dist/focus.d.ts.map +1 -0
  59. package/dist/focus.js +57 -0
  60. package/dist/focus.js.map +1 -0
  61. package/dist/health.d.ts +1 -0
  62. package/dist/health.d.ts.map +1 -1
  63. package/dist/health.js +47 -15
  64. package/dist/health.js.map +1 -1
  65. package/dist/hostConnectGuard.d.ts +25 -0
  66. package/dist/hostConnectGuard.d.ts.map +1 -0
  67. package/dist/hostConnectGuard.js +27 -0
  68. package/dist/hostConnectGuard.js.map +1 -0
  69. package/dist/index.js +257 -39
  70. package/dist/index.js.map +1 -1
  71. package/dist/insight-mutation.d.ts +26 -0
  72. package/dist/insight-mutation.d.ts.map +1 -1
  73. package/dist/insight-mutation.js +103 -12
  74. package/dist/insight-mutation.js.map +1 -1
  75. package/dist/insight-task-bridge.d.ts +1 -1
  76. package/dist/insight-task-bridge.d.ts.map +1 -1
  77. package/dist/insight-task-bridge.js +6 -3
  78. package/dist/insight-task-bridge.js.map +1 -1
  79. package/dist/insights.d.ts +20 -0
  80. package/dist/insights.d.ts.map +1 -1
  81. package/dist/insights.js +129 -4
  82. package/dist/insights.js.map +1 -1
  83. package/dist/mcp.d.ts.map +1 -1
  84. package/dist/mcp.js +9 -8
  85. package/dist/mcp.js.map +1 -1
  86. package/dist/notificationDedupeGuard.d.ts +33 -0
  87. package/dist/notificationDedupeGuard.d.ts.map +1 -0
  88. package/dist/notificationDedupeGuard.js +88 -0
  89. package/dist/notificationDedupeGuard.js.map +1 -0
  90. package/dist/openclaw.d.ts.map +1 -1
  91. package/dist/openclaw.js +3 -2
  92. package/dist/openclaw.js.map +1 -1
  93. package/dist/policy.d.ts +1 -1
  94. package/dist/policy.d.ts.map +1 -1
  95. package/dist/policy.js +3 -1
  96. package/dist/policy.js.map +1 -1
  97. package/dist/prAutoMerge.d.ts.map +1 -1
  98. package/dist/prAutoMerge.js +23 -0
  99. package/dist/prAutoMerge.js.map +1 -1
  100. package/dist/presence.d.ts +16 -1
  101. package/dist/presence.d.ts.map +1 -1
  102. package/dist/presence.js +97 -9
  103. package/dist/presence.js.map +1 -1
  104. package/dist/pulse.d.ts +60 -0
  105. package/dist/pulse.d.ts.map +1 -0
  106. package/dist/pulse.js +139 -0
  107. package/dist/pulse.js.map +1 -0
  108. package/dist/reflection-automation.d.ts.map +1 -1
  109. package/dist/reflection-automation.js +38 -0
  110. package/dist/reflection-automation.js.map +1 -1
  111. package/dist/release.d.ts +2 -0
  112. package/dist/release.d.ts.map +1 -1
  113. package/dist/release.js +14 -1
  114. package/dist/release.js.map +1 -1
  115. package/dist/request-tracker.d.ts +6 -0
  116. package/dist/request-tracker.d.ts.map +1 -1
  117. package/dist/request-tracker.js +31 -12
  118. package/dist/request-tracker.js.map +1 -1
  119. package/dist/scopeOverlap.d.ts +32 -0
  120. package/dist/scopeOverlap.d.ts.map +1 -0
  121. package/dist/scopeOverlap.js +219 -0
  122. package/dist/scopeOverlap.js.map +1 -0
  123. package/dist/server.d.ts.map +1 -1
  124. package/dist/server.js +736 -117
  125. package/dist/server.js.map +1 -1
  126. package/dist/service-probe.d.ts.map +1 -1
  127. package/dist/service-probe.js +39 -2
  128. package/dist/service-probe.js.map +1 -1
  129. package/dist/shipped-heartbeat.d.ts +1 -1
  130. package/dist/shipped-heartbeat.js +1 -1
  131. package/dist/taskPrecheck.js +6 -6
  132. package/dist/taskPrecheck.js.map +1 -1
  133. package/dist/tasks-next-diagnostics.d.ts +15 -0
  134. package/dist/tasks-next-diagnostics.d.ts.map +1 -0
  135. package/dist/tasks-next-diagnostics.js +33 -0
  136. package/dist/tasks-next-diagnostics.js.map +1 -0
  137. package/dist/tasks.d.ts +3 -2
  138. package/dist/tasks.d.ts.map +1 -1
  139. package/dist/tasks.js +41 -16
  140. package/dist/tasks.js.map +1 -1
  141. package/dist/team-config.d.ts.map +1 -1
  142. package/dist/team-config.js +20 -0
  143. package/dist/team-config.js.map +1 -1
  144. package/dist/todoHoardingGuard.d.ts +35 -0
  145. package/dist/todoHoardingGuard.d.ts.map +1 -0
  146. package/dist/todoHoardingGuard.js +150 -0
  147. package/dist/todoHoardingGuard.js.map +1 -0
  148. package/dist/types.d.ts +4 -2
  149. package/dist/types.d.ts.map +1 -1
  150. package/dist/version.d.ts +2 -0
  151. package/dist/version.d.ts.map +1 -0
  152. package/dist/version.js +16 -0
  153. package/dist/version.js.map +1 -0
  154. package/dist/working-contract.d.ts.map +1 -1
  155. package/dist/working-contract.js +59 -3
  156. package/dist/working-contract.js.map +1 -1
  157. package/package.json +5 -1
  158. package/public/dashboard.js +161 -20
  159. package/public/docs.md +68 -8
  160. package/public/polls-mock.html +1 -1
package/dist/dashboard.js CHANGED
@@ -1,10 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  // Copyright (c) Reflectt AI
3
- /**
4
- * Dashboard HTML self-contained page served at /dashboard
5
- * v2: Pixel's redesign + chat input for Ryan
6
- */
7
- export function getDashboardHTML() {
3
+ export function getDashboardHTML(opts = {}) {
4
+ const internalMode = opts.internalMode ?? false;
8
5
  return `<!DOCTYPE html>
9
6
  <html lang="en">
10
7
  <head>
@@ -442,6 +439,13 @@ export function getDashboardHTML() {
442
439
  .project-tab.active { color: var(--accent); border-bottom-color: var(--accent); }
443
440
  .kanban { display: flex; gap: var(--space-3); padding: 16px 18px; overflow-x: auto; min-height: 180px; align-items: flex-start; }
444
441
  .kanban-col { flex: 1; min-width: 160px; max-height: 75vh; overflow-y: auto; scrollbar-width: thin; }
442
+ @media (max-width: 768px) {
443
+ .kanban { flex-wrap: wrap; gap: var(--space-2); padding: 12px; }
444
+ .kanban-col { min-width: 140px; flex-basis: calc(50% - 6px); }
445
+ }
446
+ @media (max-width: 480px) {
447
+ .kanban-col { flex-basis: 100%; }
448
+ }
445
449
  .kanban-col::-webkit-scrollbar { width: 4px; }
446
450
  .kanban-col::-webkit-scrollbar-track { background: transparent; }
447
451
  .kanban-col::-webkit-scrollbar-thumb { background: var(--border); border-radius: 2px; }
@@ -986,6 +990,12 @@ export function getDashboardHTML() {
986
990
  .msg-time { margin-left: 0; }
987
991
  .chat-input-bar { padding: 8px 10px; }
988
992
  .chat-input-bar select { min-width: 0; width: 100%; }
993
+ .intensity-control { padding: 8px 12px; gap: 6px; }
994
+ .intensity-label { font-size: 10px; }
995
+ .intensity-btn { padding: 4px 8px; font-size: 12px; }
996
+ .intensity-info { font-size: 10px; margin-left: 4px; }
997
+ .intensity-sep { display: none; }
998
+ .pause-toggle-btn { padding: 4px 8px; font-size: 12px; }
989
999
  }
990
1000
 
991
1001
  @media (min-width: 768px) and (max-width: 1023px) {
@@ -1625,6 +1635,7 @@ export function getDashboardHTML() {
1625
1635
  .intensity-control {
1626
1636
  display: flex; align-items: center; gap: 8px; padding: 8px 16px;
1627
1637
  background: var(--surface, #1a1a2e); border-bottom: 1px solid var(--border, #2a2a4a);
1638
+ flex-wrap: wrap; max-width: 100vw; box-sizing: border-box;
1628
1639
  }
1629
1640
  .intensity-label { font-size: var(--text-xs, 11px); color: var(--text-muted, #888); text-transform: uppercase; letter-spacing: 0.05em; margin-right: 4px; }
1630
1641
  .intensity-btn {
@@ -2028,12 +2039,12 @@ export function getDashboardHTML() {
2028
2039
  <button class="focus-toggle" id="focus-toggle" onclick="toggleFocusMode()" title="Focus Mode: highlight active work, collapse noise">
2029
2040
  <span class="focus-icon">🎯</span> Focus
2030
2041
  </button>
2031
- <span id="release-badge" class="release-badge" title="Deploy status">deploy: checking…</span>
2032
- <span id="build-badge" class="release-badge" title="Build info">build: loading…</span>
2042
+ <span id="release-badge" class="release-badge" title="Deploy status" style="display:none">deploy: checking…</span>
2043
+ <span id="build-badge" class="release-badge" title="Build info" style="display:none">build: loading…</span>
2033
2044
  <span id="clock"></span>
2034
2045
  </div>
2035
2046
  </div>
2036
- <div id="pause-banner" class="pause-banner" style="display:none">
2047
+ ${internalMode ? `<div id="pause-banner" class="pause-banner" style="display:none">
2037
2048
  <span class="pause-icon">⏸️</span>
2038
2049
  <span id="pause-message">Team paused</span>
2039
2050
  <button onclick="resumeFromBanner()" class="pause-resume-btn">Resume</button>
@@ -2046,17 +2057,17 @@ export function getDashboardHTML() {
2046
2057
  <span id="intensity-info" class="intensity-info"></span>
2047
2058
  <span class="intensity-sep">|</span>
2048
2059
  <button id="pause-toggle-btn" class="pause-toggle-btn" onclick="toggleTeamPause()" aria-label="Pause team" tabindex="0">⏸️ Pause</button>
2049
- </div>
2060
+ </div>` : '<!-- internal controls hidden (set REFLECTT_INTERNAL_UI=1 to enable) -->'}
2050
2061
 
2051
2062
  <div class="first-boot-banner" id="first-boot-banner" role="region" aria-label="Welcome banner" hidden>
2052
2063
  <button class="banner-dismiss" aria-label="Dismiss welcome banner" onclick="dismissFirstBootBanner()">✕</button>
2053
2064
  <div class="banner-status"><span class="banner-status-dot"></span> Running</div>
2054
- <h2 class="banner-heading">Your node is running.</h2>
2055
- <p class="banner-subtext">Here's what to do next.</p>
2065
+ <h2 class="banner-heading">Welcome your team is running.</h2>
2066
+ <p class="banner-subtext">Next, connect a chat client or run your first task. Everything here is logged and reviewable.</p>
2056
2067
  <div class="banner-pills">
2057
- <a href="/docs/getting-started" class="banner-pill"><span>🤖</span> Connect agents</a>
2058
- <a href="/docs/getting-started#try-the-api" class="banner-pill"><span>✅</span> Create a task</a>
2059
- <a href="https://app.reflectt.ai" class="banner-pill" target="_blank" rel="noopener"><span>☁️</span> Connect to cloud <span class="banner-pill-optional">(optional)</span></a>
2068
+ <a href="/docs" class="banner-pill"><span>📖</span> Read the docs</a>
2069
+ <a href="/capabilities" class="banner-pill"><span>🧭</span> Browse the API</a>
2070
+ <a href="https://app.reflectt.ai/" class="banner-pill" target="_blank" rel="noopener"><span>☁️</span> Connect to Reflectt Cloud <span class="banner-pill-optional">(optional)</span></a>
2060
2071
  </div>
2061
2072
  </div>
2062
2073
 
@@ -2099,9 +2110,9 @@ export function getDashboardHTML() {
2099
2110
  <a class="sidebar-link" href="/ui-kit" target="_blank">
2100
2111
  <span class="nav-icon">🎨</span><span class="nav-label">UI Kit</span>
2101
2112
  </a>
2102
- <a class="sidebar-link" href="/health" target="_blank">
2113
+ <button class="sidebar-link" data-page="doctor" onclick="navigateTo('doctor')">
2103
2114
  <span class="nav-icon">🩺</span><span class="nav-label">Doctor</span>
2104
- </a>
2115
+ </button>
2105
2116
  </div>
2106
2117
  </nav>
2107
2118
 
@@ -2112,38 +2123,66 @@ export function getDashboardHTML() {
2112
2123
  <!-- Getting Started panel — hidden when configured -->
2113
2124
  <div class="getting-started" id="getting-started">
2114
2125
  <div class="panel-header">
2115
- 🚀 Getting Started
2116
- <button class="dismiss-btn" onclick="dismissGettingStarted()" aria-label="Dismiss Getting Started panel">Dismiss ✕</button>
2126
+ 🚀 Next Steps
2127
+ <button class="dismiss-btn" onclick="dismissGettingStarted()" aria-label="Dismiss panel">Dismiss ✕</button>
2117
2128
  </div>
2118
2129
  <div class="gs-steps" id="gs-steps">
2119
2130
  <div class="gs-step" id="gs-preflight">
2120
2131
  <div class="gs-icon">1</div>
2121
2132
  <div class="gs-content">
2122
- <div class="gs-title">Run preflight checks</div>
2123
- <div class="gs-desc">Verify your system is ready checks connectivity, config, and dependencies.</div>
2124
- <a class="gs-link" href="/health" target="_blank">Open /health →</a>
2133
+ <div class="gs-title">Server is running</div>
2134
+ <div class="gs-desc">Your reflectt-node is up and healthy. Check status anytime with <code style="background:var(--border);padding:1px 5px;border-radius:3px;font-size:11px">reflectt status</code></div>
2135
+ <a class="gs-link" href="/health" target="_blank">View health →</a>
2125
2136
  </div>
2126
2137
  </div>
2127
2138
  <div class="gs-step" id="gs-connect">
2128
2139
  <div class="gs-icon">2</div>
2129
2140
  <div class="gs-content">
2130
- <div class="gs-title">Connect OpenClaw gateway</div>
2131
- <div class="gs-desc">Set <code style="background:var(--border);padding:1px 5px;border-radius:3px;font-size:11px">OPENCLAW_GATEWAY_URL</code> and <code style="background:var(--border);padding:1px 5px;border-radius:3px;font-size:11px">OPENCLAW_GATEWAY_TOKEN</code> env vars. Get your token: <code style="background:var(--border);padding:1px 5px;border-radius:3px;font-size:11px">openclaw gateway token</code></div>
2132
- <a class="gs-link" href="https://reflectt.ai/bootstrap" target="_blank">Bootstrap guide →</a>
2141
+ <div class="gs-title">Connect to cloud <span style="font-size:11px;opacity:0.6">(optional)</span></div>
2142
+ <div class="gs-desc">Sync your dashboard to the web. Sign up at <a href="https://app.reflectt.ai" target="_blank" style="color:var(--accent)">app.reflectt.ai</a>, get a join token, then run:<br><code style="background:var(--border);padding:2px 6px;border-radius:3px;font-size:11px;display:inline-block;margin-top:4px">reflectt host connect --join-token &lt;token&gt; --cloud-url https://app.reflectt.ai</code></div>
2143
+ <a class="gs-link" href="https://docs.reflectt.ai/first-time-user-journey" target="_blank">Setup guide →</a>
2133
2144
  </div>
2134
2145
  </div>
2135
2146
  <div class="gs-step" id="gs-task">
2136
2147
  <div class="gs-icon">3</div>
2137
2148
  <div class="gs-content">
2138
- <div class="gs-title">Create your first task</div>
2139
- <div class="gs-desc">Post a task or message your agents will pick it up automatically.</div>
2140
- <a class="gs-link" href="/docs" target="_blank">API docs →</a>
2149
+ <div class="gs-title">Create a task or connect an agent</div>
2150
+ <div class="gs-desc">Post your first task via the API, or connect an AI agent (OpenClaw, Claude, etc.) to start working. Your team will pick up tasks automatically.</div>
2151
+ <a class="gs-link" href="/docs" target="_blank">API reference →</a>
2141
2152
  </div>
2142
2153
  </div>
2143
2154
  </div>
2144
2155
  </div>
2145
2156
 
2146
- <div class="panel">
2157
+ <!-- Overview empty state — shown when no tasks and no chat activity -->
2158
+ <div class="panel" id="overview-empty-state" style="display:none">
2159
+ <div class="panel-body" style="text-align:center;padding:36px 20px">
2160
+ <div style="font-size:28px;margin-bottom:10px">🌱</div>
2161
+ <div style="font-size:15px;font-weight:500;color:var(--text-bright);margin-bottom:6px">Your workspace is ready</div>
2162
+ <div style="font-size:13px;color:var(--text-muted);max-width:380px;margin:0 auto;line-height:1.5">
2163
+ No tasks or messages yet. Once agents start working, you'll see task progress, chat activity, and shipped outcomes here.
2164
+ </div>
2165
+ <div style="margin-top:16px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap">
2166
+ <a href="/docs" target="_blank" style="color:var(--accent);font-size:12px;text-decoration:none">API docs →</a>
2167
+ <a href="/capabilities" target="_blank" style="color:var(--accent);font-size:12px;text-decoration:none">All capabilities →</a>
2168
+ <a href="/health" target="_blank" style="color:var(--accent);font-size:12px;text-decoration:none">System health →</a>
2169
+ </div>
2170
+ </div>
2171
+ </div>
2172
+
2173
+ <!-- Overview summary — always visible when tasks/messages exist -->
2174
+ <div class="panel" id="overview-summary" style="display:none">
2175
+ <div class="panel-header">📊 Team Overview</div>
2176
+ <div class="panel-body" id="overview-summary-body">
2177
+ <div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin-bottom:16px" id="overview-stats"></div>
2178
+ <div id="overview-recent">
2179
+ <div style="font-size:13px;font-weight:500;color:var(--text-bright);margin-bottom:8px">Recent Activity</div>
2180
+ <div id="overview-activity-list" style="font-size:12px;color:var(--text-muted);line-height:1.6"></div>
2181
+ </div>
2182
+ </div>
2183
+ </div>
2184
+
2185
+ <div class="panel focus-only" style="display:none">
2147
2186
  <div class="panel-header">🧭 Runtime Truth Card <span class="count" id="truth-count">loading…</span></div>
2148
2187
  <div class="panel-body" id="truth-body"></div>
2149
2188
  </div>
@@ -2352,6 +2391,21 @@ export function getDashboardHTML() {
2352
2391
 
2353
2392
  </div><!-- /page-artifacts -->
2354
2393
 
2394
+ <!-- ═══ PAGE: Doctor ═══ -->
2395
+ <div class="page" id="page-doctor">
2396
+
2397
+ <div class="panel">
2398
+ <div class="panel-header">🩺 System Diagnostics <button class="btn-sm" onclick="loadDoctorPage()" style="margin-left:auto;font-size:11px;padding:2px 8px">Refresh</button></div>
2399
+ <div class="panel-body" id="doctor-body"><div class="empty-state">Loading diagnostics…</div></div>
2400
+ </div>
2401
+
2402
+ <div class="panel">
2403
+ <div class="panel-header">🔍 Raw Health JSON <button class="btn-sm" onclick="window.open('/health','_blank')" style="margin-left:auto;font-size:11px;padding:2px 8px">Open raw ↗</button></div>
2404
+ <div class="panel-body" id="doctor-raw" style="font-family:var(--font-mono,monospace);font-size:12px;white-space:pre-wrap;overflow-x:auto;max-height:400px"></div>
2405
+ </div>
2406
+
2407
+ </div><!-- /page-doctor -->
2408
+
2355
2409
  </div><!-- /.main -->
2356
2410
  </div><!-- /.app-layout -->
2357
2411
 
@@ -2386,6 +2440,8 @@ export function getDashboardHTML() {
2386
2440
  <button class="status-btn" data-status="blocked" onclick="updateTaskStatus('blocked')">Blocked</button>
2387
2441
  <button class="status-btn" data-status="validating" onclick="updateTaskStatus('validating')">Validating</button>
2388
2442
  <button class="status-btn" data-status="done" onclick="updateTaskStatus('done')">Done</button>
2443
+ <button class="status-btn" data-status="resolved_externally" onclick="updateTaskStatus('resolved_externally')">Resolved ext</button>
2444
+ <button class="status-btn" data-status="cancelled" onclick="updateTaskStatus('cancelled')">Cancelled</button>
2389
2445
  </div>
2390
2446
  </div>
2391
2447
 
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,4BAA4B;AAE5B;;;GAGG;AAEH,MAAM,UAAU,gBAAgB;IAC9B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA43ED,CAAC;AACT,CAAC"}
1
+ {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,4BAA4B;AAY5B,MAAM,UAAU,gBAAgB,CAAC,OAAyB,EAAE;IAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,KAAK,CAAA;IAC/C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0/DP,YAAY,CAAC,CAAC,CAAC;;;;;;;;;;;;;OAaV,CAAC,CAAC,CAAC,0EAA0E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAgb5E,CAAC;AACT,CAAC"}
package/dist/db.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAA;AASrC;;GAEG;AACH,wBAAgB,KAAK,IAAI,QAAQ,CAAC,QAAQ,CA8BzC;AAED;;GAEG;AACH,wBAAgB,OAAO,IAAI,IAAI,CAK9B;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAkfzD;AAID;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,MAAM,GAC9D,MAAM,CA8BR;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAO/D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,CAO1F;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAGxE;AAED,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAG9E;AAQD,wBAAgB,gBAAgB,IAAI,IAAI,CAYvC;AAED,wBAAgB,uBAAuB,IAAI,OAAO,CAEjD;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C"}
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAA;AASrC;;GAEG;AACH,wBAAgB,KAAK,IAAI,QAAQ,CAAC,QAAQ,CA8BzC;AAED;;GAEG;AACH,wBAAgB,OAAO,IAAI,IAAI,CAK9B;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAsgBzD;AAID;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,MAAM,GAC9D,MAAM,CA8BR;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAO/D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,CAO1F;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAGxE;AAED,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAG9E;AAQD,wBAAgB,gBAAgB,IAAI,IAAI,CAevC;AAED,wBAAgB,uBAAuB,IAAI,OAAO,CAEjD;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C"}
package/dist/db.js CHANGED
@@ -488,6 +488,25 @@ export function runMigrations(db) {
488
488
  ALTER TABLE chat_messages ADD COLUMN attachments TEXT;
489
489
  `,
490
490
  },
491
+ {
492
+ version: 19,
493
+ sql: `
494
+ -- Team-level focus directive (priority anchor for heartbeats)
495
+ CREATE TABLE IF NOT EXISTS kv (
496
+ key TEXT PRIMARY KEY,
497
+ value TEXT NOT NULL
498
+ );
499
+ `,
500
+ },
501
+ {
502
+ version: 20,
503
+ sql: `
504
+ -- Task time awareness: due date and scheduled start
505
+ ALTER TABLE tasks ADD COLUMN due_at INTEGER; -- epoch ms, when the task is due
506
+ ALTER TABLE tasks ADD COLUMN scheduled_for INTEGER; -- epoch ms, when work should start
507
+ CREATE INDEX IF NOT EXISTS idx_tasks_due_at ON tasks(due_at);
508
+ `,
509
+ },
491
510
  ];
492
511
  const insertMigration = db.prepare('INSERT INTO _migrations (version) VALUES (?)');
493
512
  for (const migration of migrations) {
@@ -518,6 +537,7 @@ export function runMigrations(db) {
518
537
  { version: 15, tables: ['context_memos'] },
519
538
  { version: 16, tables: ['hosts'] },
520
539
  { version: 17, tables: ['system_loop_ticks'] },
540
+ { version: 19, tables: ['kv'] },
521
541
  ];
522
542
  const existingTables = new Set(db.prepare("SELECT name FROM sqlite_master WHERE type='table'").all()
523
543
  .map(r => r.name));
@@ -636,7 +656,10 @@ export function initVectorSearch() {
636
656
  console.log('[DB] Vector search tables initialized');
637
657
  }
638
658
  catch (err) {
639
- console.warn('[DB] Vector search not available:', err?.message);
659
+ // Vector search is optional — only log at debug level to avoid alarming new users
660
+ if (process.env.DEBUG || process.env.REFLECTT_DEBUG) {
661
+ console.warn('[DB] Vector search not available:', err?.message);
662
+ }
640
663
  }
641
664
  }
642
665
  export function isVectorSearchAvailable() {
package/dist/db.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAExF,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,EAAE,OAAO,CAAA;IACX,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,GAAG,CAAA;CACX,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;IACjC,EAAE,EAAE,OAAO,CAAA;IACX,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,qDAAqD;IACrD,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE;QACR,MAAM,EAAE,mBAAmB,CAAA;QAC3B,MAAM,EAAE,mBAAmB,CAAA;QAC3B,SAAS,EAAE,mBAAmB,CAAA;QAC9B,MAAM,EAAE,mBAAmB,CAAA;QAC3B,UAAU,EAAE,mBAAmB,CAAA;QAC/B,SAAS,EAAE,mBAAmB,CAAA;KAC/B,CAAA;IACD,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB,CAAA;AAwCD,wBAAsB,mBAAmB,CAAC,KAAK,EAAE;IAC/C,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,WAAW,CAAA;CACtB,GAAG,OAAO,CAAC,YAAY,CAAC,CAkFxB;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAiI9D"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAExF,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,EAAE,OAAO,CAAA;IACX,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,GAAG,CAAA;CACX,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;IACjC,EAAE,EAAE,OAAO,CAAA;IACX,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,qDAAqD;IACrD,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE;QACR,MAAM,EAAE,mBAAmB,CAAA;QAC3B,MAAM,EAAE,mBAAmB,CAAA;QAC3B,SAAS,EAAE,mBAAmB,CAAA;QAC9B,MAAM,EAAE,mBAAmB,CAAA;QAC3B,UAAU,EAAE,mBAAmB,CAAA;QAC/B,SAAS,EAAE,mBAAmB,CAAA;KAC/B,CAAA;IACD,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB,CAAA;AAwCD,wBAAsB,mBAAmB,CAAC,KAAK,EAAE;IAC/C,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,WAAW,CAAA;CACtB,GAAG,OAAO,CAAC,YAAY,CAAC,CAkFxB;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CA6I9D"}
package/dist/doctor.js CHANGED
@@ -199,17 +199,28 @@ export function formatDoctorHuman(report) {
199
199
  const overall = d?.overall;
200
200
  const OPTIONAL = new Set(['github-identity', 'openclaw_bootstrap']);
201
201
  const checks = Array.isArray(d?.checks) ? d.checks : [];
202
- const fails = checks.filter((c) => c?.status === 'fail').map((c) => c?.name).filter(Boolean);
203
- const warns = checks.filter((c) => c?.status === 'warn').map((c) => c?.name).filter(Boolean);
204
- const requiredFails = fails.filter(n => !OPTIONAL.has(n));
205
- const optionalFails = fails.filter(n => OPTIONAL.has(n));
202
+ const fails = checks.filter((c) => c?.status === 'fail');
203
+ const warns = checks.filter((c) => c?.status === 'warn');
204
+ const failNames = fails.map((c) => c?.name).filter(Boolean);
205
+ const warnNames = warns.map((c) => c?.name).filter(Boolean);
206
+ const requiredFails = failNames.filter(n => !OPTIONAL.has(n));
207
+ const optionalFails = failNames.filter(n => OPTIONAL.has(n));
206
208
  const parts = [`overall=${overall ?? 'n/a'}`];
207
209
  if (requiredFails.length)
208
210
  parts.push(`fails=${requiredFails.join(',')}`);
209
211
  if (optionalFails.length)
210
212
  parts.push(`optional=${optionalFails.join(',')}`);
211
- if (warns.length)
212
- parts.push(`warns=${warns.join(',')}`);
213
+ if (warnNames.length)
214
+ parts.push(`warns=${warnNames.join(',')}`);
215
+ // Surface fix text for failing/warning checks so users know what to do
216
+ const actionable = [...fails, ...warns].filter((c) => c?.fix);
217
+ if (actionable.length) {
218
+ parts.push('\n');
219
+ for (const c of actionable) {
220
+ const status = c.status === 'fail' ? 'FAIL' : 'WARN';
221
+ parts.push(` ${c.name}: ${status} — ${c.fix}`);
222
+ }
223
+ }
213
224
  return parts.join(' ');
214
225
  });
215
226
  section('preflight', '/preflight', (d) => {
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
@@ -70,6 +70,8 @@ export declare function sweepValidatingQueue(): Promise<SweepResult>;
70
70
  * Doc-only and config-only tasks are exempt (they use review_handoff).
71
71
  */
72
72
  export declare function hasRequiredArtifacts(meta: Record<string, unknown>): boolean;
73
+ export declare function _resetSweeperDigestSuppressionForTest(): void;
74
+ export declare function _escalateViolationsForTest(violations: SweepViolation[]): Promise<void>;
73
75
  /**
74
76
  * Check if a task's linked PR has been merged but the task is still in validating.
75
77
  * Called externally when PR state changes are detected.
@@ -1 +1 @@
1
- {"version":3,"file":"executionSweeper.d.ts","sourceRoot":"","sources":["../src/executionSweeper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executionSweeper.d.ts","sourceRoot":"","sources":["../src/executionSweeper.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@
14
14
  import { taskManager } from './tasks.js';
15
15
  import { chatManager } from './chat.js';
16
16
  import { execSync } from 'child_process';
17
+ import { createHash } from 'crypto';
17
18
  import { processAutoMerge, generateRemediation } from './prAutoMerge.js';
18
19
  import { preflightCheck } from './alert-preflight.js';
19
20
  /**
@@ -101,6 +102,27 @@ const MAX_ESCALATION_COUNT = 3;
101
102
  const escalated = new Map();
102
103
  /** Track which orphan PRs we've already flagged */
103
104
  const flaggedOrphanPRs = new Set();
105
+ /**
106
+ * Track recently emitted sweeper digest fingerprints to avoid repeating
107
+ * unchanged digests (digest-level spam control).
108
+ */
109
+ const DIGEST_SUPPRESSION_MS = 2 * 60 * 60 * 1000; // 2 hours
110
+ const recentDigestFingerprints = new Map();
111
+ function pruneDigestFingerprints(now) {
112
+ for (const [fp, ts] of recentDigestFingerprints) {
113
+ if (now - ts > DIGEST_SUPPRESSION_MS)
114
+ recentDigestFingerprints.delete(fp);
115
+ }
116
+ }
117
+ function computeDigestFingerprint(violations) {
118
+ // Stable fingerprint of the set of violations.
119
+ // Intentionally excludes age_minutes and titles to avoid churn.
120
+ const stable = violations
121
+ .map(v => `${v.type}:${v.taskId}`)
122
+ .sort()
123
+ .join('|');
124
+ return createHash('sha256').update(stable).digest('hex').slice(0, 12);
125
+ }
104
126
  /** Track sweep stats for the /execution-health endpoint */
105
127
  let lastSweepAt = 0;
106
128
  let lastSweepResults = null;
@@ -450,11 +472,17 @@ export async function sweepValidatingQueue() {
450
472
  }
451
473
  }
452
474
  // ── Orphan PR detection ──────────────────────────────────────────────
453
- // Scan all tasks with PR URLs where the task is done/cancelled but the PR
454
- // was linked — these represent potential orphan open PRs
475
+ // Scan tasks with PR URLs where the task is cancelled (not done) but a PR
476
+ // was linked — these represent potential orphan open PRs.
477
+ //
478
+ // Note: We intentionally DO NOT scan `status=done` here.
479
+ // In practice, done tasks often have incomplete PR metadata (e.g. missing
480
+ // `pr_merged`), and relying on metadata-only checks creates noisy false
481
+ // positives that spam the sweeper digest. Live PR checks require `gh` and
482
+ // are intentionally avoided in the periodic sweep (execSync blocks).
483
+ // Use /drift-report for deeper investigation.
455
484
  const cancelledTasks = taskManager.listTasks({ status: 'cancelled' });
456
- const doneAndCancelled = [...doneTasks, ...cancelledTasks];
457
- for (const task of doneAndCancelled) {
485
+ for (const task of cancelledTasks) {
458
486
  const meta = (task.metadata || {});
459
487
  const prUrl = extractPrUrl(meta);
460
488
  if (!prUrl || flaggedOrphanPRs.has(prUrl))
@@ -614,6 +642,16 @@ export function hasRequiredArtifacts(meta) {
614
642
  async function escalateViolations(violations) {
615
643
  if (violations.length === 0)
616
644
  return;
645
+ // Digest-level dedupe: don't re-emit the same digest repeatedly while unchanged.
646
+ const now = Date.now();
647
+ pruneDigestFingerprints(now);
648
+ const fingerprint = computeDigestFingerprint(violations);
649
+ const lastEmittedAt = recentDigestFingerprints.get(fingerprint) || 0;
650
+ if (lastEmittedAt && (now - lastEmittedAt) < DIGEST_SUPPRESSION_MS) {
651
+ logDryRun('sweeper_digest_suppressed', `fp=${fingerprint} ageMs=${now - lastEmittedAt}`);
652
+ return;
653
+ }
654
+ recentDigestFingerprints.set(fingerprint, now);
617
655
  // ── Batch violations into a single summary message ─────────────────
618
656
  // Instead of spamming one message per violation, group them by type
619
657
  // and post a single digest. Reduces noise from N messages to 1.
@@ -660,6 +698,12 @@ async function escalateViolations(violations) {
660
698
  }
661
699
  console.log(`[Sweeper] Escalated ${violations.length} violation(s) (batched):`, violations.map(v => `${v.type}:${v.taskId}`).join(', '));
662
700
  }
701
+ export function _resetSweeperDigestSuppressionForTest() {
702
+ recentDigestFingerprints.clear();
703
+ }
704
+ export async function _escalateViolationsForTest(violations) {
705
+ return escalateViolations(violations);
706
+ }
663
707
  // ── PR-State Drift Detection (webhook-triggered) ──────────────────────────
664
708
  /**
665
709
  * Check if a task's linked PR has been merged but the task is still in validating.
@@ -845,6 +889,18 @@ export function startSweeper() {
845
889
  (async () => {
846
890
  const result = await sweepValidatingQueue();
847
891
  escalateViolations(result.violations);
892
+ // Todo hoarding sweep (runs alongside validating sweep)
893
+ try {
894
+ const { sweepTodoHoarding } = await import('./todoHoardingGuard.js');
895
+ const hoarding = await sweepTodoHoarding({ dryRun: false });
896
+ if (hoarding.unassigned.length > 0) {
897
+ const summary = hoarding.unassigned.map(a => `• ${a.taskId} (was: ${a.previousAssignee})`).join('\n');
898
+ console.log(`[Sweeper] Hoarding guard auto-unassigned ${hoarding.unassigned.length} tasks:\n${summary}`);
899
+ }
900
+ }
901
+ catch (err) {
902
+ console.error('[Sweeper] Hoarding sweep failed:', err);
903
+ }
848
904
  })().catch(err => {
849
905
  console.error('[Sweeper] Sweep failed:', err);
850
906
  logDryRun('sweep_error', String(err));