next-observer 0.3.29 → 0.3.31

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/README.md CHANGED
@@ -62,7 +62,8 @@ this call compares with the others of its kind.
62
62
 
63
63
  A span can be fast, without an error, and still carry the wrong answer. When the app records its own verdict as a span
64
64
  event — `integrity_check` with `ok`, `expected`, `actual` — the observer raises an anomaly on the first `ok: false` and the
65
- trace says so:
65
+ trace says so. The AI agents get those checks counted per deployed version (`compare_versions`), so they can name the
66
+ version that started returning wrong data and how often it happens:
66
67
 
67
68
  ![A trace with a Wrong data banner: getProductById asked for 1 and got back 3](https://raw.githubusercontent.com/ataztech910/nextjs-observe/master/docs/screenshots/wrong-data.png)
68
69
 
@@ -127,7 +128,8 @@ few requests per minute, so an investigation may pause for that minute; a key wi
127
128
  model name is explained in the chat in plain words.
128
129
 
129
130
  The chat keeps a list of investigations — your questions and the ones the observer started on its own — with their
130
- state; pick one to read it again. Leaving the page does not lose them (a reload still loses your own questions).
131
+ state; pick one to read it again. The observer keeps them (the last 100, in memory), so a reload or another browser
132
+ shows the same list; a restart of the observer starts clean.
131
133
 
132
134
  An investigation can be stopped — the **Stop** button next to "working…" in the chat, for a question you asked and for
133
135
  one the observer started on its own. What was found until then stays on the page. A model behind an API drops the call
@@ -19,11 +19,17 @@ function describeFilters(args) {
19
19
  export function cardsFromResult(tool, args, result) {
20
20
  switch (tool) {
21
21
  case 'compare_versions': {
22
- const { changes } = result;
23
- return changes
22
+ const { changes, integrity } = result;
23
+ const regressions = changes
24
24
  .filter((c) => ((c.p95Ratio ?? 0) >= THRESHOLDS.regressionRatio && c.to.p95Ms - c.from.p95Ms >= THRESHOLDS.regressionMinMs) ||
25
25
  (c.errorRateDelta >= THRESHOLDS.regressionErrorDelta && c.errorRateChangeSignificant))
26
26
  .map((c) => ({ kind: 'regression', service: c.service, operation: c.operation, from: c.from, to: c.to, p95Ratio: c.p95Ratio, errorRateDelta: c.errorRateDelta }));
27
+ // One wrong answer is worth a card — there is no acceptable share of them. In the version running now, that is:
28
+ // wrong data an earlier version returned and the next one fixed is history, not evidence.
29
+ const wrong = (integrity ?? [])
30
+ .filter((i) => (i.versions.at(-1)?.failed ?? 0) > 0)
31
+ .map((i) => ({ kind: 'wrong-data', service: i.service, operation: i.operation, versions: i.versions }));
32
+ return [...wrong, ...regressions];
27
33
  }
28
34
  case 'get_errors': {
29
35
  const { errors } = result;
@@ -79,6 +85,8 @@ export function cardKey(card) {
79
85
  return `${card.kind}:${card.parent}:${card.operation}`;
80
86
  case 'hotspot':
81
87
  return `${card.kind}:${card.operation}:${card.codeFile}`;
88
+ case 'wrong-data':
89
+ return `${card.kind}:${card.service}:${card.operation}`;
82
90
  case 'silent':
83
91
  return `${card.kind}:${card.service}`;
84
92
  case 'traces':
@@ -1 +1 @@
1
- {"version":3,"file":"cards.js","sourceRoot":"","sources":["../../src/agents/cards.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,qCAAqC;IACrC,eAAe,EAAE,GAAG;IACpB,0GAA0G;IAC1G,eAAe,EAAE,EAAE;IACnB,oGAAoG;IACpG,oBAAoB,EAAE,GAAG;IACzB,SAAS,EAAE,IAAI;IACf,0DAA0D;IAC1D,YAAY,EAAE,GAAG;IACjB,aAAa,EAAE,GAAG;CACnB,CAAA;AAID,SAAS,eAAe,CAAC,IAA6B;IACpD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;SAC/B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC;SAC9C,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACvC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAA;AACxE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,IAA6B,EAAE,MAAe;IAC1F,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,kBAAkB,EAAE,CAAC;YACxB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAmC,CAAA;YACvD,OAAO,OAAO;iBACX,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC,eAAe,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,eAAe,CAAC;gBAC5G,CAAC,CAAC,CAAC,cAAc,IAAI,UAAU,CAAC,oBAAoB,IAAI,CAAC,CAAC,0BAA0B,CAAC,CACxF;iBACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAA;QACrK,CAAC;QACD,KAAK,YAAY,EAAE,CAAC;YAClB,MAAM,EAAE,MAAM,EAAE,GAAG,MAA6B,CAAA;YAChD,OAAO,MAAM;iBACV,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC;iBACzD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACX,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,cAAc;gBACpD,QAAQ,EAAE,CAAC,CAAC,eAAe;aAC5B,CAAC,CAAC,CAAA;QACP,CAAC;QACD,KAAK,WAAW,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,MAA4B,CAAA;YAC1C,IAAI,CAAC,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAA;YAChE,MAAM,KAAK,GAAmB,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;YACvL,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;YACzC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK;iBACxB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC,eAAe,CAAC,KAAK,QAAQ,CAAC;iBACjF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;YACzC,IAAI,OAAO,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,OAAO,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;gBAClF,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,UAAW,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAA;YAC3K,CAAC;YACD,OAAO,KAAK,CAAA;QACd,CAAC;QACD,KAAK,cAAc,EAAE,CAAC;YACpB,MAAM,EAAE,QAAQ,EAAE,GAAG,MAA+B,CAAA;YACpD,OAAO,QAAQ;iBACZ,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB,GAAG,UAAU,CAAC,aAAa,CAAC;iBAC9D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAA;QAChG,CAAC;QACD,KAAK,eAAe,EAAE,CAAC;YACrB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAgC,CAAA;YACnD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAA;YAClC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;QACtL,CAAC;QACD;YACE,OAAO,EAAE,CAAA;IACb,CAAC;AACH,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,OAAO,CAAC,IAAkB;IACxC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,YAAY,CAAC;QAClB,KAAK,QAAQ;YACX,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,CAAA;QACzD,KAAK,YAAY;YACf,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAA;QACxD,KAAK,SAAS;YACZ,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAA;QAC1D,KAAK,QAAQ;YACX,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAA;QACvC,KAAK,QAAQ;YACX,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAA;IACvC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"cards.js","sourceRoot":"","sources":["../../src/agents/cards.ts"],"names":[],"mappings":"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"}
@@ -62,9 +62,9 @@ export function createInvestigator(options) {
62
62
  });
63
63
  }
64
64
  const tools = (agent) => ({
65
- get_services: tool(agent, 'get_services', 'Services, their deployed versions (in deploy order) and seconds since their last span.', z.object({}), () => q.getServices()),
65
+ get_services: tool(agent, 'get_services', 'Services, every version of them seen so far (in deploy order) and seconds since their last span. `versionLastSpanSecondsAgo` says which versions are still sending: one that has been quiet for minutes was replaced by the next, it is not running alongside it.', z.object({}), () => q.getServices()),
66
66
  get_operation_stats: tool(agent, 'get_operation_stats', 'Slowest operations by p95 with p50/p99 and error rate.', z.object({ service, operation, sinceMinutes: since }), (a) => q.getOperationStats(a)),
67
- compare_versions: tool(agent, 'compare_versions', 'Latest deployed version vs the previous one per operation: p95 ratio and error-rate delta. `errorRateChangeSignificant: false` means the error-rate difference is within random noise for that many requests. Use it to name the deployment that caused a regression.', z.object({ service, operation, sinceMinutes: since }), (a) => q.compareVersions(a)),
67
+ compare_versions: tool(agent, 'compare_versions', 'Latest deployed version vs the previous one per operation: p95 ratio and error-rate delta. `errorRateChangeSignificant: false` means the error-rate difference is within random noise for that many requests. Use it to name the deployment that caused a regression. `integrity` (present when the app checks its own answers) counts those checks per version over the whole history: `failed` > 0 in one version and 0 in the one before names the deployment that started returning wrong data, and failed/checked says how often.', z.object({ service, operation, sinceMinutes: since }), (a) => q.compareVersions(a)),
68
68
  get_errors: tool(agent, 'get_errors', 'Failing operations: error rate, top exception messages (each with when it was first seen and in which versions), example trace ids.', z.object({ service, operation, sinceMinutes: since }), (a) => q.getErrors(a)),
69
69
  search_traces: tool(agent, 'search_traces', 'Recent traces matching filters, to get example trace ids.', z.object({ service, operation, minDurationMs: z.number().optional(), hasError: z.boolean().optional(), sinceMinutes: since }), (a) => q.searchTraces(a)),
70
70
  get_trace: tool(agent, 'get_trace', 'One trace as a tree with self time, errors and code file paths; `repeated` lists ≥3 identical sibling calls (N+1); `nextInternalMs` is time inside Next.js itself (routing, rendering, dev compilation), not the app code; `integrityCheck` on a span means it returned successfully, quickly, and still the wrong data — the span has no error and may not even be slow, so check this field specifically rather than assuming a clean-looking span is fine.', z.object({ traceId: z.string().describe('32-char hex trace id from search_traces, or from an anomaly question') }), (a) => q.getTrace(a)),
@@ -1 +1 @@
1
- {"version":3,"file":"investigator.js","sourceRoot":"","sources":["../../src/agents/investigator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"investigator.js","sourceRoot":"","sources":["../../src/agents/investigator.ts"],"names":[],"mappings":"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"}
@@ -42,7 +42,9 @@ tells whether the error rate changed with the latest deployment (errorRateChange
42
42
  A trace can look completely clean — no error, not slow — and still be wrong: get_trace's \`integrityCheck\` field on a
43
43
  span means that span's response did not match what was requested. get_errors will not find these (their status is not
44
44
  "error"); you only see them by opening the trace. Report this as a data-integrity problem, distinct from an exception,
45
- and name what the mismatched spans share (same operation? same deployment version?). Max 4 sentences.`,
45
+ and name what the mismatched spans share (same operation? same deployment version?). compare_versions' \`integrity\`
46
+ counts those checks per version: say which version started failing them and how often (failed of checked). Quote the
47
+ expected/actual pairs as they are — two or three pairs are not a pattern, do not read one into them. Max 4 sentences.`,
46
48
  tools: ['get_errors', 'compare_versions', 'search_traces', 'get_trace'],
47
49
  },
48
50
  {
@@ -1 +1 @@
1
- {"version":3,"file":"specialists.js","sourceRoot":"","sources":["../../src/agents/specialists.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"specialists.js","sourceRoot":"","sources":["../../src/agents/specialists.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { ChatEvent } from './chat.js';
2
+ export interface StoredTurn {
3
+ id: string;
4
+ /** The question asked; absent for a turn the observer started — its first event is the anomaly. */
5
+ question?: string;
6
+ proactive: boolean;
7
+ startedAtMs: number;
8
+ events: ChatEvent[];
9
+ /** False once it ended — with a report, an error, a stop, or simply because nobody was left to answer. */
10
+ running: boolean;
11
+ }
12
+ export interface ChatHistoryOptions {
13
+ /** Turns kept; the oldest go first. Default 100. */
14
+ maxTurns?: number;
15
+ /** Events kept per turn (steps of a long investigation). Default 500. */
16
+ maxEvents?: number;
17
+ }
18
+ export declare class ChatHistory {
19
+ private readonly turns;
20
+ private readonly maxTurns;
21
+ private readonly maxEvents;
22
+ constructor(options?: ChatHistoryOptions);
23
+ /** Begins a turn. An id already known is left as it is: the same question is not recorded twice. */
24
+ start(turn: Pick<StoredTurn, 'id' | 'proactive' | 'startedAtMs'> & {
25
+ question?: string;
26
+ running?: boolean;
27
+ }): void;
28
+ /** Adds an event to a turn; one that ends the turn stops it. An unknown (already dropped) turn is ignored. */
29
+ add(id: string, event: ChatEvent): void;
30
+ /** The turn is over, whatever its last event was (the asker's connection closed, the handler returned). */
31
+ end(id: string): void;
32
+ has(id: string): boolean;
33
+ /** Oldest first. Copies: what the caller does with them does not reach the history. */
34
+ list(): StoredTurn[];
35
+ }
@@ -0,0 +1,44 @@
1
+ const isEnd = (event) => event.type === 'report' || event.type === 'error' || event.type === 'stopped';
2
+ export class ChatHistory {
3
+ turns = new Map();
4
+ maxTurns;
5
+ maxEvents;
6
+ constructor(options = {}) {
7
+ this.maxTurns = Math.max(1, options.maxTurns ?? 100);
8
+ this.maxEvents = Math.max(1, options.maxEvents ?? 500);
9
+ }
10
+ /** Begins a turn. An id already known is left as it is: the same question is not recorded twice. */
11
+ start(turn) {
12
+ if (this.turns.has(turn.id))
13
+ return;
14
+ this.turns.set(turn.id, { id: turn.id, ...(turn.question === undefined ? {} : { question: turn.question }), proactive: turn.proactive, startedAtMs: turn.startedAtMs, events: [], running: turn.running ?? true });
15
+ while (this.turns.size > this.maxTurns)
16
+ this.turns.delete(this.turns.keys().next().value);
17
+ }
18
+ /** Adds an event to a turn; one that ends the turn stops it. An unknown (already dropped) turn is ignored. */
19
+ add(id, event) {
20
+ const turn = this.turns.get(id);
21
+ if (!turn)
22
+ return;
23
+ // The end of a turn is never the event to drop: a long investigation loses its middle steps, not its report.
24
+ if (turn.events.length >= this.maxEvents && !isEnd(event))
25
+ return;
26
+ turn.events.push(event);
27
+ if (isEnd(event))
28
+ turn.running = false;
29
+ }
30
+ /** The turn is over, whatever its last event was (the asker's connection closed, the handler returned). */
31
+ end(id) {
32
+ const turn = this.turns.get(id);
33
+ if (turn)
34
+ turn.running = false;
35
+ }
36
+ has(id) {
37
+ return this.turns.has(id);
38
+ }
39
+ /** Oldest first. Copies: what the caller does with them does not reach the history. */
40
+ list() {
41
+ return [...this.turns.values()].map((turn) => ({ ...turn, events: [...turn.events] }));
42
+ }
43
+ }
44
+ //# sourceMappingURL=chat-history.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-history.js","sourceRoot":"","sources":["../../src/collector/chat-history.ts"],"names":[],"mappings":"AAuBA,MAAM,KAAK,GAAG,CAAC,KAAgB,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAA;AAEjH,MAAM,OAAO,WAAW;IACL,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAA;IACrC,QAAQ,CAAQ;IAChB,SAAS,CAAQ;IAElC,YAAY,OAAO,GAAuB,EAAE;QAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAA;QACpD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,IAAI,GAAG,CAAC,CAAA;IACxD,CAAC;IAED,oGAAoG;IACpG,KAAK,CAAC,IAAqG;QACzG,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,OAAM;QACnC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC,CAAA;QAClN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAe,CAAC,CAAA;IACrG,CAAC;IAED,8GAA8G;IAC9G,GAAG,CAAC,EAAU,EAAE,KAAgB;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC/B,IAAI,CAAC,IAAI;YAAE,OAAM;QACjB,6GAA6G;QAC7G,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE,OAAM;QACjE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACvB,IAAI,KAAK,CAAC,KAAK,CAAC;YAAE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;IACxC,CAAC;IAED,2GAA2G;IAC3G,GAAG,CAAC,EAAU;QACZ,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC/B,IAAI,IAAI;YAAE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;IAChC,CAAC;IAED,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAC3B,CAAC;IAED,uFAAuF;IACvF,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;IACxF,CAAC;CACF"}
@@ -44,6 +44,17 @@ export type EvidenceCard = {
44
44
  kind: 'silent';
45
45
  service: string;
46
46
  lastSpanSecondsAgo: number;
47
+ }
48
+ /** The app's own checks of its answers, per deployed version: where wrong data started and how often it happens. */
49
+ | {
50
+ kind: 'wrong-data';
51
+ service: string;
52
+ operation: string;
53
+ versions: {
54
+ version: string;
55
+ checked: number;
56
+ failed: number;
57
+ }[];
47
58
  } | {
48
59
  kind: 'traces';
49
60
  label: string;
@@ -13,6 +13,7 @@
13
13
  // GET /api/chat { enabled, mode }
14
14
  // POST /api/chat { question, sessionId? } → NDJSON stream of ChatEvent (status, step…, card…, report | error | stopped); closing the request stops the investigation
15
15
  // POST /api/chat/stop { turnId } → stops an investigation the observer started on its own
16
+ // GET /api/chat/history { seq, turns }: every chat turn so far — questions asked and the observer's own investigations
16
17
  // GET /api/chat/events SSE: proactive turns (detector anomaly → investigation), recent ones replayed on connect
17
18
  // GET /* the UI (dist/ui) with SPA fallback
18
19
  import { createHash, timingSafeEqual } from 'node:crypto';
@@ -21,6 +22,7 @@ import { fileURLToPath } from 'node:url';
21
22
  import { questionFor } from '../debug/detector.js';
22
23
  import { createAgentQueries } from '../debug/queries.js';
23
24
  import { findRegression } from '../debug/regression.js';
25
+ import { ChatHistory } from './chat-history.js';
24
26
  import { gunzipSync } from 'node:zlib';
25
27
  import { CHECK_RULE } from '../checks/types.js';
26
28
  import { decodeOtlpJson } from './decode.js';
@@ -148,8 +150,12 @@ export async function startCollector(options = {}) {
148
150
  // --- proactive: detector → SSE broadcast → investigation, one at a time ---
149
151
  const subscribers = new Set();
150
152
  const recent = [];
153
+ // Every turn of the chat — asked or started here — so that a reloaded page finds them again.
154
+ const history = new ChatHistory();
151
155
  let seq = 0;
152
156
  const broadcast = (message) => {
157
+ history.start({ id: message.turnId, proactive: true, startedAtMs: message.event.type === 'anomaly' ? message.event.anomaly.detectedAtMs : Date.now(), running: options.chat !== undefined });
158
+ history.add(message.turnId, message.event);
153
159
  const envelope = { seq: ++seq, ...message };
154
160
  recent.push(envelope);
155
161
  if (recent.length > REPLAY_EVENTS)
@@ -163,6 +169,7 @@ export async function startCollector(options = {}) {
163
169
  let investigations = Promise.resolve();
164
170
  /** Investigations the observer started itself and that are queued or running — each can be stopped by its turn id. */
165
171
  const proactive = new Map();
172
+ let asked = 0;
166
173
  const onAnomalies = () => {
167
174
  for (const anomaly of [...(options.detector?.check() ?? []), ...(options.checks?.anomalies?.() ?? [])]) {
168
175
  const turnId = anomaly.id;
@@ -214,9 +221,16 @@ export async function startCollector(options = {}) {
214
221
  if (sessionId !== undefined && (typeof sessionId !== 'string' || !/^[\w-]{1,100}$/.test(sessionId))) {
215
222
  throw new HttpError(400, 'sessionId must be 1–100 characters of letters, digits, _ or -');
216
223
  }
224
+ // The page names its turn, so that the copy it gets back from the history is recognised as the same one.
225
+ if (body.turnId !== undefined && (typeof body.turnId !== 'string' || !/^[\w-]{1,100}$/.test(body.turnId))) {
226
+ throw new HttpError(400, 'turnId must be 1–100 characters of letters, digits, _ or -');
227
+ }
228
+ const turnId = body.turnId !== undefined && !history.has(body.turnId) ? body.turnId : `q-${Date.now()}-${++asked}`;
229
+ history.start({ id: turnId, question, proactive: false, startedAtMs: Date.now() });
217
230
  // One JSON event per line, flushed as the agents work — the UI shows each step live.
218
231
  res.writeHead(200, { ...CORS, 'content-type': 'application/x-ndjson; charset=utf-8', 'cache-control': 'no-cache' });
219
232
  const emit = (event) => {
233
+ history.add(turnId, event);
220
234
  if (!res.writableEnded)
221
235
  res.write(JSON.stringify(event) + '\n');
222
236
  };
@@ -235,6 +249,7 @@ export async function startCollector(options = {}) {
235
249
  }
236
250
  finally {
237
251
  res.off('close', onClose);
252
+ history.end(turnId);
238
253
  }
239
254
  res.end();
240
255
  }
@@ -282,6 +297,9 @@ export async function startCollector(options = {}) {
282
297
  throw new HttpError(404, 'not found');
283
298
  if (url.pathname === '/api/chat/events')
284
299
  return events(req, res);
300
+ // `seq`: the page opens the event stream next and skips what the history already told it.
301
+ if (url.pathname === '/api/chat/history')
302
+ return send(res, 200, { seq, turns: history.list() });
285
303
  if (url.pathname === '/api/chat') {
286
304
  return send(res, 200, options.chat ? { enabled: true, mode: options.chat.mode } : { enabled: false, reason: CHAT_DISABLED });
287
305
  }
@@ -358,7 +376,7 @@ export async function startCollector(options = {}) {
358
376
  return send(res, 200, defects);
359
377
  }
360
378
  if (url.pathname === '/api/regression') {
361
- const { changes } = await createAgentQueries(storage).compareVersions({ service: stringParam(q, 'service'), sinceMinutes: numberParam(q, 'sinceMinutes') });
379
+ const { changes } = await createAgentQueries(storage).compareVersions({ service: stringParam(q, 'service'), sinceMinutes: numberParam(q, 'sinceMinutes'), integrity: false });
362
380
  return send(res, 200, { regression: findRegression(changes) });
363
381
  }
364
382
  if (url.pathname.startsWith('/api/') || url.pathname.startsWith('/v1/'))
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/collector/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/collector/server.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,9 @@ export declare function createAgentQueries(storage: StorageAdapter, options?: Qu
33
33
  services: {
34
34
  name: string;
35
35
  versions: string[];
36
+ versionLastSpanSecondsAgo: {
37
+ [k: string]: number;
38
+ };
36
39
  spans: number;
37
40
  lastSpanSecondsAgo: number;
38
41
  }[];
@@ -73,7 +76,8 @@ export declare function createAgentQueries(storage: StorageAdapter, options?: Qu
73
76
  */
74
77
  compareVersions(args?: {
75
78
  service?: string;
76
- operation?: string;
79
+ operation?: string; /** false skips the scan for the app's own checks — for callers that only want `changes`. */
80
+ integrity?: boolean;
77
81
  } & Window): Promise<{
78
82
  note: string;
79
83
  changes: {
@@ -99,6 +103,15 @@ export declare function createAgentQueries(storage: StorageAdapter, options?: Qu
99
103
  errorRateDelta: number;
100
104
  errorRateChangeSignificant: boolean;
101
105
  }[];
106
+ integrity?: {
107
+ service: string;
108
+ operation: string;
109
+ versions: {
110
+ checked: number;
111
+ failed: number;
112
+ version: string;
113
+ }[];
114
+ }[] | undefined;
102
115
  } | {
103
116
  note?: undefined;
104
117
  changes: {
@@ -124,6 +137,15 @@ export declare function createAgentQueries(storage: StorageAdapter, options?: Qu
124
137
  errorRateDelta: number;
125
138
  errorRateChangeSignificant: boolean;
126
139
  }[];
140
+ integrity?: {
141
+ service: string;
142
+ operation: string;
143
+ versions: {
144
+ checked: number;
145
+ failed: number;
146
+ version: string;
147
+ }[];
148
+ }[] | undefined;
127
149
  }>;
128
150
  /** Failing operations: error rate, most common exception messages and example traces. */
129
151
  getErrors(args?: {
@@ -3,7 +3,7 @@
3
3
  // Rules for every tool: compact, token-cheap output (aggregates, not raw spans), rounded numbers, and a `note`
4
4
  // instead of an empty result when a name filter matches nothing (users say "checkout", spans say "chargePayment").
5
5
  import { isFrameworkSpan } from '../collector/framework.js';
6
- import { integrityFailureEvent } from './detector.js';
6
+ import { INTEGRITY_CHECK_EVENT, integrityFailureEvent } from './detector.js';
7
7
  import { errorRateChangeIsSignificant } from './stats.js';
8
8
  const round = (n) => Math.round(n * 10) / 10;
9
9
  const ago = (now, ms) => Math.max(0, Math.round((now - ms) / 1000));
@@ -14,6 +14,8 @@ function exceptionMessage(span) {
14
14
  const message = event?.attributes['exception.message'];
15
15
  return typeof message === 'string' ? message : span.statusMessage;
16
16
  }
17
+ /** Rows of the per-version integrity table an agent gets; more would not be read. */
18
+ const MAX_INTEGRITY_ROWS = 10;
17
19
  export function createAgentQueries(storage, options = {}) {
18
20
  const now = options.now ?? Date.now;
19
21
  // The tool schema cannot say "positive" (see investigator.ts), so a model may send 0 or -5: treat it as not given.
@@ -41,6 +43,48 @@ export function createAgentQueries(storage, options = {}) {
41
43
  const left = items.filter((s) => !s.onlyColdStarts).reduce((n, s) => n + (s.coldStarts ?? 0), 0);
42
44
  return left > 0 ? `${left} cold-start request(s) left out — the first request of a route after a server start (in next dev it includes compiling the route)` : undefined;
43
45
  };
46
+ /**
47
+ * The app's own "did I get what I asked for" checks (span event `integrity_check`), counted per version over everything
48
+ * stored — not the time window: the version before the deployment is exactly the one that stopped sending. Latency
49
+ * and error rate cannot answer "which deployment started returning wrong data"; these counts can.
50
+ *
51
+ * Of the whole service, whatever operation was asked about: the check usually sits on a span deep inside the
52
+ * request (a database call), which nobody names in a question about "checkout".
53
+ */
54
+ async function integrityByVersion(service, deployOrder) {
55
+ const counts = new Map();
56
+ for (const span of await storage.querySpans({ service, limit: Number.MAX_SAFE_INTEGER })) {
57
+ // A span without a version cannot be placed in the deploy order — counting it would only blur which one did it.
58
+ if (!span.serviceVersion)
59
+ continue;
60
+ const checks = span.events.filter((e) => e.name === INTEGRITY_CHECK_EVENT);
61
+ if (checks.length === 0)
62
+ continue;
63
+ const key = `${span.service}\u0000${span.name}`;
64
+ const entry = counts.get(key) ?? { service: span.service, operation: span.name, versions: new Map() };
65
+ const count = entry.versions.get(span.serviceVersion) ?? { checked: 0, failed: 0 };
66
+ count.checked += checks.length;
67
+ count.failed += checks.filter((e) => e.attributes.ok === false).length;
68
+ entry.versions.set(span.serviceVersion, count);
69
+ counts.set(key, entry);
70
+ }
71
+ const failedNow = (versions) => versions.at(-1)?.failed ?? 0;
72
+ const failedEver = (versions) => versions.reduce((n, v) => n + v.failed, 0);
73
+ const all = [...counts.values()]
74
+ .map((entry) => {
75
+ const order = deployOrder.get(entry.service) ?? [];
76
+ const versions = [...entry.versions].map(([version, count]) => ({ version, ...count })).sort((a, b) => order.indexOf(a.version) - order.indexOf(b.version));
77
+ return { service: entry.service, operation: entry.operation, versions };
78
+ })
79
+ // What is wrong in the latest version first, then what was wrong before; "checked, never wrong" last.
80
+ .sort((a, b) => failedNow(b.versions) - failedNow(a.versions) || failedEver(b.versions) - failedEver(a.versions));
81
+ const notes = [
82
+ all.length > MAX_INTEGRITY_ROWS ? `integrity: showing ${MAX_INTEGRITY_ROWS} of ${all.length} checked operations` : undefined,
83
+ // Counts of an earlier version shrink as its spans are dropped: "0 failed" there is then weaker evidence.
84
+ all.length > 0 && !storage.isHistoryComplete() ? 'integrity: old spans were dropped to make room — the counts for earlier versions are incomplete' : undefined,
85
+ ];
86
+ return { integrity: all.slice(0, MAX_INTEGRITY_ROWS), notes };
87
+ }
44
88
  const joinNotes = (...notes) => {
45
89
  const text = notes.filter(Boolean).join('; ');
46
90
  return text ? { note: text } : {};
@@ -50,7 +94,14 @@ export function createAgentQueries(storage, options = {}) {
50
94
  async getServices() {
51
95
  const services = await storage.getServices();
52
96
  return {
53
- services: services.map((s) => ({ name: s.name, versions: s.versions, spans: s.spanCount, lastSpanSecondsAgo: ago(now(), s.lastSeenMs) })),
97
+ services: services.map((s) => ({
98
+ name: s.name,
99
+ versions: s.versions,
100
+ // `versions` is every version ever seen: without this a model reads "v2, v3" as "both are running".
101
+ versionLastSpanSecondsAgo: Object.fromEntries(s.versions.flatMap((v) => (s.versionLastSeenMs[v] === undefined ? [] : [[v, ago(now(), s.versionLastSeenMs[v])]]))),
102
+ spans: s.spanCount,
103
+ lastSpanSecondsAgo: ago(now(), s.lastSeenMs),
104
+ })),
54
105
  };
55
106
  },
56
107
  /** Slowest operations by p95 with error rates. */
@@ -128,8 +179,10 @@ export function createAgentQueries(storage, options = {}) {
128
179
  });
129
180
  }
130
181
  changes.sort((a, b) => (b.p95Ratio ?? 0) - (a.p95Ratio ?? 0) || b.errorRateDelta - a.errorRateDelta);
131
- const empty = changes.length === 0 ? 'only one version seen per operation — nothing to compare' : undefined;
132
- return { ...joinNotes(serviceNote, note, coldNote(items), ...olderNotes, empty), changes };
182
+ const { integrity, notes: integrityNotes } = args.integrity === false ? { integrity: [], notes: [] } : await integrityByVersion(service, deployOrder);
183
+ // Said precisely — "nothing to compare" would talk the model out of reading the integrity table next to it.
184
+ const empty = changes.length === 0 ? 'only one version seen per operation — no latency or error-rate comparison' : undefined;
185
+ return { ...joinNotes(serviceNote, note, coldNote(items), ...olderNotes, empty, ...integrityNotes), changes, ...(integrity.length > 0 ? { integrity } : {}) };
133
186
  },
134
187
  /** Failing operations: error rate, most common exception messages and example traces. */
135
188
  async getErrors(args = {}) {