@bongos/core 1.24.4 → 1.24.6

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.
Files changed (61) hide show
  1. package/.bongos-core.json +99 -59
  2. package/clients/bongos-client/README.md +1 -1
  3. package/clients/bongos-client/bongos-client.global.js +6 -0
  4. package/clients/bongos-client/index.cjs +6 -0
  5. package/clients/bongos-client/index.d.ts +7 -0
  6. package/clients/bongos-client/index.mjs +6 -0
  7. package/docs/adr/0396-google-sign-in-a-stand-in-login-and-a-browser-approved-cli-sign-in.md +8 -0
  8. package/docs/api/openapi.json +110 -5
  9. package/docs/api-reference.md +6 -3
  10. package/docs/copy-inventory.md +47 -43
  11. package/docs/copy-registry.json +81 -45
  12. package/docs/file-map.md +3 -2
  13. package/docs/module-api-changelog.md +4 -2
  14. package/docs/page-inventory.json +2 -1
  15. package/docs/page-readings.json +64 -56
  16. package/migrations/core_286_credit_log_no_spend.sql +128 -0
  17. package/modules/copy-desk/auto-close.js +51 -11
  18. package/modules/copy-desk/page-status.js +18 -6
  19. package/modules/copy-desk/tests/copy_no_cms.mjs +8 -1
  20. package/modules/copy-desk/tests/copy_page_auto_close.mjs +68 -6
  21. package/modules/copy-desk/tests/copy_page_status.mjs +5 -1
  22. package/modules/hall-ui/public/tweak-editor.js +2 -1
  23. package/modules/lifecycle/db-claims.js +2 -2
  24. package/modules/lifecycle/db-ship.js +2 -2
  25. package/modules/lifecycle/routes/claims.js +7 -1
  26. package/modules/platform-identity/account-logins.js +131 -0
  27. package/modules/platform-identity/migrations/platform_identity_035_account_login_email_idx.sql +19 -0
  28. package/modules/platform-identity/routes/profile.js +29 -1
  29. package/modules/platform-identity/routes/sso.js +25 -3
  30. package/modules/public-landing/public/account.html +114 -0
  31. package/modules/public-landing/public/account.states.json +1 -0
  32. package/modules/ui-design/kit/serve.js +24 -0
  33. package/package-lock.json +2 -2
  34. package/package.json +1 -1
  35. package/release-notes.json +39 -1
  36. package/scripts/bongos/codemod-rename-scripts-gds.js +1 -3
  37. package/scripts/bongos/dev-box-guard.js +0 -1
  38. package/scripts/bongos/publish-manifest.js +1 -1
  39. package/scripts/bongos/run-unit-tests.js +4 -0
  40. package/src/bongos/agent-standing-rules.js +44 -0
  41. package/src/bongos/auth-github.js +24 -7
  42. package/src/bongos/module-scope-map.js +3 -2
  43. package/src/bongos/routes/auth-google.js +71 -5
  44. package/src/bongos/routes/auth-link.js +132 -0
  45. package/src/bongos/routes/me.js +4 -1
  46. package/src/bongos/routes.js +2 -0
  47. package/src/bongos/sign-in-pages.js +20 -1
  48. package/src/module-api.js +1 -1
  49. package/tests/account_linking.mjs +289 -0
  50. package/tests/account_logins_db.mjs +56 -0
  51. package/tests/agent_standing_rules.mjs +142 -0
  52. package/tests/claims_batch_routes.mjs +115 -25
  53. package/tests/copy_desk_page_release.mjs +20 -0
  54. package/tests/copy_stuck_page_tweaks.mjs +5 -3
  55. package/tests/credit_log_no_spend_db.mjs +160 -0
  56. package/tests/effective_visibility_predicate.mjs +8 -0
  57. package/tests/government_laws_session.mjs +2 -1
  58. package/tests/hall_tweak_editor.mjs +11 -0
  59. package/tests/host_topology_skips.mjs +2 -0
  60. package/tests/hub_account_page.mjs +91 -5
  61. package/tests/run_node_reroute.mjs +136 -0
@@ -3,9 +3,9 @@
3
3
  "generator": "scripts/bongos/copy-inventory.js",
4
4
  "goal": 1000074,
5
5
  "counts": {
6
- "strings": 3111,
7
- "unique_ids": 2450,
8
- "certain": 3111,
6
+ "strings": 3115,
7
+ "unique_ids": 2454,
8
+ "certain": 3115,
9
9
  "heuristic": 0,
10
10
  "duplicate_ids": 261
11
11
  },
@@ -23,7 +23,7 @@
23
23
  "landing": {
24
24
  "at": "modules/public-landing/public",
25
25
  "files": 10,
26
- "strings": 1007
26
+ "strings": 1011
27
27
  }
28
28
  },
29
29
  "blind_spots": [
@@ -389,7 +389,7 @@
389
389
  "text": "Builders' hall",
390
390
  "occurrences": 12,
391
391
  "at": [
392
- "modules/public-landing/public/account.html:292",
392
+ "modules/public-landing/public/account.html:308",
393
393
  "modules/public-landing/public/community.html:358",
394
394
  "modules/public-landing/public/connections.html:190",
395
395
  "modules/public-landing/public/contact.html:133",
@@ -447,7 +447,7 @@
447
447
  "text": "A non-profit, capture-resistant commons.",
448
448
  "occurrences": 10,
449
449
  "at": [
450
- "modules/public-landing/public/account.html:292",
450
+ "modules/public-landing/public/account.html:308",
451
451
  "modules/public-landing/public/community.html:358",
452
452
  "modules/public-landing/public/connections.html:190",
453
453
  "modules/public-landing/public/contact.html:133",
@@ -501,7 +501,7 @@
501
501
  "text": "Open source",
502
502
  "occurrences": 10,
503
503
  "at": [
504
- "modules/public-landing/public/account.html:292",
504
+ "modules/public-landing/public/account.html:308",
505
505
  "modules/public-landing/public/community.html:358",
506
506
  "modules/public-landing/public/connections.html:190",
507
507
  "modules/public-landing/public/contact.html:133",
@@ -573,7 +573,7 @@
573
573
  "text": "Built by agents, on Cloud Bongos.",
574
574
  "occurrences": 9,
575
575
  "at": [
576
- "modules/public-landing/public/account.html:292",
576
+ "modules/public-landing/public/account.html:308",
577
577
  "modules/public-landing/public/community.html:358",
578
578
  "modules/public-landing/public/connections.html:190",
579
579
  "modules/public-landing/public/contact.html:133",
@@ -2845,7 +2845,7 @@
2845
2845
  "occurrences": 2,
2846
2846
  "at": [
2847
2847
  "modules/hall-ui/public/tweak-editor.html:66",
2848
- "modules/hall-ui/public/tweak-editor.js:506"
2848
+ "modules/hall-ui/public/tweak-editor.js:507"
2849
2849
  ]
2850
2850
  },
2851
2851
  {
@@ -9949,7 +9949,7 @@
9949
9949
  "surface": "builders-hall",
9950
9950
  "text": "No page is open.",
9951
9951
  "file": "modules/hall-ui/public/tweak-editor.js",
9952
- "line": 574,
9952
+ "line": 575,
9953
9953
  "origin": "js-text-assign",
9954
9954
  "confidence": "certain"
9955
9955
  },
@@ -10183,7 +10183,7 @@
10183
10183
  "surface": "builders-hall",
10184
10184
  "text": "Nobody is writing this page. Take it, and every line here is yours to type over.",
10185
10185
  "file": "modules/hall-ui/public/tweak-editor.js",
10186
- "line": 323,
10186
+ "line": 324,
10187
10187
  "origin": "js-markup",
10188
10188
  "confidence": "certain"
10189
10189
  },
@@ -14008,7 +14008,7 @@
14008
14008
  "surface": "builders-hall",
14009
14009
  "text": "Take the next page, or pick one from the studio.",
14010
14010
  "file": "modules/hall-ui/public/tweak-editor.js",
14011
- "line": 575,
14011
+ "line": 576,
14012
14012
  "origin": "js-text-assign",
14013
14013
  "confidence": "certain"
14014
14014
  },
@@ -14494,7 +14494,7 @@
14494
14494
  "surface": "builders-hall",
14495
14495
  "text": "The editor could not load.",
14496
14496
  "file": "modules/hall-ui/public/tweak-editor.js",
14497
- "line": 723,
14497
+ "line": 724,
14498
14498
  "origin": "js-notice",
14499
14499
  "confidence": "certain"
14500
14500
  },
@@ -14737,7 +14737,7 @@
14737
14737
  "surface": "builders-hall",
14738
14738
  "text": "The next page could not be read.",
14739
14739
  "file": "modules/hall-ui/public/tweak-editor.js",
14740
- "line": 586,
14740
+ "line": 587,
14741
14741
  "origin": "js-text-assign",
14742
14742
  "confidence": "certain"
14743
14743
  },
@@ -15421,7 +15421,7 @@
15421
15421
  "surface": "builders-hall",
15422
15422
  "text": "This page has been submitted and is on its way to the site. Its words are frozen until it ships or is sent back.",
15423
15423
  "file": "modules/hall-ui/public/tweak-editor.js",
15424
- "line": 331,
15424
+ "line": 332,
15425
15425
  "origin": "js-markup",
15426
15426
  "confidence": "certain"
15427
15427
  },
@@ -17977,7 +17977,7 @@
17977
17977
  "surface": "builders-hall",
17978
17978
  "text": "downloaded .docx",
17979
17979
  "file": "modules/hall-ui/public/tweak-editor.js",
17980
- "line": 481,
17980
+ "line": 482,
17981
17981
  "origin": "js-text-assign",
17982
17982
  "confidence": "certain"
17983
17983
  },
@@ -19327,7 +19327,7 @@
19327
19327
  "surface": "builders-hall",
19328
19328
  "text": "take this page",
19329
19329
  "file": "modules/hall-ui/public/tweak-editor.js",
19330
- "line": 324,
19330
+ "line": 325,
19331
19331
  "origin": "js-markup",
19332
19332
  "confidence": "certain"
19333
19333
  },
@@ -19786,7 +19786,7 @@
19786
19786
  "surface": "builders-hall",
19787
19787
  "text": "upload .docx",
19788
19788
  "file": "modules/hall-ui/public/tweak-editor.js",
19789
- "line": 506,
19789
+ "line": 507,
19790
19790
  "origin": "js-text-assign",
19791
19791
  "confidence": "certain"
19792
19792
  },
@@ -20263,7 +20263,7 @@
20263
20263
  "surface": "builders-hall",
20264
20264
  "text": "{…} is in.",
20265
20265
  "file": "modules/hall-ui/public/tweak-editor.js",
20266
- "line": 577,
20266
+ "line": 578,
20267
20267
  "origin": "js-text-assign",
20268
20268
  "confidence": "certain"
20269
20269
  },
@@ -20272,7 +20272,7 @@
20272
20272
  "surface": "builders-hall",
20273
20273
  "text": "{…} is writing this page now. You can read it, download it, or take another page from the studio.",
20274
20274
  "file": "modules/hall-ui/public/tweak-editor.js",
20275
- "line": 328,
20275
+ "line": 329,
20276
20276
  "origin": "js-markup",
20277
20277
  "confidence": "certain"
20278
20278
  },
@@ -21424,7 +21424,7 @@
21424
21424
  "surface": "landing",
21425
21425
  "text": "A non-profit, capture-resistant commons.",
21426
21426
  "file": "modules/public-landing/public/account.html",
21427
- "line": 292,
21427
+ "line": 308,
21428
21428
  "origin": "html-text",
21429
21429
  "confidence": "certain"
21430
21430
  },
@@ -21739,7 +21739,7 @@
21739
21739
  "surface": "landing",
21740
21740
  "text": "Anyone find you.",
21741
21741
  "file": "modules/public-landing/public/account.html",
21742
- "line": 230,
21742
+ "line": 246,
21743
21743
  "origin": "html-text",
21744
21744
  "confidence": "certain"
21745
21745
  },
@@ -22297,7 +22297,7 @@
22297
22297
  "surface": "landing",
22298
22298
  "text": "Builders' hall",
22299
22299
  "file": "modules/public-landing/public/account.html",
22300
- "line": 292,
22300
+ "line": 308,
22301
22301
  "origin": "html-text",
22302
22302
  "confidence": "certain"
22303
22303
  },
@@ -22432,7 +22432,7 @@
22432
22432
  "surface": "landing",
22433
22433
  "text": "Built by agents, on Cloud Bongos.",
22434
22434
  "file": "modules/public-landing/public/account.html",
22435
- "line": 292,
22435
+ "line": 308,
22436
22436
  "origin": "html-text",
22437
22437
  "confidence": "certain"
22438
22438
  },
@@ -22549,7 +22549,7 @@
22549
22549
  "surface": "landing",
22550
22550
  "text": "Can find me",
22551
22551
  "file": "modules/public-landing/public/account.html",
22552
- "line": 238,
22552
+ "line": 254,
22553
22553
  "origin": "html-text",
22554
22554
  "confidence": "certain"
22555
22555
  },
@@ -22558,7 +22558,7 @@
22558
22558
  "surface": "landing",
22559
22559
  "text": "Can’t find me",
22560
22560
  "file": "modules/public-landing/public/account.html",
22561
- "line": 239,
22561
+ "line": 255,
22562
22562
  "origin": "html-text",
22563
22563
  "confidence": "certain"
22564
22564
  },
@@ -23008,7 +23008,7 @@
23008
23008
  "surface": "landing",
23009
23009
  "text": "Cross-project Record",
23010
23010
  "file": "modules/public-landing/public/account.html",
23011
- "line": 260,
23011
+ "line": 276,
23012
23012
  "origin": "html-text",
23013
23013
  "confidence": "certain"
23014
23014
  },
@@ -23714,6 +23714,15 @@
23714
23714
  "origin": "html-attr:placeholder",
23715
23715
  "confidence": "certain"
23716
23716
  },
23717
+ {
23718
+ "id": "8c815a28df30",
23719
+ "surface": "landing",
23720
+ "text": "GitHub, Google or both. Each one opens this same account, with the same credits, ranks and history.",
23721
+ "file": "modules/public-landing/public/account.html",
23722
+ "line": 224,
23723
+ "origin": "html-text",
23724
+ "confidence": "certain"
23725
+ },
23717
23726
  {
23718
23727
  "id": "cf1458a108cd",
23719
23728
  "surface": "landing",
@@ -23755,7 +23764,7 @@
23755
23764
  "surface": "landing",
23756
23765
  "text": "Hide it",
23757
23766
  "file": "modules/public-landing/public/account.html",
23758
- "line": 263,
23767
+ "line": 279,
23759
23768
  "origin": "html-text",
23760
23769
  "confidence": "certain"
23761
23770
  },
@@ -24182,6 +24191,15 @@
24182
24191
  "origin": "html-text",
24183
24192
  "confidence": "certain"
24184
24193
  },
24194
+ {
24195
+ "id": "62bf4cd7f215",
24196
+ "surface": "landing",
24197
+ "text": "Linking never joins two accounts. If the other one already has its own account here, we say so and change nothing.",
24198
+ "file": "modules/public-landing/public/account.html",
24199
+ "line": 228,
24200
+ "origin": "html-text",
24201
+ "confidence": "certain"
24202
+ },
24185
24203
  {
24186
24204
  "id": "5ceffa7b9d7e",
24187
24205
  "surface": "landing",
@@ -24790,7 +24808,7 @@
24790
24808
  "surface": "landing",
24791
24809
  "text": "Open source",
24792
24810
  "file": "modules/public-landing/public/account.html",
24793
- "line": 292,
24811
+ "line": 308,
24794
24812
  "origin": "html-text",
24795
24813
  "confidence": "certain"
24796
24814
  },
@@ -25456,7 +25474,7 @@
25456
25474
  "surface": "landing",
25457
25475
  "text": "Reading the projects you build on…",
25458
25476
  "file": "modules/public-landing/public/account.html",
25459
- "line": 283,
25477
+ "line": 299,
25460
25478
  "origin": "html-text",
25461
25479
  "confidence": "certain"
25462
25480
  },
@@ -25658,12 +25676,21 @@
25658
25676
  "origin": "html-text",
25659
25677
  "confidence": "certain"
25660
25678
  },
25679
+ {
25680
+ "id": "fd718a4f17ca",
25681
+ "surface": "landing",
25682
+ "text": "Reading your ways to sign in…",
25683
+ "file": "modules/public-landing/public/account.html",
25684
+ "line": 226,
25685
+ "origin": "html-text",
25686
+ "confidence": "certain"
25687
+ },
25661
25688
  {
25662
25689
  "id": "604f5274ae98",
25663
25690
  "surface": "landing",
25664
25691
  "text": "Recruiters looking for builders can find you.",
25665
25692
  "file": "modules/public-landing/public/account.html",
25666
- "line": 238,
25693
+ "line": 254,
25667
25694
  "origin": "html-text",
25668
25695
  "confidence": "certain"
25669
25696
  },
@@ -25843,7 +25870,7 @@
25843
25870
  "surface": "landing",
25844
25871
  "text": "Show it",
25845
25872
  "file": "modules/public-landing/public/account.html",
25846
- "line": 262,
25873
+ "line": 278,
25847
25874
  "origin": "html-text",
25848
25875
  "confidence": "certain"
25849
25876
  },
@@ -26653,7 +26680,7 @@
26653
26680
  "surface": "landing",
26654
26681
  "text": "The projects you have joined as a builder. Only you see this list.",
26655
26682
  "file": "modules/public-landing/public/account.html",
26656
- "line": 281,
26683
+ "line": 297,
26657
26684
  "origin": "html-text",
26658
26685
  "confidence": "certain"
26659
26686
  },
@@ -27526,7 +27553,7 @@
27526
27553
  "surface": "landing",
27527
27554
  "text": "You stay out of the recruiting directory and a recruiter’s look-up.",
27528
27555
  "file": "modules/public-landing/public/account.html",
27529
- "line": 239,
27556
+ "line": 255,
27530
27557
  "origin": "html-text",
27531
27558
  "confidence": "certain"
27532
27559
  },
@@ -27697,7 +27724,7 @@
27697
27724
  "surface": "landing",
27698
27725
  "text": "Your profile page",
27699
27726
  "file": "modules/public-landing/public/account.html",
27700
- "line": 228,
27727
+ "line": 244,
27701
27728
  "origin": "html-text",
27702
27729
  "confidence": "certain"
27703
27730
  },
@@ -27706,7 +27733,7 @@
27706
27733
  "surface": "landing",
27707
27734
  "text": "Your profile page can be public or private, and recruiters are let in separately — so a private profile can still be reachable for work, and a public one can stay out of recruiting entirely.",
27708
27735
  "file": "modules/public-landing/public/account.html",
27709
- "line": 225,
27736
+ "line": 241,
27710
27737
  "origin": "html-text",
27711
27738
  "confidence": "certain"
27712
27739
  },
@@ -27715,7 +27742,7 @@
27715
27742
  "surface": "landing",
27716
27743
  "text": "Your profile page setting applies now — private already answers “not found” everywhere your profile is read. Recruiter discoverability applies now too — switching it off removes you from both recruiting surfaces immediately, and back on puts you there again.",
27717
27744
  "file": "modules/public-landing/public/account.html",
27718
- "line": 243,
27745
+ "line": 259,
27719
27746
  "origin": "html-text",
27720
27747
  "confidence": "certain"
27721
27748
  },
@@ -27868,7 +27895,7 @@
27868
27895
  "surface": "landing",
27869
27896
  "text": "Your stats appear on your profile and in the directories.",
27870
27897
  "file": "modules/public-landing/public/account.html",
27871
- "line": 262,
27898
+ "line": 278,
27872
27899
  "origin": "html-text",
27873
27900
  "confidence": "certain"
27874
27901
  },
@@ -27877,7 +27904,7 @@
27877
27904
  "surface": "landing",
27878
27905
  "text": "Your stats are hidden.",
27879
27906
  "file": "modules/public-landing/public/account.html",
27880
- "line": 263,
27907
+ "line": 279,
27881
27908
  "origin": "html-text",
27882
27909
  "confidence": "certain"
27883
27910
  },
@@ -27886,7 +27913,7 @@
27886
27913
  "surface": "landing",
27887
27914
  "text": "Your track record across every project you build on. Hiding it takes effect immediately everywhere — your profile, the recruiting directory, and a recruiter’s look-up of one builder.",
27888
27915
  "file": "modules/public-landing/public/account.html",
27889
- "line": 256,
27916
+ "line": 272,
27890
27917
  "origin": "html-text",
27891
27918
  "confidence": "certain"
27892
27919
  },
@@ -27922,7 +27949,7 @@
27922
27949
  "surface": "landing",
27923
27950
  "text": "You’re not building on any other projects yet.",
27924
27951
  "file": "modules/public-landing/public/account.html",
27925
- "line": 284,
27952
+ "line": 300,
27926
27953
  "origin": "html-text",
27927
27954
  "confidence": "certain"
27928
27955
  },
@@ -28687,7 +28714,7 @@
28687
28714
  "surface": "landing",
28688
28715
  "text": "projects you build on",
28689
28716
  "file": "modules/public-landing/public/account.html",
28690
- "line": 280,
28717
+ "line": 296,
28691
28718
  "origin": "html-text",
28692
28719
  "confidence": "certain"
28693
28720
  },
@@ -29456,6 +29483,15 @@
29456
29483
  "origin": "html-text",
29457
29484
  "confidence": "certain"
29458
29485
  },
29486
+ {
29487
+ "id": "667fd4617840",
29488
+ "surface": "landing",
29489
+ "text": "ways to sign in",
29490
+ "file": "modules/public-landing/public/account.html",
29491
+ "line": 223,
29492
+ "origin": "html-text",
29493
+ "confidence": "certain"
29494
+ },
29459
29495
  {
29460
29496
  "id": "c142e2581ed3",
29461
29497
  "surface": "landing",
@@ -29470,7 +29506,7 @@
29470
29506
  "surface": "landing",
29471
29507
  "text": "who can find you",
29472
29508
  "file": "modules/public-landing/public/account.html",
29473
- "line": 224,
29509
+ "line": 240,
29474
29510
  "origin": "html-text",
29475
29511
  "confidence": "certain"
29476
29512
  },
@@ -29839,7 +29875,7 @@
29839
29875
  "surface": "landing",
29840
29876
  "text": "you are a ninja. Private hides the page from everyone — including you. You see your record here.",
29841
29877
  "file": "modules/public-landing/public/account.html",
29842
- "line": 231,
29878
+ "line": 247,
29843
29879
  "origin": "html-text",
29844
29880
  "confidence": "certain"
29845
29881
  },
@@ -29902,7 +29938,7 @@
29902
29938
  "surface": "landing",
29903
29939
  "text": "your record",
29904
29940
  "file": "modules/public-landing/public/account.html",
29905
- "line": 255,
29941
+ "line": 271,
29906
29942
  "origin": "html-text",
29907
29943
  "confidence": "certain"
29908
29944
  },
package/docs/file-map.md CHANGED
@@ -461,7 +461,7 @@ To install on a new machine, symlink each routine's directory under `~/.claude/s
461
461
  ```
462
462
  .claude/hooks/
463
463
  ├── secret-gate.js ← PreToolUse (Edit|Write|MultiEdit|NotebookEdit|Bash|PowerShell): cooperative, fail-OPEN block of secret-shaped content before it reaches the tree or a shell (task 1003125, ADR 0022)
464
- ├── run-node.sh ← the node resolver every hook command runs through (task 1003548): $OTB_NODE_BIN → PATH → known install dirs → nvm; one actionable line + exit 1 when none is found. 1,055 hook runs had died silently with `node: command not found`
464
+ ├── run-node.sh ← the node resolver every hook command runs through (task 1003548): $OTB_NODE_BIN → PATH → known install dirs → nvm; one actionable line + exit 1 when none is found. 1,055 hook runs had died silently with `node: command not found`. Also runs the SESSION's checkout's copy of a hook when the session sits in a worktree, since Claude Code points $CLAUDE_PROJECT_DIR at the main checkout (task 1005015; off-switch OTB_HOOKS_FROM_PROJECT_DIR=1)
465
465
  ├── edit-hints.js ← PostToolUse (Edit|Write|MultiEdit): lints a saved SKILL.md's frontmatter (scripts/bongos/skill-lint.js) and names the generator an edited path makes stale (copy-registry, repo-map blocks, file-map, openapi, §13 snippet) with its command (task 1003548)
466
466
  ├── git-guard.js ← PreToolUse (Bash|PowerShell): same contract as secret-gate — blocks `git stash` (repo-global stack, learning 1000215), raw `git worktree remove` (follows the node_modules junction, task 1002809), `git push origin main` (PR-only) and `git branch -D`, each with its remedy; kill-switch BONGOS_GIT_GUARD_OFF=1 (task 1003365)
467
467
  ├── allow-rule-guard.js ← PreToolUse (PowerShell): a command that names something the project's allow-list pre-approves ASKS unless it is PLAIN — command names, bare-word arguments, `$name` reads, literal strings, `; | && ||`, `2>&1` / `> $null`, and nothing else. An allowlist of shape, not a denylist of tricks (the denylist cut was evaded eleven ways in review). Never blocks, fails open, silent for commands nobody pre-allowed. Exists because the client ordering that already does this for PowerShell is undocumented (ADR 0304 amendment, task 1004014); kill-switch BONGOS_ALLOW_RULE_GUARD_OFF=1
@@ -483,7 +483,8 @@ To install on a new machine, symlink each routine's directory under `~/.claude/s
483
483
  ├── stuck-strikes.js ← shared helper, not a hook: the per-session strike counter (hashed signatures in os.tmpdir()) + the static instruction text; stuck-detector.js, git-guard.js and worktree-guard.js all count through it (task 1003990)
484
484
  ├── pre-compact.js ← PreCompact: thin reader around eviction-policy.js — emits an eviction directive (blocks to drop + one-line recovery stubs) at the compaction seam (task 1349)
485
485
  ├── eviction-policy.js ← pure deterministic in-session compaction classifier (transcript turns → eviction set + replacement stubs); no I/O, unit-tested in tests/eviction_policy.mjs; consumed by pre-compact.js (task 1348)
486
- └── stop-refcheck.js ← Stop: deterministic backstop that catches a bare `#NNN` Bongos ref in live session text (autolinks to a 404 GitHub issue) and asks for the clickable form (follow-on to task 929)
486
+ ├── stop-refcheck.js ← Stop: deterministic backstop that catches a bare `#NNN` Bongos ref in live session text (autolinks to a 404 GitHub issue) and asks for the clickable form (follow-on to task 929)
487
+ └── stop-slopcheck.js ← Stop: when the agent's last message reverses an earlier belief ("turns out", "I was wrong"), asks once whether a doc/hook/output misled it — the Slop Bongo rule; words from src/bongos/agent-standing-rules.js, with a local copy held equal by tests for a checkout whose core cannot load; reads only the transcript tail (task 1005015)
487
488
  ```
488
489
 
489
490
  > Restored in task 1003365 from the box's pre-re-seed checkout: the tree was lost when core was re-seeded to 1.18.0 (task 1003272 found the sound half; this brought back the rest). `stop-sound.js` was NOT restored — `scripts/bongos/turn-end-sound.js` superseded it. Every hook above is wired in `.claude/settings.json`, which is the authority on what actually runs.
@@ -3266,7 +3266,9 @@ is load-bearing: the script throws rather than guess if it is missing, and
3266
3266
  landed since 1.24.0 with no explicit bump. run 40985289858. (task 1002620)
3267
3267
  1.24.2 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
3268
3268
  landed since 1.24.1 with no explicit bump. run 41000649913. (task 1002620)
3269
- 1.24.4 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
3270
- landed since 1.24.2 with no explicit bump. run 41004393103. (task 1002620)
3269
+ 1.24.5 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
3270
+ landed since 1.24.2 with no explicit bump. run 41006914357. (task 1002620)
3271
+ 1.24.6 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
3272
+ landed since 1.24.5 with no explicit bump. run 41008421453. (task 1002620)
3271
3273
  ---------------------------------------------------------------------------
3272
3274
  ```
@@ -13,7 +13,7 @@
13
13
  "pages": 48,
14
14
  "surfaces": 3,
15
15
  "with_states": 41,
16
- "states": 363
16
+ "states": 364
17
17
  },
18
18
  "surfaces": [
19
19
  {
@@ -1479,6 +1479,7 @@
1479
1479
  "in-projects-band",
1480
1480
  "in-profile-band",
1481
1481
  "in-building",
1482
+ "in-ways",
1482
1483
  "in-privacy",
1483
1484
  "in-private"
1484
1485
  ]