@getbourdon/conformance 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "_doc": "Index of cross-impl parity fixtures. conformance_version bumps on any fixture change (patch=added cases, minor=new family, major=changed expected-output = a reviewed behavior change). Python is the oracle; this file is generated by tools/gen_conformance.py.",
3
- "conformance_version": "2.2.0",
3
+ "conformance_version": "2.3.0",
4
4
  "produced_against": {
5
- "bourdon_version": "0.13.0"
5
+ "bourdon_version": "0.16.1"
6
6
  },
7
7
  "fixtures": [
8
8
  {
@@ -100,6 +100,11 @@
100
100
  "sha256": "963f9eb6c68cd8897650f098c241ebbff34ab23603bf9fee92e5431ae2db78af",
101
101
  "producer": "tools/gen_conformance.py::l5_schema_and_manifests"
102
102
  },
103
+ {
104
+ "path": "merge_vectors.json",
105
+ "sha256": "9a1d105d6c2b0bc00e419b318ae4d802457241cca0cbbe87f1a87c529a11e923",
106
+ "producer": "tools/gen_conformance.py::merge_vectors"
107
+ },
103
108
  {
104
109
  "path": "fed_seed_library/agents/claude-code.l5.yaml",
105
110
  "sha256": "efe5467ee41bfe807098f2339dda7295f236c1ae7f575016b2402f9ba1988f7c",
@@ -172,7 +177,7 @@
172
177
  },
173
178
  {
174
179
  "path": "mcp_snapshots/prepare_recognition_context_drifting.res.json",
175
- "sha256": "665c149473ce295b22970f072483de4d3f93bc4affb022752a0251a5852e4567",
180
+ "sha256": "2d217ba56593bf6593216546c223adf0b972470632adb326bb82eb5d5996acc8",
176
181
  "producer": "tools/gen_conformance.py::mcp_snapshots"
177
182
  },
178
183
  {
@@ -272,7 +277,7 @@
272
277
  },
273
278
  {
274
279
  "path": "mcp_snapshots/prepare_recognition_context.res.json",
275
- "sha256": "fed8be60118cc027654ce8c2d1bb072482808c62e7997fd236ba276d5a50a580",
280
+ "sha256": "dfb2d73ddb812d41dfe8e0b17dddeb1399373904972c09cf80e0bf9daa65941f",
276
281
  "producer": "tools/gen_conformance.py::mcp_snapshots"
277
282
  },
278
283
  {
@@ -292,7 +297,7 @@
292
297
  },
293
298
  {
294
299
  "path": "mcp_snapshots/get_deeper_context.res.json",
295
- "sha256": "842926cd013275692fd11daab8553a329f2685c870b59389ee5b075544d5ed49",
300
+ "sha256": "c92ec338c23f2cdc3f1215751812c7f5c2c08aa86fb3ff097288e4c831313053",
296
301
  "producer": "tools/gen_conformance.py::mcp_snapshots"
297
302
  },
298
303
  {
@@ -392,7 +397,7 @@
392
397
  },
393
398
  {
394
399
  "path": "native_stores/claude_code/expected_l5.json",
395
- "sha256": "9235bd39863934d3ce6686218ab0b535b6c7a6d94348ffdde2f132517da03b8d",
400
+ "sha256": "a352c29e299c50322f28e9250df1642ab7f1ae285cdfc3b794f13c1335e19899",
396
401
  "producer": "tools/gen_conformance.py::native_stores"
397
402
  },
398
403
  {
@@ -1,7 +1,18 @@
1
1
  {
2
2
  "access_level": "team",
3
- "context": "",
4
- "context_chars": 0,
3
+ "context": "## Bourdon (project)\nknown by: claude-code, codex\nConformance fixture synopsis. L1 hydration is byte-checkable, so this text is\npinned verbatim into the interop vectors -- which is exactly why it must be\nfixture-owned rather than real documentation. A second implementation has to\nreproduce THIS, not whatever the project's docs happen to say today.",
4
+ "context_chars": 349,
5
+ "doors": [
6
+ "recognition"
7
+ ],
8
+ "entities": [
9
+ "Bourdon"
10
+ ],
11
+ "hydration_hint": "Local retrieval only -- these are stored bytes, not generated prose. Synthesize with your own model if you want a narrative answer; Bourdon does not call one.",
5
12
  "include_private": false,
6
- "prompt": "what about Bourdon"
13
+ "l1_documents": 1,
14
+ "prompt": "what about Bourdon",
15
+ "reason": "",
16
+ "source": "local-store",
17
+ "truncated": false
7
18
  }
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "access_level": "team",
3
3
  "confidence": "medium",
4
+ "hydration": "# Bourdon\n\nConformance fixture synopsis. L1 hydration is byte-checkable, so this text is\npinned verbatim into the interop vectors -- which is exactly why it must be\nfixture-owned rather than real documentation. A second implementation has to\nreproduce THIS, not whatever the project's docs happen to say today.",
5
+ "hydration_chars": 310,
4
6
  "hydration_scheduled": true,
5
7
  "include_private": false,
6
8
  "matched_entities": [
@@ -8,6 +8,8 @@
8
8
  "reason": "yielded nothing this run - last yielded 400 record(s) at 2026-06-29T09:00:00Z"
9
9
  }
10
10
  ],
11
+ "hydration": "# Bourdon\n\nConformance fixture synopsis. L1 hydration is byte-checkable, so this text is\npinned verbatim into the interop vectors -- which is exactly why it must be\nfixture-owned rather than real documentation. A second implementation has to\nreproduce THIS, not whatever the project's docs happen to say today.",
12
+ "hydration_chars": 310,
11
13
  "hydration_scheduled": true,
12
14
  "include_private": false,
13
15
  "matched_entities": [
@@ -0,0 +1,325 @@
1
+ {
2
+ "_doc": "merge_family parity vectors: run each (family, existing, incoming) through the mirror's merge and compare to expected.merged/added/updated/clamped. Caps are schema-derived, restated here for assertion only.",
3
+ "caps_from_schema": {
4
+ "recent_sessions": {
5
+ "key_actions": 10,
6
+ "files_touched": 50
7
+ },
8
+ "known_entities": {
9
+ "aliases": 16
10
+ },
11
+ "known_workstreams": {
12
+ "related_entities": 32
13
+ },
14
+ "notes": {
15
+ "related_entities": 16
16
+ }
17
+ },
18
+ "cases": [
19
+ {
20
+ "id": "session-union-under-cap-preserves-order",
21
+ "family": "recent_sessions",
22
+ "existing": [
23
+ {
24
+ "date": "2026-08-01",
25
+ "cwd": "/w",
26
+ "key_actions": [
27
+ "a",
28
+ "b"
29
+ ]
30
+ }
31
+ ],
32
+ "incoming": [
33
+ {
34
+ "date": "2026-08-01",
35
+ "cwd": "/w",
36
+ "key_actions": [
37
+ "b",
38
+ "c"
39
+ ]
40
+ }
41
+ ],
42
+ "expected": {
43
+ "merged": [
44
+ {
45
+ "date": "2026-08-01",
46
+ "cwd": "/w",
47
+ "key_actions": [
48
+ "a",
49
+ "b",
50
+ "c"
51
+ ]
52
+ }
53
+ ],
54
+ "added": 0,
55
+ "updated": 1,
56
+ "clamped": 0
57
+ }
58
+ },
59
+ {
60
+ "id": "session-union-clamps-to-cap-keeping-newest",
61
+ "family": "recent_sessions",
62
+ "existing": [
63
+ {
64
+ "date": "2026-08-01",
65
+ "cwd": "/w",
66
+ "key_actions": [
67
+ "first-0",
68
+ "first-1",
69
+ "first-2",
70
+ "first-3",
71
+ "first-4",
72
+ "first-5",
73
+ "first-6",
74
+ "first-7",
75
+ "first-8",
76
+ "first-9"
77
+ ]
78
+ }
79
+ ],
80
+ "incoming": [
81
+ {
82
+ "date": "2026-08-01",
83
+ "cwd": "/w",
84
+ "key_actions": [
85
+ "second-0",
86
+ "second-1",
87
+ "second-2",
88
+ "second-3",
89
+ "second-4",
90
+ "second-5",
91
+ "second-6",
92
+ "second-7",
93
+ "second-8",
94
+ "second-9"
95
+ ]
96
+ }
97
+ ],
98
+ "expected": {
99
+ "merged": [
100
+ {
101
+ "date": "2026-08-01",
102
+ "cwd": "/w",
103
+ "key_actions": [
104
+ "second-0",
105
+ "second-1",
106
+ "second-2",
107
+ "second-3",
108
+ "second-4",
109
+ "second-5",
110
+ "second-6",
111
+ "second-7",
112
+ "second-8",
113
+ "second-9"
114
+ ]
115
+ }
116
+ ],
117
+ "added": 0,
118
+ "updated": 1,
119
+ "clamped": 10
120
+ }
121
+ },
122
+ {
123
+ "id": "session-dupe-non-none-scalar-wins-none-ignored",
124
+ "family": "recent_sessions",
125
+ "existing": [
126
+ {
127
+ "date": "2026-08-01",
128
+ "cwd": "/w",
129
+ "visibility": "team"
130
+ }
131
+ ],
132
+ "incoming": [
133
+ {
134
+ "date": "2026-08-01",
135
+ "cwd": "/w",
136
+ "visibility": null
137
+ }
138
+ ],
139
+ "expected": {
140
+ "merged": [
141
+ {
142
+ "date": "2026-08-01",
143
+ "cwd": "/w",
144
+ "visibility": "team"
145
+ }
146
+ ],
147
+ "added": 0,
148
+ "updated": 1,
149
+ "clamped": 0
150
+ }
151
+ },
152
+ {
153
+ "id": "session-incoming-scalar-list-coerces-not-chars",
154
+ "family": "recent_sessions",
155
+ "existing": [
156
+ {
157
+ "date": "2026-08-01",
158
+ "cwd": "/w",
159
+ "project_focus": [
160
+ "Bourdon"
161
+ ]
162
+ }
163
+ ],
164
+ "incoming": [
165
+ {
166
+ "date": "2026-08-01",
167
+ "cwd": "/w",
168
+ "project_focus": "OXbeat"
169
+ }
170
+ ],
171
+ "expected": {
172
+ "merged": [
173
+ {
174
+ "date": "2026-08-01",
175
+ "cwd": "/w",
176
+ "project_focus": [
177
+ "Bourdon",
178
+ "OXbeat"
179
+ ]
180
+ }
181
+ ],
182
+ "added": 0,
183
+ "updated": 1,
184
+ "clamped": 0
185
+ }
186
+ },
187
+ {
188
+ "id": "entity-alias-union-clamps-case-insensitive-name-key",
189
+ "family": "known_entities",
190
+ "existing": [
191
+ {
192
+ "name": "Bourdon",
193
+ "aliases": [
194
+ "alias-0",
195
+ "alias-1",
196
+ "alias-2",
197
+ "alias-3",
198
+ "alias-4",
199
+ "alias-5",
200
+ "alias-6",
201
+ "alias-7",
202
+ "alias-8",
203
+ "alias-9",
204
+ "alias-10",
205
+ "alias-11",
206
+ "alias-12",
207
+ "alias-13",
208
+ "alias-14",
209
+ "alias-15"
210
+ ]
211
+ }
212
+ ],
213
+ "incoming": [
214
+ {
215
+ "name": "bourdon",
216
+ "aliases": [
217
+ "fresh-alias"
218
+ ]
219
+ }
220
+ ],
221
+ "expected": {
222
+ "merged": [
223
+ {
224
+ "name": "bourdon",
225
+ "aliases": [
226
+ "alias-1",
227
+ "alias-2",
228
+ "alias-3",
229
+ "alias-4",
230
+ "alias-5",
231
+ "alias-6",
232
+ "alias-7",
233
+ "alias-8",
234
+ "alias-9",
235
+ "alias-10",
236
+ "alias-11",
237
+ "alias-12",
238
+ "alias-13",
239
+ "alias-14",
240
+ "alias-15",
241
+ "fresh-alias"
242
+ ]
243
+ }
244
+ ],
245
+ "added": 0,
246
+ "updated": 1,
247
+ "clamped": 1
248
+ }
249
+ },
250
+ {
251
+ "id": "fresh-row-scalar-list-normalized-on-add",
252
+ "family": "recent_sessions",
253
+ "existing": [],
254
+ "incoming": [
255
+ {
256
+ "date": "2026-08-02",
257
+ "cwd": "/n",
258
+ "project_focus": "solo"
259
+ }
260
+ ],
261
+ "expected": {
262
+ "merged": [
263
+ {
264
+ "date": "2026-08-02",
265
+ "cwd": "/n",
266
+ "project_focus": [
267
+ "solo"
268
+ ]
269
+ }
270
+ ],
271
+ "added": 1,
272
+ "updated": 0,
273
+ "clamped": 0
274
+ }
275
+ },
276
+ {
277
+ "id": "fresh-row-over-cap-passes-through-unclamped",
278
+ "family": "recent_sessions",
279
+ "existing": [],
280
+ "incoming": [
281
+ {
282
+ "date": "2026-08-03",
283
+ "cwd": "/o",
284
+ "key_actions": [
285
+ "x-0",
286
+ "x-1",
287
+ "x-2",
288
+ "x-3",
289
+ "x-4",
290
+ "x-5",
291
+ "x-6",
292
+ "x-7",
293
+ "x-8",
294
+ "x-9",
295
+ "x-10"
296
+ ]
297
+ }
298
+ ],
299
+ "expected": {
300
+ "merged": [
301
+ {
302
+ "date": "2026-08-03",
303
+ "cwd": "/o",
304
+ "key_actions": [
305
+ "x-0",
306
+ "x-1",
307
+ "x-2",
308
+ "x-3",
309
+ "x-4",
310
+ "x-5",
311
+ "x-6",
312
+ "x-7",
313
+ "x-8",
314
+ "x-9",
315
+ "x-10"
316
+ ]
317
+ }
318
+ ],
319
+ "added": 1,
320
+ "updated": 0,
321
+ "clamped": 0
322
+ }
323
+ }
324
+ ]
325
+ }
@@ -44,7 +44,8 @@
44
44
  "summary": "A retired experiment.",
45
45
  "tags": [
46
46
  "archived"
47
- ]
47
+ ],
48
+ "valid_to": "2026-01-15"
48
49
  },
49
50
  {
50
51
  "name": "Zephyr",
package/fixtures.pin.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "_doc": "The recorded fixture pin. CI and the package tests assert the vendored fixtures/manifest.json hashes to exactly this value, so the fixture set in any build is provably the reviewed one. Refresh via the re-pin ritual in README.md.",
3
- "conformance_version": "2.2.0",
4
- "manifest_sha256": "4854fbdf12003fc8f7bc198fa98e83636293d0bfbee91116335614cd1abc0518"
3
+ "conformance_version": "2.3.0",
4
+ "manifest_sha256": "8887c3db998a7062c5ef991edc1ddb8af20bc8a8d448228cb78000b3f8c4dfa5"
5
5
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getbourdon/conformance",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "Language-neutral cross-implementation parity fixtures for Bourdon. Python (pip install bourdon) is the oracle; the @getbourdon/* TypeScript mirror asserts against these exact bytes.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",