@hienlh/ppm 0.9.45 → 0.9.46

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
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.9.46] - 2026-04-06
4
+
5
+ ### Added
6
+ - **/version command**: Shows current PPM version in Telegram.
7
+
3
8
  ## [0.9.45] - 2026-04-06
4
9
 
5
10
  ### Fixed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hienlh/ppm",
3
- "version": "0.9.45",
3
+ "version": "0.9.46",
4
4
  "description": "Personal Project Manager — mobile-first web IDE with AI assistance",
5
5
  "author": "hienlh",
6
6
  "license": "MIT",
@@ -182,6 +182,7 @@ class PPMBotService {
182
182
  case "forget": await this.cmdForget(chatId, cmd.args); break;
183
183
  case "remember": await this.cmdRemember(chatId, cmd.args); break;
184
184
  case "restart": await this.cmdRestart(chatId); break;
185
+ case "version": await this.cmdVersion(chatId); break;
185
186
  case "help": await this.cmdHelp(chatId); break;
186
187
  default: await tg.sendMessage(Number(chatId), `Unknown command: /${cmd.command}`);
187
188
  }
@@ -421,6 +422,17 @@ class PPMBotService {
421
422
  } catch {}
422
423
  }
423
424
 
425
+ private async cmdVersion(chatId: string): Promise<void> {
426
+ let version = "unknown";
427
+ try {
428
+ const { join } = await import("node:path");
429
+ const pkgPath = join(import.meta.dir, "../../../package.json");
430
+ const pkg = await Bun.file(pkgPath).json();
431
+ version = pkg.version ?? "unknown";
432
+ } catch {}
433
+ await this.telegram!.sendMessage(Number(chatId), `<b>PPM</b> v${version}`);
434
+ }
435
+
424
436
  private async cmdHelp(chatId: string): Promise<void> {
425
437
  const text = `<b>PPMBot Commands</b>
426
438
 
@@ -435,6 +447,7 @@ class PPMBotService {
435
447
  /forget &lt;topic&gt; — Remove matching memories
436
448
  /remember &lt;fact&gt; — Save a fact
437
449
  /restart — Restart PPM server
450
+ /version — Show PPM version
438
451
  /help — This message`;
439
452
  await this.telegram!.sendMessage(Number(chatId), text);
440
453
  }
@@ -13,7 +13,7 @@ const BOT_TOKEN_RE = /^\d+:[A-Za-z0-9_-]{30,50}$/;
13
13
  /** Known PPMBot slash commands */
14
14
  const COMMANDS = new Set([
15
15
  "start", "project", "new", "sessions", "resume",
16
- "status", "stop", "memory", "forget", "remember", "restart", "help",
16
+ "status", "stop", "memory", "forget", "remember", "restart", "version", "help",
17
17
  ]);
18
18
 
19
19
  export type UpdateHandler = (update: TelegramUpdate) => Promise<void>;
@@ -53,6 +53,7 @@ export class PPMBotTelegram {
53
53
  { command: "forget", description: "Remove matching memories" },
54
54
  { command: "remember", description: "Save a fact" },
55
55
  { command: "restart", description: "Restart PPM server" },
56
+ { command: "version", description: "Show PPM version" },
56
57
  { command: "help", description: "Show all commands" },
57
58
  ],
58
59
  });