mover-os 4.0.2 → 4.0.4

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/install.js CHANGED
@@ -1300,6 +1300,24 @@ async function main() {
1300
1300
  let totalSteps = 0;
1301
1301
  const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
1302
1302
 
1303
+ // 0. Legacy cleanup (remove files from older installer versions)
1304
+ const legacyPaths = [
1305
+ path.join(vaultPath, "src"), // hooks used to install here
1306
+ path.join(vaultPath, "SOUL.md"), // old soul file
1307
+ ];
1308
+ for (const lp of legacyPaths) {
1309
+ if (fs.existsSync(lp)) {
1310
+ try {
1311
+ const stat = fs.statSync(lp);
1312
+ if (stat.isDirectory()) {
1313
+ fs.rmSync(lp, { recursive: true, force: true });
1314
+ } else {
1315
+ fs.unlinkSync(lp);
1316
+ }
1317
+ } catch {}
1318
+ }
1319
+ }
1320
+
1303
1321
  // 1. Vault structure
1304
1322
  let sp = spinner("Vault structure");
1305
1323
  const dirsCreated = createVaultStructure(vaultPath);
@@ -1408,49 +1426,21 @@ async function main() {
1408
1426
  const verb = updateMode ? "updated" : "installed";
1409
1427
  outro(`${green("Done.")} Mover OS v${VERSION} ${verb}. ${dim(`${totalSteps} steps in ${elapsed}s`)}`);
1410
1428
 
1411
- // Agent display names and CLI commands
1412
- const agentInfo = {
1413
- "claude-code": { name: "Claude Code", cli: "claude" },
1414
- cursor: { name: "Cursor", cli: null },
1415
- cline: { name: "Cline", cli: null },
1416
- codex: { name: "Codex", cli: "codex" },
1417
- windsurf: { name: "Windsurf", cli: null },
1418
- openclaw: { name: "OpenClaw", cli: "openclaw" },
1419
- antigravity: { name: "Antigravity", cli: "gemini" },
1420
- "roo-code": { name: "Roo Code", cli: null },
1421
- copilot: { name: "Copilot", cli: null },
1422
- amp: { name: "Amp", cli: "amp" },
1423
- aider: { name: "Aider", cli: "aider" },
1424
- };
1425
-
1426
1429
  const command = updateMode ? "/update" : "/setup";
1427
- const agentNames = selectedAgents.map((a) => agentInfo[a.id]?.name || a.name);
1428
- const agentList = agentNames.join(", ");
1429
-
1430
- // CLI agents get "cd + run" instructions, GUI agents get "open folder"
1431
- const cliAgents = selectedAgents.filter((a) => agentInfo[a.id]?.cli);
1432
- const guiAgents = selectedAgents.filter((a) => !agentInfo[a.id]?.cli);
1430
+ const agentNames = selectedAgents.map((a) => a.name);
1433
1431
 
1434
1432
  ln(` ${bold("Next steps")}`);
1435
1433
  ln();
1436
1434
  ln(` ${cyan("1")} Open your vault in ${bold("Obsidian")}`);
1437
- ln(` ${dim("Obsidian is where you view and browse your files")}`);
1435
+ ln(` ${dim("This is where you view and browse your files")}`);
1438
1436
  ln();
1439
- ln(` ${cyan("2")} Open the vault in your AI agent`);
1440
- if (cliAgents.length > 0) {
1441
- const cmds = cliAgents.map((a) => agentInfo[a.id].cli);
1442
- ln(` ${dim("cd")} ${vaultPath}`);
1443
- ln(` ${dim("then run:")} ${cmds.map((c) => bold(c)).join(dim(" or "))}`);
1444
- }
1445
- if (guiAgents.length > 0) {
1446
- const names = guiAgents.map((a) => bold(agentInfo[a.id]?.name || a.name)).join(dim(", "));
1447
- ln(` ${dim("Open")} ${names} ${dim("→ open the vault folder")}`);
1448
- }
1437
+ ln(` ${cyan("2")} Open the vault folder in your AI agent`);
1438
+ ln(` ${dim("Installed: " + agentNames.join(", "))}`);
1449
1439
  ln();
1450
1440
  ln(` ${cyan("3")} Enable the Obsidian theme`);
1451
- ln(` ${dim("Settings → Appearance → CSS snippets → toggle on minimal-theme")}`);
1441
+ ln(` ${dim("Settings → Appearance → CSS snippets → minimal-theme")}`);
1452
1442
  ln();
1453
- ln(` ${cyan("4")} Run ${bold(command)} in your agent`);
1443
+ ln(` ${cyan("4")} Run ${bold(command)}`);
1454
1444
  ln(` ${dim(updateMode ? "Syncs your Engine with the latest version" : "Builds your Identity, Strategy, and Goals")}`);
1455
1445
  ln();
1456
1446
  ln(gray(" ─────────────────────────────────────"));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mover-os",
3
- "version": "4.0.2",
3
+ "version": "4.0.4",
4
4
  "description": "The self-improving OS for AI agents. Turns Obsidian into an execution engine.",
5
5
  "bin": {
6
6
  "mover-os": "install.js"
@@ -36,7 +36,7 @@ if [ -f "$PENDING_FILE" ]; then
36
36
  fi
37
37
  # Current time is the definitive post-compaction anchor
38
38
  CURRENT_TS=$(date '+%Y-%m-%dT%H:%M')
39
- echo "{\"decision\":\"block\",\"reason\":\"POST-COMPACTION AUTO-LOG: Context was just compacted. Current time: ${CURRENT_TS}. Pre-compaction ended: ${COMPACT_TS:-unknown}. Use these as timestamp anchors — do NOT estimate or project timestamps beyond ${CURRENT_TS}. Read the session summary at: ${SUMMARY_PATH} for what happened before compaction. REQUIRED STEPS (from log.md): (1) Pre-Flight: resolve vault root via git rev-parse --show-toplevel. (2) Step 4: Write session log entries to {VAULT_ROOT}/02_Areas/Engine/Dailies/YYYY-MM/Daily - YYYY-MM-DD.md. Mark as [COMPACTED]. Use pre-compaction timestamp for entries BEFORE compaction, current time for the log entry itself. (3) Step 5: Update plan.md — mark completed tasks [x], append to EXECUTION LOG. (4) Step 6: Update project_state.md — new Solutions Ledger entries, Changelog, Snapshot if significant. (5) Step 7: Update Active_Context Active Sessions buffer (1-line summary, keep 5 most recent). (6) Update Active_Context Workflow State: log_last_run to ${CURRENT_TS}. (7) Git commit changed files. Skip Steps 3.7-3.13 (commitments, waiting-for, decisions, inputs) — these require full conversation context that may be lost in summarization.\"}"
39
+ echo "{\"decision\":\"block\",\"reason\":\"POST-COMPACTION AUTO-LOG: Context was just compacted. You MUST run the /log workflow now. Use the Skill tool to invoke skill 'log'. CONTEXT FOR /log: Current time: ${CURRENT_TS}. Pre-compaction ended: ${COMPACT_TS:-unknown}. Use these as timestamp anchors — do NOT estimate or project timestamps beyond ${CURRENT_TS}. Read the session summary at: ${SUMMARY_PATH} for what happened before compaction. Mark session log entries as [COMPACTED]. Skip Steps 3.7-3.13 (commitments, waiting-for, decisions, inputs) — these require full conversation context that may be lost in summarization.\"}"
40
40
  exit 0
41
41
  fi
42
42
  fi