Skip to content

Pine 0.7.0

Choose a tag to compare

@github-actions github-actions released this 05 Aug 09:32
· 6 commits to main since this release

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 links connect tickets, memory topics, and learnings with computed backlinks. A unified graph powers a new /graph page (radial layout, type filters, zoom/pan) and the ticket neighborhood view.
  • Multi-repo servepine init auto-registers each repo in ~/.pine/repos.json; pine serve auto-discovers them all, with per-repo routing (/api/r/{alias}/…), repo-tagged live-sync, and a dashboard repo switcher. --only keeps it to one repo.
  • Agent workflowpine close <ID> --evidence marks a ticket done and appends a "## Work Evidence" section (commits + a git diff --stat from the ticket's creation). The plan→create / done→close-evidence flow is installed by pine init's agent wizard.

New features

Graph links & second-brain

  • links frontmatter on tickets and memory topics (refs: ticket, LRN-*, memory/<slug>, MEMORY).
  • New internal/links package: ref parsing, unified graph (deps/parent/links), computed backlinks, dangling detection.
  • /api/graph + dedicated /graph route with GraphView (custom radial-by-type SVG layout, zoom/pan, type filters).
  • Ticket neighborhood now renders memory link nodes.
  • pine doctor flags and auto-fixes dangling ticket/topic/learning links.

Multi-repo serve

  • pine init auto-registers the repo in ~/.pine/repos.json (new --alias flag; collision hint on conflict).
  • pine serve auto-discovers all registered repos via a StoreRegistry; --only restricts 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.
  • SetActiveRepo is race-free vs pollers (storeMu/gitMu/crossMu/searchMu); go test -race green.
  • Per-repo git poller emits git.updated per 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> --evidence appends a "## Work Evidence" section (commits referencing/touching the ticket + a git diff --stat from the commit at its creation time to the working tree); re-running replaces the section.
  • New gitx.CommitBefore / gitx.DiffStat primitives.
  • 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 separate pine inject command.

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.KindMemory invalidates the graph cache on memory/MEMORY.md edits 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 -race stress test).
  • Coverage held at ≥90%.

Commits since v0.6.4

  • c272642 feat(web): Trello-smooth board with persisted card order
  • 034f641 feat: typed graph links, multi-repo serve, and close --evidence agent workflow

Full changelog: v0.6.4...v0.7.0