instar 1.3.183 → 1.3.185
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/feedback-factory/processor/parity.d.ts +5 -1
- package/dist/feedback-factory/processor/parity.d.ts.map +1 -1
- package/dist/feedback-factory/processor/parity.js +8 -1
- package/dist/feedback-factory/processor/parity.js.map +1 -1
- package/dist/feedback-factory/processor/transitions.d.ts +33 -0
- package/dist/feedback-factory/processor/transitions.d.ts.map +1 -1
- package/dist/feedback-factory/processor/transitions.js +58 -0
- package/dist/feedback-factory/processor/transitions.js.map +1 -1
- package/dist/threadline/ThreadlineGroundingGate.d.ts +41 -0
- package/dist/threadline/ThreadlineGroundingGate.d.ts.map +1 -0
- package/dist/threadline/ThreadlineGroundingGate.js +68 -0
- package/dist/threadline/ThreadlineGroundingGate.js.map +1 -0
- package/dist/threadline/ThreadlineMCPServer.d.ts.map +1 -1
- package/dist/threadline/ThreadlineMCPServer.js +26 -0
- package/dist/threadline/ThreadlineMCPServer.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +3 -3
- package/src/templates/scripts/convergence-check.sh +25 -2
- package/upgrades/1.3.184.md +177 -0
- package/upgrades/1.3.185.md +58 -0
- package/upgrades/side-effects/feedback-factory-status-normalization.md +91 -0
- package/upgrades/side-effects/url-provenance-sibling-node-trust.md +46 -0
- package/upgrades/1.3.183.md +0 -81
|
@@ -50,7 +50,11 @@ export interface PortalCluster {
|
|
|
50
50
|
/** A cluster-level outcome, keyed by fingerprint (the order-independent cluster identity). */
|
|
51
51
|
export interface ClusterOutcome {
|
|
52
52
|
fingerprint: string;
|
|
53
|
-
/**
|
|
53
|
+
/**
|
|
54
|
+
* Lifecycle status in either vocabulary (v1 'resolved'/'open'/'fixed' or v2
|
|
55
|
+
* 'closed'/'new'/'fix_applied'). compareClusterOutcomes projects both sides
|
|
56
|
+
* through normalizeStatus before comparing, so the side's vocabulary is irrelevant.
|
|
57
|
+
*/
|
|
54
58
|
status: string;
|
|
55
59
|
/** Chronic-regression recurrence count. */
|
|
56
60
|
recurrenceCount: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parity.d.ts","sourceRoot":"","sources":["../../../src/feedback-factory/processor/parity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;
|
|
1
|
+
{"version":3,"file":"parity.d.ts","sourceRoot":"","sources":["../../../src/feedback-factory/processor/parity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAKH,+FAA+F;AAC/F,wBAAgB,kBAAkB,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAEnF;AAED,wFAAwF;AACxF,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,8FAA8F;AAC9F,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,8CAA8C;AAC9C,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,uFAAuF;AACvF,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,QAAQ,GAAG,YAAY,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;IACpE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED,gFAAgF;AAChF,MAAM,WAAW,YAAY;IAC3B;;;;;OAKG;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;;;;;;OAQG;IACH,uBAAuB,EAAE,MAAM,CAAC;IAChC,gBAAgB,EAAE,MAAM,CAAC;IACzB,sBAAsB,EAAE,qBAAqB,EAAE,CAAC;IAChD,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IACxC,sEAAsE;IACtE,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CAAC,cAAc,EAAE,aAAa,EAAE,GAAG,qBAAqB,EAAE,CAUnG;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,cAAc,EAAE,EACxB,MAAM,EAAE,cAAc,EAAE,GACvB,iBAAiB,EAAE,CAmCrB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,cAAc,CAAC,EAAE,cAAc,EAAE,CAAC;IAClC,cAAc,CAAC,EAAE,cAAc,EAAE,CAAC;CACnC,GAAG,YAAY,CAmBf"}
|
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
* structural signal that BLOCKS Phase 4 cutover (spec §2.5 Phase 4/5).
|
|
34
34
|
*/
|
|
35
35
|
import { computeFingerprint } from './fingerprint.js';
|
|
36
|
+
import { normalizeStatus } from './transitions.js';
|
|
36
37
|
/** The canonical fingerprint for a cluster: exactly the reference's per-cluster derivation. */
|
|
37
38
|
export function clusterFingerprint(cluster) {
|
|
38
39
|
return computeFingerprint(cluster.type, cluster.title);
|
|
@@ -76,7 +77,13 @@ export function compareClusterOutcomes(instar, portal) {
|
|
|
76
77
|
out.push({ fingerprint: fp, kind: 'missing-instar', portal: p.status });
|
|
77
78
|
continue;
|
|
78
79
|
}
|
|
79
|
-
|
|
80
|
+
// Compare in the canonical v2 space: Portal still emits v1 literals
|
|
81
|
+
// (open/fixed/resolved) while Instar emits the v2 lifecycle (new/fix_applied/
|
|
82
|
+
// closed), so a raw `i.status !== p.status` reads benign vocabulary skew as a
|
|
83
|
+
// cutover-blocking divergence (e.g. Portal `resolved` vs Instar `closed`).
|
|
84
|
+
// normalizeStatus projects BOTH sides first; the reported values stay raw so the
|
|
85
|
+
// operator sees each side's actual stored status when a real divergence survives.
|
|
86
|
+
if (normalizeStatus(i.status) !== normalizeStatus(p.status)) {
|
|
80
87
|
out.push({ fingerprint: fp, kind: 'status', instar: i.status, portal: p.status });
|
|
81
88
|
}
|
|
82
89
|
if (i.recurrenceCount !== p.recurrenceCount) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parity.js","sourceRoot":"","sources":["../../../src/feedback-factory/processor/parity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"parity.js","sourceRoot":"","sources":["../../../src/feedback-factory/processor/parity.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,4 +41,37 @@ export declare function detectCycling(cluster: {
|
|
|
41
41
|
status?: string;
|
|
42
42
|
recurrenceCount?: number;
|
|
43
43
|
}): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* V1_TO_V2_STATUS — legacy(v1)→canonical(v2) status projection. Byte-faithful to
|
|
46
|
+
* Portal's `V1_TO_V2_STATUS` (feedback-processor.py:1035). Identity entries
|
|
47
|
+
* (investigating/wontfix/duplicate are spelled the same in both vocabularies) are
|
|
48
|
+
* listed verbatim so the map documents the full v1 vocabulary; only open/fixed/
|
|
49
|
+
* resolved actually change under projection.
|
|
50
|
+
*
|
|
51
|
+
* NB `open` is the v1 birth-default literal (schema.prisma:1970 `@default("open")`),
|
|
52
|
+
* NOT a standalone canonical state — it projects to `new`.
|
|
53
|
+
*/
|
|
54
|
+
export declare const V1_TO_V2_STATUS: Readonly<Record<string, string>>;
|
|
55
|
+
/**
|
|
56
|
+
* TERMINAL_STATUSES — the canonical terminal set, evaluated on NORMALIZED status
|
|
57
|
+
* (feedback-processor.py:379). A cluster whose normalized status is in this set has
|
|
58
|
+
* reached a lifecycle end-state. Includes `legacy_closed`, a terminal-only legacy
|
|
59
|
+
* literal that is not a member of {@link V2_STATES} and has no v1→v2 mapping (so it
|
|
60
|
+
* passes through {@link normalizeStatus} unchanged and is matched here directly).
|
|
61
|
+
*/
|
|
62
|
+
export declare const TERMINAL_STATUSES: ReadonlySet<string>;
|
|
63
|
+
/**
|
|
64
|
+
* Project a (possibly legacy-v1) status into the canonical v2 lifecycle space.
|
|
65
|
+
* A status already in v2 — or any unrecognised value — passes through unchanged, so
|
|
66
|
+
* this is idempotent and safe to apply to either side of a comparison without risk
|
|
67
|
+
* of double-mapping.
|
|
68
|
+
*/
|
|
69
|
+
export declare function normalizeStatus(status: string): string;
|
|
70
|
+
/**
|
|
71
|
+
* True iff the status, after normalization, is a canonical terminal state.
|
|
72
|
+
* Normalize-BEFORE-check is load-bearing: a raw v1 `resolved` must read terminal,
|
|
73
|
+
* which it only does once projected to `closed`. Checking the raw literal against
|
|
74
|
+
* the v2 terminal set would let `resolved` slip through as non-terminal.
|
|
75
|
+
*/
|
|
76
|
+
export declare function isTerminalStatus(status: string): boolean;
|
|
44
77
|
//# sourceMappingURL=transitions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transitions.d.ts","sourceRoot":"","sources":["../../../src/feedback-factory/processor/transitions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,wEAAwE;AACxE,eAAO,MAAM,SAAS,EAAE,WAAW,CAAC,MAAM,CAMxC,CAAC;AAEH,+EAA+E;AAC/E,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAexE,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAKlG,CAAC;AAUF,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,EAC7B,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI,GACjC,CAAC,OAAO,EAAE,MAAM,CAAC,CAsCnB;AAED,uGAAuG;AACvG,wBAAgB,aAAa,CAAC,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAM7F"}
|
|
1
|
+
{"version":3,"file":"transitions.d.ts","sourceRoot":"","sources":["../../../src/feedback-factory/processor/transitions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,wEAAwE;AACxE,eAAO,MAAM,SAAS,EAAE,WAAW,CAAC,MAAM,CAMxC,CAAC;AAEH,+EAA+E;AAC/E,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAexE,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAKlG,CAAC;AAUF,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,EAC7B,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI,GACjC,CAAC,OAAO,EAAE,MAAM,CAAC,CAsCnB;AAED,uGAAuG;AACvG,wBAAgB,aAAa,CAAC,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAM7F;AAeD;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAO5D,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAEhD,CAAC;AAEH;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAExD"}
|
|
@@ -99,4 +99,62 @@ export function detectCycling(cluster) {
|
|
|
99
99
|
return ((status === 'fix_applied' || status === 'new' || status === 'investigating') &&
|
|
100
100
|
(cluster.recurrenceCount ?? 0) >= 2);
|
|
101
101
|
}
|
|
102
|
+
// ---------------------------------------------------------------------------
|
|
103
|
+
// Status vocabulary normalization (Portal owns it; mirrored, not invented).
|
|
104
|
+
//
|
|
105
|
+
// Three feedback instances use three status vocabularies during the migration:
|
|
106
|
+
// the v1 legacy literals Portal still writes (open/fixed/resolved/…), the live
|
|
107
|
+
// write-gate superset both sides accept mid-migration, and the canonical v2
|
|
108
|
+
// lifecycle ({@link V2_STATES}). To compare apples to apples, BOTH sides project
|
|
109
|
+
// their status through {@link normalizeStatus} into the v2 space BEFORE any
|
|
110
|
+
// status comparison AND before the terminal check. Anchored to the authoritative
|
|
111
|
+
// definitions Dawn pinned (thread-978f016b) from the reference
|
|
112
|
+
// `the-portal/.claude/scripts/feedback-processor.py`.
|
|
113
|
+
// ---------------------------------------------------------------------------
|
|
114
|
+
/**
|
|
115
|
+
* V1_TO_V2_STATUS — legacy(v1)→canonical(v2) status projection. Byte-faithful to
|
|
116
|
+
* Portal's `V1_TO_V2_STATUS` (feedback-processor.py:1035). Identity entries
|
|
117
|
+
* (investigating/wontfix/duplicate are spelled the same in both vocabularies) are
|
|
118
|
+
* listed verbatim so the map documents the full v1 vocabulary; only open/fixed/
|
|
119
|
+
* resolved actually change under projection.
|
|
120
|
+
*
|
|
121
|
+
* NB `open` is the v1 birth-default literal (schema.prisma:1970 `@default("open")`),
|
|
122
|
+
* NOT a standalone canonical state — it projects to `new`.
|
|
123
|
+
*/
|
|
124
|
+
export const V1_TO_V2_STATUS = {
|
|
125
|
+
open: 'new',
|
|
126
|
+
investigating: 'investigating',
|
|
127
|
+
fixed: 'fix_applied',
|
|
128
|
+
resolved: 'closed',
|
|
129
|
+
wontfix: 'wontfix',
|
|
130
|
+
duplicate: 'duplicate',
|
|
131
|
+
};
|
|
132
|
+
/**
|
|
133
|
+
* TERMINAL_STATUSES — the canonical terminal set, evaluated on NORMALIZED status
|
|
134
|
+
* (feedback-processor.py:379). A cluster whose normalized status is in this set has
|
|
135
|
+
* reached a lifecycle end-state. Includes `legacy_closed`, a terminal-only legacy
|
|
136
|
+
* literal that is not a member of {@link V2_STATES} and has no v1→v2 mapping (so it
|
|
137
|
+
* passes through {@link normalizeStatus} unchanged and is matched here directly).
|
|
138
|
+
*/
|
|
139
|
+
export const TERMINAL_STATUSES = new Set([
|
|
140
|
+
'closed', 'verified', 'wontfix', 'duplicate', 'chronic_escalated', 'legacy_closed',
|
|
141
|
+
]);
|
|
142
|
+
/**
|
|
143
|
+
* Project a (possibly legacy-v1) status into the canonical v2 lifecycle space.
|
|
144
|
+
* A status already in v2 — or any unrecognised value — passes through unchanged, so
|
|
145
|
+
* this is idempotent and safe to apply to either side of a comparison without risk
|
|
146
|
+
* of double-mapping.
|
|
147
|
+
*/
|
|
148
|
+
export function normalizeStatus(status) {
|
|
149
|
+
return V1_TO_V2_STATUS[status] ?? status;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* True iff the status, after normalization, is a canonical terminal state.
|
|
153
|
+
* Normalize-BEFORE-check is load-bearing: a raw v1 `resolved` must read terminal,
|
|
154
|
+
* which it only does once projected to `closed`. Checking the raw literal against
|
|
155
|
+
* the v2 terminal set would let `resolved` slip through as non-terminal.
|
|
156
|
+
*/
|
|
157
|
+
export function isTerminalStatus(status) {
|
|
158
|
+
return TERMINAL_STATUSES.has(normalizeStatus(status));
|
|
159
|
+
}
|
|
102
160
|
//# sourceMappingURL=transitions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transitions.js","sourceRoot":"","sources":["../../../src/feedback-factory/processor/transitions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"transitions.js","sourceRoot":"","sources":["../../../src/feedback-factory/processor/transitions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,wEAAwE;AACxE,MAAM,CAAC,MAAM,SAAS,GAAwB,IAAI,GAAG,CAAC;IACpD,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,aAAa;IAC1D,YAAY,EAAE,oBAAoB,EAAE,UAAU,EAAE,QAAQ;IACxD,SAAS,EAAE,mBAAmB,EAAE,UAAU;IAC1C,SAAS,EAAE,WAAW;IACtB,oBAAoB,EAAE,wCAAwC;CAC/D,CAAC,CAAC;AAEH,+EAA+E;AAC/E,MAAM,CAAC,MAAM,cAAc,GAAkD;IAC3E,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IACnE,aAAa,EAAE,IAAI,GAAG,CAAC,CAAC,mBAAmB,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IACjF,iBAAiB,EAAE,IAAI,GAAG,CAAC,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;IAC5D,WAAW,EAAE,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IAC/C,UAAU,EAAE,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,oBAAoB,EAAE,SAAS,CAAC,CAAC;IAClE,kBAAkB,EAAE,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC9D,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACxC,OAAO,EAAE,IAAI,GAAG,CAAC,CAAC,eAAe,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC;IACnE,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAC1B,iBAAiB,EAAE,IAAI,GAAG,EAAE;IAC5B,MAAM,EAAE,IAAI,GAAG,EAAE;IACjB,OAAO,EAAE,IAAI,GAAG,EAAE;IAClB,SAAS,EAAE,IAAI,GAAG,EAAE;IACpB,kBAAkB,EAAE,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;CAClE,CAAC;AAEF,gFAAgF;AAChF,MAAM,CAAC,MAAM,gBAAgB,GAA0E;IACrG,UAAU,EAAE;QACV,gBAAgB,EAAE,aAAa;QAC/B,KAAK,EAAE,4GAA4G;KACpH;CACF,CAAC;AAEF,MAAM,iBAAiB,GAAwB,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC;AAEnG,qFAAqF;AACrF,SAAS,UAAU,CAAC,MAAwB;IAC1C,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAClC,OAAO,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;AAC5D,CAAC;AAQD;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAC3B,aAAqB,EACrB,SAAiB,EACjB,aAA6B,EAC7B,OAAkC;IAElC,MAAM,GAAG,GAAG,OAAO,IAAI,EAAE,CAAC;IAE1B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,EAAE,kBAAkB,SAAS,YAAY,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACjF,CAAC;IACD,IAAI,CAAC,CAAC,aAAa,IAAI,cAAc,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,KAAK,EAAE,0BAA0B,aAAa,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,cAAc,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;IACrD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACnC,oFAAoF;QACpF,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAC5F,OAAO,CAAC,KAAK,EAAE,qBAAqB,aAAa,OAAO,SAAS,cAAc,UAAU,EAAE,CAAC,CAAC;IAC/F,CAAC;IAED,IAAI,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACrC,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACvD,OAAO,CAAC,KAAK,EAAE,qBAAqB,SAAS,yCAAyC,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;IAED,IAAI,SAAS,IAAI,gBAAgB,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC1C,IAAI,WAAW,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YACrC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAI,GAAG,CAAC,eAA0B,IAAI,CAAC,CAAC;QACxD,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,EAAE,iBAAiB,UAAU,yEAAyE,CAAC,CAAC;QACvH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,uGAAuG;AACvG,MAAM,UAAU,aAAa,CAAC,OAAsD;IAClF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,OAAO,CACL,CAAC,MAAM,KAAK,aAAa,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,eAAe,CAAC;QAC5E,CAAC,OAAO,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,CAAC,CACpC,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,4EAA4E;AAC5E,EAAE;AACF,+EAA+E;AAC/E,+EAA+E;AAC/E,4EAA4E;AAC5E,iFAAiF;AACjF,4EAA4E;AAC5E,iFAAiF;AACjF,+DAA+D;AAC/D,sDAAsD;AACtD,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,eAAe,GAAqC;IAC/D,IAAI,EAAE,KAAK;IACX,aAAa,EAAE,eAAe;IAC9B,KAAK,EAAE,aAAa;IACpB,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,WAAW;CACvB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAwB,IAAI,GAAG,CAAC;IAC5D,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,mBAAmB,EAAE,eAAe;CACnF,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,OAAO,eAAe,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,OAAO,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;AACxD,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ThreadlineGroundingGate — "Ground Before You Assert" for OUTBOUND agent-to-agent
|
|
3
|
+
* messages (the constitution's proposed Interaction principle; companion to the
|
|
4
|
+
* pre-Telegram grounding gate).
|
|
5
|
+
*
|
|
6
|
+
* Pure, side-effect-free claim analysis: given the text an agent is about to send
|
|
7
|
+
* to a peer, surface the claims that need verification BEFORE they leave — so an
|
|
8
|
+
* unverified fact doesn't propagate to another agent as truth. The first concrete
|
|
9
|
+
* check is URL provenance: a scheme-qualified URL to an unfamiliar host that the
|
|
10
|
+
* agent has NOT confirmed this session is flagged, because that is exactly the
|
|
11
|
+
* class that caused the 2026-05-31 cross-agent incoherence (a peer handed over a
|
|
12
|
+
* `https://…` endpoint that 404'd, propagated as fact).
|
|
13
|
+
*
|
|
14
|
+
* This module is the DECISION; wiring it as a hard pre-send gate on threadline_send
|
|
15
|
+
* (block / require-confirm) is a separate step. Signal-vs-Authority: the gate
|
|
16
|
+
* returns structured issues; the caller chooses to block, warn, or require a
|
|
17
|
+
* verification step.
|
|
18
|
+
*/
|
|
19
|
+
export interface GroundingIssue {
|
|
20
|
+
kind: 'ungrounded-url' | 'malformed-url';
|
|
21
|
+
detail: string;
|
|
22
|
+
}
|
|
23
|
+
export interface GroundingContext {
|
|
24
|
+
/** Hosts that never need grounding (suffix-matched), in addition to the defaults. */
|
|
25
|
+
knownDomains?: string[];
|
|
26
|
+
/** Exact URLs the agent has confirmed resolve THIS session (e.g. curl-verified). */
|
|
27
|
+
verifiedUrls?: string[];
|
|
28
|
+
}
|
|
29
|
+
export interface GroundingResult {
|
|
30
|
+
/** True when no claim needs grounding. */
|
|
31
|
+
allow: boolean;
|
|
32
|
+
issues: GroundingIssue[];
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Evaluate an outbound peer message for ungrounded claims. Only scheme-qualified
|
|
36
|
+
* (`http(s)://`) URLs are checked — bare host references (e.g. `dawn.bot-me.ai/x`)
|
|
37
|
+
* are intentionally NOT flagged, matching the convention that a bare host conveys
|
|
38
|
+
* the same curl-verified info without asserting a live, fetchable endpoint.
|
|
39
|
+
*/
|
|
40
|
+
export declare function evaluateOutboundGrounding(message: string, ctx?: GroundingContext): GroundingResult;
|
|
41
|
+
//# sourceMappingURL=ThreadlineGroundingGate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThreadlineGroundingGate.d.ts","sourceRoot":"","sources":["../../src/threadline/ThreadlineGroundingGate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,gBAAgB,GAAG,eAAe,CAAC;IACzC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,qFAAqF;IACrF,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,oFAAoF;IACpF,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,0CAA0C;IAC1C,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AAmBD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAE,gBAAqB,GAAG,eAAe,CA0BtG"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ThreadlineGroundingGate — "Ground Before You Assert" for OUTBOUND agent-to-agent
|
|
3
|
+
* messages (the constitution's proposed Interaction principle; companion to the
|
|
4
|
+
* pre-Telegram grounding gate).
|
|
5
|
+
*
|
|
6
|
+
* Pure, side-effect-free claim analysis: given the text an agent is about to send
|
|
7
|
+
* to a peer, surface the claims that need verification BEFORE they leave — so an
|
|
8
|
+
* unverified fact doesn't propagate to another agent as truth. The first concrete
|
|
9
|
+
* check is URL provenance: a scheme-qualified URL to an unfamiliar host that the
|
|
10
|
+
* agent has NOT confirmed this session is flagged, because that is exactly the
|
|
11
|
+
* class that caused the 2026-05-31 cross-agent incoherence (a peer handed over a
|
|
12
|
+
* `https://…` endpoint that 404'd, propagated as fact).
|
|
13
|
+
*
|
|
14
|
+
* This module is the DECISION; wiring it as a hard pre-send gate on threadline_send
|
|
15
|
+
* (block / require-confirm) is a separate step. Signal-vs-Authority: the gate
|
|
16
|
+
* returns structured issues; the caller chooses to block, warn, or require a
|
|
17
|
+
* verification step.
|
|
18
|
+
*/
|
|
19
|
+
/** Hosts that are part of the agent's own surface / well-known infra. */
|
|
20
|
+
const DEFAULT_KNOWN_DOMAINS = [
|
|
21
|
+
'localhost',
|
|
22
|
+
'github.com',
|
|
23
|
+
'githubusercontent.com',
|
|
24
|
+
'npmjs.com',
|
|
25
|
+
'anthropic.com',
|
|
26
|
+
'claude.com',
|
|
27
|
+
];
|
|
28
|
+
function hostIsKnown(host, known) {
|
|
29
|
+
for (const d of known) {
|
|
30
|
+
if (host === d || host.endsWith('.' + d))
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Evaluate an outbound peer message for ungrounded claims. Only scheme-qualified
|
|
37
|
+
* (`http(s)://`) URLs are checked — bare host references (e.g. `dawn.bot-me.ai/x`)
|
|
38
|
+
* are intentionally NOT flagged, matching the convention that a bare host conveys
|
|
39
|
+
* the same curl-verified info without asserting a live, fetchable endpoint.
|
|
40
|
+
*/
|
|
41
|
+
export function evaluateOutboundGrounding(message, ctx = {}) {
|
|
42
|
+
const known = new Set([...DEFAULT_KNOWN_DOMAINS, ...(ctx.knownDomains ?? [])]);
|
|
43
|
+
const verified = new Set(ctx.verifiedUrls ?? []);
|
|
44
|
+
const issues = [];
|
|
45
|
+
const urls = message.match(/https?:\/\/[^\s)"'>\]]+/g) ?? [];
|
|
46
|
+
for (const raw of urls) {
|
|
47
|
+
const url = raw.replace(/[.,;:]+$/, ''); // trim trailing punctuation
|
|
48
|
+
if (verified.has(url) || verified.has(raw))
|
|
49
|
+
continue;
|
|
50
|
+
let host;
|
|
51
|
+
try {
|
|
52
|
+
host = new URL(url).hostname;
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
issues.push({ kind: 'malformed-url', detail: `${raw} is not a parseable URL.` });
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
if (!hostIsKnown(host, known)) {
|
|
59
|
+
issues.push({
|
|
60
|
+
kind: 'ungrounded-url',
|
|
61
|
+
detail: `${url} — unfamiliar host "${host}". Verify it resolves (curl) before asserting it to a peer, ` +
|
|
62
|
+
`or reference it bare (no scheme) if it carries already-verified info.`,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return { allow: issues.length === 0, issues };
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=ThreadlineGroundingGate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThreadlineGroundingGate.js","sourceRoot":"","sources":["../../src/threadline/ThreadlineGroundingGate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAoBH,yEAAyE;AACzE,MAAM,qBAAqB,GAAG;IAC5B,WAAW;IACX,YAAY;IACZ,uBAAuB;IACvB,WAAW;IACX,eAAe;IACf,YAAY;CACb,CAAC;AAEF,SAAS,WAAW,CAAC,IAAY,EAAE,KAAkB;IACnD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;IACxD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAAe,EAAE,MAAwB,EAAE;IACnF,MAAM,KAAK,GAAG,IAAI,GAAG,CAAS,CAAC,GAAG,qBAAqB,EAAE,GAAG,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACvF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAS,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IACzD,MAAM,MAAM,GAAqB,EAAE,CAAC;IAEpC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,IAAI,EAAE,CAAC;IAC7D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,4BAA4B;QACrE,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QACrD,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,GAAG,0BAA0B,EAAE,CAAC,CAAC;YACjF,SAAS;QACX,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,gBAAgB;gBACtB,MAAM,EAAE,GAAG,GAAG,uBAAuB,IAAI,8DAA8D;oBACrG,uEAAuE;aAC1E,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;AAChD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreadlineMCPServer.d.ts","sourceRoot":"","sources":["../../src/threadline/ThreadlineMCPServer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMpE,OAAO,KAAK,EAAE,cAAc,EAAuB,MAAM,qBAAqB,CAAC;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAqB,MAAM,sBAAsB,CAAC;AAC/E,OAAO,KAAK,EAAE,iBAAiB,EAAmB,MAAM,wBAAwB,CAAC;AACjF,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAiB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"ThreadlineMCPServer.d.ts","sourceRoot":"","sources":["../../src/threadline/ThreadlineMCPServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,6 +25,7 @@ import { z } from 'zod';
|
|
|
25
25
|
import fs from 'node:fs';
|
|
26
26
|
import path from 'node:path';
|
|
27
27
|
import { DEFAULT_RELAY_URL } from './constants.js';
|
|
28
|
+
import { evaluateOutboundGrounding } from './ThreadlineGroundingGate.js';
|
|
28
29
|
// ── Tool Result Builders ─────────────────────────────────────────────
|
|
29
30
|
/**
|
|
30
31
|
* Convert a relay-discovered agent entry into the local ThreadlineAgentInfo
|
|
@@ -313,6 +314,13 @@ export class ThreadlineMCPServer {
|
|
|
313
314
|
'for 2025 Stripe net+gross volume CSVs"). Stored on the local ' +
|
|
314
315
|
'commitment record for context when the reply lands; NEVER sent ' +
|
|
315
316
|
'over the wire to the remote agent.'),
|
|
317
|
+
groundingAck: z.boolean().default(false).describe('Ground Before You Assert: set true ONLY after you have verified the ' +
|
|
318
|
+
'claims in this message (endpoints resolve, tokens authenticate, ' +
|
|
319
|
+
'identities/state are current). Leave false (default) and the send is ' +
|
|
320
|
+
'refused if it contains a scheme-qualified URL to a host you have not ' +
|
|
321
|
+
'confirmed this session — so an unverified claim never propagates to a ' +
|
|
322
|
+
'peer as fact. Resend with groundingAck:true once verified, or write ' +
|
|
323
|
+
'the host bare (no scheme).'),
|
|
316
324
|
}, async (args) => {
|
|
317
325
|
const authError = this.checkAuth('threadline:send');
|
|
318
326
|
if (authError)
|
|
@@ -325,6 +333,24 @@ export class ThreadlineMCPServer {
|
|
|
325
333
|
if (!args.message.trim()) {
|
|
326
334
|
return errorResult('Message cannot be empty');
|
|
327
335
|
}
|
|
336
|
+
// Ground Before You Assert (constitution Interaction principle): refuse to
|
|
337
|
+
// send a peer message that asserts an unverified scheme-qualified URL,
|
|
338
|
+
// unless the caller has consciously acked grounding. Block-with-override —
|
|
339
|
+
// a real structural gate (Structure > Willpower) that still respects
|
|
340
|
+
// Signal-vs-Authority: the agent can override after verifying, so a
|
|
341
|
+
// false-positive can never permanently block a legitimate send. The check
|
|
342
|
+
// is a pure function, so it runs correctly here in the MCP stdio process.
|
|
343
|
+
if (!args.groundingAck) {
|
|
344
|
+
const grounding = evaluateOutboundGrounding(args.message);
|
|
345
|
+
if (!grounding.allow) {
|
|
346
|
+
return errorResult('Ground Before You Assert — this message asserts something you have not ' +
|
|
347
|
+
'verified this session:\n' +
|
|
348
|
+
grounding.issues.map((i) => `• ${i.detail}`).join('\n') +
|
|
349
|
+
'\nVerify each (e.g. curl the endpoint), or reference the host bare (no ' +
|
|
350
|
+
'scheme) if it carries already-verified info. If you have already ' +
|
|
351
|
+
'verified it, resend with groundingAck: true.');
|
|
352
|
+
}
|
|
353
|
+
}
|
|
328
354
|
try {
|
|
329
355
|
const result = await this.deps.sendMessage({
|
|
330
356
|
targetAgent: args.agentId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreadlineMCPServer.js","sourceRoot":"","sources":["../../src/threadline/ThreadlineMCPServer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ThreadlineMCPServer.js","sourceRoot":"","sources":["../../src/threadline/ThreadlineMCPServer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "./builtin-manifest.schema.json",
|
|
3
3
|
"schemaVersion": 1,
|
|
4
|
-
"generatedAt": "2026-06-01T04:
|
|
5
|
-
"instarVersion": "1.3.
|
|
4
|
+
"generatedAt": "2026-06-01T04:43:49.548Z",
|
|
5
|
+
"instarVersion": "1.3.185",
|
|
6
6
|
"entryCount": 193,
|
|
7
7
|
"entries": {
|
|
8
8
|
"hook:session-start": {
|
|
@@ -1089,7 +1089,7 @@
|
|
|
1089
1089
|
"type": "template",
|
|
1090
1090
|
"domain": "operations",
|
|
1091
1091
|
"sourcePath": "src/templates/scripts/convergence-check.sh",
|
|
1092
|
-
"contentHash": "
|
|
1092
|
+
"contentHash": "41ef69307819140731f293b175093238f88988365c3973b8e44b9c18669e32bd",
|
|
1093
1093
|
"since": "2025-01-01"
|
|
1094
1094
|
},
|
|
1095
1095
|
"template:git-sync-gate.sh": {
|
|
@@ -64,9 +64,10 @@ if [ -n "$URLS_IN_MSG" ]; then
|
|
|
64
64
|
# confabulation. Read it from config at runtime. If config/python is
|
|
65
65
|
# unavailable or tunnel.hostname is empty, fall back to the static allowlist.
|
|
66
66
|
OWN_TUNNEL_HOST=""
|
|
67
|
+
OWN_TUNNEL_PARENT=""
|
|
67
68
|
CONFIG_PATH="${CLAUDE_PROJECT_DIR:-.}/.instar/config.json"
|
|
68
69
|
if [ -f "$CONFIG_PATH" ]; then
|
|
69
|
-
|
|
70
|
+
OWN_TUNNEL_INFO=$(python3 - "$CONFIG_PATH" <<'PY' 2>/dev/null
|
|
70
71
|
import json
|
|
71
72
|
import sys
|
|
72
73
|
from urllib.parse import urlparse
|
|
@@ -76,13 +77,26 @@ try:
|
|
|
76
77
|
raw = ((cfg.get('tunnel') or {}).get('hostname') or '').strip()
|
|
77
78
|
if not raw:
|
|
78
79
|
print('')
|
|
80
|
+
print('')
|
|
79
81
|
else:
|
|
80
82
|
parsed = urlparse(raw if '://' in raw else f'https://{raw}')
|
|
81
|
-
|
|
83
|
+
host = (parsed.hostname or '').lower()
|
|
84
|
+
print(host)
|
|
85
|
+
# Parent tunnel domain: drop the leftmost label so SIBLING NODES of the
|
|
86
|
+
# SAME agent on the SAME tunnel provider domain are trusted — a
|
|
87
|
+
# multi-machine agent runs on >1 machine, each with its own subdomain
|
|
88
|
+
# under the operator's tunnel domain (e.g. own 'echo.dawn-tunnel.dev'
|
|
89
|
+
# trusts sibling 'echo-mini.dawn-tunnel.dev'). Only emit a parent with
|
|
90
|
+
# >=3 labels so we never collapse to a 2-label apex or public suffix.
|
|
91
|
+
labels = host.split('.')
|
|
92
|
+
print('.'.join(labels[1:]) if len(labels) >= 3 else '')
|
|
82
93
|
except Exception:
|
|
83
94
|
print('')
|
|
95
|
+
print('')
|
|
84
96
|
PY
|
|
85
97
|
)
|
|
98
|
+
OWN_TUNNEL_HOST=$(printf '%s\n' "$OWN_TUNNEL_INFO" | sed -n '1p')
|
|
99
|
+
OWN_TUNNEL_PARENT=$(printf '%s\n' "$OWN_TUNNEL_INFO" | sed -n '2p')
|
|
86
100
|
fi
|
|
87
101
|
|
|
88
102
|
UNFAMILIAR_URLS=""
|
|
@@ -101,6 +115,15 @@ PY
|
|
|
101
115
|
if [ -n "$OWN_TUNNEL_HOST" ] && [ "$URL_HOST" = "$OWN_TUNNEL_HOST" ]; then
|
|
102
116
|
continue
|
|
103
117
|
fi
|
|
118
|
+
# Skip SIBLING NODES of the same agent: any host under the agent's own
|
|
119
|
+
# tunnel parent domain (e.g. own 'echo.dawn-tunnel.dev' → trust
|
|
120
|
+
# 'echo-mini.dawn-tunnel.dev'). A multi-machine agent reaches its other
|
|
121
|
+
# machines via per-machine subdomains of the operator's tunnel domain;
|
|
122
|
+
# those are agent-controlled, not confabulated. Guarded to >=3-label
|
|
123
|
+
# parents above so this never trusts a bare public-suffix apex.
|
|
124
|
+
if [ -n "$OWN_TUNNEL_PARENT" ] && { [ "$URL_HOST" = "$OWN_TUNNEL_PARENT" ] || [ "${URL_HOST%.$OWN_TUNNEL_PARENT}" != "$URL_HOST" ]; }; then
|
|
125
|
+
continue
|
|
126
|
+
fi
|
|
104
127
|
# Skip Cloudflare quick-tunnel hosts. These are ephemeral but agent-generated.
|
|
105
128
|
if echo "$URL_HOST" | grep -qE '(^|\.)trycloudflare\.com$'; then
|
|
106
129
|
continue
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
# Upgrade Guide — vNEXT
|
|
2
|
+
|
|
3
|
+
<!-- assembled-by: assemble-next-md -->
|
|
4
|
+
<!-- bump: patch -->
|
|
5
|
+
|
|
6
|
+
## What Changed
|
|
7
|
+
|
|
8
|
+
**The feedback-factory migration's parity check no longer flags two systems as
|
|
9
|
+
"diverged" just because they spell the same status differently.** As Portal's
|
|
10
|
+
feedback processor is ported into Instar, the two run side-by-side and a parity
|
|
11
|
+
comparator confirms they reach the same conclusions before any cutover. But Portal
|
|
12
|
+
still writes the legacy status words (`open`, `fixed`, `resolved`) while the ported
|
|
13
|
+
Instar processor emits the canonical lifecycle words (`new`, `fix_applied`,
|
|
14
|
+
`closed`). The comparator compared those words literally, so a cluster Portal
|
|
15
|
+
marked `resolved` and Instar marked `closed` — the *same* outcome — was reported as
|
|
16
|
+
a divergence, which structurally blocks the cutover. That was benign vocabulary
|
|
17
|
+
skew being treated as a real history fork.
|
|
18
|
+
|
|
19
|
+
The fix adds the canonical status-normalization primitives Dawn (Portal's owner)
|
|
20
|
+
pinned as the authoritative contract — a legacy→canonical projection map, a
|
|
21
|
+
terminal-state check evaluated on the normalized status, and an idempotent
|
|
22
|
+
`normalizeStatus()` — and applies the projection to **both sides** before the
|
|
23
|
+
parity comparator comparison. A genuine lifecycle mismatch still surfaces, and the
|
|
24
|
+
reported values stay raw so an operator still sees each side's actual stored status.
|
|
25
|
+
|
|
26
|
+
**A moved conversation's reply no longer hangs silently when the other machine
|
|
27
|
+
is briefly unreachable.** When you move a conversation to another machine, that
|
|
28
|
+
machine relays its replies through the machine that holds the Telegram
|
|
29
|
+
connection. That relay had two operational defects, both found by driving the
|
|
30
|
+
multi-machine feature live: it had no time limit (so when the receiving machine's
|
|
31
|
+
connection was momentarily restarting, the reply hung for over a minute with no
|
|
32
|
+
result), and it failed completely silently (a dropped reply wrote nothing to the
|
|
33
|
+
log, so there was no way to tell why it didn't arrive).
|
|
34
|
+
|
|
35
|
+
The relay is now bounded and observable: it gives the receiving machine a fixed
|
|
36
|
+
window (15 seconds by default, adjustable) and then fails fast, and every failure
|
|
37
|
+
writes one clear line saying exactly what went wrong (no reachable machine, a
|
|
38
|
+
rejection with its status code, or a timeout). The relay logic was also extracted
|
|
39
|
+
into its own well-tested unit.
|
|
40
|
+
|
|
41
|
+
It also no longer reports a false success: previously the relay could report
|
|
42
|
+
"delivered" even when the message never actually reached the chat (it accepted a
|
|
43
|
+
response that carried no real message id). Now the receiving machine returns the
|
|
44
|
+
real message id and the relay only counts a reply as delivered when that id is
|
|
45
|
+
present — otherwise it's treated as undelivered and surfaced, so a busy or flaky
|
|
46
|
+
moment becomes a real, visible failure (and a retry candidate) instead of a
|
|
47
|
+
silent loss dressed up as success.
|
|
48
|
+
|
|
49
|
+
`GET /updates/status` now includes the `restartImmediately` field. PR #641 added
|
|
50
|
+
the primary-developer-mode flag and claimed it was surfaced in this endpoint, but
|
|
51
|
+
the route's hand-picked response object had omitted it — so the flag's live state
|
|
52
|
+
wasn't actually readable there. This adds the one missing line so the route
|
|
53
|
+
echoes the value `AutoUpdater.getStatus()` already computes.
|
|
54
|
+
|
|
55
|
+
**The pre-messaging honesty guard now recognizes your agent's other machines as
|
|
56
|
+
its own.** A multi-machine instar agent runs on more than one machine, each
|
|
57
|
+
exposed at its own subdomain under the operator's tunnel domain (for example the
|
|
58
|
+
laptop and the Mac Mini each get a subdomain of the same tunnel domain). The
|
|
59
|
+
URL-provenance check — which blocks messages containing made-up-looking links —
|
|
60
|
+
previously trusted only the agent's exact own tunnel host, so a legitimate
|
|
61
|
+
operation addressing a sibling machine of the same agent was falsely flagged as
|
|
62
|
+
an "unfamiliar domain" and blocked.
|
|
63
|
+
|
|
64
|
+
It now also trusts hosts that share the agent's tunnel parent domain, so sibling
|
|
65
|
+
nodes are recognized — while still blocking genuinely fabricated links. Two
|
|
66
|
+
guards keep it safe: the parent domain is derived only when the own host has at
|
|
67
|
+
least three labels (never trusts a bare public-suffix apex), and the match is a
|
|
68
|
+
true DNS-suffix test (a look-alike like echo.dawn-tunnel.dev.evil.com stays
|
|
69
|
+
blocked because it actually ends in evil.com). Single-machine agents are
|
|
70
|
+
completely unaffected.
|
|
71
|
+
|
|
72
|
+
## What to Tell Your User
|
|
73
|
+
|
|
74
|
+
Nothing to configure, and nothing changes for any current capability. This is
|
|
75
|
+
internal plumbing for the in-progress feedback-factory migration: the
|
|
76
|
+
Portal↔Instar parity check that gates cutover now reconciles the two status
|
|
77
|
+
vocabularies instead of failing on the difference. No routes, jobs, or user-facing
|
|
78
|
+
behavior are affected.
|
|
79
|
+
|
|
80
|
+
Nothing to configure. If you run across more than one machine and move a
|
|
81
|
+
conversation between them, a reply that can't be delivered now fails quickly with
|
|
82
|
+
a clear reason in the log, instead of hanging for over a minute and vanishing
|
|
83
|
+
without explanation. Single-machine setups are unaffected.
|
|
84
|
+
|
|
85
|
+
Nothing to do. If anyone asks how to tell whether an agent is set to always jump
|
|
86
|
+
to the newest version immediately, the status readout now shows that on/off state
|
|
87
|
+
directly.
|
|
88
|
+
|
|
89
|
+
Nothing to configure. If your agent runs across more than one machine, it can
|
|
90
|
+
now perform legitimate cross-machine operations (like the multi-machine reply
|
|
91
|
+
relay) without its own honesty guard blocking the request — while still catching
|
|
92
|
+
invented links. If you only run one machine, nothing changes at all.
|
|
93
|
+
|
|
94
|
+
## Summary of New Capabilities
|
|
95
|
+
|
|
96
|
+
- `normalizeStatus()` / `isTerminalStatus()` / `V1_TO_V2_STATUS` / `TERMINAL_STATUSES`
|
|
97
|
+
(`src/feedback-factory/processor/transitions.ts`) — the canonical status-vocabulary
|
|
98
|
+
primitives, byte-mirrored from Portal's reference (`feedback-processor.py` :1035 / :379).
|
|
99
|
+
Normalize-before-terminal-check so a legacy `resolved` correctly reads terminal.
|
|
100
|
+
- `compareClusterOutcomes` (`src/feedback-factory/processor/parity.ts`) now normalizes
|
|
101
|
+
both sides before comparing status — eliminating false cutover-blocking divergences
|
|
102
|
+
from v1↔v2 vocabulary skew while still flagging real lifecycle mismatches.
|
|
103
|
+
|
|
104
|
+
- `relayOutbound` (`src/core/TelegramRelay.ts`) — the tokenless-standby reply
|
|
105
|
+
relay, extracted as a pure injectable unit with a bounded `AbortController`
|
|
106
|
+
timeout and a log line on every failure path. `server.ts` wires
|
|
107
|
+
`telegram.outboundRelay` to it. New optional `multiMachine.relayTimeoutMs`
|
|
108
|
+
(default 15000).
|
|
109
|
+
|
|
110
|
+
- `GET /updates/status` response gains a `restartImmediately` boolean (default
|
|
111
|
+
false for the fleet; true for an agent in primary-developer mode). Read-only;
|
|
112
|
+
agents gain it automatically on update.
|
|
113
|
+
|
|
114
|
+
- `convergence-check.sh` URL-provenance guard trusts sibling-node tunnel hosts
|
|
115
|
+
(any host under the agent's tunnel parent domain), in addition to the agent's
|
|
116
|
+
own host, Cloudflare quick tunnels, and the static allowlist. Deploys to
|
|
117
|
+
existing agents via the standard `migrateScripts()` template path (the template
|
|
118
|
+
content is the migration — no `PostUpdateMigrator` code change).
|
|
119
|
+
|
|
120
|
+
## Evidence
|
|
121
|
+
|
|
122
|
+
Reproduction: feed the parity comparator one cluster (same fingerprint) whose
|
|
123
|
+
outcome is expressed in the two vocabularies — Instar `closed` vs Portal `resolved`
|
|
124
|
+
(the same terminal outcome) — and observe the status-branch verdict before vs after
|
|
125
|
+
the change. Ran live against the worktree source:
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
input: { instar: "closed", portal: "resolved" }
|
|
129
|
+
BEFORE (raw `i.status !== p.status`): divergent = true ← false positive, blocks cutover
|
|
130
|
+
AFTER (normalizeStatus both sides): divergent = false (both → "closed")
|
|
131
|
+
genuine mismatch (instar "investigating" vs portal "resolved"): still_flagged = true
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
So the benign vocabulary skew that previously produced a red parity verdict now
|
|
135
|
+
reconciles, while a real lifecycle divergence (`investigating` vs `resolved`→`closed`)
|
|
136
|
+
still surfaces. Confirmed across the full pair set + recurrence-not-masked + a green
|
|
137
|
+
`compareInvariants` verdict over a vocabulary-skewed window in
|
|
138
|
+
`tests/unit/feedback-factory/parity.test.ts` (156 unit + 4 integration green, `tsc` clean).
|
|
139
|
+
|
|
140
|
+
- Reproduction (live, 2026-06-01): driving the multi-machine reply proof, a
|
|
141
|
+
relayed reply hung 25s then 70s with no result and no log line; root cause was
|
|
142
|
+
the holder's tunnel being mid-restart, and the relay `fetch` having no timeout.
|
|
143
|
+
Once the tunnel was back, the relay completed (a tone-gate response and an `ok`
|
|
144
|
+
came back through the full standby→holder chain), confirming the path itself
|
|
145
|
+
works — but the hang + silence were real operational defects on the way there.
|
|
146
|
+
- Tests: `tests/unit/telegram-relay-timeout-observability.test.ts` (7) drive the
|
|
147
|
+
real `relayOutbound` with an injected fetch + logger: 2xx returns messageId and
|
|
148
|
+
posts the right URL + `Bearer` header; self-hold no-ops; no-peer-URL logs;
|
|
149
|
+
non-2xx logs the status; **a hanging holder aborts within the timeout (elapsed
|
|
150
|
+
under 2s) and logs `timeout after Nms`**; a network error logs its message; the
|
|
151
|
+
`silent` flag passes through. 7/7 green; `tsc` clean.
|
|
152
|
+
|
|
153
|
+
- The gap was observed live on 1.3.180: with the flag set true in config, the
|
|
154
|
+
agent behaved correctly (restarts not deferred) but `/updates/status` returned
|
|
155
|
+
no `restartImmediately` field — the #641 "surfaced in /updates/status" claim
|
|
156
|
+
was incomplete.
|
|
157
|
+
- Test: `tests/integration/updates-status-restart-immediately-route.test.ts`
|
|
158
|
+
(+2) — asserts the field is present and correct for both true and false. tsc +
|
|
159
|
+
linters clean.
|
|
160
|
+
|
|
161
|
+
- Reproduction (live, 2026-06-01): proving the multi-machine reply relay, the
|
|
162
|
+
command `POST https://echo-mini.dawn-tunnel.dev/telegram/reply/8882` (laptop
|
|
163
|
+
driving the mini's tokenless-standby relay) was blocked by the
|
|
164
|
+
`grounding-before-messaging` hook because its convergence-check URL-provenance
|
|
165
|
+
guard flagged `echo-mini.dawn-tunnel.dev` as unfamiliar — it knew the laptop's
|
|
166
|
+
own host `echo.dawn-tunnel.dev` but not its sibling. The mini's LAN address was
|
|
167
|
+
firewalled, so the tunnel host was the only path, and the proof was blocked.
|
|
168
|
+
- Before/after (the guard decision, real shipped template): own host
|
|
169
|
+
`echo.dawn-tunnel.dev` → parent `dawn-tunnel.dev`; sibling
|
|
170
|
+
`echo-mini.dawn-tunnel.dev` BLOCK→PASS (the fix); own host PASS→PASS;
|
|
171
|
+
`totally-fake-host.xyz` BLOCK→BLOCK; look-alike `echo.dawn-tunnel.dev.evil.com`
|
|
172
|
+
BLOCK→BLOCK; arbitrary host with a 2-label apex config BLOCK→BLOCK (apex not
|
|
173
|
+
over-trusted).
|
|
174
|
+
- Tests: `tests/unit/convergence-check-sibling-trust.test.ts` (6) execute the
|
|
175
|
+
real shipped `convergence-check.sh`: `bash -n` valid; sibling trusted; own
|
|
176
|
+
unchanged; fabricated blocked; look-alike suffix blocked; 2-label apex not
|
|
177
|
+
over-trusted. 6/6 green; `tsc` clean.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Upgrade Guide — vNEXT
|
|
2
|
+
|
|
3
|
+
<!-- assembled-by: assemble-next-md -->
|
|
4
|
+
<!-- bump: patch -->
|
|
5
|
+
|
|
6
|
+
## What Changed
|
|
7
|
+
|
|
8
|
+
Agent-to-agent messages now pass through a **"Ground Before You Assert"** gate
|
|
9
|
+
before they leave. When you send a peer a message via `threadline_send` that
|
|
10
|
+
asserts a full `https://…` URL to a host you have **not** confirmed this
|
|
11
|
+
session, the send is refused with a clear explanation instead of going out —
|
|
12
|
+
because an unverified claim handed to another agent propagates as fact (this is
|
|
13
|
+
exactly the failure that caused recent Echo↔Dawn incoherence: a peer handed over
|
|
14
|
+
an endpoint that 404'd and a token that 401'd, and both were treated as real).
|
|
15
|
+
|
|
16
|
+
It is a **block-with-override** gate, not a wall: known infrastructure hosts
|
|
17
|
+
(github, localhost, anthropic, npm, …) pass; a **bare** host reference (no
|
|
18
|
+
scheme — e.g. `dawn.bot-me.ai/api/instar/read`) passes, since it conveys the same
|
|
19
|
+
already-verified information without asserting a live, fetchable endpoint; and
|
|
20
|
+
once you have actually verified the URL (e.g. you curled it), you resend with the
|
|
21
|
+
new `groundingAck: true` argument and it goes through. So a false positive can
|
|
22
|
+
never permanently block a legitimate send — it only forces a conscious moment of
|
|
23
|
+
verification on the exact class of claim that has burned cross-agent trust.
|
|
24
|
+
|
|
25
|
+
The check is a pure function and runs inside the Threadline MCP process, so it
|
|
26
|
+
adds no network round-trip and never blocks on I/O.
|
|
27
|
+
|
|
28
|
+
## What to Tell Your User
|
|
29
|
+
|
|
30
|
+
Your agent is now harder to mislead when it talks to other agents. If it is
|
|
31
|
+
about to tell a peer that some web endpoint is live without having checked, it
|
|
32
|
+
stops itself, verifies, and only then asserts it — the same discipline it already
|
|
33
|
+
applies before messaging you. Nothing for you to configure; agent-to-agent
|
|
34
|
+
collaboration just becomes more trustworthy.
|
|
35
|
+
|
|
36
|
+
## Summary of New Capabilities
|
|
37
|
+
|
|
38
|
+
- `threadline_send` refuses a message asserting a scheme-qualified URL to an
|
|
39
|
+
unverified host, unless the caller sets the new `groundingAck: true` argument
|
|
40
|
+
(after verifying) — the structural realization of "grounding before every
|
|
41
|
+
Threadline communication."
|
|
42
|
+
- Known/infra hosts and bare-host references (no scheme) are exempt, so the gate
|
|
43
|
+
targets only unverified live-endpoint assertions.
|
|
44
|
+
- Pure, in-process check — no added latency, no I/O dependency.
|
|
45
|
+
|
|
46
|
+
## Evidence
|
|
47
|
+
|
|
48
|
+
- Logic: `src/threadline/ThreadlineGroundingGate.ts` (`evaluateOutboundGrounding`),
|
|
49
|
+
9 unit tests covering both sides of the boundary
|
|
50
|
+
(`tests/unit/threadline/ThreadlineGroundingGate.test.ts`).
|
|
51
|
+
- Wiring: `src/threadline/ThreadlineMCPServer.ts` `registerSendTool` — 4 integration
|
|
52
|
+
tests over the real MCP Client/Server transport (refuses an ungrounded URL and
|
|
53
|
+
proves `sendMessage` is never called; allows with `groundingAck`; allows a bare
|
|
54
|
+
host; allows a known/infra domain) in
|
|
55
|
+
`tests/unit/threadline/ThreadlineMCPServer.test.ts` (49 tests green).
|
|
56
|
+
- `tsc --noEmit` clean; companion constitution article
|
|
57
|
+
("Ground Before You Assert", `docs/STANDARDS-REGISTRY.md`) proposed separately
|
|
58
|
+
and awaiting operator ratification.
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# Side-Effects Review — feedback-factory canonical status normalization (Phase 1)
|
|
2
|
+
|
|
3
|
+
**Slug:** `feedback-factory-status-normalization`
|
|
4
|
+
**Date:** `2026-05-31`
|
|
5
|
+
**Author:** Echo
|
|
6
|
+
**Spec:** `docs/specs/feedback-factory-migration.md` (converged v2, approved by Justin 2026-05-26, topic 12476)
|
|
7
|
+
**Second-pass reviewer:** not required (pure additive primitives + one comparator predicate; both-sides-of-boundary unit coverage)
|
|
8
|
+
**Scope:** The status-vocabulary normalization primitives in `src/feedback-factory/processor/transitions.ts`, and their application in the Phase-3 parity comparator `src/feedback-factory/processor/parity.ts` (`compareClusterOutcomes`). Driven by Dawn's pinned canonical contract (thread-978f016b): the authoritative `V1_TO_V2_STATUS` (feedback-processor.py:1035) + terminal set (:379) that Portal owns.
|
|
9
|
+
|
|
10
|
+
## Summary of the change
|
|
11
|
+
|
|
12
|
+
During the migration, three status vocabularies coexist: the v1 legacy literals Portal still writes (`open`/`fixed`/`resolved`/…), the mid-migration write-gate superset both sides accept, and the canonical v2 lifecycle (`V2_STATES`). The Phase-3 live-mirror parity comparator compared cluster outcome status with a raw `i.status !== p.status`, so an equivalent cluster — Portal `resolved` vs the ported Instar processor's `closed` — read as a **divergence**, which structurally **blocks Phase-4 cutover** (`ParityResult.divergent`). That is benign vocabulary skew being treated as a real history fork.
|
|
13
|
+
|
|
14
|
+
This change adds three pure primitives to `transitions.ts` — `V1_TO_V2_STATUS` (the v1→v2 projection map), `TERMINAL_STATUSES` + `isTerminalStatus()` (terminal check on the normalized status, incl. the terminal-only `legacy_closed` literal), and `normalizeStatus()` (idempotent v1→v2 projection; already-v2 and unknown values pass through) — and applies `normalizeStatus` to BOTH sides of the status comparison in `compareClusterOutcomes` before the `!==`. Reported divergence values stay raw so the operator still sees each side's actual stored status when a genuine mismatch survives. **No route/job behavior changes** — the parity comparator is exercised by the dry-run runner, and `transitions.ts` is a pure library.
|
|
15
|
+
|
|
16
|
+
## Decision-point inventory
|
|
17
|
+
|
|
18
|
+
- `compareClusterOutcomes` status equality (`parity.ts:~155`) — **modify** — now compares in normalized v2 space; recurrence + missing-on-one-side checks unchanged.
|
|
19
|
+
- `normalizeStatus` / `isTerminalStatus` / `V1_TO_V2_STATUS` / `TERMINAL_STATUSES` (`transitions.ts`) — **add** — canonical vocabulary primitives mirrored from Portal's reference.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 1. Over-block
|
|
24
|
+
|
|
25
|
+
The only "block/allow"-like surface here is `ParityResult.divergent`, which gates Phase-4 cutover. **Over-block before this change:** a window where Portal stored `resolved`/`open`/`fixed` and Instar recomputed `closed`/`new`/`fix_applied` for the SAME fingerprint produced a `status` divergence and a red verdict — blocking cutover on noise. This change removes exactly that false block: each v1↔v2 pair now reconciles. It does not newly reject any input — it only stops rejecting vocabulary-equivalent ones.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## 2. Under-block
|
|
30
|
+
|
|
31
|
+
**What real divergence could normalization now mask?** Only a difference that vanishes under the pinned v1→v2 map. The map is a small, fixed bijection on the legacy literals (`open→new`, `fixed→fix_applied`, `resolved→closed`; investigating/wontfix/duplicate identity). A genuine lifecycle mismatch — e.g. Instar `investigating` vs Portal `resolved` (→`closed`) — still differs after normalization and is still flagged (asserted in `parity.test.ts`). Recurrence divergence on a vocabulary-equivalent status is also still flagged (asserted) — normalization touches status only. Risk that the map itself is wrong is contained: it is byte-mirrored from Dawn's owned reference and asserted against drift in `transitions.test.ts`.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 3. Level-of-abstraction fit
|
|
36
|
+
|
|
37
|
+
Correct layer. `normalizeStatus`/`isTerminalStatus` are pure processor-logic primitives living beside the existing ported lifecycle decision functions (`canTransition`, `detectCycling`) in `transitions.ts` — the same module that already owns `V2_STATES`. The parity comparator is the right and only consumer for the projection at cutover time; it now USES the shared primitive rather than re-encoding status equality. No higher-level gate is bypassed and no lower-level primitive is re-implemented.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## 4. Signal vs authority compliance
|
|
42
|
+
|
|
43
|
+
**Required reference:** [docs/signal-vs-authority.md](../../docs/signal-vs-authority.md)
|
|
44
|
+
|
|
45
|
+
- [x] No — this change has no block/allow surface over user/agent messages. `ParityResult.divergent` is a structural equivalence signal consumed by the dry-run/cutover decision (a human-gated process), not an autonomous block on traffic.
|
|
46
|
+
|
|
47
|
+
`compareClusterOutcomes` is a deterministic comparator over two pre-computed outcome lists; it owns no runtime authority over messages or operations. The normalization makes its signal *more* accurate (fewer false divergences) without granting it new authority. The terminal authority over a cluster's lifecycle remains with the curated cluster history (per the spec's Signal-vs-Authority lesson), untouched here.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## 5. Interactions
|
|
52
|
+
|
|
53
|
+
- **Shadowing:** none. The status branch is independent of the fingerprint invariant (invariant 1) and the recurrence branch; normalization is scoped to the status `!==` only. `missing-instar`/`missing-portal` paths are unchanged.
|
|
54
|
+
- **Double-fire:** none. Single comparator, single call site (the dry-run runner).
|
|
55
|
+
- **Races:** none. Pure functions over injected snapshots; no shared mutable state.
|
|
56
|
+
- **Feedback loops:** none. The comparator reads Portal's read-only snapshot + supplied Instar outcomes and emits a verdict; it writes nothing back into either system.
|
|
57
|
+
- **Import graph:** `parity.ts` now imports `normalizeStatus` from `transitions.ts`. `transitions.ts` imports nothing — no cycle introduced (confirmed: `tsc --noEmit` clean).
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## 6. External surfaces
|
|
62
|
+
|
|
63
|
+
- **Other agents / install base:** none. Internal feedback-factory library code; not wired to a route or job. No CLAUDE.md-template/hook/config surface touched → no Migration-Parity obligation.
|
|
64
|
+
- **External systems:** none. Portal is read-only here; no write path.
|
|
65
|
+
- **Persistent state:** none. No schema, ledger, or memory file change. The JSONL audit-trail RECORD shape (`dryRunCompare.toRecords`) is unchanged — the `status` divergence still reports raw values, so existing audit consumers see the same field semantics.
|
|
66
|
+
- **Reported-value semantics:** an emitted `status` divergence continues to carry the RAW stored status of each side (not the normalized form), deliberately — so a human reading the audit trail sees what each side actually stored. Documented in code + tests.
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## 7. Rollback cost
|
|
71
|
+
|
|
72
|
+
Pure code change — revert the two source edits and ship as a patch. No persistent state, no data migration, no agent-state repair, no user-visible surface. Reverting restores the prior raw `!==` comparison; the only effect of a revert is the re-appearance of vocabulary-skew false divergences in a dry-run (a stricter, not looser, gate — fail-safe direction for a cutover block).
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Equivalence verification
|
|
77
|
+
|
|
78
|
+
- `V1_TO_V2_STATUS` and `TERMINAL_STATUSES` are byte-mirrored from Dawn's pinned authoritative definitions (feedback-processor.py:1035 / :379) and asserted exactly in `transitions.test.ts` (no-drift tests).
|
|
79
|
+
- `normalizeStatus` proven idempotent (no v2 output value is itself a re-mapping v1 key) — asserted via double-apply.
|
|
80
|
+
- `isTerminalStatus` proven to normalize-before-check: raw v1 `resolved` reads terminal (the load-bearing case); `legacy_closed` is terminal but not a `V2_STATES` member.
|
|
81
|
+
- `transitions.ts` change is **purely additive** — `canTransition`/`detectCycling` (the Python byte-parity surface covered by `scripts/feedback-factory/transitions-parity.mjs`) are untouched, so byte-exact parity with the reference is preserved by construction.
|
|
82
|
+
|
|
83
|
+
## Tests
|
|
84
|
+
|
|
85
|
+
- **Tier-1 unit (CI):** `tests/unit/feedback-factory/transitions.test.ts` — `normalizeStatus` (each mapping, identity entries, idempotence, already-v2 passthrough, unknown passthrough, exact-map no-drift) and `isTerminalStatus` (every terminal state, the normalize-before-check `resolved` case, non-terminal v1 literals incl. `fixed→fix_applied`, exact-set no-drift, `legacy_closed`). `tests/unit/feedback-factory/parity.test.ts` — each v1↔v2 pair reconciles, direction-agnostic, genuine lifecycle divergence still flagged with RAW reported values, recurrence not masked, and a green `compareInvariants` verdict across a vocabulary-skewed window. **156 feedback-factory unit tests green, `tsc` clean.**
|
|
86
|
+
- **Tier-2 integration:** `tests/integration/feedback-factory-process.test.ts` — 4/4 green (no regression in the processing composition).
|
|
87
|
+
- **No new E2E tier:** the comparator is not wired to a live route/job — the live dual-forward parity run (the Phase-4 cutover gate) is the operational verification and runs against Portal's `/api/instar/read` via `HttpParitySource`. Reasoned decision, documented.
|
|
88
|
+
|
|
89
|
+
## Conclusion
|
|
90
|
+
|
|
91
|
+
This review produced no design change — the projection is the minimal, contract-faithful fix for the false-divergence seam Dawn pinned, scoped precisely to the parity comparator + the shared primitives. The two consumer-side sites that ALSO read raw status literals — `FeedbackStore.getActiveClusters` (`!= 'resolved'`) and `reportPartition` (raw `'open'`/`'fixed'`) — were deliberately left out of this change because the correct fix hinges on the canonical active/merge-candidate query semantics (`!= closed`, faithful to the reference `status != 'resolved'`, vs full `!isTerminal`), which is a bilateral question for Dawn (the domain owner) rather than a guess that could itself introduce a divergence. That open question is being raised to Dawn directly on thread-978f016b. Clear to ship.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Side effects — URL-provenance sibling-node trust
|
|
2
|
+
|
|
3
|
+
## What changes at runtime
|
|
4
|
+
|
|
5
|
+
The pre-messaging convergence check's URL-provenance guard now additionally
|
|
6
|
+
trusts URL hosts that share the agent's tunnel **parent** domain (sibling nodes
|
|
7
|
+
of the same multi-machine agent), in addition to the agent's exact own tunnel
|
|
8
|
+
host, Cloudflare quick tunnels, and the static allowlist it already trusted.
|
|
9
|
+
|
|
10
|
+
## Who is affected
|
|
11
|
+
|
|
12
|
+
- **Single-machine agents:** NO behavior change. They address no sibling nodes;
|
|
13
|
+
the parent-domain trust simply never matches a host they'd ever message. A
|
|
14
|
+
fabricated unfamiliar URL is still flagged exactly as before.
|
|
15
|
+
- **Multi-machine agents:** a message that legitimately references a sibling
|
|
16
|
+
node (e.g. the laptop addressing the mini's tunnel host to drive the
|
|
17
|
+
multi-machine reply relay) is no longer falsely flagged as an "unfamiliar
|
|
18
|
+
domain."
|
|
19
|
+
|
|
20
|
+
## Blast radius
|
|
21
|
+
|
|
22
|
+
- Single file: `src/templates/scripts/convergence-check.sh`, the URL-provenance
|
|
23
|
+
block only. Re-deployed to `.instar/scripts/convergence-check.sh` via the
|
|
24
|
+
existing `migrateScripts()` template-load path (no PostUpdateMigrator code
|
|
25
|
+
change; the template content IS the migration).
|
|
26
|
+
- No config keys added/changed. No new dependency. The check still runs as the
|
|
27
|
+
same heuristic gate behind the `grounding-before-messaging` hook.
|
|
28
|
+
|
|
29
|
+
## Failure modes considered
|
|
30
|
+
|
|
31
|
+
- **Over-trust of a public-suffix apex:** prevented — the parent is derived only
|
|
32
|
+
when the own tunnel host has ≥3 DNS labels, so a 2-label apex config yields no
|
|
33
|
+
parent (verified by test).
|
|
34
|
+
- **Look-alike suffix attack** (`echo.dawn-tunnel.dev.evil.com`): blocked — the
|
|
35
|
+
match is a true DNS-suffix test (`${URL_HOST%.$PARENT}`), so a host that merely
|
|
36
|
+
contains the parent mid-string but ends elsewhere is not trusted (verified by
|
|
37
|
+
test).
|
|
38
|
+
- **Missing/empty tunnel config:** no parent derived → unchanged behavior.
|
|
39
|
+
|
|
40
|
+
## Not touched
|
|
41
|
+
|
|
42
|
+
- The pre-existing inline fallback `PostUpdateMigrator.getConvergenceCheckInline()`
|
|
43
|
+
is intentionally NOT modified here. In practice `loadTemplate()` always returns
|
|
44
|
+
the template file, so the inline path is dead code; it additionally has a
|
|
45
|
+
separate, pre-existing bash syntax error on `main` (independent of this change)
|
|
46
|
+
and entangling a fix would muddy this diff. Flagged as a separate latent issue.
|
package/upgrades/1.3.183.md
DELETED
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
# Upgrade Guide — vNEXT
|
|
2
|
-
|
|
3
|
-
<!-- assembled-by: assemble-next-md -->
|
|
4
|
-
<!-- bump: patch -->
|
|
5
|
-
|
|
6
|
-
## What Changed
|
|
7
|
-
|
|
8
|
-
**A moved conversation's reply no longer hangs silently when the other machine
|
|
9
|
-
is briefly unreachable.** When you move a conversation to another machine, that
|
|
10
|
-
machine relays its replies through the machine that holds the Telegram
|
|
11
|
-
connection. That relay had two operational defects, both found by driving the
|
|
12
|
-
multi-machine feature live: it had no time limit (so when the receiving machine's
|
|
13
|
-
connection was momentarily restarting, the reply hung for over a minute with no
|
|
14
|
-
result), and it failed completely silently (a dropped reply wrote nothing to the
|
|
15
|
-
log, so there was no way to tell why it didn't arrive).
|
|
16
|
-
|
|
17
|
-
The relay is now bounded and observable: it gives the receiving machine a fixed
|
|
18
|
-
window (15 seconds by default, adjustable) and then fails fast, and every failure
|
|
19
|
-
writes one clear line saying exactly what went wrong (no reachable machine, a
|
|
20
|
-
rejection with its status code, or a timeout). The relay logic was also extracted
|
|
21
|
-
into its own well-tested unit.
|
|
22
|
-
|
|
23
|
-
It also no longer reports a false success: previously the relay could report
|
|
24
|
-
"delivered" even when the message never actually reached the chat (it accepted a
|
|
25
|
-
response that carried no real message id). Now the receiving machine returns the
|
|
26
|
-
real message id and the relay only counts a reply as delivered when that id is
|
|
27
|
-
present — otherwise it's treated as undelivered and surfaced, so a busy or flaky
|
|
28
|
-
moment becomes a real, visible failure (and a retry candidate) instead of a
|
|
29
|
-
silent loss dressed up as success.
|
|
30
|
-
|
|
31
|
-
`GET /updates/status` now includes the `restartImmediately` field. PR #641 added
|
|
32
|
-
the primary-developer-mode flag and claimed it was surfaced in this endpoint, but
|
|
33
|
-
the route's hand-picked response object had omitted it — so the flag's live state
|
|
34
|
-
wasn't actually readable there. This adds the one missing line so the route
|
|
35
|
-
echoes the value `AutoUpdater.getStatus()` already computes.
|
|
36
|
-
|
|
37
|
-
## What to Tell Your User
|
|
38
|
-
|
|
39
|
-
Nothing to configure. If you run across more than one machine and move a
|
|
40
|
-
conversation between them, a reply that can't be delivered now fails quickly with
|
|
41
|
-
a clear reason in the log, instead of hanging for over a minute and vanishing
|
|
42
|
-
without explanation. Single-machine setups are unaffected.
|
|
43
|
-
|
|
44
|
-
Nothing to do. If anyone asks how to tell whether an agent is set to always jump
|
|
45
|
-
to the newest version immediately, the status readout now shows that on/off state
|
|
46
|
-
directly.
|
|
47
|
-
|
|
48
|
-
## Summary of New Capabilities
|
|
49
|
-
|
|
50
|
-
- `relayOutbound` (`src/core/TelegramRelay.ts`) — the tokenless-standby reply
|
|
51
|
-
relay, extracted as a pure injectable unit with a bounded `AbortController`
|
|
52
|
-
timeout and a log line on every failure path. `server.ts` wires
|
|
53
|
-
`telegram.outboundRelay` to it. New optional `multiMachine.relayTimeoutMs`
|
|
54
|
-
(default 15000).
|
|
55
|
-
|
|
56
|
-
- `GET /updates/status` response gains a `restartImmediately` boolean (default
|
|
57
|
-
false for the fleet; true for an agent in primary-developer mode). Read-only;
|
|
58
|
-
agents gain it automatically on update.
|
|
59
|
-
|
|
60
|
-
## Evidence
|
|
61
|
-
|
|
62
|
-
- Reproduction (live, 2026-06-01): driving the multi-machine reply proof, a
|
|
63
|
-
relayed reply hung 25s then 70s with no result and no log line; root cause was
|
|
64
|
-
the holder's tunnel being mid-restart, and the relay `fetch` having no timeout.
|
|
65
|
-
Once the tunnel was back, the relay completed (a tone-gate response and an `ok`
|
|
66
|
-
came back through the full standby→holder chain), confirming the path itself
|
|
67
|
-
works — but the hang + silence were real operational defects on the way there.
|
|
68
|
-
- Tests: `tests/unit/telegram-relay-timeout-observability.test.ts` (7) drive the
|
|
69
|
-
real `relayOutbound` with an injected fetch + logger: 2xx returns messageId and
|
|
70
|
-
posts the right URL + `Bearer` header; self-hold no-ops; no-peer-URL logs;
|
|
71
|
-
non-2xx logs the status; **a hanging holder aborts within the timeout (elapsed
|
|
72
|
-
under 2s) and logs `timeout after Nms`**; a network error logs its message; the
|
|
73
|
-
`silent` flag passes through. 7/7 green; `tsc` clean.
|
|
74
|
-
|
|
75
|
-
- The gap was observed live on 1.3.180: with the flag set true in config, the
|
|
76
|
-
agent behaved correctly (restarts not deferred) but `/updates/status` returned
|
|
77
|
-
no `restartImmediately` field — the #641 "surfaced in /updates/status" claim
|
|
78
|
-
was incomplete.
|
|
79
|
-
- Test: `tests/integration/updates-status-restart-immediately-route.test.ts`
|
|
80
|
-
(+2) — asserts the field is present and correct for both true and false. tsc +
|
|
81
|
-
linters clean.
|