wicked-crew 0.7.48 → 0.8.0
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 +4 -1
- package/dist/api/routes.d.ts.map +1 -1
- package/dist/api/routes.js +36 -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 +15 -0
- package/dist/api/server.d.ts.map +1 -1
- package/dist/api/server.js +67 -3
- 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/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +16 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/core/adapter.d.ts +16 -1
- package/dist/core/adapter.d.ts.map +1 -1
- package/dist/core/adapter.js +48 -10
- package/dist/core/adapter.js.map +1 -1
- package/dist/core/types.d.ts +7 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/interactive/doc-checks-routes.d.ts +38 -0
- package/dist/interactive/doc-checks-routes.d.ts.map +1 -0
- package/dist/interactive/doc-checks-routes.js +122 -0
- package/dist/interactive/doc-checks-routes.js.map +1 -0
- package/dist/interactive/doc-delete-routes.d.ts +1 -1
- package/dist/interactive/doc-delete-routes.d.ts.map +1 -1
- package/dist/interactive/doc-delete-routes.js +1 -1
- package/dist/interactive/doc-delete-routes.js.map +1 -1
- package/dist/interactive/doc-ledger-sweep.d.ts +3 -2
- package/dist/interactive/doc-ledger-sweep.d.ts.map +1 -1
- package/dist/interactive/doc-ledger-sweep.js +4 -3
- package/dist/interactive/doc-ledger-sweep.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/interactive/ledger.d.ts +4 -1
- package/dist/interactive/ledger.d.ts.map +1 -1
- package/dist/interactive/ledger.js +5 -2
- package/dist/interactive/ledger.js.map +1 -1
- package/dist/interactive/review-events.d.ts +185 -0
- package/dist/interactive/review-events.d.ts.map +1 -0
- package/dist/interactive/review-events.js +856 -0
- package/dist/interactive/review-events.js.map +1 -0
- package/dist/interactive/review-ledger.d.ts +79 -0
- package/dist/interactive/review-ledger.d.ts.map +1 -0
- package/dist/interactive/review-ledger.js +131 -0
- package/dist/interactive/review-ledger.js.map +1 -0
- package/dist/interactive/ws-relay.d.ts +2 -1
- package/dist/interactive/ws-relay.d.ts.map +1 -1
- package/dist/interactive/ws-relay.js +2 -1
- package/dist/interactive/ws-relay.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/ledger.d.ts +35 -0
- package/dist/qe/ledger.d.ts.map +1 -1
- package/dist/qe/ledger.js +47 -0
- package/dist/qe/ledger.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-BnJlrMxp.css +32 -0
- package/dist/studio/assets/index-DG0nwF7c.js +582 -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 +5801 -2440
- 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 +26 -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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"}
|