From 3a3e5b0505afa1dcbb9a3f7ba8012b489b7c4043 Mon Sep 17 00:00:00 2001 From: Barrett Ruth Date: Tue, 10 Mar 2026 17:44:10 -0400 Subject: [PATCH] feat(parse): extract forge refs from task body Problem: `parse.body()` had no awareness of forge link tokens, so `gh:user/repo#42` stayed in the description instead of metadata. Solution: add `forge_ref` field to `pending.Metadata` and extend the right-to-left token loop in `body()` to call `forge.parse_ref()` as the final fallback before breaking. --- lua/pending/parse.lua | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/lua/pending/parse.lua b/lua/pending/parse.lua index 5a705ef..fadd553 100644 --- a/lua/pending/parse.lua +++ b/lua/pending/parse.lua @@ -6,6 +6,7 @@ local config = require('pending.config') ---@field rec? string ---@field rec_mode? 'scheduled'|'completion' ---@field priority? integer +---@field forge_ref? pending.ForgeRef ---@class pending.parse local M = {} @@ -596,7 +597,17 @@ function M.body(text) metadata.rec = raw_spec i = i - 1 else - break + local forge = require('pending.forge') + local ref = forge.parse_ref(token) + if ref then + if metadata.forge_ref then + break + end + metadata.forge_ref = ref + i = i - 1 + else + break + end end end end