aboutsummaryrefslogtreecommitdiff
path: root/docs/todo-keywords-from-workflow-states-spec.org
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-25 07:33:16 -0500
committerCraig Jennings <c@cjennings.net>2026-05-25 07:33:16 -0500
commit291abb5d810d9910e80991881674439174bc56cf (patch)
treee7a2e289ae1f50682ca0587da76cb04b2fdc08f2 /docs/todo-keywords-from-workflow-states-spec.org
parent9b17dc89fc25417e207943dafe8bf09ac211ae32 (diff)
downloadpearl-291abb5d810d9910e80991881674439174bc56cf.tar.gz
pearl-291abb5d810d9910e80991881674439174bc56cf.zip
fix: seven quick bugs from the 2026-05-25 code review
A batch of small, independent fixes a code-review pass turned up, each its own :bug:quick:solo: todo. They share no code path beyond pearl.el, so the body lists them. Single-issue refresh false-stash: pearl-refresh-current-issue decided whether to stash "local edits" by hashing org->md against LINEAR-DESC-SHA256, the lossy markdown round-trip. A clean issue whose description has lossy markdown (a # heading, single-asterisk italics) looked dirty and got stashed before every refresh. It now uses pearl--subtree-dirty-p, the Org-hash-first check the merge refresh already uses. Comment outcome parent id: pearl--save-comment-field read :issue-id from the comment heading, which carries LINEAR-COMMENT-ID, not LINEAR-ID, so comment outcomes got :issue-id nil against the contract. A new pearl--issue-id-at-point climbs to the enclosing issue. save-all viewer-unavailable count: when the viewer lookup failed, save-all passed a nil viewer id and the prompt counted every dirty comment as read-only, disagreeing with the actual skipped/viewer-unavailable outcome. The counts and prompt now carry an explicit viewer-unavailable tally. Request-counter leak: pearl--graphql-request-async incremented pearl--active-requests before pearl--headers, which signals when the key is unset, so neither callback ran to decrement it. I build the headers before the increment. Issue commands from comment subtrees: save-issue, refresh, compose-description, open-issue, and the field setters read LINEAR-ID from the nearest heading, so running them from inside a comment hit the comment heading and rejected with "Not on a Linear issue heading". A new pearl--goto-issue-heading-or-error climbs to the issue heading; the commands use it. Project selector on no projects: pearl-select-project ran (string= selected "None") even when a team had no projects and selected was nil. I guard the nil case. (The reported wrong-type crash doesn't reproduce here, since string= treats nil as the symbol "nil", but the guard makes the optional-no-projects path explicit.) Query filter validation: pearl-run-saved-query, pearl-list-issues-filtered, and pearl-list-issues compiled their authoring plist without calling pearl--validate-issue-filter, so an unknown key in a saved query was silently ignored. They now validate at the command boundary, so typos surface as a clear user-error.
Diffstat (limited to 'docs/todo-keywords-from-workflow-states-spec.org')
0 files changed, 0 insertions, 0 deletions