aboutsummaryrefslogtreecommitdiff
path: root/docs/issue-conflict-handling-spec.org
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-01 17:08:36 -0500
committerCraig Jennings <c@cjennings.net>2026-06-01 17:08:36 -0500
commit4eab7a048ca18eeef31e4f8d0823182fc6e2368f (patch)
treea28bc1d5aa23f400c73083aa92cd80d45c93f53f /docs/issue-conflict-handling-spec.org
parent55fa2ffe2527ab6a9d93da21b153b26bc803ffda (diff)
downloadpearl-4eab7a048ca18eeef31e4f8d0823182fc6e2368f.tar.gz
pearl-4eab7a048ca18eeef31e4f8d0823182fc6e2368f.zip
docs: finalize local/Linear views spec for implementation
The spec is implementation-ready. It pins the design the earlier drafts left open, across the parts that turned out to need real contracts rather than prose. Copy-down's reverse-compile is the load-bearing piece. A live probe verified that CustomView.filterData is readable but stored as Linear's and/or view-filter tree, not the IssueFilter shape Pearl's compiler emits, so the reverse-compile is a normalize-then-match: flatten the tree, unwrap single-branch or/and, read one-element in as a scalar, then match each conjunct to a Pearl authoring key. The per-dimension contract is explicit, including the cases where the compiled filter loses information: :state and :state-type stay distinct, :priority canonicalizes to the integer, :open t maps from the exact open-state nin while generic nin refuses, and a multi-value in on any singular key refuses rather than silently narrow the view. Anything outside the model refuses with a structured reason instead of producing a lossy local view. The rest of the surface is settled too. A tracked local view runs the local filter, the source of truth, not its Linear mirror. Edit preserves all non-edited metadata through a dedicated writer. One account guard covers every read and mutate, with delete and publish refusing before any Linear call on a mismatch. Local and cross-store name collisions have a defined policy. Vocabulary is direct-renamed to filter / local view / Linear view, with intent-first publish and save-locally commands and no aliases. Agreed decisions, acceptance criteria, a phased plan, and the dispositions are recorded inline.
Diffstat (limited to 'docs/issue-conflict-handling-spec.org')
0 files changed, 0 insertions, 0 deletions