feat: node.linkable — first-class link targets for the [[ picker (§8.4)
Some checks failed
Build / validate (pull_request) Failing after 8s

The picker listed every node, so each task showed up twice (itself + its
same-titled canonical-context doc) plus tag/log noise — and the new
preview made the duplicates look identical. New `Store::list_linkable_nodes`
/ `node.linkable` returns non-tombstoned nodes minus `tag`s and the docs
that are a task's canonical-context or log attachment (you link the task,
not its body). The Telescope picker now sources from it.

Tests: a socket test (5 nodes → 2 linkable: task + standalone doc).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Erich Blume 2026-06-03 13:15:29 -07:00
commit 2fc48a1aa9
9 changed files with 57 additions and 3 deletions

View file

@ -117,7 +117,8 @@ local function telescope_insert()
local action_state = require("telescope.actions.state")
local previewers = require("telescope.previewers")
local nodes = rpc.call("node.list", vim.empty_dict()) or {}
-- First-class targets only (excludes tags + tasks' context/log docs, §8.4).
local nodes = rpc.call("node.linkable", vim.empty_dict()) or {}
pickers
.new({}, {
prompt_title = "Link to node (<C-x> = create from prompt)",