From 60b51e1c996f1c8f152696946b9440f26ea9a956 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Mon, 25 May 2026 21:22:27 -0500 Subject: refactor(save): retire the immediate-push field setters for buffer-editors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The structured fields now reconcile at save (the previous commits), so the immediate-push setters are the duplicate path that made the package feel like it had two save models. I retired them. pearl-set-priority is deleted outright — priority is edited org-natively through the heading cookie. pearl-set-state, pearl-set-assignee, and pearl-set-labels become pearl-edit-state / -assignee / -labels: the same completing-read picker, but it writes the buffer representation (keyword/name/id, the assignee drawer, the labels drawer plus the live LINEAR-LABEL-IDS set) and marks the field dirty instead of pushing. The change goes out at the next pearl-save-issue / pearl-save-all. pearl-compose-current-description is renamed pearl-edit-description (its compose-and-push behavior is unchanged — v2 doesn't touch the compose buffers). The transient, the C-; L e keymap, the affordance preamble, and the README follow the new names, and the priority slots are dropped (no command — it's the org cookie). Deleting the setters left pearl--push-issue-field and pearl--priority-choices with no callers, so both are gone, along with the killed-buffer test that only exercised the removed helper. I filed a follow-up: the atomic savers' async commit callbacks need the same killed-buffer guard that helper carried. The setter command tests are rewritten to assert the buffer-write-and-no-push contract. The reconcile-and-push path they used to cover is exercised in test-pearl-save. --- README.org | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'README.org') diff --git a/README.org b/README.org index f10233b..37c2cb6 100644 --- a/README.org +++ b/README.org @@ -194,10 +194,9 @@ All issue commands work from anywhere inside an issue subtree. |-----------------------------------+--------------------------------------------------| | =pearl-sync-current-issue= | Push the edited description body | | =pearl-sync-current-issue-title= | Push the edited heading title | -| =pearl-set-priority= | Set None, Urgent, High, Medium, or Low | -| =pearl-set-state= | Set a workflow state from the issue's team | -| =pearl-set-assignee= | Set a team member as assignee | -| =pearl-set-labels= | Replace labels; empty selection clears them | +| =pearl-edit-state= | Pick a workflow state (pushed at next save) | +| =pearl-edit-assignee= | Pick a team member as assignee (at next save) | +| =pearl-edit-labels= | Pick labels; empty selection clears (at save) | | =pearl-add-comment= | Add a new Linear comment | | =pearl-edit-current-comment= | Push edits to one of your own comments | | =pearl-delete-current-comment= | Delete one of your own comments after confirming | -- cgit v1.2.3