@getrift/rift 0.1.0-beta.22 → 0.1.0-beta.24
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/dist/src/capture/recover-quarantine.d.ts +4 -4
- package/dist/src/cli/commands/capture.d.ts.map +1 -1
- package/dist/src/cli/commands/capture.js +7 -0
- package/dist/src/cli/commands/capture.js.map +1 -1
- package/dist/src/cli/commands/menubar.d.ts +3 -1
- package/dist/src/cli/commands/menubar.d.ts.map +1 -1
- package/dist/src/cli/commands/menubar.js +36 -12
- package/dist/src/cli/commands/menubar.js.map +1 -1
- package/dist/src/cli/postinstall-menubar.d.ts +20 -13
- package/dist/src/cli/postinstall-menubar.d.ts.map +1 -1
- package/dist/src/cli/postinstall-menubar.js +56 -1
- package/dist/src/cli/postinstall-menubar.js.map +1 -1
- package/dist/src/cli/status/friend-header.d.ts +6 -3
- package/dist/src/cli/status/friend-header.d.ts.map +1 -1
- package/dist/src/cli/status/friend-header.js +75 -16
- package/dist/src/cli/status/friend-header.js.map +1 -1
- package/dist/src/cli/status/local-signals.d.ts +19 -4
- package/dist/src/cli/status/local-signals.d.ts.map +1 -1
- package/dist/src/cli/status/local-signals.js +33 -1
- package/dist/src/cli/status/local-signals.js.map +1 -1
- package/dist/src/diagnostics/claude-preflight.d.ts +3 -2
- package/dist/src/diagnostics/claude-preflight.d.ts.map +1 -1
- package/dist/src/diagnostics/claude-preflight.js +10 -9
- package/dist/src/diagnostics/claude-preflight.js.map +1 -1
- package/dist/src/diagnostics/codex-preflight.d.ts +1 -1
- package/dist/src/diagnostics/codex-preflight.d.ts.map +1 -1
- package/dist/src/diagnostics/codex-preflight.js +10 -0
- package/dist/src/diagnostics/codex-preflight.js.map +1 -1
- package/dist/src/diagnostics/doctor.d.ts +7 -4
- package/dist/src/diagnostics/doctor.d.ts.map +1 -1
- package/dist/src/diagnostics/doctor.js +36 -14
- package/dist/src/diagnostics/doctor.js.map +1 -1
- package/dist/src/diagnostics/memory-coverage.d.ts +54 -0
- package/dist/src/diagnostics/memory-coverage.d.ts.map +1 -0
- package/dist/src/diagnostics/memory-coverage.js +272 -0
- package/dist/src/diagnostics/memory-coverage.js.map +1 -0
- package/dist/src/diagnostics/notify.d.ts +20 -3
- package/dist/src/diagnostics/notify.d.ts.map +1 -1
- package/dist/src/diagnostics/notify.js +54 -14
- package/dist/src/diagnostics/notify.js.map +1 -1
- package/dist/src/main.js +1 -1
- package/dist/src/main.js.map +1 -1
- package/dist/src/mcp/capture-diagnostics.d.ts +51 -0
- package/dist/src/mcp/capture-diagnostics.d.ts.map +1 -0
- package/dist/src/mcp/capture-diagnostics.js +127 -0
- package/dist/src/mcp/capture-diagnostics.js.map +1 -0
- package/dist/src/mcp/memory-diagnostics.d.ts +6 -0
- package/dist/src/mcp/memory-diagnostics.d.ts.map +1 -0
- package/dist/src/mcp/memory-diagnostics.js +51 -0
- package/dist/src/mcp/memory-diagnostics.js.map +1 -0
- package/dist/src/mcp/tools/log-outcome.d.ts +2 -2
- package/dist/src/mcp/tools/status.d.ts +15 -1
- package/dist/src/mcp/tools/status.d.ts.map +1 -1
- package/dist/src/mcp/tools/status.js +53 -2
- package/dist/src/mcp/tools/status.js.map +1 -1
- package/dist/src/providers/codex-cli-runner.js +1 -1
- package/dist/src/providers/codex-cli-runner.js.map +1 -1
- package/dist/src/retrieval/canonical-files.d.ts +48 -0
- package/dist/src/retrieval/canonical-files.d.ts.map +1 -0
- package/dist/src/retrieval/canonical-files.js +210 -0
- package/dist/src/retrieval/canonical-files.js.map +1 -0
- package/dist/src/retrieval/compact.d.ts +14 -0
- package/dist/src/retrieval/compact.d.ts.map +1 -1
- package/dist/src/retrieval/compact.js +7 -1
- package/dist/src/retrieval/compact.js.map +1 -1
- package/dist/src/retrieval/context-pack.d.ts.map +1 -1
- package/dist/src/retrieval/context-pack.js +38 -2
- package/dist/src/retrieval/context-pack.js.map +1 -1
- package/dist/src/retrieval/conversation-dedup.d.ts +40 -0
- package/dist/src/retrieval/conversation-dedup.d.ts.map +1 -0
- package/dist/src/retrieval/conversation-dedup.js +141 -0
- package/dist/src/retrieval/conversation-dedup.js.map +1 -0
- package/dist/src/retrieval/feedback-ranking.d.ts +49 -0
- package/dist/src/retrieval/feedback-ranking.d.ts.map +1 -0
- package/dist/src/retrieval/feedback-ranking.js +138 -0
- package/dist/src/retrieval/feedback-ranking.js.map +1 -0
- package/dist/src/retrieval/git-state.d.ts +9 -0
- package/dist/src/retrieval/git-state.d.ts.map +1 -1
- package/dist/src/retrieval/git-state.js +18 -0
- package/dist/src/retrieval/git-state.js.map +1 -1
- package/dist/src/retrieval/reranker.d.ts +37 -0
- package/dist/src/retrieval/reranker.d.ts.map +1 -1
- package/dist/src/retrieval/reranker.js +54 -1
- package/dist/src/retrieval/reranker.js.map +1 -1
- package/dist/src/server/app.d.ts +1 -1
- package/dist/src/server/app.d.ts.map +1 -1
- package/dist/src/server/app.js +3 -2
- package/dist/src/server/app.js.map +1 -1
- package/dist/src/server/routes/conversations-search.d.ts.map +1 -1
- package/dist/src/server/routes/conversations-search.js +11 -1
- package/dist/src/server/routes/conversations-search.js.map +1 -1
- package/dist/src/server/routes/friend-status.d.ts +20 -1
- package/dist/src/server/routes/friend-status.d.ts.map +1 -1
- package/dist/src/server/routes/friend-status.js +40 -12
- package/dist/src/server/routes/friend-status.js.map +1 -1
- package/dist/src/server/routes/search.d.ts +1 -1
- package/dist/src/server/routes/search.d.ts.map +1 -1
- package/dist/src/server/routes/search.js +37 -2
- package/dist/src/server/routes/search.js.map +1 -1
- package/operator/swiftbar/render-menu.py +14 -5
- package/package.json +2 -2
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory coverage diagnostics for status surfaces.
|
|
3
|
+
*
|
|
4
|
+
* Counts alone are not enough: "0 digests" can mean AI enrichment is off,
|
|
5
|
+
* Claude was selected (no digest worker yet), or compaction simply has not run.
|
|
6
|
+
* "0 structured docs" can mean no sources, empty sources, missing embeddings,
|
|
7
|
+
* or a watch-mode backfill gap. This module turns config + cheap filesystem
|
|
8
|
+
* probes + table counts into explicit, leak-safe reasons.
|
|
9
|
+
*/
|
|
10
|
+
import fs from "node:fs";
|
|
11
|
+
import path from "node:path";
|
|
12
|
+
import { buildIgnoredPaths } from "../ingestion/ignored-paths.js";
|
|
13
|
+
import { isSupported } from "../ingestion/extractor.js";
|
|
14
|
+
import { isWatcherPathIgnored } from "../ingestion/watcher.js";
|
|
15
|
+
const DEFAULT_SUPPORTED_FILE_SCAN_LIMIT = 100;
|
|
16
|
+
const DEFAULT_SOURCE_ENTRY_SCAN_LIMIT = 1_000;
|
|
17
|
+
export function buildMemoryCoverageDiagnostics(input) {
|
|
18
|
+
const counts = input.counts
|
|
19
|
+
? {
|
|
20
|
+
conversations: input.counts.conversations_hot + input.counts.conversations_cold,
|
|
21
|
+
digests: input.counts.digests,
|
|
22
|
+
structured_docs: input.counts.structured_docs,
|
|
23
|
+
}
|
|
24
|
+
: null;
|
|
25
|
+
return {
|
|
26
|
+
counts,
|
|
27
|
+
digests: buildDigestCoverage({
|
|
28
|
+
config: input.config,
|
|
29
|
+
counts,
|
|
30
|
+
compactAvailable: input.compactAvailable,
|
|
31
|
+
}),
|
|
32
|
+
documents: buildDocumentCoverage({
|
|
33
|
+
config: input.config,
|
|
34
|
+
counts,
|
|
35
|
+
voyageKeyPresent: input.voyageKeyPresent,
|
|
36
|
+
supportedFileScanLimit: input.supportedFileScanLimit ?? DEFAULT_SUPPORTED_FILE_SCAN_LIMIT,
|
|
37
|
+
}),
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
function selectedMetadataProvider(config) {
|
|
41
|
+
if (config.local_generation?.enabled === true)
|
|
42
|
+
return "ollama";
|
|
43
|
+
if (config.enrichment?.ai_metadata !== true)
|
|
44
|
+
return "basic";
|
|
45
|
+
return config.enrichment.metadata?.provider ?? "codex_cli";
|
|
46
|
+
}
|
|
47
|
+
function buildDigestCoverage(input) {
|
|
48
|
+
const provider = selectedMetadataProvider(input.config);
|
|
49
|
+
if (!input.counts) {
|
|
50
|
+
return {
|
|
51
|
+
status: "unknown",
|
|
52
|
+
metadata_provider: provider,
|
|
53
|
+
compact_available: input.compactAvailable,
|
|
54
|
+
summary: "Digest coverage could not be counted.",
|
|
55
|
+
next_action: "Run: rift status --json",
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
if (input.counts.digests > 0) {
|
|
59
|
+
return {
|
|
60
|
+
status: "indexed",
|
|
61
|
+
metadata_provider: provider,
|
|
62
|
+
compact_available: input.compactAvailable,
|
|
63
|
+
summary: `${input.counts.digests} digest${input.counts.digests === 1 ? "" : "s"} indexed.`,
|
|
64
|
+
next_action: null,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
if (provider === "basic") {
|
|
68
|
+
return {
|
|
69
|
+
status: "unavailable_basic",
|
|
70
|
+
metadata_provider: provider,
|
|
71
|
+
compact_available: input.compactAvailable,
|
|
72
|
+
summary: "No digests because AI enrichment is off, so no digest worker is registered.",
|
|
73
|
+
next_action: "Enable a digest worker, e.g. rift onboard --enable-codex-enrichment, then run rift compact.",
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
if (provider === "claude_code") {
|
|
77
|
+
return {
|
|
78
|
+
status: "unavailable_claude",
|
|
79
|
+
metadata_provider: provider,
|
|
80
|
+
compact_available: input.compactAvailable,
|
|
81
|
+
summary: "No digests because Claude Code metadata is selected, but Claude digest support has not shipped yet.",
|
|
82
|
+
next_action: "Use Codex or Ollama for digest generation for now; keep Claude metadata if you do not need digests.",
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
if (!input.compactAvailable) {
|
|
86
|
+
return {
|
|
87
|
+
status: "unavailable_worker",
|
|
88
|
+
metadata_provider: provider,
|
|
89
|
+
compact_available: input.compactAvailable,
|
|
90
|
+
summary: "No digests because the compact/digest worker is not available in this daemon.",
|
|
91
|
+
next_action: "Run: rift doctor",
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
// We know only that a digest-capable worker is registered and the digest
|
|
95
|
+
// count is zero — NOT that compaction never ran. A corpus younger than the
|
|
96
|
+
// compaction age threshold legitimately has a working worker, compaction
|
|
97
|
+
// having run repeatedly, and still zero digests. Stay honest about that.
|
|
98
|
+
return {
|
|
99
|
+
status: "available_not_run",
|
|
100
|
+
metadata_provider: provider,
|
|
101
|
+
compact_available: input.compactAvailable,
|
|
102
|
+
summary: "No digests yet. A digest worker is available, but nothing has been compacted into a digest — either no conversation has reached the compaction age threshold, or compaction has not run.",
|
|
103
|
+
next_action: "Run: rift compact --dry-run to see what would be compacted.",
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
function buildDocumentCoverage(input) {
|
|
107
|
+
const sources = input.config.sources ?? [];
|
|
108
|
+
// Config-derived fields only (no filesystem touch). The probe-derived fields
|
|
109
|
+
// stay zeroed and `probed` stays false until we actually walk the sources.
|
|
110
|
+
const configDerived = {
|
|
111
|
+
probed: false,
|
|
112
|
+
configured_sources: sources.length,
|
|
113
|
+
existing_sources: 0,
|
|
114
|
+
cloud_sources: sources.filter((s) => s.extraction === "cloud").length,
|
|
115
|
+
local_sources: sources.filter((s) => s.extraction === "local").length,
|
|
116
|
+
sources_with_supported_files: 0,
|
|
117
|
+
supported_files_seen: 0,
|
|
118
|
+
cloud_supported_files_seen: 0,
|
|
119
|
+
local_supported_files_seen: 0,
|
|
120
|
+
scan_limit: input.supportedFileScanLimit,
|
|
121
|
+
scan_limited: false,
|
|
122
|
+
cloud_embedding_ready: input.voyageKeyPresent,
|
|
123
|
+
};
|
|
124
|
+
// Counts unavailable: nothing to conclude, and probing can't diagnose without
|
|
125
|
+
// a baseline count. Degrade to "unknown" without touching the filesystem.
|
|
126
|
+
if (!input.counts) {
|
|
127
|
+
return {
|
|
128
|
+
...configDerived,
|
|
129
|
+
status: "unknown",
|
|
130
|
+
summary: "Structured-document coverage could not be counted.",
|
|
131
|
+
next_action: "Run: rift status --json",
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
// Healthy steady state: documents are already indexed, so we owe no
|
|
135
|
+
// explanation and skip the probe entirely. `rift status --json` is polled
|
|
136
|
+
// ~every 10s by the menu bar; walking every configured source tree on each
|
|
137
|
+
// poll once docs exist is pure waste — the probe only earns its cost when
|
|
138
|
+
// docs == 0.
|
|
139
|
+
if (input.counts.structured_docs > 0) {
|
|
140
|
+
return {
|
|
141
|
+
...configDerived,
|
|
142
|
+
status: "indexed",
|
|
143
|
+
summary: `${input.counts.structured_docs} structured document${input.counts.structured_docs === 1 ? "" : "s"} indexed.`,
|
|
144
|
+
next_action: null,
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
// Zero docs: probe the sources to explain why.
|
|
148
|
+
const probes = sources.map((source) => probeSource(source, input.config, input.supportedFileScanLimit));
|
|
149
|
+
const existingSources = probes.filter((p) => p.exists).length;
|
|
150
|
+
const supportedFilesSeen = sum(probes.map((p) => p.supportedFilesSeen));
|
|
151
|
+
const scanLimited = probes.some((p) => p.scanLimited);
|
|
152
|
+
const sourcesWithSupportedFiles = probes.filter((p) => p.supportedFilesSeen > 0).length;
|
|
153
|
+
const cloudSupportedFilesSeen = sum(probes.map((p, i) => sources[i]?.extraction === "cloud" ? p.supportedFilesSeen : 0));
|
|
154
|
+
const localSupportedFilesSeen = sum(probes.map((p, i) => sources[i]?.extraction === "local" ? p.supportedFilesSeen : 0));
|
|
155
|
+
const base = {
|
|
156
|
+
...configDerived,
|
|
157
|
+
probed: true,
|
|
158
|
+
existing_sources: existingSources,
|
|
159
|
+
sources_with_supported_files: sourcesWithSupportedFiles,
|
|
160
|
+
supported_files_seen: supportedFilesSeen,
|
|
161
|
+
cloud_supported_files_seen: cloudSupportedFilesSeen,
|
|
162
|
+
local_supported_files_seen: localSupportedFilesSeen,
|
|
163
|
+
scan_limited: scanLimited,
|
|
164
|
+
};
|
|
165
|
+
if (configDerived.configured_sources === 0) {
|
|
166
|
+
return {
|
|
167
|
+
...base,
|
|
168
|
+
status: "not_configured",
|
|
169
|
+
summary: "No structured documents because no document sources are configured.",
|
|
170
|
+
next_action: "Add a source to the active Rift config, then run rift reconcile.",
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
if (existingSources === 0) {
|
|
174
|
+
return {
|
|
175
|
+
...base,
|
|
176
|
+
status: "source_missing",
|
|
177
|
+
summary: "No structured documents because the configured source paths are missing on disk.",
|
|
178
|
+
next_action: "Fix or remove the missing source paths in the active Rift config.",
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
if (supportedFilesSeen === 0 && scanLimited) {
|
|
182
|
+
return {
|
|
183
|
+
...base,
|
|
184
|
+
status: "unknown",
|
|
185
|
+
summary: "No structured documents, and the source probe hit its scan limit before finding supported files.",
|
|
186
|
+
next_action: "Run: rift reconcile",
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
if (supportedFilesSeen === 0) {
|
|
190
|
+
return {
|
|
191
|
+
...base,
|
|
192
|
+
status: "source_empty",
|
|
193
|
+
summary: "No structured documents because the active sources contain no supported files.",
|
|
194
|
+
next_action: "Add supported files to an active source, or point the active config at the folders you want indexed.",
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
if (cloudSupportedFilesSeen > 0 && !input.voyageKeyPresent) {
|
|
198
|
+
return {
|
|
199
|
+
...base,
|
|
200
|
+
status: "embedding_unavailable",
|
|
201
|
+
summary: "No structured documents because cloud sources contain supported files, but no Voyage key is loaded.",
|
|
202
|
+
next_action: "Run: rift onboard --reconfigure-voyage",
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
return {
|
|
206
|
+
...base,
|
|
207
|
+
status: "backfill_needed",
|
|
208
|
+
summary: "No structured documents even though active sources contain supported files; existing files likely need a reconcile/backfill pass.",
|
|
209
|
+
next_action: "Run: rift reconcile",
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
function probeSource(source, config, limit) {
|
|
213
|
+
let stat;
|
|
214
|
+
try {
|
|
215
|
+
stat = fs.statSync(source.path);
|
|
216
|
+
}
|
|
217
|
+
catch {
|
|
218
|
+
return { exists: false, supportedFilesSeen: 0, scanLimited: false };
|
|
219
|
+
}
|
|
220
|
+
if (!stat.isDirectory()) {
|
|
221
|
+
return { exists: false, supportedFilesSeen: 0, scanLimited: false };
|
|
222
|
+
}
|
|
223
|
+
const ignoredPaths = buildIgnoredPaths(source, config.data_paths);
|
|
224
|
+
const result = countSupportedFiles(source.path, ignoredPaths, limit, DEFAULT_SOURCE_ENTRY_SCAN_LIMIT);
|
|
225
|
+
return {
|
|
226
|
+
exists: true,
|
|
227
|
+
supportedFilesSeen: result.count,
|
|
228
|
+
scanLimited: result.limited,
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
function countSupportedFiles(dir, ignoredPaths, supportedFileLimit, entryLimit) {
|
|
232
|
+
let count = 0;
|
|
233
|
+
let entriesSeen = 0;
|
|
234
|
+
let limited = false;
|
|
235
|
+
const visit = (current) => {
|
|
236
|
+
if (count >= supportedFileLimit || entriesSeen >= entryLimit) {
|
|
237
|
+
limited = true;
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
240
|
+
if (isWatcherPathIgnored(current, ignoredPaths))
|
|
241
|
+
return;
|
|
242
|
+
let entries;
|
|
243
|
+
try {
|
|
244
|
+
entries = fs.readdirSync(current, { withFileTypes: true });
|
|
245
|
+
}
|
|
246
|
+
catch {
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
for (const entry of entries) {
|
|
250
|
+
if (count >= supportedFileLimit || entriesSeen >= entryLimit) {
|
|
251
|
+
limited = true;
|
|
252
|
+
return;
|
|
253
|
+
}
|
|
254
|
+
entriesSeen++;
|
|
255
|
+
const fullPath = path.join(current, entry.name);
|
|
256
|
+
if (isWatcherPathIgnored(fullPath, ignoredPaths))
|
|
257
|
+
continue;
|
|
258
|
+
if (entry.isDirectory() && !entry.isSymbolicLink()) {
|
|
259
|
+
visit(fullPath);
|
|
260
|
+
}
|
|
261
|
+
else if (entry.isFile() && isSupported(fullPath)) {
|
|
262
|
+
count++;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
};
|
|
266
|
+
visit(dir);
|
|
267
|
+
return { count, limited };
|
|
268
|
+
}
|
|
269
|
+
function sum(values) {
|
|
270
|
+
return values.reduce((acc, n) => acc + n, 0);
|
|
271
|
+
}
|
|
272
|
+
//# sourceMappingURL=memory-coverage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-coverage.js","sourceRoot":"","sources":["../../../src/diagnostics/memory-coverage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
import type { DoctorIssue, DoctorIssueKind } from "./doctor.js";
|
|
2
2
|
/** Re-notify cadence for an issue that stays unresolved. */
|
|
3
3
|
export declare const RENOTIFY_INTERVAL_MS: number;
|
|
4
|
+
/**
|
|
5
|
+
* The only issue kinds that ever raise a friend-facing macOS banner — the
|
|
6
|
+
* user-ACTIONABLE failures, where the friend can sign in or add a key and the
|
|
7
|
+
* problem clears. Everything else (a transient codex/claude probe failure, an
|
|
8
|
+
* index-write or save error, a backend timeout) is operator-only: surfaced in
|
|
9
|
+
* `rift doctor` / `rift status` and the logs, never a banner, because a
|
|
10
|
+
* non-technical friend cannot act on it and Rift retries it on its own.
|
|
11
|
+
*
|
|
12
|
+
* New kinds default to operator-only (fail-closed): add a kind here only when
|
|
13
|
+
* there is a safe, concrete action the friend can take.
|
|
14
|
+
*/
|
|
15
|
+
export declare const FRIEND_NOTIFY_KINDS: ReadonlySet<DoctorIssueKind>;
|
|
4
16
|
export interface NotificationPayload {
|
|
5
17
|
/** macOS notification title — always the same friend-facing banner. */
|
|
6
18
|
title: string;
|
|
@@ -53,9 +65,14 @@ export declare function buildNotificationPayload(issue: DoctorIssue): Notificati
|
|
|
53
65
|
* Decide which notifications to send this tick and what state to persist.
|
|
54
66
|
* Pure: no IO, no clock except the injected `now`.
|
|
55
67
|
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
68
|
+
* Eligible issues are the intersection of `daemonObservable` (the daemon can
|
|
69
|
+
* see them) and `FRIEND_NOTIFY_KINDS` (the friend can act on them) — so a
|
|
70
|
+
* transient probe/index/save failure never reaches a banner.
|
|
71
|
+
*
|
|
72
|
+
* The dedup memory survives a healthy run: a record is retained until its 24h
|
|
73
|
+
* cooldown elapses, even on ticks where the issue is absent. That is the flood
|
|
74
|
+
* fix — without it, one healthy poll wiped the "already warned you" memory and
|
|
75
|
+
* the next recurrence re-notified, defeating the daily limit.
|
|
59
76
|
*/
|
|
60
77
|
export declare function planNotifications(input: PlanNotificationsInput): PlanNotificationsResult;
|
|
61
78
|
/** Absolute path to the dedup-state file under the data dir. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notify.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/notify.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"notify.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/notify.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEhE,4DAA4D;AAC5D,eAAO,MAAM,oBAAoB,QAAsB,CAAC;AAExD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,eAAe,CAQ3D,CAAC;AAEH,MAAM,WAAW,mBAAmB;IAClC,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,kCAAkC;AAClC,MAAM,WAAW,YAAY;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC;CACxD;AAOD,MAAM,WAAW,sBAAsB;IACrC,iEAAiE;IACjE,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,wCAAwC;IACxC,KAAK,EAAE,WAAW,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,uBAAuB;IACtC,kEAAkE;IAClE,aAAa,EAAE,mBAAmB,EAAE,CAAC;IACrC,sCAAsC;IACtC,SAAS,EAAE,WAAW,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,WAAW,GACjB,mBAAmB,CAMrB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,sBAAsB,GAC5B,uBAAuB,CA2DzB;AAED,gEAAgE;AAChE,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,uEAAuE;AACvE,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAW5D;AAED,2DAA2D;AAC3D,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAQ1E;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,mBAAmB,EAC5B,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAA;CAAO,GACxC,IAAI,CAcN;AAED,iEAAiE;AACjE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,EAAE,EACrB,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAA;CAAO,GACtD,IAAI,CAmBN"}
|
|
@@ -11,10 +11,15 @@
|
|
|
11
11
|
* about itself. That needs a separate watchdog and is explicitly Slice D
|
|
12
12
|
* (see docs/feedback/2026-05-20-friend-onboarding-status-surface.md).
|
|
13
13
|
*
|
|
14
|
-
* Rate-limiting rules (
|
|
14
|
+
* Rate-limiting rules (status-surface plan + the 2026-06 flood fix):
|
|
15
|
+
* - Only user-ACTIONABLE kinds (FRIEND_NOTIFY_KINDS) ever reach a friend;
|
|
16
|
+
* transient/infra failures (probe timeouts, index/save errors) are
|
|
17
|
+
* operator-only — visible in `rift doctor`/`status`, never a banner.
|
|
15
18
|
* - Notify on state transition, not every poll.
|
|
16
|
-
* - Do not repeat the same unresolved issue more than once per day
|
|
17
|
-
*
|
|
19
|
+
* - Do not repeat the same unresolved issue more than once per day — and the
|
|
20
|
+
* dedup memory SURVIVES a healthy run, so an intermittent failure
|
|
21
|
+
* (fail → heal → fail within 24h) notifies once, not on every recurrence.
|
|
22
|
+
* - After the cooldown elapses, a genuine later recurrence notifies fresh.
|
|
18
23
|
*
|
|
19
24
|
* The planning logic (`planNotifications`) is pure and fully tested; the
|
|
20
25
|
* IO (reading/writing dedup state, sending via osascript) is thin and
|
|
@@ -25,6 +30,26 @@ import fs from "node:fs";
|
|
|
25
30
|
import path from "node:path";
|
|
26
31
|
/** Re-notify cadence for an issue that stays unresolved. */
|
|
27
32
|
export const RENOTIFY_INTERVAL_MS = 24 * 60 * 60 * 1000;
|
|
33
|
+
/**
|
|
34
|
+
* The only issue kinds that ever raise a friend-facing macOS banner — the
|
|
35
|
+
* user-ACTIONABLE failures, where the friend can sign in or add a key and the
|
|
36
|
+
* problem clears. Everything else (a transient codex/claude probe failure, an
|
|
37
|
+
* index-write or save error, a backend timeout) is operator-only: surfaced in
|
|
38
|
+
* `rift doctor` / `rift status` and the logs, never a banner, because a
|
|
39
|
+
* non-technical friend cannot act on it and Rift retries it on its own.
|
|
40
|
+
*
|
|
41
|
+
* New kinds default to operator-only (fail-closed): add a kind here only when
|
|
42
|
+
* there is a safe, concrete action the friend can take.
|
|
43
|
+
*/
|
|
44
|
+
export const FRIEND_NOTIFY_KINDS = new Set([
|
|
45
|
+
"codex_auth_expired",
|
|
46
|
+
"claude_auth_expired",
|
|
47
|
+
"voyage_key_missing",
|
|
48
|
+
// NOT voyage_embed_errors: "key present but embedding failed" is not cleanly
|
|
49
|
+
// friend-actionable — it spans an invalid key AND a network/provider flake.
|
|
50
|
+
// It stays operator-only until the cause is split into its own kind
|
|
51
|
+
// (voyage_key_invalid → friend banner, voyage_embed_errors → operator).
|
|
52
|
+
]);
|
|
28
53
|
/** Cause identity for an issue: explicit fingerprint, else its kind. */
|
|
29
54
|
function issueFingerprint(issue) {
|
|
30
55
|
return issue.fingerprint ?? issue.kind;
|
|
@@ -45,16 +70,34 @@ export function buildNotificationPayload(issue) {
|
|
|
45
70
|
* Decide which notifications to send this tick and what state to persist.
|
|
46
71
|
* Pure: no IO, no clock except the injected `now`.
|
|
47
72
|
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
73
|
+
* Eligible issues are the intersection of `daemonObservable` (the daemon can
|
|
74
|
+
* see them) and `FRIEND_NOTIFY_KINDS` (the friend can act on them) — so a
|
|
75
|
+
* transient probe/index/save failure never reaches a banner.
|
|
76
|
+
*
|
|
77
|
+
* The dedup memory survives a healthy run: a record is retained until its 24h
|
|
78
|
+
* cooldown elapses, even on ticks where the issue is absent. That is the flood
|
|
79
|
+
* fix — without it, one healthy poll wiped the "already warned you" memory and
|
|
80
|
+
* the next recurrence re-notified, defeating the daily limit.
|
|
51
81
|
*/
|
|
52
82
|
export function planNotifications(input) {
|
|
53
83
|
const { issues, state, now } = input;
|
|
54
|
-
const eligible = issues.filter((i) => i.daemonObservable);
|
|
55
|
-
const
|
|
56
|
-
const nextActive = {};
|
|
84
|
+
const eligible = issues.filter((i) => i.daemonObservable && FRIEND_NOTIFY_KINDS.has(i.kind));
|
|
85
|
+
const presentKinds = new Set(eligible.map((i) => i.kind));
|
|
57
86
|
const notifications = [];
|
|
87
|
+
const nextActive = {};
|
|
88
|
+
// Carry over prior records for kinds NOT failing this tick, as long as their
|
|
89
|
+
// cooldown window has not elapsed. This keeps the "already warned" memory
|
|
90
|
+
// alive across a healthy run, so an intermittent failure notifies once per
|
|
91
|
+
// day rather than on every recurrence. Expired records are dropped, so a
|
|
92
|
+
// genuine later recurrence notifies fresh.
|
|
93
|
+
for (const [kind, record] of Object.entries(state.active)) {
|
|
94
|
+
if (presentKinds.has(kind))
|
|
95
|
+
continue;
|
|
96
|
+
const lastMs = Date.parse(record.last_notified_at);
|
|
97
|
+
const fresh = !Number.isNaN(lastMs) && now - lastMs < RENOTIFY_INTERVAL_MS;
|
|
98
|
+
if (fresh)
|
|
99
|
+
nextActive[kind] = record;
|
|
100
|
+
}
|
|
58
101
|
for (const issue of eligible) {
|
|
59
102
|
const prior = state.active[issue.kind];
|
|
60
103
|
const fingerprint = issueFingerprint(issue);
|
|
@@ -66,7 +109,7 @@ export function planNotifications(input) {
|
|
|
66
109
|
};
|
|
67
110
|
};
|
|
68
111
|
if (!prior) {
|
|
69
|
-
//
|
|
112
|
+
// First transition into failure → notify.
|
|
70
113
|
notify();
|
|
71
114
|
continue;
|
|
72
115
|
}
|
|
@@ -84,13 +127,10 @@ export function planNotifications(input) {
|
|
|
84
127
|
notify();
|
|
85
128
|
}
|
|
86
129
|
else {
|
|
87
|
-
// Already notified within the window → stay quiet, keep record.
|
|
130
|
+
// Already notified within the window → stay quiet, keep the record.
|
|
88
131
|
nextActive[issue.kind] = prior;
|
|
89
132
|
}
|
|
90
133
|
}
|
|
91
|
-
// Anything previously active but no longer present has resolved; it is
|
|
92
|
-
// simply absent from `nextActive`, so a later recurrence notifies fresh.
|
|
93
|
-
void eligibleKinds;
|
|
94
134
|
return { notifications, nextState: { active: nextActive } };
|
|
95
135
|
}
|
|
96
136
|
/** Absolute path to the dedup-state file under the data dir. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notify.js","sourceRoot":"","sources":["../../../src/diagnostics/notify.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"notify.js","sourceRoot":"","sources":["../../../src/diagnostics/notify.ts"],"names":[],"mappings":"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"}
|
package/dist/src/main.js
CHANGED
|
@@ -165,7 +165,7 @@ jobQueue.registerHandler("triage", createCodexOverrideAwareHandler(workerTriageH
|
|
|
165
165
|
// configured triage worker (codex_cli by default, claude_code when selected)
|
|
166
166
|
// — the operator's own authenticated CLI runtime, no Rift-held API key.
|
|
167
167
|
setDefaultTriageProvider(createConfiguredTriageProvider());
|
|
168
|
-
const { server, markReady } = await buildApp(config, tokenManager, jobQueue, embeddingProvider, watchers, scanner, digestSummarizer, metadataExtractor, ollamaEmbedding);
|
|
168
|
+
const { server, markReady } = await buildApp(config, tokenManager, jobQueue, embeddingProvider, watchers, scanner, digestSummarizer, metadataExtractor, ollamaEmbedding, absoluteConfigPath);
|
|
169
169
|
registerShutdownHandlers(server, {
|
|
170
170
|
onShutdown: () => workerPool.shutdown(),
|
|
171
171
|
});
|
package/dist/src/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { FriendStatusPayload, PreflightWorker } from "../server/routes/friend-status.js";
|
|
2
|
+
export type CaptureDiagnosticsStatus = "ok" | "failing" | "unknown";
|
|
3
|
+
/**
|
|
4
|
+
* Compact, leak-free capture diagnosis for an agent. Every field is either a
|
|
5
|
+
* boolean/number/enum or a canned per-class phrase — nothing here is derived
|
|
6
|
+
* from raw error text or conversation content.
|
|
7
|
+
*/
|
|
8
|
+
export interface CaptureDiagnostics {
|
|
9
|
+
/**
|
|
10
|
+
* `failing` — a broken preflight/capture issue is live; `ok` — capture has
|
|
11
|
+
* run and nothing is broken; `unknown` — capture has never run on this
|
|
12
|
+
* install, so there is nothing to judge yet.
|
|
13
|
+
*/
|
|
14
|
+
status: CaptureDiagnosticsStatus;
|
|
15
|
+
/**
|
|
16
|
+
* Which triage worker the last preflight ran (`codex` | `claude`), so the
|
|
17
|
+
* agent reads Codex-shaped vs Claude-shaped state correctly. Null only when
|
|
18
|
+
* the payload predates worker recording AND nothing ran.
|
|
19
|
+
*/
|
|
20
|
+
worker: PreflightWorker | null;
|
|
21
|
+
/** Last preflight outcome: true healthy, false failing, null never ran. */
|
|
22
|
+
preflight_ok: boolean | null;
|
|
23
|
+
/**
|
|
24
|
+
* Coarse, worker-specific failure class (e.g. Codex `cli_incompatible`,
|
|
25
|
+
* Claude `auth`). Null when preflight is healthy or never ran.
|
|
26
|
+
*/
|
|
27
|
+
preflight_class: string | null;
|
|
28
|
+
/** Canned, leak-free one-line failure summary. Null when not failing. */
|
|
29
|
+
summary: string | null;
|
|
30
|
+
/** Exactly one worker-aware next action. Null when there is nothing to do. */
|
|
31
|
+
next_action: string | null;
|
|
32
|
+
/** ISO timestamp of the last preflight, or null when none ran. */
|
|
33
|
+
last_preflight_at: string | null;
|
|
34
|
+
/** Per-session error count from the most recent capture run (a count only). */
|
|
35
|
+
recent_capture_errors: number;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Build the capture diagnosis from a `/status/friend` payload. Pure: given the
|
|
39
|
+
* same payload and `now` it always returns the same object. `now` feeds the
|
|
40
|
+
* uptime gating inside `diagnose()` (a capture-run error from a prior daemon
|
|
41
|
+
* process is not reported as live), so the verdict matches what `rift doctor`
|
|
42
|
+
* would say for the same payload.
|
|
43
|
+
*/
|
|
44
|
+
export declare function buildCaptureDiagnostics(status: FriendStatusPayload, now: number): CaptureDiagnostics;
|
|
45
|
+
/**
|
|
46
|
+
* Render the diagnosis as a compact markdown section for the MCP text channel.
|
|
47
|
+
* Plain `Key: value` lines so a text-only agent can parse it; the same object
|
|
48
|
+
* also rides the structured channel. No emoji, no raw error text.
|
|
49
|
+
*/
|
|
50
|
+
export declare function renderCaptureDiagnostics(diag: CaptureDiagnostics): string;
|
|
51
|
+
//# sourceMappingURL=capture-diagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capture-diagnostics.d.ts","sourceRoot":"","sources":["../../../src/mcp/capture-diagnostics.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EAChB,MAAM,mCAAmC,CAAC;AAgB3C,MAAM,MAAM,wBAAwB,GAAG,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC;AAEpE;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,MAAM,EAAE,wBAAwB,CAAC;IACjC;;;;OAIG;IACH,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IAC/B,2EAA2E;IAC3E,YAAY,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7B;;;OAGG;IACH,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,yEAAyE;IACzE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,8EAA8E;IAC9E,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,kEAAkE;IAClE,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,+EAA+E;IAC/E,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,mBAAmB,EAC3B,GAAG,EAAE,MAAM,GACV,kBAAkB,CA0CpB;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAuCzE"}
|