v0.9.1 — Install + Init Hardening
What's fixed
synlynk init in any repo now works correctly
Three production gaps found when first using synlynk in an external repo (rxcc):
Install broken after package split
The v0.9.0 package split turned bin/synlynk.py into a 5-line shim, but install.sh still only copied the shim — leaving the synlynk/ package absent from ~/.synlynk/. Result: ModuleNotFoundError: No module named 'synlynk' on any machine that installed before this patch.
Fix: install.sh now copies synlynk/ to ~/.synlynk/lib/synlynk/. Curl installs download synlynk/__init__.py directly. The shim's sys.path is patched at install time to point at ~/.synlynk/lib/.
synlynk init generated blank skeletons over existing project docs
Running synlynk init in a mature repo with existing roadmap.md, todo.md, memory.md (at root or under project-docs/) always wrote blank git-history templates, losing real project content. Agents saw two conflicting doc sets.
Fix: synlynk init now searches for existing docs before generating anything — root level, project-docs/, project-prefixed variants (rxcc_memory.md), uppercase names. First match with >200 bytes is migrated verbatim. Blank skeletons from git history are last resort only.
Output now shows what happened:
✓ ./roadmap.md (migrated from project-docs/roadmap.md)
✓ ./memory.md (generated from git history)
Repos with root-level docs conflicted with project-docs/ convention
Repos that keep docs at the root (not under project-docs/) had no way to tell synlynk where to look. All ~35 hardcoded "project-docs/" strings are now configurable.
Fix: synlynk init --docs-dir <path> writes project_docs_dir to .synlynk/config.json. All downstream commands (generate_context, checkpoint, update_costs, synlynk scan --deep) respect it.
synlynk init --docs-dir . # docs at repo root
synlynk init --docs-dir docs/ # docs under docs/VERSION string corrected
synlynk --version was reporting 0.7.0 since the package split. Fixed to 0.9.0 → 0.9.1.
Upgrading
curl -sSL https://raw.githubusercontent.com/nikhilsoman/synlynk/main/install.sh | bashExisting installs need to re-run the installer — the shim at ~/.synlynk/bin/synlynk needs to be updated and the package needs to be placed at ~/.synlynk/lib/synlynk/.