Releases: SI-GMT/SecondBrain
v0.5.4 — Zero-orphan-atom invariant + cross-links
Highlights
Zero-orphan-atom invariant. Every file persisted in the vault now carries at least one link (inbound or outbound). No more isolated nodes in Obsidian's graph view.
What's new
Doctrine bloc — core/procedures/_linking.md
A new shared bloc, included by mem-archive, mem-promote-domain and _router. It specifies:
- The link contract per file kind (index,
context.md,history.md, archives, transverse atoms). - The standard intro line format for
context.mdandhistory.md, sourced fromcore/i18n/strings.yaml({language}.context.intro_with_links,{language}.history.intro_with_links). - The rule for transverse atoms (
40-principles/,20-knowledge/,50-goals/,60-people/): mandatoryproject:ordomain:frontmatter, mandatorycontext_origin: "[[founding-archive]]", and append to the founding archive'sderived_atomsarray. Otherwise → write to00-inbox/with tagunlinked-atomand report to user.
i18n strings.yaml extended
Added context.intro_with_links and history.intro_with_links keys for all 5 bundled languages (en/fr/es/de/ru).
Example for fr:
> Snapshot mutable du projet. Voir aussi : [historique](history.md) · [archives/](archives/)> Fil chronologique des sessions du projet. Voir aussi : [contexte](context.md)
scripts/enforce-linking.py
Idempotent retroactive utility for vaults pre-dating this rule. Detects the user's language from memory-kit.json, loads the localized intro lines from strings.yaml, and inserts or rewrites the intro right after the frontmatter of every context.md and history.md across all projects and domains.
Migration path
For an existing vault upgrading from v0.5.3 to v0.5.4:
python scripts/enforce-linking.py --vault ~/vault --dry-run # inspect
python scripts/enforce-linking.py --vault ~/vault # applyNo structural changes; only intro lines added. Safe to re-run (idempotent).
Why it matters
Without this, context.md files were orphans in Obsidian's graph view: not listed in index.md (by doctrine — mutable snapshots), not referenced in history.md, no outbound links of their own. The graph showed them as isolated nodes, invisible to graph navigation.
With v0.5.4, every project's context.md ↔ history.md are mutually linked, both rooted in the index via the project's history.md entry. The graph is now connected, and mem-recall can traverse the lineage cleanly.
Full Changelog: v0.5.3...v0.5.4