summrise-agent 1.2.461 → 1.2.462

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "summrise-agent",
3
- "version": "1.2.461",
3
+ "version": "1.2.462",
4
4
  "description": "Summrise Agent — Windows device MCP server (terminal/SSH/serial) + panel. Self-hosted npm distribution.",
5
5
  "//build": "唯一构建路径:在本目录执行 npm run build。它是自包含的:经 npm exec 按需拉取 typescript@5,无需预装任何 node_modules(干净检出可跑;旧脚本引用 ../summrise-desktop-electron/node_modules/.bin/tsc,干净检出必 ENOENT)。必须用 npm exec --package … -- tsc 的形式:npx 会吃掉传给 tsc 的 -p/--outDir 等参数(round-435:npx 写法从未真正跑通过)。先编 electron TS(--noCheck 纯 emit,与 release.yml 一致)同步两处 src/*.js,再编 src/summrise.ts 到 bin/summrise.js 并校验 round-298 标记(弱 oracle,只证某次构建发生,新鲜性由 publish-release.sh 的 tsc 重编 + cmp 门保证)。",
6
6
  "bin": {
Binary file
@@ -70,6 +70,13 @@ function agentToken() {
70
70
  let tok = null;
71
71
  try {
72
72
  const raw = fs.readFileSync(path.join(INSTALL_ROOT, "etc", "config.yaml"), "utf8");
73
+ // THIS PATTERN IS NARROWER THAN THE TWO OTHER PARSERS OF THE SAME LINE: the CLI's
74
+ // (bin/summrise.js, `[A-Za-z0-9._-]+`) and the agent's Rust recovery both accept more than
75
+ // lowercase hex. Measured against a live device on 2026-09-24 — the token is 64 hex characters
76
+ // with no space before the colon, so all three agree TODAY, and hex is what the worker issues.
77
+ // The failure mode if that ever stops being true is SILENT: no credential, a 401, a title that
78
+ // stays "Summrise" and vitals that stay blank — the state the comment above claims to have
79
+ // fixed. Widen this line before debugging that.
73
80
  const m = /device_token:\s*"?([0-9a-f]{16,})"?/.exec(raw);
74
81
  if (m)
75
82
  tok = m[1];
@@ -705,6 +712,21 @@ async function autoLaunchTaskSet(enabled) {
705
712
  // interactive user is not resolvable from the service session. A bare
706
713
  // STRING invocation happens to work (shell default), but spawn arrays
707
714
  // need an explicit account: use Administrator (the d1 console user).
715
+ //
716
+ // THIS PATH CANNOT REPRODUCE WHAT `summrise` REGISTERS, and the difference matters. The CLI
717
+ // gives SummriseDesktop TWO triggers — AtLogOn plus a guarded 5-minute pulse (bin/summrise.js:
718
+ // `New-ScheduledTaskTrigger -Once -At (Get-Date).AddMinutes(3) -RepetitionInterval 5min`, run
719
+ // through desktop-pulse.vbs → ensure-desktop.ps1, which exits when electron is already up).
720
+ // `schtasks /create` has no way to express a repetition interval at all, so what this writes is
721
+ // a LOGON-ONLY task: toggling auto-launch OFF deletes the hardened task, and toggling it ON
722
+ // again replaces it with one that cannot recover a wedged shell. `summrise update` heals it and
723
+ // says so in its log — "desk: SummriseDesktop hardened (guarded 5-min pulse)" — which is how
724
+ // this collision was found in the first place.
725
+ //
726
+ // Doing it properly means New-ScheduledTaskTrigger through PowerShell (the CLI's shape,
727
+ // duplicated in JS) or delegating to the CLI; neither is a one-liner, and the update-time repair
728
+ // bounds the damage to "until the next update". Recorded where the downgrade happens, so the
729
+ // next reader sees the trap instead of rediscovering it from a shell that stopped recovering.
708
730
  const r = await runSchtasks([
709
731
  "/create", "/tn", AUTOSTART_TASK,
710
732
  // schtasks re-parses the /tr VALUE as a command line — it needs its