aboutsummaryrefslogtreecommitdiff
path: root/README.org
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-01 23:50:29 -0500
committerCraig Jennings <c@cjennings.net>2026-06-01 23:50:29 -0500
commit93c70b2b42174caa101d3de1fc46630dcdbcf941 (patch)
tree752f098350b2d85ce62022979bff16ee2ededa23 /README.org
parent92a3be1085359dfb60d4861670398ee3f496fe99 (diff)
downloadpearl-93c70b2b42174caa101d3de1fc46630dcdbcf941.tar.gz
pearl-93c70b2b42174caa101d3de1fc46630dcdbcf941.zip
docs(filter): document multi-state selection and reconcile the views boundary
I documented the new multi-state capability and brought the views spec and README back in sync with it. The README's filter section notes the State prompt is multi-select and shows the (:state ("Todo" "In Review")) form. The local/Linear views spec's reverse-compile dimension table, singular-vs-plural rule, and refusal list now list state.name.in as a plural-capable exception alongside :labels and :state-type, and the README copy-down paragraph no longer claims a multi-value filter on any single dimension refuses. The views vNext note records that the named-states case shipped here. Phase 3 of docs/multi-state-filter-spec.org. Docs only.
Diffstat (limited to 'README.org')
-rw-r--r--README.org4
1 files changed, 2 insertions, 2 deletions
diff --git a/README.org b/README.org
index 43e8d86..531421b 100644
--- a/README.org
+++ b/README.org
@@ -240,7 +240,7 @@ Pearl's =:sort= / =:order= on a local view don't publish up in v1 -- Linear's =C
The other direction -- *copy down* -- forks a Linear view into a new, editable local view. =pearl-save-linear-view-locally= (=C-; L f d=, or =d= in the transient's Views group) lists your favorited Linear views, fetches the chosen view's filter, and reverse-compiles it into a Pearl authoring filter you can then edit and rename. The new local view is independent: it carries no tracking link, so editing or renaming it never touches the Linear view (publish it back later to push your changes up as a new Linear view).
-Linear stores a view's filter as an =and=/=or= tree that's richer than Pearl's AND-only local model. Copy-down works for any view inside that model -- a team / state / label / assignee filter, the common case. When a view uses something Pearl can't represent (OR logic, a label parent, a due-date filter, a multi-value filter on a single dimension), copy-down *refuses and names the construct* rather than silently saving a filter that matches a different set of issues; run such a view directly with =pearl-run-linear-view= instead. To copy down *all* Linear views (not just favorited ones) is a later addition; v1 lists favorites.
+Linear stores a view's filter as an =and=/=or= tree that's richer than Pearl's AND-only local model. Copy-down works for any view inside that model -- a team / state / label / assignee filter, the common case. When a view uses something Pearl can't represent (OR logic, a label parent, a due-date filter, or a multi-value filter on a singular dimension like project or assignee), copy-down *refuses and names the construct* rather than silently saving a filter that matches a different set of issues; run such a view directly with =pearl-run-linear-view= instead. To copy down *all* Linear views (not just favorited ones) is a later addition; v1 lists favorites.
*** Creating and editing local views
@@ -268,7 +268,7 @@ Linear stores a view's filter as an =and=/=or= tree that's richer than Pearl's A
| =pearl-refresh-current-view= | Re-run the source recorded in the active file |
| =pearl-refresh-current-issue= | Re-fetch the issue at point |
-Ad-hoc filtering starts with a team, then completes states, projects, and labels from that team's actual Linear values. The assignee prompt offers =me=, a specific =member= (resolved to a user id), or =any= (no scoping). Local views are local Lisp data:
+Ad-hoc filtering starts with a team, then completes states, projects, and labels from that team's actual Linear values. The State and Labels prompts are multi-select (comma-separated): pick several states to match issues in any of them, e.g. =(:state ("Todo" "In Review"))=. The assignee prompt offers =me=, a specific =member= (resolved to a user id), or =any= (no scoping). Local views are local Lisp data:
#+begin_src emacs-lisp
(setq pearl-local-views