@bongos/core 1.19.496 → 1.19.498

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.
package/.bongos-core.json CHANGED
@@ -2,22 +2,22 @@
2
2
  "artifact": "bongos-core",
3
3
  "manifest_schema": 1,
4
4
  "generator": "scripts/gds/package-core.js",
5
- "core_version": "1.19.496",
6
- "core_contract": "1.19.496",
7
- "source_commit": "8c795e90254fbc29139c278e0fd6d890b2c32035",
5
+ "core_version": "1.19.498",
6
+ "core_contract": "1.19.498",
7
+ "source_commit": "20beae21ee5af0c6929954f91c2a8acaf23aaa67",
8
8
  "source_ref": "HEAD",
9
- "built_at": "2026-09-03T14:22:08.467Z",
9
+ "built_at": "2026-09-03T14:46:19.020Z",
10
10
  "redaction": {
11
11
  "model": "docs-redacted+functional-verbatim",
12
12
  "docs_redacted": 425,
13
13
  "agent_docs_stubbed": 24,
14
- "functional_verbatim": 1938,
14
+ "functional_verbatim": 1942,
15
15
  "rules": 3,
16
16
  "gate_literals": 3,
17
17
  "gate": "passed"
18
18
  },
19
- "file_count": 2387,
20
- "tree_sha256": "a6e4b7c3e281c43562758626b607ca7c0fa66491a11f41433d821d9a4e94d839",
19
+ "file_count": 2391,
20
+ "tree_sha256": "a822992243dff9dbc60fd91bf31adbef6c64477f3a30367b06dfeb5aca77e74a",
21
21
  "files": [
22
22
  {
23
23
  "path": ".claude/skills/blocker-review/SKILL.md",
@@ -227,7 +227,7 @@
227
227
  {
228
228
  "path": ".claude/skills/planning-session/SKILL.md",
229
229
  "mode": "0000644",
230
- "sha256": "f51cb3fec1448883300f5f966dc83f6b9636935059503250ed8a1f944526e743"
230
+ "sha256": "f8aaf5459d893f52fb5f8296d650770344aed8b0193619c47bcf5311bb3d2b74"
231
231
  },
232
232
  {
233
233
  "path": ".claude/skills/priority-session/SKILL.md",
@@ -1717,12 +1717,12 @@
1717
1717
  {
1718
1718
  "path": "docs/copy-inventory.md",
1719
1719
  "mode": "0000644",
1720
- "sha256": "ff30c55a613e2a81c1b03114810d73e6fb5e8c4ea9dd2071171e749ebecfc4f6"
1720
+ "sha256": "3fba042999dcbdaa39e07ed2216b157ad6eddff21aed26532efdf64944f999ba"
1721
1721
  },
1722
1722
  {
1723
1723
  "path": "docs/copy-registry.json",
1724
1724
  "mode": "0000644",
1725
- "sha256": "0fe0ea407c373ba9ef054a29bbfe16e3d76a53e3bc51391073615a73d9d42aab"
1725
+ "sha256": "32b64d401bebadcc935bf2e514660f954af1d1633eaa8bf046a40eab9924392e"
1726
1726
  },
1727
1727
  {
1728
1728
  "path": "docs/design/apex-pass-2-direction.md",
@@ -2557,7 +2557,7 @@
2557
2557
  {
2558
2558
  "path": "docs/file-map.md",
2559
2559
  "mode": "0000644",
2560
- "sha256": "60398ae5544a8af7d591d59e7efd5b95614350d53933b98ce133daf6788c9c5b"
2560
+ "sha256": "b04bf1e46a5ee461e08c0b7e5c92360dde4baaaf706b12cfa7dfee6ecdc82299"
2561
2561
  },
2562
2562
  {
2563
2563
  "path": "docs/handoff-template.md",
@@ -2567,7 +2567,7 @@
2567
2567
  {
2568
2568
  "path": "docs/module-api-changelog.md",
2569
2569
  "mode": "0000644",
2570
- "sha256": "f7ca8307d5cae80f0602080d5d3fc9944cc15d9fc5d2fdf43f45d89626edd039"
2570
+ "sha256": "8fdf08a8b150af9c3fe543fca4265a81b71fcf42d79baf733865432305204914"
2571
2571
  },
2572
2572
  {
2573
2573
  "path": "docs/modules-contract.md",
@@ -4032,7 +4032,7 @@
4032
4032
  {
4033
4033
  "path": "modules/discord/discord-inbound.js",
4034
4034
  "mode": "0000644",
4035
- "sha256": "508c3f984751f9ec441959890a4f9980d8167fabbb237fe3efd9c44d650d3a13"
4035
+ "sha256": "06937afc2ac299c8b6572cf296bbaed4e1e078802f9d3fc7a81e5851a639d5f3"
4036
4036
  },
4037
4037
  {
4038
4038
  "path": "modules/discord/discord-message-buffer.js",
@@ -4742,17 +4742,17 @@
4742
4742
  {
4743
4743
  "path": "modules/hall-ui/public/ideas.css",
4744
4744
  "mode": "0000644",
4745
- "sha256": "3df460e0a852f5c7ea88c752995e38cebea32ad5b0c510a85b097c0046bcf952"
4745
+ "sha256": "4da2ff00354a825d32f2f55e3db5f1d18a112ddc9d1056220e73683766b952b3"
4746
4746
  },
4747
4747
  {
4748
4748
  "path": "modules/hall-ui/public/ideas.html",
4749
4749
  "mode": "0000644",
4750
- "sha256": "e6b3ad29a39d11fb2a44134a2091a21991cb06787d096b3602f701ab4c4ab138"
4750
+ "sha256": "78c92c2d5468cc2b88662a005af756148293817967f51b06c527fbaba8cb74fa"
4751
4751
  },
4752
4752
  {
4753
4753
  "path": "modules/hall-ui/public/ideas.js",
4754
4754
  "mode": "0000644",
4755
- "sha256": "96796c1d7192ed2f6c4ac2ef185ade5e6001ecb828feb1b99a123a457bfdc8bf"
4755
+ "sha256": "e7c788887e118e7a47b57001968a8247a170239a339a43ed7d643536c7d804d1"
4756
4756
  },
4757
4757
  {
4758
4758
  "path": "modules/hall-ui/public/ideas.states.json",
@@ -5062,7 +5062,7 @@
5062
5062
  {
5063
5063
  "path": "modules/hall-ui/public/task.js",
5064
5064
  "mode": "0000644",
5065
- "sha256": "58776fd75f82144019b4e94fb31e32a7ba75dad991be6a95c56c9682317abe47"
5065
+ "sha256": "c11bacc90cfc86e0cf809a70e42ead7c31a5925c22f037170817db8783e3e10b"
5066
5066
  },
5067
5067
  {
5068
5068
  "path": "modules/hall-ui/public/task.states.json",
@@ -5132,7 +5132,7 @@
5132
5132
  {
5133
5133
  "path": "modules/ideas/inbox.js",
5134
5134
  "mode": "0000644",
5135
- "sha256": "72b69185c90131cc8004ad28f24e9d5bfb7eaf4cc01b8d13ad898019a6f58f39"
5135
+ "sha256": "9a010cd361fc4d190e2dcf1d496b80061f1e2395a831f23adf61d98d6fdea259"
5136
5136
  },
5137
5137
  {
5138
5138
  "path": "modules/ideas/migrations/ideas_001_grades.sql",
@@ -7212,12 +7212,12 @@
7212
7212
  {
7213
7213
  "path": "package-lock.json",
7214
7214
  "mode": "0000644",
7215
- "sha256": "cb12024e16aedcd701269af77cc73012013873d07e37301c24ae10e3c1f2d28b"
7215
+ "sha256": "38c8a713cccd40594f0d5016517d008c3dd0970517a7b8da6545ac404d48ed79"
7216
7216
  },
7217
7217
  {
7218
7218
  "path": "package.json",
7219
7219
  "mode": "0000644",
7220
- "sha256": "ccfb94ab67d5acffc5c910496496a9cfbe44343ff52b90098857338dda375bae"
7220
+ "sha256": "3438a4f78cb41fa0c933447857c76b4a125edf7398de92d3a466ffefc96adbd7"
7221
7221
  },
7222
7222
  {
7223
7223
  "path": "public-docs/index.html",
@@ -7417,7 +7417,7 @@
7417
7417
  {
7418
7418
  "path": "scripts/gds/capture.js",
7419
7419
  "mode": "0000644",
7420
- "sha256": "946fa97d020eb481b7da559f0b5c99bfa16dc24b680a01e0ff3d3faeaf5bd701"
7420
+ "sha256": "e8cd3a5b66520af26a662bb96fc063a45b7546fe1442483169ea791937969af2"
7421
7421
  },
7422
7422
  {
7423
7423
  "path": "scripts/gds/category-advisory-guard.js",
@@ -8147,7 +8147,7 @@
8147
8147
  {
8148
8148
  "path": "scripts/gds/seed-bongos-v1-idea-routing-tasks.js",
8149
8149
  "mode": "0000644",
8150
- "sha256": "1756751e8c32d9667c82173ac7ba78f98b8416aa946c747036502c5853cbf77f"
8150
+ "sha256": "d028e80a7c1cd85805954187e43ec32d624244bf9b3374b4f27c5d47ced79f95"
8151
8151
  },
8152
8152
  {
8153
8153
  "path": "scripts/gds/seed-bongos-v1-seo-tasks.js",
@@ -8224,6 +8224,11 @@
8224
8224
  "mode": "0000644",
8225
8225
  "sha256": "14825fa0500e600efcc518e7120dd4b64fdae9235509e7a39d3865f179754f5f"
8226
8226
  },
8227
+ {
8228
+ "path": "scripts/gds/seed-verify-criteria.js",
8229
+ "mode": "0000644",
8230
+ "sha256": "69f44779f3cb4864ccc6f4801a3d06af2708662d2501d2794d505dace99fadd7"
8231
+ },
8227
8232
  {
8228
8233
  "path": "scripts/gds/sequence.js",
8229
8234
  "mode": "0000644",
@@ -8882,7 +8887,7 @@
8882
8887
  {
8883
8888
  "path": "src/module-api.js",
8884
8889
  "mode": "0000644",
8885
- "sha256": "2b403360f3b811aecd3de800ebb5cb87dbc5df36e045754184dd3924abc187f9"
8890
+ "sha256": "164ce624de92bffcb36ceb3f8fb75edfd2bce5fe981166ba653aafdcdf726e0b"
8886
8891
  },
8887
8892
  {
8888
8893
  "path": "src/module-loader/catalog.js",
@@ -9349,6 +9354,11 @@
9349
9354
  "mode": "0000644",
9350
9355
  "sha256": "bf8b5407d5e1234a74399f3a1e80acc44f9fabdfcfbccc3d64ca57d66f8e3085"
9351
9356
  },
9357
+ {
9358
+ "path": "tests/capture_goal_routing.mjs",
9359
+ "mode": "0000644",
9360
+ "sha256": "30c86ef5ae46c698b621dbe90e15210d162cc88d8b33bd0889330ff8686a065e"
9361
+ },
9352
9362
  {
9353
9363
  "path": "tests/cascade-dispatch.mjs",
9354
9364
  "mode": "0000644",
@@ -9707,7 +9717,7 @@
9707
9717
  {
9708
9718
  "path": "tests/discord_inbound.mjs",
9709
9719
  "mode": "0000644",
9710
- "sha256": "405fcc6a3b7e4814ccfbba5d103da07c3f7ae342abd7a4bac379e7f2160a2468"
9720
+ "sha256": "c4e01ac01a3f01fc1a7aece34457a1660034164ab7cb65039f26d4a72d92a403"
9711
9721
  },
9712
9722
  {
9713
9723
  "path": "tests/discord_message_buffer.mjs",
@@ -10317,7 +10327,7 @@
10317
10327
  {
10318
10328
  "path": "tests/hall_record_world.mjs",
10319
10329
  "mode": "0000644",
10320
- "sha256": "a810f02a8a82968a4d4742caa2b2c43608f69cee1d3442dd83a8faaec307ebd4"
10330
+ "sha256": "b8618fc69c3fde9b6987fea69839d74e843230a7d56e6e54a5170fce04548c20"
10321
10331
  },
10322
10332
  {
10323
10333
  "path": "tests/hall_reference_world.mjs",
@@ -10472,12 +10482,12 @@
10472
10482
  {
10473
10483
  "path": "tests/idea_routing.mjs",
10474
10484
  "mode": "0000644",
10475
- "sha256": "7bea2d388fad9a6b186c4712d6921a554f1d24c70dcae5760b381782149068e7"
10485
+ "sha256": "39bdd91984e584f7f81f6dc096093a7a273c483e845b7c821a389472684114a3"
10476
10486
  },
10477
10487
  {
10478
10488
  "path": "tests/idea_spark_hall.mjs",
10479
10489
  "mode": "0000644",
10480
- "sha256": "eb7aa0e83ae2ff84686cce3400583049214d5d73bad1a8fc2240cddedf87c1b2"
10490
+ "sha256": "ce3e1272e2356707cda86a37010fa5902f132a0d8a7bab48bc00a4432af00933"
10481
10491
  },
10482
10492
  {
10483
10493
  "path": "tests/idea_spark_mark.mjs",
@@ -10969,6 +10979,11 @@
10969
10979
  "mode": "0000644",
10970
10980
  "sha256": "c3ceef2141a0f5f19c6dacfa0f9c927e5904757c39925e852b34b08c4c2576a5"
10971
10981
  },
10982
+ {
10983
+ "path": "tests/planning_session_skill.mjs",
10984
+ "mode": "0000644",
10985
+ "sha256": "ee50a6662c9e2771b849e0a33c49fd112166eac1c5fd0f021c5fe12409ea9eb1"
10986
+ },
10972
10987
  {
10973
10988
  "path": "tests/platform_boot.mjs",
10974
10989
  "mode": "0000644",
@@ -11404,6 +11419,11 @@
11404
11419
  "mode": "0000644",
11405
11420
  "sha256": "5da688b8c0dd6855ac1fca707ee5f4b037e36c4853c304dd8c7bec55474150a1"
11406
11421
  },
11422
+ {
11423
+ "path": "tests/seed_verify_criteria.mjs",
11424
+ "mode": "0000644",
11425
+ "sha256": "3e0cc665466d81bf51477b5461ea1e4b9f4d8d992fc36222fba76f4b96041ce8"
11426
+ },
11407
11427
  {
11408
11428
  "path": "tests/sequence.mjs",
11409
11429
  "mode": "0000644",
@@ -260,10 +260,12 @@ Once the spec is finalized (Phase 4), **read `docs/specs/<ver>-<goal-slug>.md` a
260
260
  - A main() that POSTs each task **with its `criterion_ids`** (idempotent on `source_ref`; the criterion links are inserted at create, idempotent on `(task_id, criterion_id)`), PATCHes `idea_inbox` for promotions, and after all tasks exist, POSTs `task_dependencies` via `POST /tasks/:id/dependencies` (resolving each R## to the just-created task ID). Idempotent on `(task_id, depends_on_task_id)`. (Need to re-attribute an already-seeded task? `POST /tasks/:id/criteria` with `{criterion_ids:['Cn',...]}`; `DELETE /tasks/:id/criteria/:criterionId` to detach — both Metic+ ([ADR 0090](../../../docs/adr/<redacted>.md)), mirroring the dependency endpoints.)
261
261
 
262
262
  > **Seeding contract — validated on goal 1000045 (2026-07-16):** proof-tasks use `kind='verify'` (a deliverable that IS a verification; can't be prematurely confirmed), spikes `kind='spike'`; `POST /tasks` accepts `criterion_ids` + `goal_id` inline and disciplines include `ui`; there is **no `promoted_idea_id`** field on `POST /tasks` — mark a promoted idea via `PATCH /inbox/:id`; **descoping a criterion has no API** (done-when is create/satisfy/unsatisfy only) — remove the row via a direct DB delete (`ssh … "sudo -u postgres psql -d <db> -c \"DELETE FROM done_when_criteria WHERE id=…\""`) under the meta-task claim, capturing the SQL in its notes; and a seed script **must throttle + honor `429` `retry_after`** (per-IP rate limit) — add a base delay between calls and back off on 429, or a large seed dies halfway. A completed reference seed: `scripts/gds/<redacted>.js`.
263
+ >
264
+ > **Every seed script verifies its own criterion links — fail loudly on any mismatch, zero included (task 1003076, retro on goal 1000071).** The goal-1000071 seeder linked all 15 tasks to the WRONG criteria (a positional `"Cn"` token resolved against the whole VERSION's criterion order, not the goal's — learning 1000188) and still printed success; only a manual `GET /goals` rollup caught it, after the fact. Every seed script's `main()` must end by tallying the `criterion_ids` it actually POSTed per task, then calling `verifySeedCriteriaLinks` from [`scripts/gds/seed-verify-criteria.js`](../../../scripts/gds/seed-verify-criteria.js) — it fetches `GET /api/gds/goals/<id>`, diffs the returned `criteria[].linked_tasks` against that plan, and `exit(1)`s with a loud per-criterion diff on any mismatch (see `expectedCriterionCounts` + `verifySeedCriteriaLinks`). Reference implementation: `scripts/gds/<redacted>.js`. This is a script-level check, independent of whatever caused the mislink — it catches the *symptom* (a criterion silently under- or over-linked) whichever bug produces it.
263
265
 
264
266
  4. **Apply the migration** (commit + push + deploy, or direct psql via SSH for hot-fix style).
265
267
 
266
- 5. **Run the seed script.** Verify exit code 0; verify totals via `GET /api/gds/public/progress` and `GET /api/gds/versions/<ver>/done-when`.
268
+ 5. **Run the seed script.** Verify exit code 0 — the seed's own final step (the Seeding contract's `verifySeedCriteriaLinks` call, above) already fails loudly if any criterion's linked task count doesn't match the plan, so a 0 exit means the links landed correctly, not just that the POSTs didn't error. Also spot-check totals via `GET /api/gds/public/progress` and `GET /api/gds/versions/<ver>/done-when`.
267
269
 
268
270
  6. **Promote the zero-dep layer to `ready`.** Every newly-seeded task lands `status='backlog'`. The auto-promotion trigger only fires when a *dependency* ships — so a task with zero deps has nothing to wait for and would sit unclaimable forever. Run, in the same psql session as the migration (or via SSH to the droplet):
269
271