Pine 0.7.0
Pine 0.7.0 — second-brain graph, multi-repo serve, and work-evidence closes
A second-brain release: typed graph links turn Pine into a knowledge graph, pine serve now spans all your repos, and pine close --evidence closes tickets with a durable record of what changed.
Highlights
- Knowledge graph — typed
linksconnect tickets, memory topics, and learnings with computed backlinks. A unified graph powers a new/graphpage (radial layout, type filters, zoom/pan) and the ticket neighborhood view. - Multi-repo serve —
pine initauto-registers each repo in~/.pine/repos.json;pine serveauto-discovers them all, with per-repo routing (/api/r/{alias}/…), repo-tagged live-sync, and a dashboard repo switcher.--onlykeeps it to one repo. - Agent workflow —
pine close <ID> --evidencemarks a ticket done and appends a "## Work Evidence" section (commits + agit diff --statfrom the ticket's creation). The plan→create / done→close-evidence flow is installed bypine init's agent wizard.
New features
Graph links & second-brain
linksfrontmatter on tickets and memory topics (refs:ticket,LRN-*,memory/<slug>,MEMORY).- New
internal/linkspackage: ref parsing, unified graph (deps/parent/links), computed backlinks, dangling detection. /api/graph+ dedicated/graphroute withGraphView(custom radial-by-type SVG layout, zoom/pan, type filters).- Ticket neighborhood now renders memory link nodes.
pine doctorflags and auto-fixes dangling ticket/topic/learning links.
Multi-repo serve
pine initauto-registers the repo in~/.pine/repos.json(new--aliasflag; collision hint on conflict).pine serveauto-discovers all registered repos via aStoreRegistry;--onlyrestricts to the cwd repo and is read-only on the registry.- Per-repo routing:
/api/repos,/api/r/{alias}/…, repo-tagged SSE. - All alias-routed mutations/reads/attachments hit the alias store; SSE tagged with the request alias.
SetActiveRepois race-free vs pollers (storeMu/gitMu/crossMu/searchMu);go test -racegreen.- Per-repo git poller emits
git.updatedper repo; the web UI caches git per repo for instant switching. - Web
RepoSwitcher(shown when more than one repo is registered); serve banner marks the active repo.
Agent workflow
pine close <ID> --evidenceappends a "## Work Evidence" section (commits referencing/touching the ticket + agit diff --statfrom the commit at its creation time to the working tree); re-running replaces the section.- New
gitx.CommitBefore/gitx.DiffStatprimitives. pine init's agent wizard installs the plan→create / done→close-evidence skill into CLAUDE.md, AGENTS.md, GEMINI.md, and the Cursor skill. No separatepine injectcommand.
Performance & correctness
store.LinksGraph()is cached on the Store with a generation counter (stale-after-invalidation race fixed); invalidated on every ticket/learning/config/memory change; built outside the cache lock to avoid a lock-ordering inversion.- New
watch.KindMemoryinvalidates the graph cache on memory/MEMORY.mdedits so a long-running serve stays coherent.
Tests
- New tests for links, the workspace registry, the per-repo git poller, alias-routed attachments (upload + delete), concurrent
SetActiveRepo,close --evidence, and graph-cache invalidation (incl. a-racestress test). - Coverage held at ≥90%.
Commits since v0.6.4
c272642feat(web): Trello-smooth board with persisted card order034f641feat: typed graph links, multi-repo serve, and close --evidence agent workflow
Full changelog: v0.6.4...v0.7.0