instar 1.3.32 → 1.3.34
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/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +47 -1
- package/dist/commands/server.js.map +1 -1
- package/dist/core/types.d.ts +16 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/feedback-factory/dryrun/dryRunCompare.d.ts +82 -0
- package/dist/feedback-factory/dryrun/dryRunCompare.d.ts.map +1 -0
- package/dist/feedback-factory/dryrun/dryRunCompare.js +88 -0
- package/dist/feedback-factory/dryrun/dryRunCompare.js.map +1 -0
- package/dist/feedback-factory/processor/parity.d.ts +111 -0
- package/dist/feedback-factory/processor/parity.d.ts.map +1 -0
- package/dist/feedback-factory/processor/parity.js +118 -0
- package/dist/feedback-factory/processor/parity.js.map +1 -0
- package/dist/feedback-factory/store/ReadOnlyShadowStore.d.ts +59 -0
- package/dist/feedback-factory/store/ReadOnlyShadowStore.d.ts.map +1 -0
- package/dist/feedback-factory/store/ReadOnlyShadowStore.js +88 -0
- package/dist/feedback-factory/store/ReadOnlyShadowStore.js.map +1 -0
- package/dist/messaging/TelegramAdapter.d.ts +12 -1
- package/dist/messaging/TelegramAdapter.d.ts.map +1 -1
- package/dist/messaging/TelegramAdapter.js +28 -7
- package/dist/messaging/TelegramAdapter.js.map +1 -1
- package/dist/monitoring/StopNotifier.d.ts +88 -0
- package/dist/monitoring/StopNotifier.d.ts.map +1 -0
- package/dist/monitoring/StopNotifier.js +105 -0
- package/dist/monitoring/StopNotifier.js.map +1 -0
- package/dist/server/AgentServer.d.ts +2 -0
- package/dist/server/AgentServer.d.ts.map +1 -1
- package/dist/server/AgentServer.js +1 -0
- package/dist/server/AgentServer.js.map +1 -1
- package/dist/server/routes.d.ts +4 -0
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +13 -0
- package/dist/server/routes.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +47 -47
- package/upgrades/1.3.31.md +9 -10
- package/upgrades/1.3.33.md +36 -0
- package/upgrades/1.3.34.md +37 -0
- package/upgrades/side-effects/feedback-factory-dryrun.md +93 -0
- package/upgrades/side-effects/notify-on-stop-layer-b.md +34 -0
- package/upgrades/side-effects/telegram-adapter-multi-instance.md +61 -0
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* parity.ts — the Phase-3 live-mirror invariant comparator.
|
|
3
|
+
*
|
|
4
|
+
* docs/specs/feedback-factory-migration.md §2.3/§2.5: the live dual-forward gate
|
|
5
|
+
* compares ONLY order-independent invariants between Portal's processor and the
|
|
6
|
+
* ported Instar processor — because clustering is order-dependent (a report merges
|
|
7
|
+
* into whichever similar cluster already exists) and the two instances will NOT see
|
|
8
|
+
* reports in identical order/timing, a raw cluster-membership diff would fail on
|
|
9
|
+
* benign ordering noise and pressure us to weaken the gate. The spec pins three
|
|
10
|
+
* invariants:
|
|
11
|
+
*
|
|
12
|
+
* 1. FINGERPRINT (per cluster) — `computeFingerprint(cluster.type, cluster.title)`,
|
|
13
|
+
* exactly as the reference's cmd_backfill_fingerprints
|
|
14
|
+
* (:256) derives it. Recomputing it over Portal's
|
|
15
|
+
* LIVE clusters and diffing against the stored
|
|
16
|
+
* fingerprint is a pure cross-implementation
|
|
17
|
+
* equivalence check — fully order-independent and
|
|
18
|
+
* needs no replay. It is the highest-signal gate:
|
|
19
|
+
* it catches the byte-level Python↔JS divergence
|
|
20
|
+
* (Unicode regex classes, SHA encoding, tokenizer/
|
|
21
|
+
* case-fold) on REAL production titles the
|
|
22
|
+
* recorded adversarial corpus may not cover.
|
|
23
|
+
* 2. terminal STATUS per group — keyed by fingerprint (the stable cluster key),
|
|
24
|
+
* NOT raw clusterId (slug IDs differ across
|
|
25
|
+
* instances). Requires Instar's recomputed outcomes.
|
|
26
|
+
* 3. RECURRENCE/cycling count — keyed by fingerprint; chronic-regression
|
|
27
|
+
* accounting that should converge on the same set.
|
|
28
|
+
*
|
|
29
|
+
* This module is PURE. Invariant 1 needs only Portal's stored clusters (read-only).
|
|
30
|
+
* Invariants 2 & 3 compare two pre-computed outcome lists; the runner
|
|
31
|
+
* (dryrun/dryRunCompare.ts) supplies Instar's side from a throwaway replay — never
|
|
32
|
+
* against Portal's DB (see ReadOnlyShadowStore). `divergent === true` is the
|
|
33
|
+
* structural signal that BLOCKS Phase 4 cutover (spec §2.5 Phase 4/5).
|
|
34
|
+
*/
|
|
35
|
+
import { computeFingerprint } from './fingerprint.js';
|
|
36
|
+
/** The canonical fingerprint for a cluster: exactly the reference's per-cluster derivation. */
|
|
37
|
+
export function clusterFingerprint(cluster) {
|
|
38
|
+
return computeFingerprint(cluster.type, cluster.title);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Invariant 1 (fingerprint) — pure, fully order-independent, no replay. Recomputes
|
|
42
|
+
* each Portal cluster's fingerprint via the ported `computeFingerprint` and diffs
|
|
43
|
+
* against the fingerprint Portal stored. Any mismatch is a REAL divergence (the
|
|
44
|
+
* ported fingerprint logic differs from the Python reference on a real title) —
|
|
45
|
+
* never benign ordering noise. This is the live extension of the recorded-corpus
|
|
46
|
+
* fingerprint-parity harness.
|
|
47
|
+
*
|
|
48
|
+
* Clusters with no stored fingerprint (e.g. created before a backfill) are skipped
|
|
49
|
+
* — there is nothing to compare against, and flagging them would be a false positive.
|
|
50
|
+
*/
|
|
51
|
+
export function compareClusterFingerprints(portalClusters) {
|
|
52
|
+
const out = [];
|
|
53
|
+
for (const c of portalClusters) {
|
|
54
|
+
if (!c.fingerprint)
|
|
55
|
+
continue;
|
|
56
|
+
const instar = clusterFingerprint(c);
|
|
57
|
+
if (instar !== c.fingerprint) {
|
|
58
|
+
out.push({ clusterId: c.clusterId, instar, portal: c.fingerprint });
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return out;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Invariants 2 & 3 (terminal status + recurrence) — keyed by fingerprint, NOT raw
|
|
65
|
+
* clusterId. Compares Instar's recomputed cluster outcomes against Portal's actuals.
|
|
66
|
+
* A fingerprint present on one side but not the other is itself a divergence (the
|
|
67
|
+
* two instances grouped reports differently in a way that matters).
|
|
68
|
+
*/
|
|
69
|
+
export function compareClusterOutcomes(instar, portal) {
|
|
70
|
+
const out = [];
|
|
71
|
+
const instarByFp = new Map(instar.map((c) => [c.fingerprint, c]));
|
|
72
|
+
const portalByFp = new Map(portal.map((c) => [c.fingerprint, c]));
|
|
73
|
+
for (const [fp, p] of portalByFp) {
|
|
74
|
+
const i = instarByFp.get(fp);
|
|
75
|
+
if (!i) {
|
|
76
|
+
out.push({ fingerprint: fp, kind: 'missing-instar', portal: p.status });
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
if (i.status !== p.status) {
|
|
80
|
+
out.push({ fingerprint: fp, kind: 'status', instar: i.status, portal: p.status });
|
|
81
|
+
}
|
|
82
|
+
if (i.recurrenceCount !== p.recurrenceCount) {
|
|
83
|
+
out.push({
|
|
84
|
+
fingerprint: fp,
|
|
85
|
+
kind: 'recurrence',
|
|
86
|
+
instar: i.recurrenceCount,
|
|
87
|
+
portal: p.recurrenceCount,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
for (const [fp, i] of instarByFp) {
|
|
92
|
+
if (!portalByFp.has(fp)) {
|
|
93
|
+
out.push({ fingerprint: fp, kind: 'missing-portal', instar: i.status });
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return out;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Full comparison over all three invariants → the cutover-gating verdict.
|
|
100
|
+
* `instarOutcomes`/`portalOutcomes` are optional: the fingerprint invariant (1) is
|
|
101
|
+
* always run over Portal's clusters; the outcome invariants (2 & 3) run only when
|
|
102
|
+
* both outcome lists are supplied (they require Instar's throwaway replay, which
|
|
103
|
+
* is order-dependent — see dryRunCompare).
|
|
104
|
+
*/
|
|
105
|
+
export function compareInvariants(args) {
|
|
106
|
+
const fingerprintDivergences = compareClusterFingerprints(args.portalClusters);
|
|
107
|
+
const outcomeDivergences = args.instarOutcomes && args.portalOutcomes
|
|
108
|
+
? compareClusterOutcomes(args.instarOutcomes, args.portalOutcomes)
|
|
109
|
+
: [];
|
|
110
|
+
return {
|
|
111
|
+
clustersCompared: args.portalClusters.length,
|
|
112
|
+
outcomesCompared: args.portalOutcomes?.length ?? 0,
|
|
113
|
+
fingerprintDivergences,
|
|
114
|
+
outcomeDivergences,
|
|
115
|
+
divergent: fingerprintDivergences.length > 0 || outcomeDivergences.length > 0,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=parity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parity.js","sourceRoot":"","sources":["../../../src/feedback-factory/processor/parity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ReadOnlyShadowStore.ts — the dry-run write-guard for the feedback factory.
|
|
3
|
+
*
|
|
4
|
+
* Phase 1/3 of the migration (docs/specs/feedback-factory-migration.md §2.5) runs
|
|
5
|
+
* the ported Instar processor against Portal's LIVE canonical DB to compare its
|
|
6
|
+
* decisions against Portal's — but **Portal must remain the sole writer** (the
|
|
7
|
+
* one-shared-DB precondition prevents split-brain; two writers would corrupt the
|
|
8
|
+
* curated bug history). This wrapper enforces that structurally rather than by
|
|
9
|
+
* convention: every READ delegates to the wrapped store (Portal's read-only
|
|
10
|
+
* Postgres adapter in production, an InMemoryFeedbackStore in tests); every WRITE
|
|
11
|
+
* throws {@link ShadowStoreWriteError}.
|
|
12
|
+
*
|
|
13
|
+
* Why a guard and not just "don't call the writers": defense in depth. If any code
|
|
14
|
+
* path (e.g. an accidental `processUnprocessed(shadowStore, ...)` — which writes)
|
|
15
|
+
* runs against this store, the FIRST write attempt throws loudly at the seam
|
|
16
|
+
* instead of silently mutating Portal's data. The dry-run runner (dryRunCompare)
|
|
17
|
+
* never writes — it uses the pure comparator — but the guard means a future
|
|
18
|
+
* mis-wire can't quietly fork history. This is the "writes throw as a guard"
|
|
19
|
+
* contract confirmed with Dawn (the domain owner) on 2026-05-27.
|
|
20
|
+
*
|
|
21
|
+
* Structure > Willpower: the read-only guarantee lives in the type, not a comment.
|
|
22
|
+
*/
|
|
23
|
+
import type { FeedbackStore, FeedbackMetrics } from './FeedbackStore.js';
|
|
24
|
+
import type { FeedbackItem, Cluster } from '../processor/types.js';
|
|
25
|
+
import type { ReopenDecision } from '../processor/reopen.js';
|
|
26
|
+
import type { DispatchRecord } from '../dispatch/dispatch.js';
|
|
27
|
+
/** Thrown when any mutating FeedbackStore method is called on a ReadOnlyShadowStore. */
|
|
28
|
+
export declare class ShadowStoreWriteError extends Error {
|
|
29
|
+
/** The mutating method that was (illegally) attempted. */
|
|
30
|
+
readonly method: string;
|
|
31
|
+
constructor(method: string);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Wraps a {@link FeedbackStore} so it is read-only: reads delegate, writes throw.
|
|
35
|
+
* The delegate supplies the reads — in production that's the Prisma read-only
|
|
36
|
+
* adapter over Portal's Postgres (credentials-gated, see dryRunCompare.ts); in
|
|
37
|
+
* tests it's an InMemoryFeedbackStore seeded with a corpus.
|
|
38
|
+
*/
|
|
39
|
+
export declare class ReadOnlyShadowStore implements FeedbackStore {
|
|
40
|
+
private readonly read;
|
|
41
|
+
constructor(read: FeedbackStore);
|
|
42
|
+
getUnprocessedFeedback(): FeedbackItem[];
|
|
43
|
+
getActiveClusters(): Cluster[];
|
|
44
|
+
getCluster(clusterId: string): Cluster | undefined;
|
|
45
|
+
hasFeedback(feedbackId: string): boolean;
|
|
46
|
+
listDispatches(filter?: {
|
|
47
|
+
since?: string;
|
|
48
|
+
type?: string;
|
|
49
|
+
}): DispatchRecord[];
|
|
50
|
+
findDispatchByTitle(title: string): DispatchRecord | undefined;
|
|
51
|
+
metrics(): FeedbackMetrics;
|
|
52
|
+
upsertClusterFromItem(_clusterId: string, _item: FeedbackItem): void;
|
|
53
|
+
mergeIntoCluster(_clusterId: string, _item: FeedbackItem): void;
|
|
54
|
+
applyReopen(_clusterId: string, _decision: ReopenDecision): void;
|
|
55
|
+
markProcessed(_feedbackId: string, _clusterId: string): void;
|
|
56
|
+
addFeedback(_item: FeedbackItem): void;
|
|
57
|
+
createDispatch(_record: DispatchRecord): void;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=ReadOnlyShadowStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReadOnlyShadowStore.d.ts","sourceRoot":"","sources":["../../../src/feedback-factory/store/ReadOnlyShadowStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,wFAAwF;AACxF,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBACZ,MAAM,EAAE,MAAM;CAS3B;AAED;;;;;GAKG;AACH,qBAAa,mBAAoB,YAAW,aAAa;IAC3C,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,aAAa;IAGhD,sBAAsB,IAAI,YAAY,EAAE;IAGxC,iBAAiB,IAAI,OAAO,EAAE;IAG9B,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAGlD,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAGxC,cAAc,CAAC,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc,EAAE;IAG5E,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAG9D,OAAO,IAAI,eAAe;IAK1B,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI;IAGpE,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI;IAG/D,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,GAAG,IAAI;IAGhE,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAG5D,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAGtC,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;CAG9C"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ReadOnlyShadowStore.ts — the dry-run write-guard for the feedback factory.
|
|
3
|
+
*
|
|
4
|
+
* Phase 1/3 of the migration (docs/specs/feedback-factory-migration.md §2.5) runs
|
|
5
|
+
* the ported Instar processor against Portal's LIVE canonical DB to compare its
|
|
6
|
+
* decisions against Portal's — but **Portal must remain the sole writer** (the
|
|
7
|
+
* one-shared-DB precondition prevents split-brain; two writers would corrupt the
|
|
8
|
+
* curated bug history). This wrapper enforces that structurally rather than by
|
|
9
|
+
* convention: every READ delegates to the wrapped store (Portal's read-only
|
|
10
|
+
* Postgres adapter in production, an InMemoryFeedbackStore in tests); every WRITE
|
|
11
|
+
* throws {@link ShadowStoreWriteError}.
|
|
12
|
+
*
|
|
13
|
+
* Why a guard and not just "don't call the writers": defense in depth. If any code
|
|
14
|
+
* path (e.g. an accidental `processUnprocessed(shadowStore, ...)` — which writes)
|
|
15
|
+
* runs against this store, the FIRST write attempt throws loudly at the seam
|
|
16
|
+
* instead of silently mutating Portal's data. The dry-run runner (dryRunCompare)
|
|
17
|
+
* never writes — it uses the pure comparator — but the guard means a future
|
|
18
|
+
* mis-wire can't quietly fork history. This is the "writes throw as a guard"
|
|
19
|
+
* contract confirmed with Dawn (the domain owner) on 2026-05-27.
|
|
20
|
+
*
|
|
21
|
+
* Structure > Willpower: the read-only guarantee lives in the type, not a comment.
|
|
22
|
+
*/
|
|
23
|
+
/** Thrown when any mutating FeedbackStore method is called on a ReadOnlyShadowStore. */
|
|
24
|
+
export class ShadowStoreWriteError extends Error {
|
|
25
|
+
/** The mutating method that was (illegally) attempted. */
|
|
26
|
+
method;
|
|
27
|
+
constructor(method) {
|
|
28
|
+
super(`ReadOnlyShadowStore: write method '${method}' is forbidden — the dry-run ` +
|
|
29
|
+
`processor must never mutate the canonical feedback DB (Portal is sole ` +
|
|
30
|
+
`writer through cutover; see feedback-factory-migration.md §2.5).`);
|
|
31
|
+
this.name = 'ShadowStoreWriteError';
|
|
32
|
+
this.method = method;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Wraps a {@link FeedbackStore} so it is read-only: reads delegate, writes throw.
|
|
37
|
+
* The delegate supplies the reads — in production that's the Prisma read-only
|
|
38
|
+
* adapter over Portal's Postgres (credentials-gated, see dryRunCompare.ts); in
|
|
39
|
+
* tests it's an InMemoryFeedbackStore seeded with a corpus.
|
|
40
|
+
*/
|
|
41
|
+
export class ReadOnlyShadowStore {
|
|
42
|
+
read;
|
|
43
|
+
constructor(read) {
|
|
44
|
+
this.read = read;
|
|
45
|
+
}
|
|
46
|
+
// --- reads: delegate verbatim ---
|
|
47
|
+
getUnprocessedFeedback() {
|
|
48
|
+
return this.read.getUnprocessedFeedback();
|
|
49
|
+
}
|
|
50
|
+
getActiveClusters() {
|
|
51
|
+
return this.read.getActiveClusters();
|
|
52
|
+
}
|
|
53
|
+
getCluster(clusterId) {
|
|
54
|
+
return this.read.getCluster(clusterId);
|
|
55
|
+
}
|
|
56
|
+
hasFeedback(feedbackId) {
|
|
57
|
+
return this.read.hasFeedback(feedbackId);
|
|
58
|
+
}
|
|
59
|
+
listDispatches(filter) {
|
|
60
|
+
return this.read.listDispatches(filter);
|
|
61
|
+
}
|
|
62
|
+
findDispatchByTitle(title) {
|
|
63
|
+
return this.read.findDispatchByTitle(title);
|
|
64
|
+
}
|
|
65
|
+
metrics() {
|
|
66
|
+
return this.read.metrics();
|
|
67
|
+
}
|
|
68
|
+
// --- writes: forbidden ---
|
|
69
|
+
upsertClusterFromItem(_clusterId, _item) {
|
|
70
|
+
throw new ShadowStoreWriteError('upsertClusterFromItem');
|
|
71
|
+
}
|
|
72
|
+
mergeIntoCluster(_clusterId, _item) {
|
|
73
|
+
throw new ShadowStoreWriteError('mergeIntoCluster');
|
|
74
|
+
}
|
|
75
|
+
applyReopen(_clusterId, _decision) {
|
|
76
|
+
throw new ShadowStoreWriteError('applyReopen');
|
|
77
|
+
}
|
|
78
|
+
markProcessed(_feedbackId, _clusterId) {
|
|
79
|
+
throw new ShadowStoreWriteError('markProcessed');
|
|
80
|
+
}
|
|
81
|
+
addFeedback(_item) {
|
|
82
|
+
throw new ShadowStoreWriteError('addFeedback');
|
|
83
|
+
}
|
|
84
|
+
createDispatch(_record) {
|
|
85
|
+
throw new ShadowStoreWriteError('createDispatch');
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=ReadOnlyShadowStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReadOnlyShadowStore.js","sourceRoot":"","sources":["../../../src/feedback-factory/store/ReadOnlyShadowStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAOH,wFAAwF;AACxF,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C,0DAA0D;IACjD,MAAM,CAAS;IACxB,YAAY,MAAc;QACxB,KAAK,CACH,sCAAsC,MAAM,+BAA+B;YACzE,wEAAwE;YACxE,kEAAkE,CACrE,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,mBAAmB;IACD;IAA7B,YAA6B,IAAmB;QAAnB,SAAI,GAAJ,IAAI,CAAe;IAAG,CAAC;IAEpD,mCAAmC;IACnC,sBAAsB;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAC5C,CAAC;IACD,iBAAiB;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACvC,CAAC;IACD,UAAU,CAAC,SAAiB;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IACD,WAAW,CAAC,UAAkB;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IACD,cAAc,CAAC,MAA0C;QACvD,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IACD,mBAAmB,CAAC,KAAa;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,4BAA4B;IAC5B,qBAAqB,CAAC,UAAkB,EAAE,KAAmB;QAC3D,MAAM,IAAI,qBAAqB,CAAC,uBAAuB,CAAC,CAAC;IAC3D,CAAC;IACD,gBAAgB,CAAC,UAAkB,EAAE,KAAmB;QACtD,MAAM,IAAI,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;IACtD,CAAC;IACD,WAAW,CAAC,UAAkB,EAAE,SAAyB;QACvD,MAAM,IAAI,qBAAqB,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC;IACD,aAAa,CAAC,WAAmB,EAAE,UAAkB;QACnD,MAAM,IAAI,qBAAqB,CAAC,eAAe,CAAC,CAAC;IACnD,CAAC;IACD,WAAW,CAAC,KAAmB;QAC7B,MAAM,IAAI,qBAAqB,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC;IACD,cAAc,CAAC,OAAuB;QACpC,MAAM,IAAI,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;IACpD,CAAC;CACF"}
|
|
@@ -165,6 +165,14 @@ export declare class TelegramAdapter implements MessagingAdapter {
|
|
|
165
165
|
private messageLogPath;
|
|
166
166
|
private offsetPath;
|
|
167
167
|
private stateDir;
|
|
168
|
+
/** Per-bot state root. Equals stateDir for the primary bot; a namespaced sub-dir for
|
|
169
|
+
* non-primary adapters (multi-instance isolation — spec MENTOR-LIVE-READINESS §Fix 2b).
|
|
170
|
+
* Only the per-bot state files (registry/messages/offset/attention) live here; shared
|
|
171
|
+
* config lookups stay on stateDir. */
|
|
172
|
+
private botStateDir;
|
|
173
|
+
/** When true, start() skips ensureLifelineTopic() — a non-primary bot must not create a
|
|
174
|
+
* second Lifeline topic in the chat. */
|
|
175
|
+
private suppressLifelineAutoCreate;
|
|
168
176
|
private attentionItemToTopic;
|
|
169
177
|
private attentionTopicToItem;
|
|
170
178
|
private attentionItems;
|
|
@@ -312,7 +320,10 @@ export declare class TelegramAdapter implements MessagingAdapter {
|
|
|
312
320
|
private eventBus;
|
|
313
321
|
/** Get the event bus for external subscribers (Phase 1e). Returns null if flag is off. */
|
|
314
322
|
getEventBus(): MessagingEventBus | null;
|
|
315
|
-
constructor(config: TelegramConfig, stateDir: string
|
|
323
|
+
constructor(config: TelegramConfig, stateDir: string, opts?: {
|
|
324
|
+
subDir?: string;
|
|
325
|
+
suppressLifelineAutoCreate?: boolean;
|
|
326
|
+
});
|
|
316
327
|
/**
|
|
317
328
|
* Register all Telegram commands with the shared CommandRouter (Phase 1a).
|
|
318
329
|
* Each command delegates back to the existing handler logic.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TelegramAdapter.d.ts","sourceRoot":"","sources":["../../src/messaging/TelegramAdapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TelegramAdapter.d.ts","sourceRoot":"","sources":["../../src/messaging/TelegramAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -137,6 +137,14 @@ export class TelegramAdapter {
|
|
|
137
137
|
messageLogPath;
|
|
138
138
|
offsetPath;
|
|
139
139
|
stateDir;
|
|
140
|
+
/** Per-bot state root. Equals stateDir for the primary bot; a namespaced sub-dir for
|
|
141
|
+
* non-primary adapters (multi-instance isolation — spec MENTOR-LIVE-READINESS §Fix 2b).
|
|
142
|
+
* Only the per-bot state files (registry/messages/offset/attention) live here; shared
|
|
143
|
+
* config lookups stay on stateDir. */
|
|
144
|
+
botStateDir;
|
|
145
|
+
/** When true, start() skips ensureLifelineTopic() — a non-primary bot must not create a
|
|
146
|
+
* second Lifeline topic in the chat. */
|
|
147
|
+
suppressLifelineAutoCreate;
|
|
140
148
|
// Attention queue (persisted to disk)
|
|
141
149
|
attentionItemToTopic = new Map();
|
|
142
150
|
attentionTopicToItem = new Map();
|
|
@@ -289,17 +297,27 @@ export class TelegramAdapter {
|
|
|
289
297
|
getEventBus() {
|
|
290
298
|
return this.eventBus;
|
|
291
299
|
}
|
|
292
|
-
constructor(config, stateDir) {
|
|
300
|
+
constructor(config, stateDir, opts) {
|
|
293
301
|
if (config.chatId && !/^-?\d+$/.test(String(config.chatId))) {
|
|
294
302
|
throw new Error(`Invalid Telegram chatId "${config.chatId}". Chat IDs must be numeric (e.g., -1001234567890). ` +
|
|
295
303
|
`Update messaging.config.chatId in your instar.config.json with a valid numeric ID.`);
|
|
296
304
|
}
|
|
297
305
|
this.config = config;
|
|
298
306
|
this.stateDir = stateDir;
|
|
299
|
-
this.
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
307
|
+
this.suppressLifelineAutoCreate = opts?.suppressLifelineAutoCreate ?? false;
|
|
308
|
+
// Multi-instance isolation: a non-primary adapter (e.g. the mentor bot) namespaces its
|
|
309
|
+
// per-bot state under {stateDir}/{subDir}/ so two adapters never clobber each other's
|
|
310
|
+
// poll-offset / registry / message-log / attention files (the reviewer-flagged
|
|
311
|
+
// collision that makes poll()'s cross-token detection fire continuously). The PRIMARY
|
|
312
|
+
// bot passes no subDir → botStateDir === stateDir → paths are byte-for-byte unchanged.
|
|
313
|
+
this.botStateDir = opts?.subDir ? path.join(stateDir, opts.subDir) : stateDir;
|
|
314
|
+
if (opts?.subDir) {
|
|
315
|
+
fs.mkdirSync(this.botStateDir, { recursive: true });
|
|
316
|
+
}
|
|
317
|
+
this.registryPath = path.join(this.botStateDir, 'topic-session-registry.json');
|
|
318
|
+
this.messageLogPath = path.join(this.botStateDir, 'telegram-messages.jsonl');
|
|
319
|
+
this.offsetPath = path.join(this.botStateDir, 'telegram-poll-offset.json');
|
|
320
|
+
this.attentionFilePath = path.join(this.botStateDir, 'state', 'attention-items.json');
|
|
303
321
|
this.loadRegistry();
|
|
304
322
|
this.loadOffset();
|
|
305
323
|
this.loadAttentionItems();
|
|
@@ -544,8 +562,11 @@ export class TelegramAdapter {
|
|
|
544
562
|
this.fatalPollReason = null;
|
|
545
563
|
this.pollStoppedAt = null;
|
|
546
564
|
this.pending401Retry = false;
|
|
547
|
-
// Ensure Lifeline topic exists (auto-recreate if deleted)
|
|
548
|
-
|
|
565
|
+
// Ensure Lifeline topic exists (auto-recreate if deleted). A non-primary adapter
|
|
566
|
+
// (e.g. the mentor bot) must NOT create a second Lifeline topic in the chat.
|
|
567
|
+
if (!this.suppressLifelineAutoCreate) {
|
|
568
|
+
await this.ensureLifelineTopic();
|
|
569
|
+
}
|
|
549
570
|
console.log(`[telegram] Starting long-polling...`);
|
|
550
571
|
this.poll();
|
|
551
572
|
// Resolve any topic names still using the fallback "topic-NNNN" pattern
|