synabun 2026.4.26-3 → 2026.4.26-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.
@@ -10908,6 +10908,7 @@ function detectInstallSource(binPath) {
10908
10908
  if (/\/node_modules\//.test(p) || /\/npm\/node_modules\//.test(p)) return 'npm';
10909
10909
  if (p.includes('/opt/homebrew/') || p.includes('/usr/local/cellar/') || /\/homebrew\//.test(p)) return 'brew';
10910
10910
  if (p.includes('/.claude/local/') || p.includes('/anthropicclaude/')) return 'native';
10911
+ if (/\/\.local\/bin\//.test(p)) return 'native';
10911
10912
  if (/\/program files( \(x86\))?\//.test(p) || /\/localappdata\/.*anthropicclaude/.test(p)) return 'native';
10912
10913
  if (p.includes('/winget/') || p.includes('/microsoft/winget/')) return 'winget';
10913
10914
  if (/\/usr\/local\/lib\/node_modules\//.test(p)) return 'npm';
@@ -11036,15 +11037,19 @@ async function checkToolVersions() {
11036
11037
  }
11037
11038
 
11038
11039
  // Nuclear safety net for the recurring claude phantom-version bug:
11039
- // if the probe returned a known historical bundled version of claude-code,
11040
- // reject it even if the binary-path detection failed. A real user-global
11041
- // install of claude is always current (2.1.116+), so seeing 2.1.89 etc.
11042
- // means we're reading a stale bundle SynaBun shipped in a prior release.
11043
- if (tool.key === 'claude-code' && installed && KNOWN_STALE_CLAUDE_VERSIONS.has(installed)) {
11040
+ // only reject when binary path detection failed (truly phantom). If we
11041
+ // resolved a path AND it's outside SynaBun's own dirs, trust the version
11042
+ // — Anthropic ships these versions in the native installer too, so a
11043
+ // version-only blacklist hits legit installs at ~/.local/bin/claude.exe.
11044
+ if (
11045
+ tool.key === 'claude-code' &&
11046
+ installed &&
11047
+ KNOWN_STALE_CLAUDE_VERSIONS.has(installed) &&
11048
+ !probedBinPath
11049
+ ) {
11044
11050
  console.warn(
11045
- ` [version-guard] Rejected claude v${installed} from ${probedBinPath || '(unknown path)'}` +
11046
- ` — matches known-stale SynaBun bundle. Treating as not installed. ` +
11047
- `If you actually have this version installed, remove it from KNOWN_STALE_CLAUDE_VERSIONS.`
11051
+ ` [version-guard] Rejected claude v${installed} from (unknown path)` +
11052
+ ` — matches known-stale SynaBun bundle and no binary path could be resolved.`
11048
11053
  );
11049
11054
  installed = null;
11050
11055
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "synabun",
3
- "version": "2026.4.26-3",
3
+ "version": "2026.4.26-4",
4
4
  "description": "Persistent vector memory for AI assistants",
5
5
  "license": "Apache-2.0",
6
6
  "author": "The SynaBun Authors",