aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/saved-query-sync-spec.org15
1 files changed, 15 insertions, 0 deletions
diff --git a/docs/saved-query-sync-spec.org b/docs/saved-query-sync-spec.org
index 2228799..887447c 100644
--- a/docs/saved-query-sync-spec.org
+++ b/docs/saved-query-sync-spec.org
@@ -281,6 +281,21 @@ Rationale: the failure mode is rare (=customize-save-variable= failing means dis
Effect on the spec: § Open questions empties (status moves to Ready). § Implementation tasks: phase 2's entry adds a one-line note about the orphan-id messaging requirement.
+** 2026-05-28 — Phase 1 round-trip probe: pearl filter output works as customView filterData
+
+Ran a live round-trip against api.linear.app to close phase 1:
+
+1. =pearl--build-issue-filter '(:open t :assignee :me)= →
+ =(("assignee" ("isMe" ("eq" . t))) ("state" ("type" ("nin" . ["completed" "canceled" "duplicate"]))))=
+2. =customViewCreate= called with that structure as =filterData=, =shared: false=, no team. Result: =success=t=, view created with id =4354f3e7-1f94-4ea7-8ba8-6f24d3ee2944=.
+3. =customView(id:)= read back the identical =filterData= structure. Linear preserved the shape exactly.
+4. =shared=false= and =team=nil= persisted as personal, as expected.
+5. =customViewDelete= cleaned up the throwaway view (=success=t=).
+
+Phase 1 is therefore complete. Pearl's existing compiler is the mapping; no new helper or schema-translation layer is needed. Phase 2 (the user-facing command) can consume =pearl--build-issue-filter='s output as =filterData= verbatim.
+
+Probe script archived at =/tmp/view-sync-probe.el= (not committed; one-off verification). The probe pattern (build via compiler → create → read back → delete) is what phase 7's slow-tagged integration test will codify if Craig wants a permanent regression guard.
+
** 2026-05-28 — Q5 (pearl-publish-current-source v1 vs vNext): ship in v1 + bind
Craig (2026-05-28, revised same-day): option 3 -- ship the convenience wrapper in v1 *and* bind it. The trigger ("I'm reading this saved query rendered in pearl right now and want to publish it") deserves a one-chord answer rather than an =M-x= round-trip; if we're shipping the wrapper anyway, binding it lands the muscle-memory shape at the same time.