@llblab/pi-telegram 0.24.9 → 0.24.10

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/CHANGELOG.md CHANGED
@@ -2,6 +2,11 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.24.10: Compact Thread Role Hotfix
6
+
7
+ - `Status`: Threaded Mode status again appends only `@leader` or `@follower` to the execution status instead of repeating the visible Telegram tab name on a separate `Thread` row. Impact: compact `/status` output avoids redundant thread identity while retaining the transport role.
8
+ - `Validation`: Graceful-cleanup integration now accepts both fully committed removal and the safe ownership-fenced fallback of retaining the exact target plus durable cleanup intent after Telegram already confirmed deletion. Impact: Windows validation tests the recovery invariant instead of requiring one filesystem commit timing outcome.
9
+
5
10
  ## 0.24.9: Button-Only Heading Hotfix
6
11
 
7
12
  - `Prompt Buttons`: The automatic parent text for button-only assistant replies now follows the bridge-owned dialog heading grammar as `☑️ **Choose an option:**`. Impact: fallback button prompts match reasoning, model, and settings choice surfaces with a semantic icon, bold title, and trailing colon instead of appearing as unformatted assistant text.
@@ -336,7 +336,7 @@ Contract:
336
336
  - Providers are synchronous because `/start` status text is rendered inline with the menu.
337
337
  - Return `undefined` when the line is not relevant for the active model.
338
338
  - Provider failures are isolated and skipped so optional companion status cannot break the core Telegram menu.
339
- - The bridge renders rows as `<Label>: <value>` in the same HTML status block as Status, the optional Threaded Mode `Thread: <name> @<role>` row, Usage, Cost, and Context, capitalizing the first label character for Telegram UI consistency.
339
+ - The bridge renders rows as `<Label>: <value>` in the same HTML status block as Status, Usage, Cost, and Context, capitalizing the first label character for Telegram UI consistency.
340
340
 
341
341
  ## Updates
342
342
 
package/lib/status.ts CHANGED
@@ -1272,13 +1272,11 @@ function buildStatusSummary(ctx: TelegramStatusContext): string {
1272
1272
  return "unknown";
1273
1273
  }
1274
1274
 
1275
- function buildTelegramStatusThreadSummary(
1275
+ function buildTelegramStatusRoleSuffix(
1276
1276
  state: TelegramBridgeStatusLineState | undefined,
1277
- ): string | undefined {
1278
- if (state?.botThreadMode !== "enabled" || !state.busRole) return undefined;
1279
- const threadName = state.instanceThreadName?.trim();
1280
- const identity = threadName || (state.instanceSlot ? `[${state.instanceSlot}]` : "");
1281
- return identity ? `${identity} @${state.busRole}` : undefined;
1277
+ ): string {
1278
+ if (state?.botThreadMode !== "enabled" || !state.busRole) return "";
1279
+ return ` @${state.busRole}`;
1282
1280
  }
1283
1281
 
1284
1282
  export function buildStatusHtml(
@@ -1290,11 +1288,12 @@ export function buildStatusHtml(
1290
1288
  const usesSubscription = activeModel
1291
1289
  ? ctx.modelRegistry.isUsingOAuth(activeModel)
1292
1290
  : false;
1293
- const lines: string[] = [buildStatusRow("Status", buildStatusSummary(ctx))];
1294
- const threadSummary = buildTelegramStatusThreadSummary(bridgeStatus);
1295
- if (threadSummary) {
1296
- lines.push(buildStatusRow("Thread", threadSummary));
1297
- }
1291
+ const lines: string[] = [
1292
+ buildStatusRow(
1293
+ "Status",
1294
+ `${buildStatusSummary(ctx)}${buildTelegramStatusRoleSuffix(bridgeStatus)}`,
1295
+ ),
1296
+ ];
1298
1297
  const usageSummary = buildUsageSummary(stats);
1299
1298
  const costSummary = buildCostSummary(stats, usesSubscription);
1300
1299
  if (usageSummary) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@llblab/pi-telegram",
3
- "version": "0.24.9",
3
+ "version": "0.24.10",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"