Skip to content

v0.9.1 — Install + Init Hardening

Choose a tag to compare

@nikhilsoman nikhilsoman released this 22 Jun 01:56

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.00.9.1.

Upgrading

curl -sSL https://raw.githubusercontent.com/nikhilsoman/synlynk/main/install.sh | bash

Existing 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/.