instar 1.2.44 → 1.2.45
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/messaging/TelegramAdapter.d.ts +20 -0
- package/dist/messaging/TelegramAdapter.d.ts.map +1 -1
- package/dist/messaging/TelegramAdapter.js +97 -2
- package/dist/messaging/TelegramAdapter.js.map +1 -1
- package/dist/tunnel/TunnelManager.d.ts +16 -0
- package/dist/tunnel/TunnelManager.d.ts.map +1 -1
- package/dist/tunnel/TunnelManager.js +42 -1
- package/dist/tunnel/TunnelManager.js.map +1 -1
- package/dist/tunnel/TunnelNotifier.d.ts +10 -0
- package/dist/tunnel/TunnelNotifier.d.ts.map +1 -1
- package/dist/tunnel/TunnelNotifier.js +11 -7
- package/dist/tunnel/TunnelNotifier.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +2 -2
- package/upgrades/1.2.45.md +34 -0
- package/upgrades/side-effects/consent-telegram-buttons.md +77 -0
|
@@ -93,6 +93,18 @@ export interface TunnelMessagingAdapter {
|
|
|
93
93
|
sendToOwnerDM(text: string): Promise<unknown>;
|
|
94
94
|
getDashboardTopicId(): number | undefined;
|
|
95
95
|
getLifelineTopicId(): number | undefined;
|
|
96
|
+
/**
|
|
97
|
+
* Send the consent prompt to the owner with approve/decline inline
|
|
98
|
+
* buttons carrying the nonce. Returns the message id or null on
|
|
99
|
+
* failure. Optional — when the adapter doesn't implement it, the
|
|
100
|
+
* manager falls back to sending the consent prompt as plain text
|
|
101
|
+
* via sendToOwnerDM (degraded: the owner would reply in words,
|
|
102
|
+
* which PR 6 doesn't wire — so the button path is the supported
|
|
103
|
+
* one).
|
|
104
|
+
*/
|
|
105
|
+
sendOwnerConsentPrompt?(text: string, nonce: string): Promise<number | null>;
|
|
106
|
+
/** Register the grant/decline callback handler (inline-button clicks). */
|
|
107
|
+
setTunnelConsentHandler?(fn: ((action: 'grant' | 'decline', nonce: string) => Promise<string>) | null): void;
|
|
96
108
|
}
|
|
97
109
|
export declare class TunnelManager extends EventEmitter {
|
|
98
110
|
private readonly config;
|
|
@@ -117,6 +129,8 @@ export declare class TunnelManager extends EventEmitter {
|
|
|
117
129
|
* `grantConsent()` is the security-load-bearing check.
|
|
118
130
|
*/
|
|
119
131
|
private _pendingConsent;
|
|
132
|
+
/** Adapter ref captured by attachTelegram — used to send the button prompt. */
|
|
133
|
+
private _consentAdapter;
|
|
120
134
|
constructor(config: TunnelConfig, injections?: TunnelManagerInjections);
|
|
121
135
|
get url(): string | null;
|
|
122
136
|
get isRunning(): boolean;
|
|
@@ -169,6 +183,8 @@ export declare class TunnelManager extends EventEmitter {
|
|
|
169
183
|
* pending consent record, and arms the timeout.
|
|
170
184
|
*/
|
|
171
185
|
private requestConsent;
|
|
186
|
+
/** Owner-facing consent prompt text. Honest about third-party exposure + rotation cost. */
|
|
187
|
+
private consentPromptText;
|
|
172
188
|
private clearPendingConsent;
|
|
173
189
|
/**
|
|
174
190
|
* Public — called by the consent UX layer (Telegram callback handler
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TunnelManager.d.ts","sourceRoot":"","sources":["../../src/tunnel/TunnelManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EAIL,KAAK,oBAAoB,EAE1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,cAAc,EAEd,YAAY,EACZ,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAKxD,MAAM,WAAW,YAAY;IAC3B,iCAAiC;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,4FAA4F;IAC5F,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACxB,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3B,SAAS,EAAE,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACxE,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC9B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,2CAA2C;AAC3C,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7D,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,mBAAmB,IAAI,MAAM,GAAG,SAAS,CAAC;IAC1C,kBAAkB,IAAI,MAAM,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"TunnelManager.d.ts","sourceRoot":"","sources":["../../src/tunnel/TunnelManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -88,6 +88,8 @@ export class TunnelManager extends EventEmitter {
|
|
|
88
88
|
* `grantConsent()` is the security-load-bearing check.
|
|
89
89
|
*/
|
|
90
90
|
_pendingConsent = null;
|
|
91
|
+
/** Adapter ref captured by attachTelegram — used to send the button prompt. */
|
|
92
|
+
_consentAdapter = null;
|
|
91
93
|
constructor(config, injections) {
|
|
92
94
|
super();
|
|
93
95
|
this.config = config;
|
|
@@ -199,6 +201,7 @@ export class TunnelManager extends EventEmitter {
|
|
|
199
201
|
* messages; the credentials NEVER appear in group messages.
|
|
200
202
|
*/
|
|
201
203
|
attachTelegram(adapter, dashboardPin) {
|
|
204
|
+
this._consentAdapter = adapter;
|
|
202
205
|
const sink = {
|
|
203
206
|
sendGroup: async (text) => {
|
|
204
207
|
const topicId = adapter.getDashboardTopicId() ?? adapter.getLifelineTopicId();
|
|
@@ -214,7 +217,21 @@ export class TunnelManager extends EventEmitter {
|
|
|
214
217
|
url: this._legacyState.url,
|
|
215
218
|
pin: dashboardPin(),
|
|
216
219
|
});
|
|
217
|
-
|
|
220
|
+
// The notifier handles the GROUP pointer for awaiting-consent; the
|
|
221
|
+
// owner-DM consent PROMPT (with buttons) is sent by the manager
|
|
222
|
+
// directly in requestConsent so it can carry the nonce + inline
|
|
223
|
+
// keyboard. Suppress the notifier's plain-text consent DM to avoid
|
|
224
|
+
// a double send.
|
|
225
|
+
this.notifier = new TunnelNotifier({ sink, credentialProvider, suppressConsentDM: true });
|
|
226
|
+
// Register the grant/decline callback handler for inline-button clicks.
|
|
227
|
+
adapter.setTunnelConsentHandler?.(async (action, nonce) => {
|
|
228
|
+
if (action === 'grant') {
|
|
229
|
+
const ok = await this.grantConsent(nonce);
|
|
230
|
+
return ok ? 'Backup approved — bringing it up now' : 'That request is no longer active';
|
|
231
|
+
}
|
|
232
|
+
const ok = this.declineConsent(nonce);
|
|
233
|
+
return ok ? 'Okay — staying on Cloudflare' : 'That request is no longer active';
|
|
234
|
+
});
|
|
218
235
|
}
|
|
219
236
|
// ── Internals ──────────────────────────────────────────────────
|
|
220
237
|
buildDefaultPool(config) {
|
|
@@ -382,6 +399,30 @@ export class TunnelManager extends EventEmitter {
|
|
|
382
399
|
issuedAt: Date.now(),
|
|
383
400
|
timer,
|
|
384
401
|
};
|
|
402
|
+
// Send the button-bearing consent prompt to the owner DM (the
|
|
403
|
+
// notifier sends only the group pointer for awaiting-consent;
|
|
404
|
+
// suppressConsentDM avoids a double owner-DM). Fire-and-forget.
|
|
405
|
+
if (this._consentAdapter?.sendOwnerConsentPrompt) {
|
|
406
|
+
void this._consentAdapter.sendOwnerConsentPrompt(this.consentPromptText(provider.name), nonce).catch(() => { });
|
|
407
|
+
}
|
|
408
|
+
else if (this._consentAdapter?.sendToOwnerDM) {
|
|
409
|
+
// Degraded: no inline-button support — send the text only.
|
|
410
|
+
void this._consentAdapter.sendToOwnerDM(this.consentPromptText(provider.name))
|
|
411
|
+
.catch(() => { });
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
/** Owner-facing consent prompt text. Honest about third-party exposure + rotation cost. */
|
|
415
|
+
consentPromptText(provider) {
|
|
416
|
+
const relayDesc = provider === 'bore'
|
|
417
|
+
? 'an unencrypted third-party relay (its operator and the network path can see your traffic)'
|
|
418
|
+
: 'a third-party relay (its operator can see your dashboard traffic while it is in use)';
|
|
419
|
+
return [
|
|
420
|
+
`Cloudflare is unavailable and I can't get you a dashboard link the usual way.`,
|
|
421
|
+
``,
|
|
422
|
+
`I can bring up a backup through ${relayDesc}. Your dashboard PIN and any private view links would be visible to that operator while the backup is active. After the backup is no longer needed, I'll rotate your PIN and access token — that signs you out of any open dashboard tabs and invalidates any private view links you've already shared.`,
|
|
423
|
+
``,
|
|
424
|
+
`Tap a button below. If you don't respond, I'll keep waiting for Cloudflare and won't use a backup.`,
|
|
425
|
+
].join('\n');
|
|
385
426
|
}
|
|
386
427
|
clearPendingConsent() {
|
|
387
428
|
if (this._pendingConsent) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TunnelManager.js","sourceRoot":"","sources":["../../src/tunnel/TunnelManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TunnelManager.js","sourceRoot":"","sources":["../../src/tunnel/TunnelManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -77,11 +77,21 @@ export interface TunnelNotifierOptions {
|
|
|
77
77
|
stateChangeMinIntervalMs?: number;
|
|
78
78
|
/** Flap threshold — N connect/drop cycles within an episode → noise-collapse. */
|
|
79
79
|
flapThreshold?: number;
|
|
80
|
+
/**
|
|
81
|
+
* When true, the notifier does NOT emit the owner-DM consent PROMPT
|
|
82
|
+
* for the awaiting-consent transition (the group pointer still
|
|
83
|
+
* fires). Set by the manager when an adapter capable of sending the
|
|
84
|
+
* button-bearing prompt is attached — the manager sends that prompt
|
|
85
|
+
* itself (with the nonce + inline keyboard) so the notifier's plain-
|
|
86
|
+
* text version would be a duplicate.
|
|
87
|
+
*/
|
|
88
|
+
suppressConsentDM?: boolean;
|
|
80
89
|
}
|
|
81
90
|
export declare class TunnelNotifier {
|
|
82
91
|
private readonly sink;
|
|
83
92
|
private readonly clock;
|
|
84
93
|
private readonly credentialProvider;
|
|
94
|
+
private readonly suppressConsentDM;
|
|
85
95
|
private readonly stateChangeMinIntervalMs;
|
|
86
96
|
private readonly flapThreshold;
|
|
87
97
|
private lastEmittedEpoch;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TunnelNotifier.d.ts","sourceRoot":"","sources":["../../src/tunnel/TunnelNotifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAwB,MAAM,sBAAsB,CAAC;AAClF,OAAO,KAAK,EAAE,YAAY,EAAyB,MAAM,qBAAqB,CAAC;AAE/E,gDAAgD;AAChD,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,GAAG,cAAc,GAAG,OAAO,CAAC;AAE7E,mDAAmD;AACnD,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,UAAU,CAAC;AAEvD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,mBAAmB,CAAC;IAC7B,KAAK,EAAE,iBAAiB,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,sGAAsG;IACtG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,uEAAuE;IACvE,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,IAAI,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,0DAA0D;IAC1D,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,6DAA6D;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,MAAM,kBAAkB,CAAC;IAC9C,oEAAoE;IACpE,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"TunnelNotifier.d.ts","sourceRoot":"","sources":["../../src/tunnel/TunnelNotifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAwB,MAAM,sBAAsB,CAAC;AAClF,OAAO,KAAK,EAAE,YAAY,EAAyB,MAAM,qBAAqB,CAAC;AAE/E,gDAAgD;AAChD,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,GAAG,cAAc,GAAG,OAAO,CAAC;AAE7E,mDAAmD;AACnD,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,UAAU,CAAC;AAEvD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,mBAAmB,CAAC;IAC7B,KAAK,EAAE,iBAAiB,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,sGAAsG;IACtG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,uEAAuE;IACvE,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,IAAI,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,0DAA0D;IAC1D,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,6DAA6D;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,MAAM,kBAAkB,CAAC;IAC9C,oEAAoE;IACpE,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAe;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAyC;IAC5E,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAU;IAC5C,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAS;IAClD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IAIvC,OAAO,CAAC,gBAAgB,CAAM;IAG9B,OAAO,CAAC,gBAAgB,CAAuB;IAC/C;;;kDAG8C;IAC9C,OAAO,CAAC,aAAa,CAAkC;IACvD;4DACwD;IACxD,OAAO,CAAC,uBAAuB,CAAS;IACxC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,aAAa,CAAS;gBAElB,IAAI,EAAE,qBAAqB;IASvC;;;OAGG;IACG,YAAY,CAAC,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAyCrD;;;;;;;;;OASG;IACH,OAAO,CAAC,eAAe;IA+HvB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,KAAK;IAcb,kFAAkF;IAClF,OAAO,CAAC,KAAK;IASb,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,sBAAsB;CAG/B;AAmBD,YAAY,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -30,6 +30,7 @@ export class TunnelNotifier {
|
|
|
30
30
|
sink;
|
|
31
31
|
clock;
|
|
32
32
|
credentialProvider;
|
|
33
|
+
suppressConsentDM;
|
|
33
34
|
stateChangeMinIntervalMs;
|
|
34
35
|
flapThreshold;
|
|
35
36
|
// Dedup state. The lifecycle's epoch is monotonic per manager instance,
|
|
@@ -51,6 +52,7 @@ export class TunnelNotifier {
|
|
|
51
52
|
this.sink = opts.sink;
|
|
52
53
|
this.clock = opts.clock ?? { now: () => Date.now() };
|
|
53
54
|
this.credentialProvider = opts.credentialProvider;
|
|
55
|
+
this.suppressConsentDM = opts.suppressConsentDM ?? false;
|
|
54
56
|
this.stateChangeMinIntervalMs = opts.stateChangeMinIntervalMs ?? 15 * 60_000;
|
|
55
57
|
this.flapThreshold = opts.flapThreshold ?? 3;
|
|
56
58
|
}
|
|
@@ -182,13 +184,15 @@ export class TunnelNotifier {
|
|
|
182
184
|
episodeId: ep,
|
|
183
185
|
epoch: e.epoch,
|
|
184
186
|
});
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
187
|
+
if (!this.suppressConsentDM) {
|
|
188
|
+
messages.push({
|
|
189
|
+
channel: 'owner-dm',
|
|
190
|
+
class: 'action-required',
|
|
191
|
+
text: this.composeConsentPromptDM(),
|
|
192
|
+
episodeId: ep,
|
|
193
|
+
epoch: e.epoch,
|
|
194
|
+
});
|
|
195
|
+
}
|
|
192
196
|
break;
|
|
193
197
|
case 'relay-active':
|
|
194
198
|
// A Tier-2 relay is up: group pointer + DM with URL + rotated PIN.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TunnelNotifier.js","sourceRoot":"","sources":["../../src/tunnel/TunnelNotifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;
|
|
1
|
+
{"version":3,"file":"TunnelNotifier.js","sourceRoot":"","sources":["../../src/tunnel/TunnelNotifier.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-05-
|
|
5
|
-
"instarVersion": "1.2.
|
|
4
|
+
"generatedAt": "2026-05-23T04:13:43.011Z",
|
|
5
|
+
"instarVersion": "1.2.45",
|
|
6
6
|
"entryCount": 191,
|
|
7
7
|
"entries": {
|
|
8
8
|
"hook:session-start": {
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Upgrade Guide — vNEXT
|
|
2
|
+
|
|
3
|
+
<!-- bump: patch -->
|
|
4
|
+
|
|
5
|
+
## What Changed
|
|
6
|
+
|
|
7
|
+
PR 6 of the tunnel-failure-resilience chain. The previous releases built the machinery for a consent-gated backup tunnel: when Cloudflare can't give you a dashboard link, the agent can fall back to a third-party relay — but only after the owner explicitly approves, because that relay's operator can briefly see your dashboard traffic. Until now that approval had no actual user interface; the state machine existed but nothing asked you.
|
|
8
|
+
|
|
9
|
+
**The gap.** When Tier-1 (Cloudflare) was exhausted and a Tier-2 relay was available, the manager moved to `awaiting-consent` and waited — but the only owner-facing message was a plain-text DM with no way to act on it. There was no wired path from "owner taps a button" back to `grantConsent`/`declineConsent`.
|
|
10
|
+
|
|
11
|
+
**The fix.** The owner now gets a private DM with two inline buttons — "Yes, use a backup" / "No, keep waiting." Tapping one drives the consent state machine directly. The button click is gated to the **owner principal only** (not the broader authorized-users set — a deliberate, externally-reviewed security boundary, since approving a relay exposes private traffic), and each prompt carries a single-use random token so a stale or replayed tap can't activate anything. The plain-text consent DM is suppressed when buttons are available, so you never get a double message. The whole path also works when the agent is in send-only mode and the Lifeline is forwarding callbacks — which is exactly the situation a tunnel outage tends to create.
|
|
12
|
+
|
|
13
|
+
## What to Tell Your User
|
|
14
|
+
|
|
15
|
+
- If your dashboard link ever goes down and the agent has a backup option, it will now DM you two buttons instead of leaving you with an un-actionable message.
|
|
16
|
+
- Only you (the owner) can approve a backup — taps from anyone else are refused, and the prompt explains plainly that a backup briefly routes your dashboard traffic through someone else's server and that your PIN/token will be rotated afterward.
|
|
17
|
+
- Nothing changes for the normal case where Cloudflare is healthy — you won't see any of this unless the primary tunnel fails.
|
|
18
|
+
|
|
19
|
+
## Summary of New Capabilities
|
|
20
|
+
|
|
21
|
+
| Capability | How to Use |
|
|
22
|
+
|-----------|-----------|
|
|
23
|
+
| Owner consent buttons on tunnel fallback | Automatic — fires only when Tier-1 is exhausted and a Tier-2 relay is available; tap a button in the owner DM |
|
|
24
|
+
| Owner-principal gate on consent | Automatic — only `ownerUserId` (falls back to `promptGate.ownerId`) may approve; others are refused |
|
|
25
|
+
|
|
26
|
+
## Evidence
|
|
27
|
+
|
|
28
|
+
- Spec: `specs/dev-infrastructure/tunnel-failure-resilience.md` Part 3 (consent UX). Side-effects: `upgrades/side-effects/consent-telegram-buttons.md`.
|
|
29
|
+
- Tests: 10 unit tests in `tests/unit/tunnel-consent-telegram.test.ts` — 6 on the manager↔adapter seam (handler registration, prompt carries the live nonce, no double-send, grant→relay-active, decline→exhausted+cooldown, stale-nonce no-op) and 4 on the security-critical adapter callback gate (owner grant/decline, NON-owner rejected without invoking the handler, malformed `tc:` data refused).
|
|
30
|
+
- Wiring verified: the production call site `tunnel.attachTelegram(telegram, …)` exists in `src/commands/server.ts`, and a unit test asserts `attachTelegram` registers the consent handler — not dead code.
|
|
31
|
+
|
|
32
|
+
## Rollback
|
|
33
|
+
|
|
34
|
+
Purely additive. Revert the three method additions in `TelegramAdapter`, the `attachTelegram` handler-registration + `suppressConsentDM` wiring in `TunnelManager`, and the `suppressConsentDM` flag in `TunnelNotifier`. No config schema, migration, or persistent state to clean up; `suppressConsentDM` defaults false.
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Side-effects review — Telegram consent buttons (PR 6 of tunnel-failure-resilience chain)
|
|
2
|
+
|
|
3
|
+
**Scope (PR 6 of the chain):** Wire the consent state machine (PR 5)
|
|
4
|
+
to a real Telegram inline-button UX. When Tier-1 is exhausted and a
|
|
5
|
+
Tier-2 relay is available, the owner gets a DM with two buttons —
|
|
6
|
+
"Yes, use a backup" / "No, keep waiting" — and tapping one drives
|
|
7
|
+
`grantConsent` / `declineConsent` on the manager. Spec
|
|
8
|
+
`specs/dev-infrastructure/tunnel-failure-resilience.md` Part 3.
|
|
9
|
+
|
|
10
|
+
**Files touched:**
|
|
11
|
+
- `src/messaging/TelegramAdapter.ts` — adds `setTunnelConsentHandler`
|
|
12
|
+
(handler injection), `sendOwnerConsentPrompt(text, nonce)` (DM with
|
|
13
|
+
inline buttons carrying `tc:g:<nonce>` / `tc:d:<nonce>`), and a new
|
|
14
|
+
`tc:`-prefixed early-return branch in `processCallbackQuery` that
|
|
15
|
+
enforces the owner-principal check, validates the nonce shape, calls
|
|
16
|
+
the injected handler, and clears the keyboard. `editMessageWithRetry`
|
|
17
|
+
gains an optional `chatId` param (defaults to `config.chatId`) so the
|
|
18
|
+
keyboard-clear edit can target the owner's private DM rather than the
|
|
19
|
+
group — without disturbing the existing prompt-gate callers.
|
|
20
|
+
- `src/tunnel/TunnelManager.ts` — `attachTelegram` captures the adapter
|
|
21
|
+
ref, registers the grant/decline handler, and passes
|
|
22
|
+
`suppressConsentDM: true` to the notifier; `requestConsent` sends the
|
|
23
|
+
button prompt (degrading to plain-text `sendToOwnerDM` when an adapter
|
|
24
|
+
lacks button support). Adds `consentPromptText`. The
|
|
25
|
+
`TunnelMessagingAdapter` interface gains two optional methods.
|
|
26
|
+
- `src/tunnel/TunnelNotifier.ts` — adds `suppressConsentDM` option so
|
|
27
|
+
the manager-sent button prompt isn't duplicated by the notifier's
|
|
28
|
+
plain-text owner-DM.
|
|
29
|
+
- `tests/unit/tunnel-consent-telegram.test.ts` — NEW. 10 tests: 6 on
|
|
30
|
+
the manager↔adapter seam (handler registration, button prompt carries
|
|
31
|
+
the live nonce, no double-send, grant→relay-active, decline→exhausted
|
|
32
|
+
+cooldown, stale-nonce no-op) and 4 on the adapter-side callback gate
|
|
33
|
+
(owner grant/decline, NON-owner rejection, malformed `tc:` data).
|
|
34
|
+
|
|
35
|
+
**Over-block:** None. The `tc:` prefix is unique in the codebase (a grep
|
|
36
|
+
for `callback_data:` literals returns only PR 6's two buttons), the
|
|
37
|
+
regex is strict (`^tc:([gd]):([0-9a-f]{32})$`), and any non-`tc:`
|
|
38
|
+
callback falls through unchanged to the existing prompt-gate handler
|
|
39
|
+
below. Malformed `tc:` data is answered with "Invalid consent button"
|
|
40
|
+
and consumed, never forwarded.
|
|
41
|
+
|
|
42
|
+
**Under-block:** One edge worth naming. The owner gate is
|
|
43
|
+
`if (owner && query.from.id !== owner) reject`. When **no** owner is
|
|
44
|
+
configured (`ownerUserId` and `promptGate.ownerId` both unset), the gate
|
|
45
|
+
is skipped. This is benign by construction: with no owner there is no DM
|
|
46
|
+
target, so `sendOwnerConsentPrompt` returns null and **no button is ever
|
|
47
|
+
sent** — there is nothing to click. Even a hand-crafted callback can't
|
|
48
|
+
activate a relay, because `grantConsent` requires a single-use CSPRNG
|
|
49
|
+
nonce that matches the live pending-consent record (cleared-before-start
|
|
50
|
+
so a replay loses). Security is layered: owner-principal check **and**
|
|
51
|
+
nonce match. The adapter regex is only a low-level validator (signal);
|
|
52
|
+
the manager's `grantConsent` holds the blocking authority.
|
|
53
|
+
|
|
54
|
+
**Level-of-abstraction fit:** Clean. The adapter owns the Telegram
|
|
55
|
+
protocol (parse, owner check, answer toast, keyboard clear); the manager
|
|
56
|
+
owns the tunnel-state transition via the injected handler. The adapter
|
|
57
|
+
never imports tunnel types and the manager never imports Telegram types
|
|
58
|
+
(the duck-typed `TunnelMessagingAdapter` interface is the seam).
|
|
59
|
+
|
|
60
|
+
**Interactions:**
|
|
61
|
+
- `query.data` is guarded (`if (!query.data) return`) immediately above
|
|
62
|
+
the `tc:` block, so `.startsWith` can't throw.
|
|
63
|
+
- The path is reached both by the poll loop and by
|
|
64
|
+
`handleForwardedCallback` — the Lifeline forwards callbacks in
|
|
65
|
+
send-only mode, which is exactly the tunnel-down scenario this feature
|
|
66
|
+
exists for.
|
|
67
|
+
- `suppressConsentDM` prevents a double owner-DM (button prompt from the
|
|
68
|
+
manager + plain-text prompt from the notifier).
|
|
69
|
+
- No HTTP surface in this PR, so the Tier-2/Tier-3 "feature is alive"
|
|
70
|
+
HTTP tests are N/A. Wiring is verified two ways: the unit test asserts
|
|
71
|
+
`attachTelegram` registers the handler, and the production call site
|
|
72
|
+
exists at `src/commands/server.ts` (`tunnel.attachTelegram(telegram, …)`).
|
|
73
|
+
|
|
74
|
+
**Rollback cost:** Low. Purely additive; `suppressConsentDM` defaults
|
|
75
|
+
false (back-compat for existing notifier callers). No config schema,
|
|
76
|
+
migration, or persistent state. Revert = drop the three method additions
|
|
77
|
+
+ the `tc:` block + the `attachTelegram` handler-registration lines.
|