@getbourdon/conformance 0.8.0 → 0.9.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.
@@ -20,7 +20,7 @@
20
20
  "known_entities": [
21
21
  {
22
22
  "name": "API",
23
- "summary": "the service_role key for supabase",
23
+ "summary": "service_role = hunter2hunter2 for supabase",
24
24
  "visibility": "team"
25
25
  }
26
26
  ]
@@ -40,7 +40,7 @@
40
40
  "date": "2026-06-20",
41
41
  "files_touched": [
42
42
  "src/app.ts",
43
- "config/.env"
43
+ "config/.env:PASSWORD=supersecretvalue"
44
44
  ]
45
45
  }
46
46
  ]
@@ -58,7 +58,7 @@
58
58
  "agent": {
59
59
  "id": "x",
60
60
  "type": "code-assistant",
61
- "role_narrative": "rotate the api_key before every deploy"
61
+ "role_narrative": "rotate the api_key=hunter2hunter2 before every deploy"
62
62
  }
63
63
  },
64
64
  "expected_findings": [
@@ -73,7 +73,7 @@
73
73
  "manifest": {
74
74
  "capabilities": [
75
75
  "state_db",
76
- "the bearer token is read from .env"
76
+ "the bearer token is QXp9-not-a-real-key"
77
77
  ]
78
78
  },
79
79
  "expected_findings": [
@@ -1,18 +1,18 @@
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": "5.1.0",
3
+ "conformance_version": "6.0.0",
4
4
  "produced_against": {
5
- "bourdon_version": "0.24.0"
5
+ "bourdon_version": "0.25.0"
6
6
  },
7
7
  "fixtures": [
8
8
  {
9
9
  "path": "redaction_battery.json",
10
- "sha256": "dc648b86445165a11f5fd25b7f8c7b7144d3abcaf6bf602ae5eceb60ffe856a2",
10
+ "sha256": "31f7a1903ec70659f23b3062040776adad54dadaee763c296018100cd439178e",
11
11
  "producer": "tools/gen_conformance.py::redaction_battery"
12
12
  },
13
13
  {
14
14
  "path": "leak_cases.json",
15
- "sha256": "c1a221aa35b2d6a82845ce76fa3885f0187b24a67c37711d9f6f4f6c8cfedc03",
15
+ "sha256": "78580fd6e81243538af0e202ac2b84b7b4421353836119a1b8f6f516a90d134c",
16
16
  "producer": "tools/gen_conformance.py::leak_cases"
17
17
  },
18
18
  {
@@ -102,7 +102,7 @@
102
102
  },
103
103
  {
104
104
  "path": "merge_vectors.json",
105
- "sha256": "9a1d105d6c2b0bc00e419b318ae4d802457241cca0cbbe87f1a87c529a11e923",
105
+ "sha256": "74322ae0460fb38331ee47e252d10f64e7c2c31254ae814381b852ab2510b110",
106
106
  "producer": "tools/gen_conformance.py::merge_vectors"
107
107
  },
108
108
  {
@@ -447,7 +447,7 @@
447
447
  },
448
448
  {
449
449
  "path": "native_stores/hermes/store/.hermes/memories/memory.md",
450
- "sha256": "45c32c828e96353b409204eeeda1df7b89f75699ec46bffff32df6d3c9781804",
450
+ "sha256": "6a0726d27419af63b5713a3314dbaab64ef2fa5b9d310d2e2d3332f07516833c",
451
451
  "producer": "tools/gen_conformance.py::native_stores"
452
452
  },
453
453
  {
@@ -492,7 +492,7 @@
492
492
  },
493
493
  {
494
494
  "path": "native_stores/claude_code/store/knowledge_graph/memory.jsonl",
495
- "sha256": "544f1d0a609272614bd351003859eec31b8beb7874324bb0b8148fac5149f885",
495
+ "sha256": "624f5d9ccd73456695fc7a91a5811c358b292f52cc1ea2e3ceff7674c338e3e3",
496
496
  "producer": "tools/gen_conformance.py::native_stores"
497
497
  },
498
498
  {
@@ -502,7 +502,7 @@
502
502
  },
503
503
  {
504
504
  "path": "native_stores/github_copilot/cache/github-copilot/payload.json",
505
- "sha256": "2e9a1f6d19927417bd78bbdfa4260d11ea4b258f5e2a471549de460c433d3aaa",
505
+ "sha256": "5b922bb2d150ee05c92d92c867274e2a8569d5f2810e5c806cffb4cd0765e7f7",
506
506
  "producer": "tools/gen_conformance.py::native_stores"
507
507
  },
508
508
  {
@@ -165,7 +165,7 @@
165
165
  {
166
166
  "date": "2026-08-01",
167
167
  "cwd": "/w",
168
- "project_focus": "OXbeat"
168
+ "project_focus": "Pennant"
169
169
  }
170
170
  ],
171
171
  "expected": {
@@ -175,7 +175,7 @@
175
175
  "cwd": "/w",
176
176
  "project_focus": [
177
177
  "Bourdon",
178
- "OXbeat"
178
+ "Pennant"
179
179
  ]
180
180
  }
181
181
  ],
@@ -1,3 +1,3 @@
1
1
  {"type":"entity","name":"Zephyr","entityType":"project","observations":["File conversion app."]}
2
- {"type":"entity","name":"SecretCreds","entityType":"concept","observations":["the service_role key for supabase"]}
2
+ {"type":"entity","name":"SecretCreds","entityType":"concept","observations":["service_role=hunter2hunter2 for supabase"]}
3
3
  {"type":"relation","from":"Zephyr","to":"Bourdon","relationType":"uses"}
@@ -11,7 +11,7 @@
11
11
  "repository_url": "https://api.github.com/repos/ryan/bourdon"
12
12
  },
13
13
  {
14
- "title": "Rotate the service_role key in CI",
14
+ "title": "Rotate service_role=hunter2hunter2 in CI",
15
15
  "number": 9,
16
16
  "updated_at": "2026-06-18T10:00:00Z",
17
17
  "repository_url": "https://api.github.com/repos/ryan/bourdon"
@@ -1,2 +1,2 @@
1
1
  - Project uses pytest with xdist
2
- - The bearer token is stored in .env
2
+ - The bearer token is hunter2.hunter2
@@ -19,28 +19,42 @@
19
19
  },
20
20
  {
21
21
  "fragments": [
22
- "uses a bearer token to authenticate"
22
+ "password: correcthorsebatterystaple"
23
23
  ],
24
24
  "expect_redacted": "[redacted credential-like text]",
25
25
  "expect_contains_secret": true
26
26
  },
27
27
  {
28
28
  "fragments": [
29
- "the service_role key for supabase"
29
+ "client_secret=hunter2hunter2"
30
30
  ],
31
31
  "expect_redacted": "[redacted credential-like text]",
32
32
  "expect_contains_secret": true
33
33
  },
34
34
  {
35
35
  "fragments": [
36
- "stripe secret rotated today"
36
+ "\"password\": \"hunter2hunter2\""
37
37
  ],
38
38
  "expect_redacted": "[redacted credential-like text]",
39
39
  "expect_contains_secret": true
40
40
  },
41
41
  {
42
42
  "fragments": [
43
- "the keystore password lives in .env"
43
+ "--password=hunter2hunter2"
44
+ ],
45
+ "expect_redacted": "[redacted credential-like text]",
46
+ "expect_contains_secret": true
47
+ },
48
+ {
49
+ "fragments": [
50
+ "PASSWORD=supersecretvalue"
51
+ ],
52
+ "expect_redacted": "[redacted credential-like text]",
53
+ "expect_contains_secret": true
54
+ },
55
+ {
56
+ "fragments": [
57
+ "SUPABASE_SERVICE_KEY=hunter2hunter2"
44
58
  ],
45
59
  "expect_redacted": "[redacted credential-like text]",
46
60
  "expect_contains_secret": true
@@ -195,6 +209,61 @@
195
209
  "text": "Bourdon recognition-first runtime layer is the core promise",
196
210
  "expect_redacted": "Bourdon recognition-first runtime layer is the core promise",
197
211
  "expect_contains_secret": false
212
+ },
213
+ {
214
+ "text": "uses a bearer token to authenticate",
215
+ "expect_redacted": "uses a bearer token to authenticate",
216
+ "expect_contains_secret": false
217
+ },
218
+ {
219
+ "text": "the service_role key for supabase",
220
+ "expect_redacted": "the service_role key for supabase",
221
+ "expect_contains_secret": false
222
+ },
223
+ {
224
+ "text": "stripe secret rotated today",
225
+ "expect_redacted": "stripe secret rotated today",
226
+ "expect_contains_secret": false
227
+ },
228
+ {
229
+ "text": "the keystore password lives in .env",
230
+ "expect_redacted": "the keystore password lives in .env",
231
+ "expect_contains_secret": false
232
+ },
233
+ {
234
+ "text": "Add password reset to the console",
235
+ "expect_redacted": "Add password reset to the console",
236
+ "expect_contains_secret": false
237
+ },
238
+ {
239
+ "text": "Fixed the password reset email template",
240
+ "expect_redacted": "Fixed the password reset email template",
241
+ "expect_contains_secret": false
242
+ },
243
+ {
244
+ "text": "Updated .env with the new port",
245
+ "expect_redacted": "Updated .env with the new port",
246
+ "expect_contains_secret": false
247
+ },
248
+ {
249
+ "text": "Rotated the keystore for the Android release",
250
+ "expect_redacted": "Rotated the keystore for the Android release",
251
+ "expect_contains_secret": false
252
+ },
253
+ {
254
+ "text": "Reviewed the service_role RLS policy",
255
+ "expect_redacted": "Reviewed the service_role RLS policy",
256
+ "expect_contains_secret": false
257
+ },
258
+ {
259
+ "text": "Shipped api_key rotation tooling",
260
+ "expect_redacted": "Shipped api_key rotation tooling",
261
+ "expect_contains_secret": false
262
+ },
263
+ {
264
+ "text": "the password is rotated monthly",
265
+ "expect_redacted": "the password is rotated monthly",
266
+ "expect_contains_secret": false
198
267
  }
199
268
  ],
200
269
  "case_variants": [
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": "5.1.0",
4
- "manifest_sha256": "cae79332b62523f48d9f306ddb74a9271ffceccda13f43ed3eeafc713c2b81bd"
3
+ "conformance_version": "6.0.0",
4
+ "manifest_sha256": "73bd51d8a6d2a82b32b0b249a6e6c16c6491f9dc0148d020e9e020efb1eb49eb"
5
5
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getbourdon/conformance",
3
- "version": "0.8.0",
3
+ "version": "0.9.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",