You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit e2c0572
Browse filesBrowse the repository at this point in the historyBrowse files
feat(stack-encrypt)!: declare each operator once and prepare a query once
Every operator is declared once, with its type, its arity and its wire
name; the dynamic enum `Op` (`OpSpec` until now, kept as a deprecated
alias) is generated from that list. Each index declares the operators it
answers once, and a plan reads that declaration: a field declares at most
one index per operator, so `(Ore, Ope)` is refused when the plan is built,
on both paths. The second order term cost a write and told anyone who read
the column how its values order.
`Supports::check`, `verifier` and `admit` are one `prepare`, called once
per query before any keyset is resolved, and the refusals a query makes
are written once, in `sem::query`, for the typed chain and the dynamic
path. The typed chain now refuses text with no normal form before the
keyset is resolved, as the binding did; the conformance rows that
recorded the gap are flipped. `op::Matches` has no case parameter: case
is the match index's configuration alone.
Closes#1279Closes#1318Closes#1317Closes#1321Closes#1233
Copy file name to clipboardExpand all lines: docs/plans/2026-10-24-stack-encrypt-api-plan.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2001,7 +2001,7 @@ Decided on 7 November 2026, as area two of the query design review.
2001
2001
does not know which bound the caller meant. The `InvertedRange` error
2002
2002
asked for in #1279 predates that commit and is dropped.
2003
2003
-**Stored format and wire.** Unchanged. A query sends the operator's wire name. That name does not change.
2004
-
-**Tracked in.**Issues #1318and #1279 are open. Issues #1317, #1319, and #1321are open. Issue #1320, the inverted-range rule, is open. This plan's decision supersedes it, so it should be closed.
2004
+
-**Tracked in.**The pull request for #1279, #1318, #1317, #1321and #1233 does this area's `Op` enum and the `Matches` case change. Issues #1319 and #1321were open; #1321 closes with that pull request. Issue #1320, the inverted-range rule, is closed: this plan's decision superseded it.
2005
2005
-**Finished when** these are all true:
2006
2006
- the dynamic enum is generated from the `op` types;
2007
2007
-`Matches` has no type parameter;
@@ -2130,7 +2130,7 @@ review. The rules are the query artifact's.
2130
2130
`.via`. The `MatchConfig` documentation says a field and its query agree "by
2131
2131
construction". That is true only for one-value plans today. Both
2132
2132
are amended, not contradicted in silence.
2133
-
-**Tracked in.**Issues #1318 and #1279 are open. Issue #1233is open: refuse a second order index. That is rule 2. Issues #1317and #1321 are open.
2133
+
-**Tracked in.**Steps 1 and 2 are one pull request, which closes #1279, #1318, #1317, #1321 and #1233(rule 2, the second order index). It brings `prepare`, the `sem::query` rules and `Op`, and drops `Matches`'s case parameter; the analyzer of "Match configuration: one analyzer" is its own work (#1319). Steps 3 and 4 are #1486 and #1488.
2134
2134
-**Finished when** these are all true:
2135
2135
- every index's operators appear in one declaration, and a test shows
2136
2136
the typed and dynamic lookups agree on every index;
0 commit comments