diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-05 01:06:18 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-05 01:06:18 -0500 |
| commit | 3f491e73cdbdc03d652bce81fdfc68eabb313213 (patch) | |
| tree | 772f0e109ac0eda3a789f0d83bb8737234dd0ed9 /README.org | |
| parent | 951abea0b2ed07d71676cd4d10ff7c6ca50d1390 (diff) | |
| download | pearl-3f491e73cdbdc03d652bce81fdfc68eabb313213.tar.gz pearl-3f491e73cdbdc03d652bce81fdfc68eabb313213.zip | |
feat(comments): fetch an issue's full comment thread
pearl-fetch-all-comments pages the whole comment connection for the issue at point and replaces its Comments subtree with the complete set. It's bound to C-; L f c and in the transient. The bulk list and view fetch showed only the newest pearl-list-comments-shown comments with an N/M+ overflow marker, so anything past the cap couldn't surface in the buffer.
The replacement is surgical: pearl--replace-comments-subtree swaps only the Comments subtree, so the issue title, drawer, and description body keep any unsaved edits, and the new heading carries an exact N/N count. It refuses when the issue has unpushed comment edits (reusing the save model's dirty scanner) so the fetch can't clobber an unsent change.
Diffstat (limited to 'README.org')
| -rw-r--r-- | README.org | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -316,6 +316,7 @@ Pearl has one write path. Edit an issue however you like in the buffer, then sav | =pearl-create-comment= | Add a new Linear comment | | =pearl-edit-current-comment= | Edit one of your own comments | | =pearl-delete-current-comment= | Delete one of your own comments after confirming | +| =pearl-fetch-all-comments= | Load the issue's full comment thread (=C-; L f c=) | | =pearl-delete-current-issue= | Soft-delete the current issue after confirmation | | =pearl-open-current-issue= | Open the issue URL in a browser | | =pearl-open-current-view-in-linear= | Open the active view in Linear | @@ -326,7 +327,7 @@ How each field is edited: - *Priority* -- the Org priority cookie (=C-c ,=, or =S-up= / =S-down=). =[#A]/[#B]/[#C]/[#D]= are Urgent/High/Medium/Low; no cookie is None. - *State* -- =pearl-edit-state=, completing over the team's workflow states. - *Assignee and labels* -- =pearl-edit-assignee= / =pearl-edit-labels=, completing over the team's members and labels. Labels also render as Org tags on the heading (=:bug:backend:=), so you can filter, sparse-tree, and build agendas on them. The =:LINEAR-LABELS:= drawer stays the source of truth; hand-edited heading tags are ignored and rewritten from Linear on the next change or fetch, so change labels with =pearl-edit-labels=. The assignee renders as a leading =@=-tag (=:@eric:bug:backend:=) so you can see who owns an issue at a glance on a team or "by person" view; set =pearl-show-assignee= to nil to omit it. It is display-only -- the =:LINEAR-ASSIGNEE-ID:= drawer is the source of truth, and the tag stays outside the title hash, so it never affects sync. -- *Comments* -- edit your own in place, or =pearl-create-comment= for a new one. +- *Comments* -- edit your own in place, or =pearl-create-comment= for a new one. A bulk list or view shows only the newest few comments per issue, marked =N/M+= when there are more. =pearl-fetch-all-comments= (=C-; L f c=) pulls the whole thread for the issue at point and replaces its Comments subtree with the full set. It refuses if you have unsaved comment edits, so save or discard those first. - *Mentions* -- in a comment or description compose buffer, type =@= at the start of a word to pop a picker over the team's members and insert =@displayName= (Linear's mention handle), so you never have to recall a teammate's exact spelling. =C-; L @= (=pearl-mention-user=) runs the same picker explicitly, and works inline in an issue buffer too. An =@= mid-word (an email, say) stays literal, and cancelling the picker leaves a literal =@=. Picking a constrained field writes the value into the buffer and marks it changed; it doesn't push until you save. The display name or label text is there to read -- Pearl reconciles by the underlying id, and a refresh rewrites the display from the remote, so hand-editing the visible name has no effect. |
