stdlib / store
✓ 254 passing ○ 9 planned
Lessons
1 ✓
Passing
001 store create stored watch
2 ✓
Passing 002 store watch guard producer if
3 ✓
Passing 003 store interceptor cross store sync
4 ✓
Passing 004 store no torn state
5 ✓
Passing 005 store plural query watch
6 ✓
Passing 006 store reject watch body ambient context
7 ✓
Passing 008 store update where
8 ✓
Passing 009 store chain envelope multi write
9 ✓
Passing 010 store multi watch same field
10 ✓
Passing 011 store insert capacity full branch
11 ✓
Passing 012 store reject cascade cycle
12 ✓
Passing 013 store cross store guard closure
13 ✓
Passing 014 store stripe scan firing
14 ✓
Passing 016 store lifecycle inserted removed
15 ○
Planned 017 store backend arms di — IDEA PIN (T8) — DESIGN-GATED (2026-07-05 sweep): `! ?persist`
16 ○
Planned 018 store declared key addressing — IDEA PIN (O2 head 3) — WALLED on infra (2026-07-05 sweep), corrected
17 ○
Planned 019 store batch insert fused cascade — IDEA PIN (residue-tier, no spelling yet): batch insert + full cascade fusion — T2's acyclic comptime cascade DAG topo-sorted and fused into one straight-line body per write site, batches applied column-wise over SoA (SIMD), batch = the transaction envelope. See residue.md.
18 ○
Planned 020 store compound field types — IDEA PIN (residue-tier, no spelling yet): compound store field types — f32/f64 scalar columns, vec3, mat4x4. Prerequisite for every one-to-one ecs-store benchmark entry; kernel:shape's green f64 fields (390_001) prove the transform substrate already handles float columns — rung one's non-i64 wall is scoping, not architecture. See residue.md.
19 ✓
Passing 021 store f64 scalar columns
20 ✓
Passing 022 store distinct row types per name
21 ✓
Passing 023 store entity take discharger
22 ✓
Passing 024 store entity take needs discharger
23 ✓
Passing 025 store reference reactive attach
24 ✓
Passing 026 store reference guarded reactive
25 ✓
Passing 027 store pure k reactive attach
26 ✓
Passing 028 store stored chain preserves tail
27 ✓
Passing 029 store two write interceptor
28 ✓
Passing 030 store guarded plural reactive
29 ✓
Passing 031 store query sweep take
30 ✓
Passing 032 store reject unused interceptor binding
31 ✓
Passing 033 store interceptor binding used
32 ✓
Passing 034 store entity take auto discharge
33 ✓
Passing 035 store entity ambiguous discharge forces pick
34 ✓
Passing 036 store entity cross module discharge
35 ✓
Passing 037 store entity name shadows module heuristic
36 ✓
Passing 038 store plural updated delta
37 ✓
Passing 039 store plural updated bad destructure
38 ✓
Passing 040 store plural updated write only
39 ✓
Passing 041 store arena live hp aggregate
40 ✓
Passing 042 store verb inside effect branch body
41 ✓
Passing 043 store multifield stored through cursor
42 ✓
Passing 044 store stripe topo order
43 ✓
Passing 045 store stripe inside effect body
44 ✓
Passing 046 store watch midpipe bind
45 ✓
Passing 047 store entity take auto discharge under foreach
46 ✓
Passing 048 store self foreign key
47 ✓
Passing 049 store plural mixed scalar columns
48 ○
Planned 050 store capacity shape model — IDEA/RULING PIN (residue-tier, no spelling yet): the store's shape is selected
49 ✓
Passing 051 store capacity selects shape
50 ✓
Passing 052 store fixed char column
51 ✓
Passing 053 store string column roundtrip
52 ✓
Passing 054 store reject bare obligation insert
53 ✓
Passing 055 store owned resource column
54 ✓
Passing 056 store file open column
55 ✓
Passing 057 store ambiguous column drain
56 ✓
Passing 058 store ambiguous column undrained leaks
57 ✓
Passing 059 store single field explicit discharge
58 ✓
Passing 060 query owned string store
59 ✓
Passing 061 react inserted owned string
60 ✓
Passing 062 write owned string stored
61 ✓
Passing 063 watch owned string stored
62 ✓
Passing 064 write scalar in owned store
63 ✓
Passing 065 removed owned string
64 ✓
Passing 066 store query nested in loop
65 ✓
Passing 067 store each momentary sweep nested
66 ✓
Passing 068 store sweep owned string nested
67 ✓
Passing 069 store sweep row ordinal
68 ✓
Passing 070 store take empty branch
69 ✓
Passing 071 insert pun shorthand
70 ✓
Passing 072 insert redundant label rejected
71 ✓
Passing 073 store sweep captures enclosing bind
72 ✓
Passing 074 store cell refs in if
73 ✓
Passing 075 store cross store row index
74 ✓
Passing 076 store indexed field read in stored
75 ✓
Passing 077 store owned insert full giveback
76 ✓
Passing 078 store read in produce arm
77 ✓
Passing 079 store declared in imported module
78 ✓
Passing 080 two stores one owned by a module
79 ✓
Passing 081 sweep in statement position
80 ✓
Passing 082 sweep arm calls effect branch tor
81 ✓
Passing 083 sweep arm writes entity field
82 ✓
Passing 084 sweep arm when guard
83 ✓
Passing 085 insert row branch optional
84 ✓
Passing 086 sweep arm binds its row
85 ✓
Passing 087 nested sweeps resolve independently
86 ✓
Passing 088 global store export
87 ✓
Passing 089 sweep projection block retired
88 ✓
Passing 090 sweep row binding shadows store name
89 ✓
Passing 091 sweep row field typo named
90 ✓
Passing 092 stored row index survives a remove
91 ✓
Passing 093 interceptor payload reaches nested sweep
92 ✓
Passing 094 unbound giveback payload threads the given row
93 ✓
Passing 095 sparse dispatch reads the active branch
94 ✓
Passing 096 refused store decl does not cascade
95 ✓
Passing 097 store two column discharge keeps record
96 ✓
Passing 098 sweep one column owned row
97 ✓
Passing 099 unknown store still refuses under the guard
98 ✓
Passing 100 store one column needs no field name
99 ✓
Passing 101 store one column capacity one
100 ✓
Passing 102 watch arm on one column store
101 ✓
Passing 103 watch arm names no column teaches
102 ✓
Passing 104 undrainable column reports once
103 ✓
Passing 105 drain refusal names the composed type
104 ✓
Passing 106 drain arm with the parameter written
105 ✓
Passing 107 drain arm with the parameter omitted
106 ✓
Passing 108 drain discard names no synthetic binding
107 ✓
Passing 109 bare drain arm threads its column
108 ✓
Passing 110 nested sweep outer row is readable
109 ✓
Passing 111 plural f64 columns sweep
110 ✓
Passing 112 nested sweep same store
111 ✓
Passing 113 nested sweep rebound name shadows
112 ✓
Passing 114 pairwise f64 displacement over store
113 ✓
Passing 115 stale row handle write traps
114 ✓
Passing 116 stale row handle read traps
115 ✓
Passing 117 self fk follow survives a remove
116 ✓
Passing 118 sweep arm writes two columns
117 ✓
Passing 119 flattened mat4 vec3 row
118 ✓
Passing 120 frame loop divides f64 column
119 ✓
Passing 121 twenty six component stores
120 ✓
Passing 122 presence column add remove
121 ✓
Passing 123 overlapping systems compose sequentially
122 ✓
Passing 124 store rebuild row by row
123 ✓
Passing 125 multiline stored block two columns
124 ✓
Passing 126 stored block reads pre state
125 ✓
Passing 127 flattened mat4 inverse cofactor expansion
126 ✓
Passing 128 stored block det column reused in block
127 ✓
Passing 129 mat4 inverse roundtrip frame loop
128 ✓
Passing 130 chain bind reaches stored write
129 ✓
Passing 131 swap via chain bind no temp column
130 ✓
Passing 160 store f32 column refuses f64 narrowing write
131 ✓
Passing 170 swap chain bind at scale
132 ✓
Passing 190 store text dump thousand rows parsed back
133 ○
Planned 191 split nested under split piece — OWED: a split nested under another split's piece arm inlines without label clash.
134 ✓
Passing 192 insert literal reads store cell path
135 ✓
Passing 193 stored envelope refuses two stores
136 ✓
Passing 194 store rebuild thousand rows two scalar types
137 ✓
Passing 195 owned column insert from projection
138 ✓
Passing 196 foreign row handle addresses sibling store
139 ✓
Passing 200 schedule overlapping rules stripe
140 ✓
Passing 201 stripe dependent rules whole passes
141 ✓
Passing 202 overlapping unconstrained rules accepted
142 ✓
Passing 210 fold summation order strict
143 ✓
Passing 230 rule body tor call writes foreign store
144 ✓
Passing 231 rule body insert skips standing rules
145 ✓
Passing 232 rule writing own store does not reenter
146 ✓
Passing 233 full arm drops cross module obligation
147 ✓
Passing 234 impl param not captured into sweep arm
148 ✓
Passing 235 single named owned field full arm
149 ✓
Passing 236 a rule is total at its installation point
150 ✓
Passing 238 rule over owned string store
151 ✓
Passing 239 query char column
152 ✓
Passing 240 lifecycle interceptor body runs its transforms
153 ✓
Passing 241 projection derived the same down both lowerings
154 ✓
Passing 242 brand zero is reserved
155 ✓
Passing 243 sweep body reaches enclosing tor input
156 ✓
Passing 244 unary minus before a row reference
157 ✓
Passing 245 indexed read in plural envelope and nested
158 ✓
Passing 246 sweep names its own row handle
159 ✓
Passing 247 rule names its row handle
160 ✓
Passing 248 rule refuses ordinal by name
161 ✓
Passing 249 write row address reads a foreign store
162 ✓
Passing 250 indexed read outside a write block
163 ✓
Passing 251 stored butterfly reads pre state
164 ✓
Passing 252 phantom borrow crosses into a query arm
165 ✓
Passing 253 positional row addressing through a grid
166 ✓
Passing 254 indexed read in a call argument
167 ✓
Passing 255 updated over a char column
168 ✓
Passing 256 branch payload reads a store column
169 ✓
Passing 257 branch payload when a plural store walks first
170 ✓
Passing 258 stripe joins its chain tail
171 ✓
Passing 259 rule guard reads a foreign cell
172 ✓
Passing 260 row read in if condition under rule arm
173 ✓
Passing 261 char column reads on the js target
174 ✓
Passing 262 row read as host proc call argument
175 ✓
Passing 263 lifecycle arm names its row handle
176 ✓
Passing 264 lifecycle arm refuses ordinal and row
177 ✓
Passing 265 clear empties a store and fires cleared once
178 ✓
Passing 266 clear refuses without an aggregate arm
179 ✓
Passing 267 rule arm literal is not a cell read
180 ✓
Passing 268 a written value builds text
181 ✓
Passing 269 a templated write inside an if arm
182 ✓
Passing 270 handle survives a high generation
183 ✓
Passing 271 flow param shadows store name
184 ✓
Passing 272 shared health column one extent
185 ✓
Passing 273 hand tag prefigures synthesized kind
186 ⚠
Broken 274 union members fold to one column — Sibling-field union (`player: Player, enemy: Enemy` in the store seed) is not the store surface. The signed declaration was `entity: Player | Enemy`. These pins must not stay green in stdlib.
187 ⚠
Broken 275 synthesized kind tag round trip — Sibling-field union (`player: Player, enemy: Enemy` in the store seed) is not the store surface. The signed declaration was `entity: Player | Enemy`. These pins must not stay green in stdlib.
188 ⚠
Broken 276 unknown kind refused — Sibling-field union (`player: Player, enemy: Enemy` in the store seed) is not the store surface. The signed declaration was `entity: Player | Enemy`. These pins must not stay green in stdlib.
189 ⚠
Broken 277 missing kind refused — Sibling-field union (`player: Player, enemy: Enemy` in the store seed) is not the store surface. The signed declaration was `entity: Player | Enemy`. These pins must not stay green in stdlib.
190 ⚠
Broken 278 is sugar reads kind by name — Sibling-field union (`player: Player, enemy: Enemy` in the store seed) is not the store surface. The signed declaration was `entity: Player | Enemy`. These pins must not stay green in stdlib.
191 ⚠
Broken 279 is sugar unknown member refused — Sibling-field union (`player: Player, enemy: Enemy` in the store seed) is not the store surface. The signed declaration was `entity: Player | Enemy`. These pins must not stay green in stdlib.
192 ⚠
Broken 280 is sugar kindless store refused — Sibling-field union (`player: Player, enemy: Enemy` in the store seed) is not the store surface. The signed declaration was `entity: Player | Enemy`. These pins must not stay green in stdlib.
193 ⚠
Broken 281 divergent leaves kinded insert and narrow — Sibling-field union (`player: Player, enemy: Enemy` in the store seed) is not the store surface. The signed declaration was `entity: Player | Enemy`. These pins must not stay green in stdlib.
194 ⚠
Broken 282 unnarrowed private leaf refused — Sibling-field union (`player: Player, enemy: Enemy` in the store seed) is not the store surface. The signed declaration was `entity: Player | Enemy`. These pins must not stay green in stdlib.
195 ⚠
Broken 283 wrong kind private leaf refused — Sibling-field union (`player: Player, enemy: Enemy` in the store seed) is not the store surface. The signed declaration was `entity: Player | Enemy`. These pins must not stay green in stdlib.
196 ⚠
Broken 284 insert foreign leaf refused — Sibling-field union (`player: Player, enemy: Enemy` in the store seed) is not the store surface. The signed declaration was `entity: Player | Enemy`. These pins must not stay green in stdlib.
197 ✓
Passing 285 lone store packs two placements
198 ✓
Passing 286 lone store two protos do not fold
199 ✓
Passing 287 store view projects shared leaf
200 ✓
Passing 288 view guard unknown kind refused
201 ✓
Passing 289 is guard on lone store refused
202 ✓
Passing 290 view divergent leaf refused
203 ✓
Passing 291 view private leaf unguarded refused
204 ✓
Passing 292 view private leaf wrong kind refused
205 ✓
Passing 293 view insert foreign leaf refused
206 ✓
Passing 294 capture chain product into nested sweep
207 ✓
Passing 295 bool column round trip
208 ○
Planned 296 set pools kinds folds shared leaf — OWED: std/store:kind + pooled set — kinds have no storage; the set owns capacity; shared leaves fold.
209 ✓
Passing 297 view sweep write body reads leaf
210 ✓
Passing 298 view negated guard excludes member
211 ✓
Passing 299 view compound guard picks two of three
212 ✓
Passing 301 unrelated take query emits fast for
213 ✓
Passing 302 store name inside string literal
214 ✓
Passing 303 module scoped store
215 ✓
Passing 304 insert pipe continuation
216 ✓
Passing 305 query arm take row cursor
217 ✓
Passing 306 query two modules same arm line
218 ✓
Passing 307 sweepbody take in module js
219 ✓
Passing 308 for under query arm
220 ✓
Passing 309 store step pump
221 ✓
Passing 310 store step needs owned column
222 ✓
Passing 311 pump names only step stores
223 ✓
Passing 312 ifcond row read under query sweep
224 ✓
Passing 313 pump idle arm fires on all idle pass
225 ✓
Passing 314 pump wait union poll
226 ✓
Passing 315 store query first none
227 ✓
Passing 316 first stored write none captures
228 ✓
Passing 317 explain reports pump composition
229 ✓
Passing 318 explain reports pump refusals
230 ✓
Passing 319 explain reports store composition
231 ✓
Passing 320 explain reports store participant
232 ✓
Passing 321 store insert refine violation handled
233 ✓
Passing 322 store insert refine violation traps
234 ✓
Passing 323 store insert refine clamp coerces
235 ✓
Passing 324 explain reports insert enforces
236 ✓
Passing 325 store insert refine js
237 ✓
Passing 326 store packed columns js refuses
238 ✓
Passing 327 index store first survives take
239 ✓
Passing 328 index second decl refuses
240 ✓
Passing 329 index decl no column refuses
241 ✓
Passing 330 explain reports index plan
242 ✓
Passing 331 explain reports index plan refused
243 ○
Planned 332 store write inside custom effect arm — std/store sites inside user-defined `!`-pulse arms — parked pending the
244 ✓
Passing 333 lean store elides handle machinery
245 ✓
Passing 334 counted for insert lowers to bulk append
246 ✓
Passing 335 stdlib name collision stays lean
247 ✓
Passing 336 take only rule lowers to drain sweep
248 ✓
Passing 337 reactive take mints dead handle resolves empty
249 ✓
Passing 338 bulk insert mints handles freelist order
250 ✓
Passing 339 take item field as store index
Has docs251 ✓
Passing 340 guarded watch on plural store fans out
Has docs252 ✓
Passing 341 index query membership route
253 ✓
Passing 342 indexed store bulk maintains index
254 ✓
Passing 343 index on i32 column
255 ✓
Passing 344 comma less field list names missing comma
256 ✓
Passing 345 store seed fused after typed value refused
257 ✓
Passing 346 stored write fused dotted head refused
258 ✓
Passing 347 store seed nameless field refused
259 ✓
Passing 348 store insert fused after index refused
260 ✓
Passing 349 store keyed addressing refused
261 ○
Planned 350 spawned context store write — OWED-REFUSAL: a store write reachable under a spawn context must refuse — "this store's owner is the pump context; cross-thread mutation routes through a channel to the owner" (ingress-ring semantics). The check is context-coloring propagated through flow/subflow reachability — the same traversal obligation scopes already ride. TODAY the surface can't spell it: spawned work_fns are host Zig; the enforcement fires when generated mutator units are invoked from a spawned context, so this pin lands with the coloring pass. Posture per the doctrine: unknown/mixed context = refuse, never assume-owner — the unanalyzed case fails loud.
262 ✓
Passing 351 pump retired unit fires once
263 ✓
Passing 352 pump retired needs live
264 ✓
Passing 353 schema field trailing comment
265 ✓
Passing 354 query on value store names the tier
266 ✓
Passing 355 query on tor names the kind
267 ✓
Passing 356 query arm discharges record field obligation
268 ✓
Passing 357 construct glyph in query arm
269 ✓
Passing 358 construct glyph in interceptor arm
270 ✓
Passing 359 construct glyph in watch arm
271 ✓
Passing 360 construct glyph in rule arm
272 ✓
Passing 361 query fmt blk colon spec not binding
273 ✓
Passing 362 query field name matches binding
274 ✓
Passing 363 query dotted field matches binding