aboutsummaryrefslogtreecommitdiff
path: root/docs/ticket-save-model-v2-spec.org
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-25 22:30:49 -0500
committerCraig Jennings <c@cjennings.net>2026-05-25 22:30:49 -0500
commit504133e600a197b50f05d3916264433ee9e4cb12 (patch)
treeaf78b8d1eae61ba82b71aec53269c7fa93fb0c3b /docs/ticket-save-model-v2-spec.org
parent768c9c0122130d44e9243f22f7681677623b713a (diff)
downloadpearl-504133e600a197b50f05d3916264433ee9e4cb12.tar.gz
pearl-504133e600a197b50f05d3916264433ee9e4cb12.zip
feat(render): derive the #+TODO line and keywords from team workflow states
The renderer wrote a fixed #+TODO line and mapped state names through a static defcustom, so a workspace's real states (Dev Review, PM Acceptance, ...) never showed up. Now the displayed issues' teams drive both. pearl--gather-header-states collects each team's full state set (cached via pearl--team-states, teams in first-seen order, states by position) plus every displayed issue's own state, so a failed team fetch still leaves its issues' states declared. pearl--build-org-content takes that list and derives the #+TODO via pearl--derive-todo-line. pearl--format-issue-as-org-entry renders each keyword with pearl--state-name-to-keyword instead of the static map -- slugify reproduces the old defaults, so standard states are unchanged -- and writes a :LINEAR-STATE-TYPE: drawer so a later merge scan can classify a retained heading. The team-states query gains type and position. The integration test stubs pearl--team-states so the render stays network-free. The merge-refresh header rebuild is the next commit. Until then a same-source refresh keeps the previous header.
Diffstat (limited to 'docs/ticket-save-model-v2-spec.org')
0 files changed, 0 insertions, 0 deletions