Skip to content

CogniTree 1.2.0

Choose a tag to compare

@github-actions github-actions released this 28 Sep 03:24
· 2 commits to main since this release

Fixes

Exported diagrams and outlines are now correct.

  • Layered SVG connectors no longer sit 24px left of their nodes. Boxes were drawn at x + shiftX while the curves were drawn at the raw x, so every layered export had its connectors offset by the left padding. Confirmed against a real export, where the root box centre was exactly 24 past its own outgoing path.
  • Outline export escapes concept names. A name carrying [, ], |, # or ^ — from the model, or a hand-edited concept: — closed its own [[…]] link early and corrupted the outline. Those characters are now neutralised in both the link target and the heading.

A truncated model response is recovered instead of silently discarded. When a reply was cut off mid-object, the real payload was unterminated, so it never qualified as a balanced object and a schema the model echoed first won instead — "Connections" then reported none rather than a parse failure. The truncated tail is now repaired and preferred when it looks like a payload, while a stray brace in prose still cannot win.

Batch expand can no longer create the same concept twice. addChildren took its duplicate-name snapshot on entry, so with three workers running, two of them could both pass the check for a shared child name — one note was shadowed in the model and the other orphaned in the vault (X (2).md, or a swallowed File already exists). Name allocation and the note writes now share one critical section. Batch concurrency is unchanged.

Merging a subtree no longer gives a concept two parents. A concept that was skipped — its note stayed behind in the source folder — was also listed under the target, contradicting the concept's own parent frontmatter and the source note's children list.

Deleting a subtree removes its review cards. The notes were trashed but the cards stayed in the tree's review store, so the Review session kept serving questions for concepts that no longer existed. Undo still restores them, since the cards survive the deletion itself.

A doubled panel no longer survives every restart. The "two identical icons in the sidebar" is a saved workspace holding two cognitree-view leaves: an older race added a second tab, Obsidian restored it on every start, and closing it by hand never stuck. Since every panel loads the same tree, a duplicate is always redundant — duplicates are now closed once the layout has finished restoring, keeping the panel you are looking at rather than the first in the tab order.

Notes are written with Vault.process instead of Vault.modify. This is what the API recommends for background writes: it takes the current contents as its input, so a save you make while the plugin is writing is no longer clobbered. Both the vault write paths and the export modal are covered.

Command renamed. "Close extra CogniTree panels" is now "Close extra panels" — Obsidian already shows the plugin name beside a command in the palette.

Verification

Release assets are built and attested by GitHub Actions. Every fix above carries a regression test built from the failing case, and the suite runs 810 assertions across the smoke and store suites. The production build type-checks and bundles clean.