@hydra-acp/cli 0.1.28 → 0.1.30

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/README.md CHANGED
@@ -439,6 +439,16 @@ hydra-acp extension start hydra-acp-approver
439
439
 
440
440
  Without a config file the approver abstains on everything — installing it has no behavioral effect until you write a rule.
441
441
 
442
+ **[`@hydra-acp/archiver`](https://github.com/smagnuso/hydra-acp-archiver) — cross-machine session sync.** Uploads session bundles to a shared backend (Google Drive, plain filesystem) after every turn and imports peers' bundles in the background, so a session started on machine A shows up on machine B without manual export/import. Imported sessions carry an `importedFromMachine` breadcrumb that the picker, browser, slack, and `sessions list` honor for host filtering.
443
+
444
+ ```sh
445
+ npm install -g @hydra-acp/archiver
446
+ hydra-acp extension add hydra-acp-archiver
447
+ hydra-acp extension start hydra-acp-archiver
448
+ ```
449
+
450
+ See the [package README](https://github.com/smagnuso/hydra-acp-archiver#readme) for backend setup (Drive OAuth, filesystem path).
451
+
442
452
  Per-extension config (env vars, args, custom command paths) goes in the same `extensions` block in `~/.hydra-acp/config.json` — see the snippet above. `hydra-acp extension logs <name> -f` tails an extension's stdout/stderr if you need to debug.
443
453
 
444
454
  The service token (stored at `~/.hydra-acp/auth-token`, mode 0600) is generated on `hydra-acp init` and required as `Authorization: Bearer <token>` for every REST call and as a WebSocket subprotocol or query parameter for `wss://.../acp`. The token never leaves `~/.hydra-acp/`.
package/dist/cli.js CHANGED
@@ -14224,6 +14224,10 @@ var SessionManager = class {
14224
14224
  args.sessionId,
14225
14225
  args.bundle.history
14226
14226
  );
14227
+ const sourceMtime = new Date(args.bundle.session.updatedAt);
14228
+ if (!Number.isNaN(sourceMtime.getTime())) {
14229
+ await fs11.utimes(paths.historyFile(args.sessionId), sourceMtime, sourceMtime).catch(() => void 0);
14230
+ }
14227
14231
  if (args.bundle.promptHistory && args.bundle.promptHistory.length > 0) {
14228
14232
  await saveHistory(
14229
14233
  paths.tuiHistoryFile(args.sessionId),
@@ -14247,7 +14251,9 @@ var SessionManager = class {
14247
14251
  currentUsage: args.bundle.session.currentUsage,
14248
14252
  agentCommands: args.bundle.session.agentCommands,
14249
14253
  createdAt: args.preservedCreatedAt ?? now,
14250
- updatedAt: now
14254
+ // Fallback path for historyMtimeIso (used when the history file
14255
+ // is missing). Keep this consistent with the utimes stamp above.
14256
+ updatedAt: args.bundle.session.updatedAt
14251
14257
  });
14252
14258
  });
14253
14259
  }
package/dist/index.js CHANGED
@@ -5119,6 +5119,10 @@ var SessionManager = class {
5119
5119
  args.sessionId,
5120
5120
  args.bundle.history
5121
5121
  );
5122
+ const sourceMtime = new Date(args.bundle.session.updatedAt);
5123
+ if (!Number.isNaN(sourceMtime.getTime())) {
5124
+ await fs10.utimes(paths.historyFile(args.sessionId), sourceMtime, sourceMtime).catch(() => void 0);
5125
+ }
5122
5126
  if (args.bundle.promptHistory && args.bundle.promptHistory.length > 0) {
5123
5127
  await saveHistory(
5124
5128
  paths.tuiHistoryFile(args.sessionId),
@@ -5142,7 +5146,9 @@ var SessionManager = class {
5142
5146
  currentUsage: args.bundle.session.currentUsage,
5143
5147
  agentCommands: args.bundle.session.agentCommands,
5144
5148
  createdAt: args.preservedCreatedAt ?? now,
5145
- updatedAt: now
5149
+ // Fallback path for historyMtimeIso (used when the history file
5150
+ // is missing). Keep this consistent with the utimes stamp above.
5151
+ updatedAt: args.bundle.session.updatedAt
5146
5152
  });
5147
5153
  });
5148
5154
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hydra-acp/cli",
3
- "version": "0.1.28",
3
+ "version": "0.1.30",
4
4
  "description": "Multi-client ACP session daemon: spawn agents, attach over WSS, multiplex sessions across editors.",
5
5
  "license": "MIT",
6
6
  "type": "module",