osborn 0.9.73 → 0.9.74

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.
Files changed (2) hide show
  1. package/dist/index.js +10 -1
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -739,7 +739,16 @@ function startApiServer(workingDir, port) {
739
739
  return;
740
740
  }
741
741
  }
742
- const targetWorkDir = url.searchParams.get('targetWorkDir');
742
+ // 0.9.74: default targetWorkDir to this machine's own working directory.
743
+ // Stale sync clients that omit the param used to get source slugs written
744
+ // verbatim — those sessions LIST fine (the scanner walks all slugs) but
745
+ // silently fail to RESUME (the SDK resumes at cwd=workingDir, whose slug
746
+ // they don't match). Confirmed in prod 2026-07-27 after a stale-skill
747
+ // upload. On a cloud machine, remapping into our own workspace is always
748
+ // the right default; a client that genuinely wants source slugs preserved
749
+ // (e.g. laptop→laptop mirroring) must now opt in with preserveSlugs=1.
750
+ const targetWorkDir = url.searchParams.get('targetWorkDir')
751
+ ?? (url.searchParams.get('preserveSlugs') === '1' ? null : workingDir);
743
752
  const tmpDir = mkdtempSync(join(tmpdir(), 'osborn-import-'));
744
753
  const tarProc = spawn('tar', ['-xf', '-', '-C', tmpDir]);
745
754
  // Stream-sniff the first chunk to detect gzip magic bytes (0x1f 0x8b).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "osborn",
3
- "version": "0.9.73",
3
+ "version": "0.9.74",
4
4
  "description": "Voice AI coding assistant - local agent that connects to Osborn frontend",
5
5
  "type": "module",
6
6
  "bin": {