wicked-crew 0.7.49 → 0.8.1
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/api/discovery-source.d.ts +51 -0
- package/dist/api/discovery-source.d.ts.map +1 -0
- package/dist/api/discovery-source.js +176 -0
- package/dist/api/discovery-source.js.map +1 -0
- package/dist/api/governance-steering.d.ts +4 -5
- package/dist/api/governance-steering.d.ts.map +1 -1
- package/dist/api/governance-steering.js +11 -16
- package/dist/api/governance-steering.js.map +1 -1
- package/dist/api/recording.d.ts +23 -0
- package/dist/api/recording.d.ts.map +1 -1
- package/dist/api/recording.js +151 -4
- package/dist/api/recording.js.map +1 -1
- package/dist/api/routes.d.ts.map +1 -1
- package/dist/api/routes.js +28 -4
- package/dist/api/routes.js.map +1 -1
- package/dist/api/run-files.d.ts +13 -1
- package/dist/api/run-files.d.ts.map +1 -1
- package/dist/api/run-files.js +30 -6
- package/dist/api/run-files.js.map +1 -1
- package/dist/api/seat-standing.d.ts +16 -0
- package/dist/api/seat-standing.d.ts.map +1 -1
- package/dist/api/seat-standing.js +54 -4
- package/dist/api/seat-standing.js.map +1 -1
- package/dist/api/server.d.ts.map +1 -1
- package/dist/api/server.js +12 -0
- package/dist/api/server.js.map +1 -1
- package/dist/api/steering-landing.d.ts +7 -7
- package/dist/api/steering-landing.js +7 -7
- package/dist/core/adapter.d.ts +16 -1
- package/dist/core/adapter.d.ts.map +1 -1
- package/dist/core/adapter.js +35 -10
- package/dist/core/adapter.js.map +1 -1
- package/dist/interactive/doc-run-index.d.ts +10 -2
- package/dist/interactive/doc-run-index.d.ts.map +1 -1
- package/dist/interactive/doc-run-index.js +16 -3
- package/dist/interactive/doc-run-index.js.map +1 -1
- package/dist/projects/graph.d.ts.map +1 -1
- package/dist/projects/graph.js +10 -0
- package/dist/projects/graph.js.map +1 -1
- package/dist/projects/membership-index.d.ts +2 -0
- package/dist/projects/membership-index.d.ts.map +1 -1
- package/dist/projects/membership-index.js +8 -0
- package/dist/projects/membership-index.js.map +1 -1
- package/dist/qe/acceptance.d.ts +6 -1
- package/dist/qe/acceptance.d.ts.map +1 -1
- package/dist/qe/acceptance.js +11 -9
- package/dist/qe/acceptance.js.map +1 -1
- package/dist/qe/walkthrough-acceptance.d.ts +6 -0
- package/dist/qe/walkthrough-acceptance.d.ts.map +1 -1
- package/dist/qe/walkthrough-acceptance.js +12 -4
- package/dist/qe/walkthrough-acceptance.js.map +1 -1
- package/dist/studio/assets/archivo-latin-ext-wght-normal-C4zznr8T.woff2 +0 -0
- package/dist/studio/assets/archivo-latin-wght-normal-E0tuGl4L.woff2 +0 -0
- package/dist/studio/assets/index-D9cD_lY1.js +580 -0
- package/dist/studio/assets/index-DEBAWrq3.css +32 -0
- package/dist/studio/assets/inter-latin-ext-opsz-italic-BLMf5All.woff2 +0 -0
- package/dist/studio/assets/inter-latin-ext-opsz-normal-DpK-iCPk.woff2 +0 -0
- package/dist/studio/assets/inter-latin-opsz-italic-BbqH_2Ar.woff2 +0 -0
- package/dist/studio/assets/inter-latin-opsz-normal-BwkfbSeq.woff2 +0 -0
- package/dist/studio/assets/jetbrains-mono-latin-ext-wght-italic-BrDczivE.woff2 +0 -0
- package/dist/studio/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 +0 -0
- package/dist/studio/assets/jetbrains-mono-latin-wght-italic-B2M6KQje.woff2 +0 -0
- package/dist/studio/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
- package/dist/studio/editors/wicked-page/editor.json +35 -0
- package/dist/studio/editors/wicked-page/index.html +144 -0
- package/dist/studio/fonts/LICENSE-Archivo.txt +93 -0
- package/dist/studio/fonts/LICENSE-Inter.txt +93 -0
- package/dist/studio/fonts/LICENSE-JetBrainsMono.txt +93 -0
- package/dist/studio/index.html +3 -8
- package/dist/studio/testid-inventory.json +6186 -2453
- package/dist/watch/bounded-read.d.ts +26 -0
- package/dist/watch/bounded-read.d.ts.map +1 -0
- package/dist/watch/bounded-read.js +59 -0
- package/dist/watch/bounded-read.js.map +1 -0
- package/dist/watch/checks/discovery.d.ts +65 -0
- package/dist/watch/checks/discovery.d.ts.map +1 -0
- package/dist/watch/checks/discovery.js +168 -0
- package/dist/watch/checks/discovery.js.map +1 -0
- package/dist/watch/checks/index.d.ts.map +1 -1
- package/dist/watch/checks/index.js +7 -0
- package/dist/watch/checks/index.js.map +1 -1
- package/dist/watch/checks/scope-drift.d.ts +47 -0
- package/dist/watch/checks/scope-drift.d.ts.map +1 -0
- package/dist/watch/checks/scope-drift.js +212 -0
- package/dist/watch/checks/scope-drift.js.map +1 -0
- package/dist/watch/emit.d.ts +19 -0
- package/dist/watch/emit.d.ts.map +1 -1
- package/dist/watch/emit.js +144 -18
- package/dist/watch/emit.js.map +1 -1
- package/dist/watch/registry.d.ts +20 -11
- package/dist/watch/registry.d.ts.map +1 -1
- package/dist/watch/registry.js +50 -42
- package/dist/watch/registry.js.map +1 -1
- package/dist/watch/sources.d.ts +2 -1
- package/dist/watch/sources.d.ts.map +1 -1
- package/dist/watch/sources.js +2 -1
- package/dist/watch/sources.js.map +1 -1
- package/dist/watch/types.d.ts +42 -0
- package/dist/watch/types.d.ts.map +1 -1
- package/endpoint-manifest.json +14 -1
- package/package.json +3 -3
- package/watch/entries/added-by-hand.json +16 -0
- package/watch/entries/scope-drift.json +13 -0
- package/watch/entries/what-catches.json +16 -0
- package/dist/studio/assets/index-CvV5qITf.css +0 -32
- package/dist/studio/assets/index-jCOy6Ns7.js +0 -568
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `deterministic:scope_drift` (DES-trigger-registry §4.3 row 4 "scope-drift", §4.4; TR-W7).
|
|
3
|
+
*
|
|
4
|
+
* Set logic over two facts the engine computed, nothing parsed: the creator floor's
|
|
5
|
+
* `repoChecksEvaluated.changed` (TR-W1b — every path the unit changed, its dispatch baseline tree
|
|
6
|
+
* against the tree the checks ran on; any carrier, any way of editing) against the run's declared
|
|
7
|
+
* scope, `plan.accepted.touch` (TR-W1a — the accepted proposal's touch unioned with every earlier
|
|
8
|
+
* accepted rev's; a BUS row the registry PULLS, the first entry that listens on the bus). A path the
|
|
9
|
+
* floor names that no touch entry covers is one flag per (attempt, path); the emitter rolls them up
|
|
10
|
+
* per attempt past the entry's rate (§4.7). Drift flags clear only by dismissal.
|
|
11
|
+
*
|
|
12
|
+
* Touch entries are files or directory prefixes ending `/` (§4.4). Nothing else is inferred: an entry
|
|
13
|
+
* without a trailing slash names ONE file, never a prefix (a declared `src` does not cover `src/x.ts`;
|
|
14
|
+
* a declared `src/` does). Both sides are normalised (`./`, doubled slashes) before the comparison so
|
|
15
|
+
* a spelling difference is never drift.
|
|
16
|
+
*
|
|
17
|
+
* Order is not assumed. A plan is accepted minutes before its creator floors run, but the plan row is
|
|
18
|
+
* polled off the bus while the floor arrives on the fan-in, so a floor that lands first is KEPT
|
|
19
|
+
* (bounded) and judged when the plan row arrives — anchored to the floor's own time and replay
|
|
20
|
+
* provenance (TR-W6's kept-frame rule). The newest accepted rev is the scope (core already unions the
|
|
21
|
+
* revs); a lower rev replayed late never narrows it.
|
|
22
|
+
*
|
|
23
|
+
* Coverage (§4.7, G7):
|
|
24
|
+
* - "no declared scope" when `touch_source` is `none`, or absent — an old row reads as none, and an
|
|
25
|
+
* engine before TR-W1a cannot be told apart from a plan that declared nothing, so the reason
|
|
26
|
+
* names both. A DECLARED empty set (a source with no paths) is not none: it covers nothing, so
|
|
27
|
+
* every change is outside it and the run is checked;
|
|
28
|
+
* - not checked when the TOUCH set itself was cut at 64: what lies outside the listed paths cannot
|
|
29
|
+
* be known, so nothing is flagged rather than flagging what may be in scope;
|
|
30
|
+
* - a truncated CHANGE list is still judged on the paths it names, and the fact says it was cut
|
|
31
|
+
* (§4.4: "a truncated list still names its first 200 paths and says so").
|
|
32
|
+
*/
|
|
33
|
+
import { z } from 'zod';
|
|
34
|
+
/** The bus row the check joins to (TR-W1a). The entry's `join` names it; the loader checks the grammar. */
|
|
35
|
+
export const PLAN_ACCEPTED_TYPE = 'wicked.team.plan.accepted';
|
|
36
|
+
/** `plan.accepted.touch` is cut at this many paths by the engine (`ACCEPTED_TOUCH_CAP`). */
|
|
37
|
+
export const TOUCH_CAP = 64;
|
|
38
|
+
const BAG_KEY = 'scope_drift';
|
|
39
|
+
/** Floors one run may hold before its plan row arrives; past it they are counted lost and coverage says so. */
|
|
40
|
+
const WAITING_MAX = 50;
|
|
41
|
+
const num = (v) => (typeof v === 'number' && Number.isFinite(v) ? v : null);
|
|
42
|
+
const isChangedPath = (v) => typeof v === 'object' && v !== null && typeof v.path === 'string' && v.path !== '';
|
|
43
|
+
/** Repo-relative, forward slashes: no leading `./` or `/`, no doubled slashes. */
|
|
44
|
+
export function normalisePath(p) {
|
|
45
|
+
let s = p.replace(/\/{2,}/g, '/');
|
|
46
|
+
while (s.startsWith('./'))
|
|
47
|
+
s = s.slice(2);
|
|
48
|
+
while (s.startsWith('/'))
|
|
49
|
+
s = s.slice(1);
|
|
50
|
+
return s;
|
|
51
|
+
}
|
|
52
|
+
/** True when some touch entry covers `path`: an equal file, or a directory prefix ending `/` (§4.4). */
|
|
53
|
+
export function inScope(path, touch) {
|
|
54
|
+
const p = normalisePath(path);
|
|
55
|
+
for (const raw of touch) {
|
|
56
|
+
const t = normalisePath(raw);
|
|
57
|
+
if (t === '')
|
|
58
|
+
continue;
|
|
59
|
+
if (t.endsWith('/')) {
|
|
60
|
+
if (p.startsWith(t))
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
else if (p === t) {
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
function bagOf(state) {
|
|
70
|
+
let bag = state.bag.get(BAG_KEY);
|
|
71
|
+
if (bag === undefined) {
|
|
72
|
+
bag = { touch: null, floors: 0, waiting: [], lost: 0, raised: new Set() };
|
|
73
|
+
state.bag.set(BAG_KEY, bag);
|
|
74
|
+
}
|
|
75
|
+
return bag;
|
|
76
|
+
}
|
|
77
|
+
const floorKey = (f) => `${f.ord ?? '-'}:${f.attempt ?? '-'}`;
|
|
78
|
+
/**
|
|
79
|
+
* The declared scope a judgement can use, or `null` when it cannot judge (none, or cut). A DECLARED
|
|
80
|
+
* empty set (`touch_source` user/pa_scope with no paths) is usable and covers nothing: every change
|
|
81
|
+
* is outside it — only `none` means "nothing was declared" (codex on #787: an empty set is not none).
|
|
82
|
+
*/
|
|
83
|
+
function usableTouch(bag) {
|
|
84
|
+
const t = bag.touch;
|
|
85
|
+
if (t === null || t.source === 'none' || t.truncated)
|
|
86
|
+
return null;
|
|
87
|
+
return t;
|
|
88
|
+
}
|
|
89
|
+
/** One floor against the run's scope: a flag per path outside it (once per attempt+path). */
|
|
90
|
+
function judge(bag, floor, threshold, kept) {
|
|
91
|
+
const touch = usableTouch(bag);
|
|
92
|
+
if (touch === null)
|
|
93
|
+
return [];
|
|
94
|
+
const outside = floor.changed.filter((c) => !inScope(c.path, touch.paths));
|
|
95
|
+
if (outside.length < threshold.min_paths)
|
|
96
|
+
return [];
|
|
97
|
+
const out = [];
|
|
98
|
+
for (const c of outside) {
|
|
99
|
+
const path = normalisePath(c.path);
|
|
100
|
+
const subject = `${floorKey(floor)}:drift:${path}`;
|
|
101
|
+
if (bag.raised.has(subject))
|
|
102
|
+
continue;
|
|
103
|
+
bag.raised.add(subject);
|
|
104
|
+
out.push({
|
|
105
|
+
op: 'raise',
|
|
106
|
+
subject,
|
|
107
|
+
kind: 'flag',
|
|
108
|
+
sentence: `Changed a file outside the plan's declared scope: ${path}.`,
|
|
109
|
+
facts: {
|
|
110
|
+
path,
|
|
111
|
+
status: c.status,
|
|
112
|
+
touch_source: touch.source,
|
|
113
|
+
declared: touch.paths.length,
|
|
114
|
+
plan_rev: touch.rev,
|
|
115
|
+
...(floor.truncated ? { changed_truncated: true } : {}),
|
|
116
|
+
},
|
|
117
|
+
ord: floor.ord,
|
|
118
|
+
attempt: floor.attempt,
|
|
119
|
+
re: `repoChecksEvaluated#${floorKey(floor)}`,
|
|
120
|
+
// A kept floor's rows carry the floor's own time and provenance, not the plan row's.
|
|
121
|
+
...(kept ? { at: floor.at, replay: floor.replay } : {}),
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
return out;
|
|
125
|
+
}
|
|
126
|
+
export const scopeDriftCheck = {
|
|
127
|
+
name: 'deterministic:scope_drift',
|
|
128
|
+
lane: 'deterministic',
|
|
129
|
+
paramsSchema: z.object({}).strict(),
|
|
130
|
+
thresholdSchema: z.object({ min_paths: z.number().int().min(1).max(200).default(1) }).strict(),
|
|
131
|
+
evaluate(input, state, _params, threshold) {
|
|
132
|
+
const bag = bagOf(state);
|
|
133
|
+
if (input.source === 'bus' && input.type === PLAN_ACCEPTED_TYPE) {
|
|
134
|
+
const payload = (input.event['payload'] ?? {});
|
|
135
|
+
const rev = num(payload['plan_rev']) ?? 0;
|
|
136
|
+
if (bag.touch !== null && rev < bag.touch.rev)
|
|
137
|
+
return []; // a lower rev replayed late never narrows the scope
|
|
138
|
+
const rawTouch = payload['touch'];
|
|
139
|
+
const rawSource = payload['touch_source'];
|
|
140
|
+
bag.touch = {
|
|
141
|
+
paths: Array.isArray(rawTouch) ? rawTouch.filter((x) => typeof x === 'string' && x !== '') : [],
|
|
142
|
+
source: typeof rawSource === 'string' ? rawSource : 'none',
|
|
143
|
+
truncated: payload['touch_truncated'] === true,
|
|
144
|
+
rev,
|
|
145
|
+
fromOldRow: typeof rawSource !== 'string',
|
|
146
|
+
};
|
|
147
|
+
const todo = bag.waiting;
|
|
148
|
+
bag.waiting = [];
|
|
149
|
+
const out = [];
|
|
150
|
+
for (const f of todo)
|
|
151
|
+
out.push(...judge(bag, f, threshold, true));
|
|
152
|
+
return out;
|
|
153
|
+
}
|
|
154
|
+
if (input.type !== 'repoChecksEvaluated')
|
|
155
|
+
return [];
|
|
156
|
+
const e = input.event;
|
|
157
|
+
if (e['floor'] !== 'creator')
|
|
158
|
+
return []; // a verify floor is the judge's tree, not the creator's change
|
|
159
|
+
bag.floors++;
|
|
160
|
+
const rawChanged = e['changed'];
|
|
161
|
+
if (!Array.isArray(rawChanged))
|
|
162
|
+
return []; // the tree did not change (or an engine before TR-W1b): nothing to judge
|
|
163
|
+
const floor = {
|
|
164
|
+
ord: num(e['ord']),
|
|
165
|
+
attempt: num(e['attempt']),
|
|
166
|
+
changed: rawChanged.filter(isChangedPath),
|
|
167
|
+
truncated: e['changedTruncated'] === true,
|
|
168
|
+
at: input.at,
|
|
169
|
+
replay: input.replay === true,
|
|
170
|
+
};
|
|
171
|
+
if (bag.touch === null) {
|
|
172
|
+
// No plan row yet: keep the floor for it. A redelivery of the same floor replaces, never doubles.
|
|
173
|
+
const i = bag.waiting.findIndex((w) => floorKey(w) === floorKey(floor));
|
|
174
|
+
if (i !== -1)
|
|
175
|
+
bag.waiting[i] = floor;
|
|
176
|
+
else if (bag.waiting.length < WAITING_MAX)
|
|
177
|
+
bag.waiting.push(floor);
|
|
178
|
+
else
|
|
179
|
+
bag.lost++;
|
|
180
|
+
return [];
|
|
181
|
+
}
|
|
182
|
+
return judge(bag, floor, threshold, false);
|
|
183
|
+
},
|
|
184
|
+
coverage(state) {
|
|
185
|
+
const bag = state.bag.get(BAG_KEY);
|
|
186
|
+
if (bag === undefined || (bag.floors === 0 && bag.touch === null))
|
|
187
|
+
return { state: 'not_checked', reason: 'no creator floor has run yet' };
|
|
188
|
+
if (bag.touch === null) {
|
|
189
|
+
const n = bag.waiting.length + bag.lost;
|
|
190
|
+
return { state: 'not_checked', reason: `no accepted plan has reached the registry yet (${n} creator floor${n === 1 ? '' : 's'} wait for it)` };
|
|
191
|
+
}
|
|
192
|
+
if (bag.touch.source === 'none') {
|
|
193
|
+
return {
|
|
194
|
+
state: 'not_checked',
|
|
195
|
+
reason: bag.touch.fromOldRow
|
|
196
|
+
? 'no declared scope (the plan declared none, or the engine predates wicked-core-ts 0.7.35 and does not say)'
|
|
197
|
+
: 'no declared scope (the plan declared none)',
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
if (bag.touch.truncated) {
|
|
201
|
+
return { state: 'not_checked', reason: `the declared scope was cut at ${TOUCH_CAP} paths, so what lies outside the listed ones cannot be judged` };
|
|
202
|
+
}
|
|
203
|
+
if (bag.floors === 0)
|
|
204
|
+
return { state: 'not_checked', reason: 'no creator floor has run yet' };
|
|
205
|
+
if (bag.lost > 0) {
|
|
206
|
+
return { state: 'not_checked', reason: `${bag.lost} creator floor${bag.lost === 1 ? '' : 's'} arrived before the plan and could not be kept` };
|
|
207
|
+
}
|
|
208
|
+
return { state: 'checked' };
|
|
209
|
+
},
|
|
210
|
+
describe: (t) => `When a creator step changes at least ${t.min_paths} path${t.min_paths === 1 ? '' : 's'} outside the plan's declared scope (plan.accepted.touch)`,
|
|
211
|
+
};
|
|
212
|
+
//# sourceMappingURL=scope-drift.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-drift.js","sourceRoot":"","sources":["../../../src/watch/checks/scope-drift.ts"],"names":[],"mappings":"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"}
|
package/dist/watch/emit.d.ts
CHANGED
|
@@ -18,6 +18,14 @@ import type { WatchFinding, WatchFindingCleared } from 'wicked-crew-api-types';
|
|
|
18
18
|
import type { CheckOutput, LoadedEntry } from './types.js';
|
|
19
19
|
/** Redacted, capped facts; an over-size object is replaced by a marker rather than cut mid-structure. */
|
|
20
20
|
export declare function scrubFacts(facts: Record<string, unknown> | undefined): Record<string, unknown>;
|
|
21
|
+
/**
|
|
22
|
+
* #780: how many folded findings a roll-up row names (by short id) — enough that a resolved one
|
|
23
|
+
* leaves the roll-up and the last one clears it. Past this the roll-up still counts, but cannot
|
|
24
|
+
* know when it is empty (`rolled_ids_complete: false`), so it never clears by itself.
|
|
25
|
+
*/
|
|
26
|
+
export declare const ROLLUP_TRACK_MAX = 50;
|
|
27
|
+
/** The short id a roll-up row names a folded finding by: 16 hex chars of its would-be `watch_id`. */
|
|
28
|
+
export declare function foldedId(watchId: string): string;
|
|
21
29
|
/** One feed row: the raised payload, and its clearing once one was acknowledged. */
|
|
22
30
|
export interface FeedRow {
|
|
23
31
|
raised: WatchFinding;
|
|
@@ -99,6 +107,17 @@ export declare class WatchEmitter {
|
|
|
99
107
|
raise(entry: LoadedEntry, runId: string | null, out: Extract<CheckOutput, {
|
|
100
108
|
op: 'raise';
|
|
101
109
|
}>, anchorAt: number, replay?: boolean): void;
|
|
110
|
+
/** The row is cleared, or its clearing is already queued. */
|
|
111
|
+
private closed;
|
|
112
|
+
/** A raised row this emitter knows: on the bus (the feed), on its way there, or waiting in the batch. */
|
|
113
|
+
private raisedPayload;
|
|
114
|
+
/**
|
|
115
|
+
* #780: a finding that was folded into a roll-up (it never had a row of its own) resolved. It leaves
|
|
116
|
+
* the roll-up: the roll-up is re-issued with the lower count (the `cleared{rolled_up}` + `raised`
|
|
117
|
+
* pair, as when it grows), or, when it stood for nothing else, its row clears as resolved. A
|
|
118
|
+
* subject no roll-up names (never raised at all) clears nothing.
|
|
119
|
+
*/
|
|
120
|
+
private clearFolded;
|
|
102
121
|
/** Queue the clearing of the row `subject` names (no-op when it was never raised or is already cleared). */
|
|
103
122
|
clear(entry: LoadedEntry, runId: string | null, subject: string, how: {
|
|
104
123
|
reason: 'resolved';
|
package/dist/watch/emit.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emit.d.ts","sourceRoot":"","sources":["../../src/watch/emit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAY/E,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA+B3D,yGAAyG;AACzG,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAG9F;AAED,oFAAoF;AACpF,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAAC;CACrC;AAQD;;;;GAIG;AACH,qBAAa,SAAS;IAMR,OAAO,CAAC,QAAQ,CAAC,OAAO;IALpC,QAAQ,CAAC,IAAI,uBAA8B;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA0C;IACvE,qEAAqE;IACrE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;gBAErB,OAAO,SAAgB;IAEpD,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,OAAO,CAAC,KAAK;IASb,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAI7B,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAIzC,SAAS,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI;IAShC,UAAU,CAAC,CAAC,EAAE,mBAAmB,GAAG,IAAI;IAcxC,2CAA2C;IAC3C,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAMrD,0FAA0F;IAC1F,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,YAAY,EAAE,CAAA;KAAE;CAU5F;AAgBD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACjD,4DAA4D;IAC5D,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC3D,oFAAoF;IACpF,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,0EAA0E;IAC1E,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,mBAAmB,KAAK,IAAI,CAAC;CAClF;
|
|
1
|
+
{"version":3,"file":"emit.d.ts","sourceRoot":"","sources":["../../src/watch/emit.ts"],"names":[],"mappings":"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"}
|
package/dist/watch/emit.js
CHANGED
|
@@ -53,6 +53,22 @@ export function scrubFacts(facts) {
|
|
|
53
53
|
const out = scrub(facts ?? {});
|
|
54
54
|
return Buffer.byteLength(JSON.stringify(out), 'utf8') <= FACTS_MAX_BYTES ? out : { truncated: true };
|
|
55
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* #780: how many folded findings a roll-up row names (by short id) — enough that a resolved one
|
|
58
|
+
* leaves the roll-up and the last one clears it. Past this the roll-up still counts, but cannot
|
|
59
|
+
* know when it is empty (`rolled_ids_complete: false`), so it never clears by itself.
|
|
60
|
+
*/
|
|
61
|
+
export const ROLLUP_TRACK_MAX = 50;
|
|
62
|
+
/** The short id a roll-up row names a folded finding by: 16 hex chars of its would-be `watch_id`. */
|
|
63
|
+
export function foldedId(watchId) {
|
|
64
|
+
return watchId.slice(2, 18);
|
|
65
|
+
}
|
|
66
|
+
/** A roll-up row's facts: the latest finding's facts plus what the roll-up stands for, within the 4 KB cap. */
|
|
67
|
+
function rollupFacts(facts, meta) {
|
|
68
|
+
const scrubbed = scrub(facts ?? {});
|
|
69
|
+
const merged = { ...scrubbed, ...meta };
|
|
70
|
+
return Buffer.byteLength(JSON.stringify(merged), 'utf8') <= FACTS_MAX_BYTES ? merged : { truncated: true, ...meta };
|
|
71
|
+
}
|
|
56
72
|
/** The in-memory feed: keyed by `watch_id`, plus the (run, entry, subject) → `watch_id` index. */
|
|
57
73
|
/** Rows the feed holds (the routes serve at most 500): the bus stays the full record. */
|
|
58
74
|
const FEED_MAX_ROWS = 20_000;
|
|
@@ -198,8 +214,19 @@ export class WatchEmitter {
|
|
|
198
214
|
for (const r of rollups) {
|
|
199
215
|
const att = String(r.attempt ?? '-');
|
|
200
216
|
const prev = rollup.get(att);
|
|
201
|
-
|
|
202
|
-
|
|
217
|
+
// A row from before #780 carries no seq: its count was its position. Its folded findings are
|
|
218
|
+
// unnamed, so it can never clear by itself (`complete: false`) — as before.
|
|
219
|
+
const seq = typeof r.facts['rollup_seq'] === 'number' ? r.facts['rollup_seq'] : r.rolled_up;
|
|
220
|
+
const ids = r.facts['rolled_ids'];
|
|
221
|
+
if (prev === undefined || seq > prev.n) {
|
|
222
|
+
rollup.set(att, {
|
|
223
|
+
n: seq,
|
|
224
|
+
watchId: r.watch_id,
|
|
225
|
+
count: r.rolled_up,
|
|
226
|
+
open: Array.isArray(ids) ? ids.filter((x) => typeof x === 'string') : [],
|
|
227
|
+
complete: r.facts['rolled_ids_complete'] === true,
|
|
228
|
+
});
|
|
229
|
+
}
|
|
203
230
|
}
|
|
204
231
|
s = { plain, rollup };
|
|
205
232
|
this.rate.set(k, s);
|
|
@@ -211,8 +238,9 @@ export class WatchEmitter {
|
|
|
211
238
|
}
|
|
212
239
|
return s;
|
|
213
240
|
}
|
|
214
|
-
envelope(entry, runId, ord, attempt, re) {
|
|
215
|
-
|
|
241
|
+
envelope(entry, runId, ord, attempt, re, project) {
|
|
242
|
+
// WT-W4: a project-scoped row names its project itself (it has no run to look one up from).
|
|
243
|
+
const projectId = project ?? (runId !== null ? this.deps.projectOf(runId) : undefined);
|
|
216
244
|
return {
|
|
217
245
|
run_id: runId,
|
|
218
246
|
ord,
|
|
@@ -238,8 +266,8 @@ export class WatchEmitter {
|
|
|
238
266
|
const rate = this.rateOf(runId, entry.id);
|
|
239
267
|
const ord = out.ord ?? null;
|
|
240
268
|
const attempt = out.attempt ?? null;
|
|
241
|
-
const base = (subject, rolledUp, sentence) => ({
|
|
242
|
-
...this.envelope(entry, runId, ord, attempt, out.re),
|
|
269
|
+
const base = (subject, rolledUp, sentence, meta) => ({
|
|
270
|
+
...this.envelope(entry, runId, ord, attempt, out.re, out.project),
|
|
243
271
|
watch_id: watchIdOf(runId, entry.id, entry.version, subject),
|
|
244
272
|
check: entry.check,
|
|
245
273
|
kind: out.kind ?? entry.emit.as,
|
|
@@ -247,12 +275,19 @@ export class WatchEmitter {
|
|
|
247
275
|
watch_kind: entry.emit.watch_kind,
|
|
248
276
|
attach: entry.emit.attach,
|
|
249
277
|
sentence: capString(sentence, SENTENCE_MAX),
|
|
250
|
-
facts: scrubFacts(out.facts),
|
|
278
|
+
facts: meta === undefined ? scrubFacts(out.facts) : rollupFacts(out.facts, meta),
|
|
251
279
|
anchor: runId !== null ? { run_id: runId, ord, attempt, at: anchorAt } : null,
|
|
252
280
|
evidence: out.evidence ?? [],
|
|
253
281
|
model: null,
|
|
254
282
|
rolled_up: rolledUp,
|
|
255
283
|
});
|
|
284
|
+
// WT-W4: a PROJECT-scoped row is not a run's rate. `rate.per_run` bounds what one run may say;
|
|
285
|
+
// project rows are bounded by their own key (one per draft) and would otherwise share one run-less
|
|
286
|
+
// bucket per entry for the daemon's life, rolling up — and no longer filing — past it (codex on #788).
|
|
287
|
+
if (out.project !== undefined) {
|
|
288
|
+
this.push(WATCH_FINDING_RAISED, base(out.subject, 0, out.sentence), entry.emit.as === 'proposal', {});
|
|
289
|
+
return;
|
|
290
|
+
}
|
|
256
291
|
if (rate.plain < entry.emit.rate.per_run) {
|
|
257
292
|
rate.plain++;
|
|
258
293
|
this.push(WATCH_FINDING_RAISED, base(out.subject, 0, out.sentence), entry.emit.as === 'proposal', { plainOf: rate });
|
|
@@ -260,19 +295,34 @@ export class WatchEmitter {
|
|
|
260
295
|
}
|
|
261
296
|
if (replay)
|
|
262
297
|
return;
|
|
263
|
-
// Over the rate: the next roll-up row for this attempt replaces the previous one.
|
|
298
|
+
// Over the rate: the next roll-up row for this attempt replaces the previous one. It names the
|
|
299
|
+
// findings it stands for (#780), so one that resolves leaves it and the last one clears it.
|
|
264
300
|
const att = String(attempt ?? '-');
|
|
265
301
|
const prev = rate.rollup.get(att);
|
|
302
|
+
// A roll-up already cleared (every finding resolved, or dismissed) is not continued: the next
|
|
303
|
+
// finding past the rate opens a fresh one — under a new position, never a reused watch_id.
|
|
304
|
+
const prevLive = prev !== undefined && !this.closed(prev.watchId) ? prev : undefined;
|
|
305
|
+
const fid = foldedId(watchId);
|
|
306
|
+
if (prevLive !== undefined && prevLive.open.includes(fid))
|
|
307
|
+
return; // already counted there
|
|
266
308
|
const n = (prev?.n ?? 0) + 1;
|
|
267
|
-
const
|
|
268
|
-
|
|
309
|
+
const count = (prevLive?.count ?? 0) + 1;
|
|
310
|
+
const all = [...(prevLive?.open ?? []), fid];
|
|
311
|
+
const complete = (prevLive?.complete ?? true) && all.length <= ROLLUP_TRACK_MAX;
|
|
312
|
+
const open = all.slice(0, ROLLUP_TRACK_MAX);
|
|
313
|
+
const row = base(`rollup:${att}#${n}`, count, `${count} more like this on this run (latest: ${out.sentence})`, {
|
|
314
|
+
rollup_seq: n,
|
|
315
|
+
rolled_ids: open,
|
|
316
|
+
rolled_ids_complete: complete,
|
|
317
|
+
});
|
|
318
|
+
rate.rollup.set(att, { n, watchId: row.watch_id, count, open, complete });
|
|
269
319
|
// Coalesce a burst: while the previous roll-up row has not reached the bus yet, it is REPLACED
|
|
270
320
|
// in the batch (its clearing would only name a row nobody ever saw), and a waiting clearing
|
|
271
321
|
// that pointed at it now points at the new row.
|
|
272
|
-
const waiting =
|
|
273
|
-
if (
|
|
322
|
+
const waiting = prevLive === undefined ? -1 : this.pending.findIndex((p) => p.eventType === WATCH_FINDING_RAISED && p.key === prevLive.watchId);
|
|
323
|
+
if (prevLive !== undefined && waiting !== -1) {
|
|
274
324
|
const replaced = this.pending[waiting];
|
|
275
|
-
this.queuedKeys.delete(
|
|
325
|
+
this.queuedKeys.delete(prevLive.watchId);
|
|
276
326
|
this.queuedKeys.add(row.watch_id);
|
|
277
327
|
this.failedKeys.delete(row.watch_id);
|
|
278
328
|
// The chain falls back to where the REPLACED row would have restored it.
|
|
@@ -285,7 +335,7 @@ export class WatchEmitter {
|
|
|
285
335
|
};
|
|
286
336
|
for (const p of this.pending) {
|
|
287
337
|
const c = p.payload;
|
|
288
|
-
if (p.eventType === WATCH_FINDING_CLEARED && c.reason === 'rolled_up' && c.replaced_by ===
|
|
338
|
+
if (p.eventType === WATCH_FINDING_CLEARED && c.reason === 'rolled_up' && c.replaced_by === prevLive.watchId) {
|
|
289
339
|
c.replaced_by = row.watch_id;
|
|
290
340
|
p.dependsOn = row.watch_id;
|
|
291
341
|
}
|
|
@@ -293,19 +343,95 @@ export class WatchEmitter {
|
|
|
293
343
|
return;
|
|
294
344
|
}
|
|
295
345
|
this.push(WATCH_FINDING_RAISED, row, false, { restore: { rate, att, to: prev } });
|
|
296
|
-
if (
|
|
346
|
+
if (prevLive !== undefined) {
|
|
347
|
+
this.push(WATCH_FINDING_CLEARED, {
|
|
348
|
+
...this.envelope(entry, runId, ord, attempt, out.re, out.project),
|
|
349
|
+
watch_id: prevLive.watchId,
|
|
350
|
+
reason: 'rolled_up',
|
|
351
|
+
replaced_by: row.watch_id,
|
|
352
|
+
}, false, { dependsOn: row.watch_id });
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
/** The row is cleared, or its clearing is already queued. */
|
|
356
|
+
closed(watchId) {
|
|
357
|
+
const row = this.feed.get(watchId);
|
|
358
|
+
return (row !== undefined && row.cleared !== null) || this.queuedKeys.has(clearedKey(watchId));
|
|
359
|
+
}
|
|
360
|
+
/** A raised row this emitter knows: on the bus (the feed), on its way there, or waiting in the batch. */
|
|
361
|
+
raisedPayload(watchId) {
|
|
362
|
+
return (this.feed.get(watchId)?.raised ??
|
|
363
|
+
this.inflight.get(watchId) ??
|
|
364
|
+
this.pending.find((p) => p.eventType === WATCH_FINDING_RAISED && p.key === watchId)?.payload);
|
|
365
|
+
}
|
|
366
|
+
/**
|
|
367
|
+
* #780: a finding that was folded into a roll-up (it never had a row of its own) resolved. It leaves
|
|
368
|
+
* the roll-up: the roll-up is re-issued with the lower count (the `cleared{rolled_up}` + `raised`
|
|
369
|
+
* pair, as when it grows), or, when it stood for nothing else, its row clears as resolved. A
|
|
370
|
+
* subject no roll-up names (never raised at all) clears nothing.
|
|
371
|
+
*/
|
|
372
|
+
clearFolded(entry, runId, watchId, re) {
|
|
373
|
+
const rate = this.rateOf(runId, entry.id);
|
|
374
|
+
const fid = foldedId(watchId);
|
|
375
|
+
for (const [att, chain] of rate.rollup) {
|
|
376
|
+
if (!chain.open.includes(fid))
|
|
377
|
+
continue;
|
|
378
|
+
if (this.closed(chain.watchId))
|
|
379
|
+
return false; // dismissed or resolved already: nothing to reopen
|
|
380
|
+
const open = chain.open.filter((x) => x !== fid);
|
|
381
|
+
const count = Math.max(0, chain.count - 1);
|
|
382
|
+
if (count === 0 || (open.length === 0 && chain.complete)) {
|
|
383
|
+
rate.rollup.set(att, { ...chain, count: 0, open: [] });
|
|
384
|
+
return this.clearById(chain.watchId, { reason: 'resolved' }, re);
|
|
385
|
+
}
|
|
386
|
+
const prevRow = this.raisedPayload(chain.watchId);
|
|
387
|
+
if (prevRow === undefined)
|
|
388
|
+
return false;
|
|
389
|
+
const meta = { rollup_seq: chain.n, rolled_ids: open, rolled_ids_complete: chain.complete };
|
|
390
|
+
const sentence = prevRow.sentence.replace(/^\d+ more like this/, `${count} more like this`);
|
|
391
|
+
// Not on the bus yet: the waiting row is corrected in the batch (nobody has seen it).
|
|
392
|
+
const waiting = this.pending.find((p) => p.eventType === WATCH_FINDING_RAISED && p.key === chain.watchId);
|
|
393
|
+
if (waiting !== undefined) {
|
|
394
|
+
waiting.payload = { ...prevRow, rolled_up: count, sentence, facts: { ...prevRow.facts, ...meta } };
|
|
395
|
+
rate.rollup.set(att, { ...chain, count, open });
|
|
396
|
+
return true;
|
|
397
|
+
}
|
|
398
|
+
const n = chain.n + 1;
|
|
399
|
+
const row = {
|
|
400
|
+
...prevRow,
|
|
401
|
+
at: this.now(),
|
|
402
|
+
re,
|
|
403
|
+
watch_id: watchIdOf(runId, entry.id, entry.version, `rollup:${att}#${n}`),
|
|
404
|
+
rolled_up: count,
|
|
405
|
+
sentence,
|
|
406
|
+
facts: { ...prevRow.facts, ...meta, rollup_seq: n },
|
|
407
|
+
};
|
|
408
|
+
rate.rollup.set(att, { n, watchId: row.watch_id, count, open, complete: chain.complete });
|
|
409
|
+
this.push(WATCH_FINDING_RAISED, row, false, { restore: { rate, att, to: chain } });
|
|
297
410
|
this.push(WATCH_FINDING_CLEARED, {
|
|
298
|
-
|
|
299
|
-
|
|
411
|
+
run_id: prevRow.run_id,
|
|
412
|
+
ord: prevRow.ord,
|
|
413
|
+
attempt: prevRow.attempt,
|
|
414
|
+
by: prevRow.by,
|
|
415
|
+
at: this.now(),
|
|
416
|
+
re,
|
|
417
|
+
watch_id: chain.watchId,
|
|
418
|
+
entry_id: prevRow.entry_id,
|
|
419
|
+
entry_version: prevRow.entry_version,
|
|
420
|
+
...(prevRow.project_id !== undefined ? { project_id: prevRow.project_id } : {}),
|
|
300
421
|
reason: 'rolled_up',
|
|
301
422
|
replaced_by: row.watch_id,
|
|
302
423
|
}, false, { dependsOn: row.watch_id });
|
|
424
|
+
return true;
|
|
303
425
|
}
|
|
426
|
+
return false;
|
|
304
427
|
}
|
|
305
428
|
/** Queue the clearing of the row `subject` names (no-op when it was never raised or is already cleared). */
|
|
306
429
|
clear(entry, runId, subject, how, re = 'resolved') {
|
|
307
430
|
const watchId = watchIdOf(runId, entry.id, entry.version, subject);
|
|
308
|
-
|
|
431
|
+
// A finding with a row of its own clears that row; one folded into a roll-up leaves it (#780).
|
|
432
|
+
if (this.raisedPayload(watchId) !== undefined || how.reason !== 'resolved')
|
|
433
|
+
return this.clearById(watchId, how, re);
|
|
434
|
+
return this.clearFolded(entry, runId, watchId, re);
|
|
309
435
|
}
|
|
310
436
|
/** Queue the clearing of `watchId` (dismiss uses this directly). */
|
|
311
437
|
clearById(watchId, how, re = 'resolved') {
|
package/dist/watch/emit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emit.js","sourceRoot":"","sources":["../../src/watch/emit.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"emit.js","sourceRoot":"","sources":["../../src/watch/emit.ts"],"names":[],"mappings":"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"}
|