@bongos/core 1.18.0 → 1.18.18

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 (553) hide show
  1. package/.bongos-core.json +1740 -640
  2. package/.claude/skills/builder-box/SKILL.md +6 -0
  3. package/.claude/skills/builder-sequence/SKILL.md +97 -0
  4. package/.claude/skills/builder-ship/SKILL.md +8 -2
  5. package/.claude/skills/builder-start/SKILL.md +11 -0
  6. package/.claude/skills/builder-sync/SKILL.md +41 -0
  7. package/.claude/skills/fix-task/SKILL.md +64 -0
  8. package/.claude/skills/goal-create/SKILL.md +158 -0
  9. package/.claude/skills/goal-review/SKILL.md +3 -1
  10. package/.claude/skills/idea-triage/SKILL.md +14 -8
  11. package/.claude/skills/merge-mode/SKILL.md +2 -2
  12. package/.claude/skills/new-project/SKILL.md +1 -0
  13. package/.claude/skills/planning-session/SKILL.md +45 -18
  14. package/.env.local.example +4 -3
  15. package/README.md +5 -3
  16. package/bin/bongos.js +1 -0
  17. package/clients/bongos-client/README.md +2 -2
  18. package/clients/bongos-client/bongos-client.global.js +82 -18
  19. package/clients/bongos-client/index.cjs +82 -18
  20. package/clients/bongos-client/index.d.ts +131 -29
  21. package/clients/bongos-client/index.mjs +82 -18
  22. package/config/branding.neutral.json +11 -2
  23. package/config/governance.neutral.json +21 -0
  24. package/docs/adr/0043-git-ssh-trust-boundary-and-rank-floor-on-permission-paths.md +24 -0
  25. package/docs/adr/0090-metic-task-authoring.md +1 -1
  26. package/docs/adr/0142-project-context-is-prose-only.md +41 -0
  27. package/docs/adr/0143-onboarding-repo-picker-oauth-scope.md +35 -0
  28. package/docs/adr/0144-devbox-rehome-onto-cloudbongos-plane.md +41 -0
  29. package/docs/adr/0144-federated-single-logout-backchannel.md +42 -0
  30. package/docs/adr/0145-devbox-app-branding-driven-module.md +44 -0
  31. package/docs/adr/0145-free-hosted-project-tier-isolation-and-domain-separation.md +62 -0
  32. package/docs/adr/0146-configurable-reward-mode-cost-plus-only.md +53 -0
  33. package/docs/adr/0147-standalone-live-docs-regen.md +39 -0
  34. package/docs/adr/0148-task-scoped-box-source-access.md +48 -0
  35. package/docs/adr/0149-bongos-dev-local-launcher.md +57 -0
  36. package/docs/adr/0150-box-first-boot-bringup-vendored-instances.md +68 -0
  37. package/docs/adr/0151-governance-permissions-as-atom-ranks-as-roles.md +229 -0
  38. package/docs/adr/0152-landing-gate-served-by-the-core-app.md +92 -0
  39. package/docs/adr/0152-metic-task-abandonment.md +67 -0
  40. package/docs/adr/0153-sequential-chain-runner.md +51 -0
  41. package/docs/adr/0154-goal-owner-criterion-authoring.md +86 -0
  42. package/docs/adr/README.md +15 -2
  43. package/docs/api/openapi.json +2648 -483
  44. package/docs/api-reference.md +73 -13
  45. package/docs/architecture.md +4 -2
  46. package/docs/branding-contract.md +3 -1
  47. package/docs/canonical-permissions.md +21 -8
  48. package/docs/file-map.md +15 -7
  49. package/docs/onboarding/diagrams/01-task-lifecycle.mmd +2 -2
  50. package/docs/onboarding/diagrams/02-rank-ladder.mmd +3 -1
  51. package/docs/onboarding/diagrams/05-versioning.mmd +1 -3
  52. package/docs/onboarding/diagrams/assertions.json +4 -7
  53. package/docs/onboarding/drachmae-and-karma.md +3 -3
  54. package/docs/onboarding/primer.md +17 -16
  55. package/docs/onboarding/slash-commands.md +124 -0
  56. package/docs/recipes/builder-box-lifecycle.md +23 -0
  57. package/docs/recipes/devbox-app-release.md +14 -4
  58. package/docs/recipes/instance-first-run.md +16 -0
  59. package/docs/recipes/local-dev.md +81 -0
  60. package/docs/recipes/ops-gotchas.md +19 -1
  61. package/docs/recipes/overnight-builder.md +1 -1
  62. package/docs/recipes/packaging-the-core.md +13 -0
  63. package/docs/recipes/parallel-goal-waves.md +174 -0
  64. package/docs/recipes/ship-and-regrade.md +2 -2
  65. package/docs/recipes/standalone-live-docs.md +48 -0
  66. package/docs/recipes/upgrading-the-core.md +5 -2
  67. package/docs/recipes/work-on-a-task-from-your-dev-box.md +108 -0
  68. package/migrations/003_pms.sql +6 -7
  69. package/migrations/006_pms_v2.sql +3 -31
  70. package/migrations/039_newcomer_friendly_column.sql +5 -0
  71. package/migrations/102_remove_box_first_provision_approval.sql +4 -0
  72. package/migrations/core_192_github_oauth_tokens.sql +33 -0
  73. package/migrations/core_193_task_needs_rebase.sql +28 -0
  74. package/migrations/core_194_confirmed_backlog_clawback.sql +63 -0
  75. package/migrations/core_195_idea_triage_provenance.sql +57 -0
  76. package/migrations/core_196_session_reward_topup.sql +69 -0
  77. package/modules/autonomy/pollers/routine-timers.js +9 -8
  78. package/modules/builder-settings/wandering-prefs.js +61 -18
  79. package/modules/dev-box/app/README.md +73 -0
  80. package/modules/dev-box/app/assets/tray/mac-alertTemplate.png +0 -0
  81. package/modules/dev-box/app/assets/tray/mac-alertTemplate@2x.png +0 -0
  82. package/modules/dev-box/app/assets/tray/mac-busyTemplate.png +0 -0
  83. package/modules/dev-box/app/assets/tray/mac-busyTemplate@2x.png +0 -0
  84. package/modules/dev-box/app/assets/tray/mac-offTemplate.png +0 -0
  85. package/modules/dev-box/app/assets/tray/mac-offTemplate@2x.png +0 -0
  86. package/modules/dev-box/app/assets/tray/mac-onTemplate.png +0 -0
  87. package/modules/dev-box/app/assets/tray/mac-onTemplate@2x.png +0 -0
  88. package/modules/dev-box/app/assets/tray/win-alert.png +0 -0
  89. package/modules/dev-box/app/assets/tray/win-busy.png +0 -0
  90. package/modules/dev-box/app/assets/tray/win-off.png +0 -0
  91. package/modules/dev-box/app/assets/tray/win-on.png +0 -0
  92. package/modules/dev-box/app/build-resources/dmg-background.png +0 -0
  93. package/modules/dev-box/app/build-resources/dmg-background@2x.png +0 -0
  94. package/modules/dev-box/app/build-resources/icon.png +0 -0
  95. package/modules/dev-box/app/electron-builder.tmpl.yml +95 -0
  96. package/modules/dev-box/app/electron-builder.yml +95 -0
  97. package/modules/dev-box/app/package-lock.json +5291 -0
  98. package/modules/dev-box/app/package.json +30 -0
  99. package/modules/dev-box/app/renderer/app.js +319 -0
  100. package/modules/dev-box/app/renderer/index.html +45 -0
  101. package/modules/dev-box/app/renderer/styles.css +246 -0
  102. package/modules/dev-box/app/renderer/theme.generated.css +16 -0
  103. package/modules/dev-box/app/scripts/apply-dmg-backdrop.sh +82 -0
  104. package/modules/dev-box/app/scripts/dmgbuild-settings.py +39 -0
  105. package/modules/dev-box/app/scripts/gen-brand.js +138 -0
  106. package/modules/dev-box/app/scripts/gen-dmg-backdrop.py +323 -0
  107. package/modules/dev-box/app/scripts/gen-icons.js +286 -0
  108. package/modules/dev-box/app/scripts/vendor-client.js +23 -0
  109. package/modules/dev-box/app/src/box-controller.js +287 -0
  110. package/modules/dev-box/app/src/brand.generated.json +13 -0
  111. package/modules/dev-box/app/src/brand.js +16 -0
  112. package/modules/dev-box/app/src/config.js +19 -0
  113. package/modules/dev-box/app/src/gds-client.js +90 -0
  114. package/modules/dev-box/app/src/main.js +610 -0
  115. package/modules/dev-box/app/src/pairing.js +57 -0
  116. package/modules/dev-box/app/src/preload.js +29 -0
  117. package/modules/dev-box/app/src/session-store.js +58 -0
  118. package/modules/dev-box/app/src/ssh-setup.js +569 -0
  119. package/modules/dev-box/app/src/task-picker.js +70 -0
  120. package/modules/dev-box/app/src/tray.js +99 -0
  121. package/modules/dev-box/app/src/updater.js +55 -0
  122. package/modules/dev-box/app/src/vendor/bongos-client.cjs +698 -0
  123. package/modules/dev-box/app/test/unit.mjs +526 -0
  124. package/modules/dev-box/box-access.js +121 -4
  125. package/modules/dev-box/boxes.js +20 -0
  126. package/modules/dev-box/module.json +1 -1
  127. package/modules/dev-box/routes/box.js +87 -3
  128. package/modules/economy/credits.js +116 -25
  129. package/modules/economy/reward.js +8 -0
  130. package/modules/economy/streak.js +2 -1
  131. package/modules/governance/CLAUDE.md +15 -0
  132. package/modules/governance/catalog.js +419 -0
  133. package/modules/governance/config.js +174 -0
  134. package/modules/governance/db.js +125 -0
  135. package/modules/governance/migrations/governance_001_tables.sql +81 -0
  136. package/modules/governance/migrations/governance_002_seed_and_backfill.sql +103 -0
  137. package/modules/governance/migrations/governance_003_task_abandon_metic.sql +28 -0
  138. package/modules/governance/migrations/governance_004_criterion_create.sql +39 -0
  139. package/modules/governance/migrations/governance_005_resync_builder_rank_roles.sql +56 -0
  140. package/modules/governance/module.json +10 -0
  141. package/modules/governance/protected-surfaces.js +88 -0
  142. package/modules/governance/protected-surfaces.json +80 -0
  143. package/modules/governance/rank-roles.js +83 -0
  144. package/modules/governance/resolver.js +221 -0
  145. package/modules/governance/routes/governance.js +89 -0
  146. package/modules/governance/routes/role-sync.js +49 -0
  147. package/modules/governance/session-scopes.js +127 -0
  148. package/modules/governance/session-scopes.json +38 -0
  149. package/modules/hall-ui/public/atlas.css +117 -0
  150. package/modules/hall-ui/public/atlas.html +3 -114
  151. package/modules/hall-ui/public/brand-apply.js +34 -6
  152. package/modules/hall-ui/public/builders.js +187 -219
  153. package/modules/hall-ui/public/diagrams.html +2 -0
  154. package/modules/hall-ui/public/dom-utils.js +27 -0
  155. package/modules/hall-ui/public/drachmae.html +2 -0
  156. package/modules/hall-ui/public/drachmae.js +54 -1
  157. package/modules/hall-ui/public/gate.css +98 -0
  158. package/modules/hall-ui/public/gate.html +3 -95
  159. package/modules/hall-ui/public/goal-inbox.js +4 -1
  160. package/modules/hall-ui/public/goals-page.js +626 -114
  161. package/modules/hall-ui/public/goals.css +79 -1
  162. package/modules/hall-ui/public/goals.html +38 -11
  163. package/modules/hall-ui/public/hall-widgets.js +62 -52
  164. package/modules/hall-ui/public/harbor.css +123 -0
  165. package/modules/hall-ui/public/harbor.html +3 -120
  166. package/modules/hall-ui/public/index.html +11 -4
  167. package/modules/hall-ui/public/instances-panel.js +4 -1
  168. package/modules/hall-ui/public/modules.css +63 -0
  169. package/modules/hall-ui/public/modules.html +3 -60
  170. package/modules/hall-ui/public/my-projects.html +78 -0
  171. package/modules/hall-ui/public/my-projects.js +142 -0
  172. package/modules/hall-ui/public/new-project-wizard.js +7 -3
  173. package/modules/hall-ui/public/not-ready.html +2 -0
  174. package/modules/hall-ui/public/pair.css +73 -0
  175. package/modules/hall-ui/public/pair.html +3 -70
  176. package/modules/hall-ui/public/palette.js +302 -0
  177. package/modules/hall-ui/public/primer.css +13 -0
  178. package/modules/hall-ui/public/primer.html +2 -0
  179. package/modules/hall-ui/public/profile.html +2 -0
  180. package/modules/hall-ui/public/ranks.html +2 -0
  181. package/modules/hall-ui/public/roadmap.css +179 -0
  182. package/modules/hall-ui/public/roadmap.html +9 -172
  183. package/modules/hall-ui/public/roadmap.js +329 -316
  184. package/modules/hall-ui/public/scouting.html +45 -0
  185. package/modules/hall-ui/public/scouting.js +73 -0
  186. package/modules/hall-ui/public/sessions.css +16 -0
  187. package/modules/hall-ui/public/sessions.html +3 -13
  188. package/modules/hall-ui/public/settings.html +2 -0
  189. package/modules/hall-ui/public/settings.js +4 -4
  190. package/modules/hall-ui/public/shell.js +143 -18
  191. package/modules/hall-ui/public/style.css +231 -39
  192. package/modules/hall-ui/public/task-detail.js +347 -26
  193. package/modules/hall-ui/public/task.html +6 -1
  194. package/modules/hall-ui/public/watch.html +2 -0
  195. package/modules/hall-ui/public/work.html +8 -6
  196. package/modules/hall-ui/public/work.js +1 -1
  197. package/modules/ideas/inbox.js +61 -11
  198. package/modules/ideas/routes/inbox.js +23 -0
  199. package/modules/lifecycle/claim-eligibility.js +72 -0
  200. package/modules/lifecycle/db.js +519 -139
  201. package/modules/lifecycle/done-when.js +18 -3
  202. package/modules/lifecycle/github-push.js +19 -2
  203. package/modules/lifecycle/goal-advisory.js +114 -0
  204. package/modules/lifecycle/goal-authz.js +62 -0
  205. package/modules/lifecycle/lifecycle.js +9 -0
  206. package/modules/lifecycle/publish-reconciler.js +109 -6
  207. package/modules/lifecycle/routes/claims.js +68 -23
  208. package/modules/lifecycle/routes/done-when.js +110 -15
  209. package/modules/lifecycle/routes/goals.js +8 -38
  210. package/modules/lifecycle/routes/tasks.js +38 -6
  211. package/modules/lifecycle/ship-card.js +6 -0
  212. package/modules/onboarding/onboarding-state.js +1 -1
  213. package/modules/platform-identity/CLAUDE.md +15 -0
  214. package/modules/platform-identity/hub-device.js +147 -0
  215. package/modules/platform-identity/hub-keys.js +151 -0
  216. package/modules/platform-identity/migrations/platform_identity_001_tables.sql +114 -0
  217. package/modules/platform-identity/migrations/platform_identity_002_client_origin_index.sql +18 -0
  218. package/modules/platform-identity/migrations/platform_identity_003_project_memberships.sql +42 -0
  219. package/modules/platform-identity/migrations/platform_identity_004_projects.sql +44 -0
  220. package/modules/platform-identity/migrations/platform_identity_005_builder_activity.sql +42 -0
  221. package/modules/platform-identity/module.json +18 -0
  222. package/modules/platform-identity/platform-identity.js +531 -0
  223. package/modules/platform-identity/pollers/code-sweep.js +43 -0
  224. package/modules/platform-identity/routes/my-projects.js +140 -0
  225. package/modules/platform-identity/routes/projects.js +107 -0
  226. package/modules/platform-identity/routes/scouting.js +35 -0
  227. package/modules/platform-identity/routes/sso.js +402 -0
  228. package/modules/platform-identity/tests/platform-identity.mjs +388 -0
  229. package/modules/platform-identity/ui/.gitkeep +0 -0
  230. package/modules/security/routes/reports.js +10 -0
  231. package/modules/sessions/db.js +166 -21
  232. package/modules/sessions/module.json +1 -1
  233. package/modules/sessions/pollers/session-reward-reconcile.js +78 -0
  234. package/modules/sessions/routes/sessions.js +33 -0
  235. package/modules/status-ui/public/explore.html +54 -0
  236. package/modules/status-ui/public/explore.js +67 -0
  237. package/package-lock.json +2 -2
  238. package/package.json +1 -1
  239. package/public-landing/assets/anim/idle/frame_00.webp +0 -0
  240. package/public-landing/assets/anim/idle/frame_01.webp +0 -0
  241. package/public-landing/assets/anim/idle/frame_02.webp +0 -0
  242. package/public-landing/assets/anim/idle/frame_03.webp +0 -0
  243. package/public-landing/assets/anim/idle/frame_04.webp +0 -0
  244. package/public-landing/assets/anim/idle/frame_05.webp +0 -0
  245. package/public-landing/assets/anim/idle/frame_06.webp +0 -0
  246. package/public-landing/assets/anim/idle/frame_07.webp +0 -0
  247. package/public-landing/assets/anim/idle/frame_08.webp +0 -0
  248. package/public-landing/assets/anim/idle/frame_09.webp +0 -0
  249. package/public-landing/assets/anim/idle/frame_10.webp +0 -0
  250. package/public-landing/assets/anim/idle/frame_11.webp +0 -0
  251. package/public-landing/assets/anim/idle/frame_12.webp +0 -0
  252. package/public-landing/assets/anim/idle/frame_13.webp +0 -0
  253. package/public-landing/assets/anim/idle/frame_14.webp +0 -0
  254. package/public-landing/assets/anim/idle/frame_15.webp +0 -0
  255. package/public-landing/assets/anim/idle/frame_16.webp +0 -0
  256. package/public-landing/assets/anim/idle/frame_17.webp +0 -0
  257. package/public-landing/assets/anim/idle/frame_18.webp +0 -0
  258. package/public-landing/assets/anim/idle/frame_19.webp +0 -0
  259. package/public-landing/assets/anim/idle/frame_20.webp +0 -0
  260. package/public-landing/assets/anim/idle/frame_21.webp +0 -0
  261. package/public-landing/assets/anim/idle/frame_22.webp +0 -0
  262. package/public-landing/assets/anim/idle/frame_23.webp +0 -0
  263. package/public-landing/assets/anim/idle/frame_24.webp +0 -0
  264. package/public-landing/assets/anim/idle/frame_25.webp +0 -0
  265. package/public-landing/assets/anim/idle/frame_26.webp +0 -0
  266. package/public-landing/assets/anim/idle/frame_27.webp +0 -0
  267. package/public-landing/assets/anim/idle/frame_28.webp +0 -0
  268. package/public-landing/assets/anim/idle/frame_29.webp +0 -0
  269. package/public-landing/assets/anim/idle/frame_30.webp +0 -0
  270. package/public-landing/assets/anim/idle/frame_31.webp +0 -0
  271. package/public-landing/assets/anim/idle/frame_32.webp +0 -0
  272. package/public-landing/assets/anim/idle/frame_33.webp +0 -0
  273. package/public-landing/assets/anim/idle/frame_34.webp +0 -0
  274. package/public-landing/assets/anim/idle/frame_35.webp +0 -0
  275. package/public-landing/assets/anim/idle/frame_36.webp +0 -0
  276. package/public-landing/assets/anim/idle/frame_37.webp +0 -0
  277. package/public-landing/assets/anim/idle/frame_38.webp +0 -0
  278. package/public-landing/assets/anim/idle/frame_39.webp +0 -0
  279. package/public-landing/assets/anim/idle/frame_40.webp +0 -0
  280. package/public-landing/assets/anim/idle/frame_41.webp +0 -0
  281. package/public-landing/assets/anim/idle/frame_42.webp +0 -0
  282. package/public-landing/assets/anim/idle/frame_43.webp +0 -0
  283. package/public-landing/create.html +252 -62
  284. package/public-landing/gate/README.md +137 -0
  285. package/public-landing/gate/dispmaps/bar.png +0 -0
  286. package/public-landing/gate/dispmaps/flat.png +0 -0
  287. package/public-landing/gate/dispmaps/key.png +0 -0
  288. package/public-landing/gate/index.html +587 -0
  289. package/public-landing/gate/previews/cloud-bongos.jpg +0 -0
  290. package/public-landing/gate/previews/off-the-boats.jpg +0 -0
  291. package/public-landing/gate/space.css +799 -0
  292. package/public-landing/gate/space.js +1826 -0
  293. package/public-landing/gate/sprites/enter.png +0 -0
  294. package/public-landing/gate/sprites/search.png +0 -0
  295. package/public-landing/gate/sprites/terminal-blank.png +0 -0
  296. package/public-landing/gate/sprites/tile.png +0 -0
  297. package/public-landing/world/assets/clouds/cloud-island-large.png +0 -0
  298. package/public-landing/world/assets/clouds/cloud-puff.png +0 -0
  299. package/public-landing/world/assets/creatures/creature-whale-cargo.png +0 -0
  300. package/public-landing/world/assets/creatures/creature-whale-glide.png +0 -0
  301. package/public-landing/world/assets/plates/plate-clouds-near.png +0 -0
  302. package/public-landing/world/assets/plates/scene-establishing.png +0 -0
  303. package/scripts/gds/abandon.js +6 -4
  304. package/scripts/gds/api.js +10 -5
  305. package/scripts/gds/api.ps1 +26 -0
  306. package/scripts/gds/api.sh +6 -0
  307. package/scripts/gds/audit-ships.js +7 -1
  308. package/scripts/gds/backfill-sessions.js +78 -18
  309. package/scripts/gds/backup.js +23 -1
  310. package/scripts/gds/box-connect-lib.js +124 -31
  311. package/scripts/gds/box-sync.js +66 -0
  312. package/scripts/gds/box.js +225 -53
  313. package/scripts/gds/cf-tunnel.js +145 -6
  314. package/scripts/gds/claim.js +34 -3
  315. package/scripts/gds/cli-lib.js +161 -21
  316. package/scripts/gds/code.js +6 -2
  317. package/scripts/gds/deploy-divergence.js +209 -0
  318. package/scripts/gds/dev-lib.js +309 -0
  319. package/scripts/gds/dev.js +322 -0
  320. package/scripts/gds/doctor.js +90 -61
  321. package/scripts/gds/fetch-art-key.js +1 -1
  322. package/scripts/gds/fetch-sound-prefs.js +2 -2
  323. package/scripts/gds/fitness.js +228 -12
  324. package/scripts/gds/gds-db-backup.service +16 -1
  325. package/scripts/gds/gds-db-offsite.service +9 -1
  326. package/scripts/gds/gen-api-client.js +1 -1
  327. package/scripts/gds/gen-api-docs.js +36 -14
  328. package/scripts/gds/gen-diagrams.js +45 -28
  329. package/scripts/gds/gen-file-map.js +2 -1
  330. package/scripts/gds/gen-freshness.js +32 -0
  331. package/scripts/gds/gen-repo-map.js +3 -2
  332. package/scripts/gds/gen-session-index.js +14 -5
  333. package/scripts/gds/hooks/pre-push.js +2 -2
  334. package/scripts/gds/init.js +60 -3
  335. package/scripts/gds/install-git-hooks.js +1 -1
  336. package/scripts/gds/key-card.js +15 -6
  337. package/scripts/gds/key-status.js +1 -1
  338. package/scripts/gds/linkify-refs.js +35 -9
  339. package/scripts/gds/lint-migrations.js +102 -0
  340. package/scripts/gds/login.js +58 -11
  341. package/scripts/gds/mirror-redact.js +5 -0
  342. package/scripts/gds/package-core.js +263 -4
  343. package/scripts/gds/paste-token.js +7 -1
  344. package/scripts/gds/preflight.js +126 -0
  345. package/scripts/gds/provision.js +268 -19
  346. package/scripts/gds/publish-manifest.js +22 -1
  347. package/scripts/gds/reauth.js +7 -3
  348. package/scripts/gds/regen-instance-docs.js +47 -0
  349. package/scripts/gds/run-unit-tests.js +42 -16
  350. package/scripts/gds/seed-bongos-v1-seo-tasks.js +104 -0
  351. package/scripts/gds/seed-bv1-profiles-tasks.js +126 -0
  352. package/scripts/gds/sequence.js +425 -0
  353. package/scripts/gds/session-cost.js +10 -1
  354. package/scripts/gds/setup.js +72 -5
  355. package/scripts/gds/shell.js +5 -3
  356. package/scripts/gds/ship.js +433 -59
  357. package/scripts/gds/smoke-gds.js +139 -8
  358. package/scripts/gds/start.js +171 -22
  359. package/scripts/gds/status.js +1 -1
  360. package/scripts/gds/triage.js +10 -9
  361. package/scripts/gds/upgrade.js +271 -7
  362. package/scripts/migrate.sh +10 -0
  363. package/scripts/status-mirror-sync.js +114 -84
  364. package/src/bongos/api-errors.js +1 -0
  365. package/src/bongos/auth.js +809 -107
  366. package/src/bongos/db-kernel.js +27 -0
  367. package/src/bongos/db.js +105 -0
  368. package/src/bongos/github-repos.js +93 -0
  369. package/src/bongos/module-scope-map.js +27 -1
  370. package/src/bongos/permission-path-check.js +136 -102
  371. package/src/bongos/repo-info.js +47 -11
  372. package/src/bongos/route-rank-check.js +429 -46
  373. package/src/bongos/routes/_helpers.js +12 -1
  374. package/src/bongos/routes/auth.js +312 -13
  375. package/src/bongos/routes/backup.js +58 -2
  376. package/src/bongos/routes/github.js +90 -0
  377. package/src/bongos/routes/instance.js +15 -3
  378. package/src/bongos/routes/me.js +35 -1
  379. package/src/bongos/routes.js +2 -0
  380. package/src/bongos/serve-internal.js +84 -15
  381. package/src/branding.js +49 -2
  382. package/src/instance-config.js +46 -0
  383. package/src/module-api.js +140 -1
  384. package/src/platform-server.js +86 -9
  385. package/tests/abandon_task.mjs +59 -3
  386. package/tests/api_cli_flags.mjs +53 -0
  387. package/tests/auth_page_gate.mjs +13 -0
  388. package/tests/backfill_sessions.mjs +127 -1
  389. package/tests/backup_cli.mjs +54 -0
  390. package/tests/bongos_box_connect.mjs +77 -0
  391. package/tests/box_access.mjs +130 -1
  392. package/tests/box_credential.mjs +125 -0
  393. package/tests/box_host_keys.mjs +24 -0
  394. package/tests/box_infra_resolve.mjs +149 -0
  395. package/tests/box_scope_session.mjs +6 -2
  396. package/tests/box_sync.mjs +55 -0
  397. package/tests/box_task_scope.mjs +99 -0
  398. package/tests/branding.mjs +41 -23
  399. package/tests/cf_ruleset_preflight.mjs +142 -0
  400. package/tests/cf_tunnel.mjs +37 -0
  401. package/tests/claim_gate_rebase.mjs +98 -0
  402. package/tests/clawback_confirmed_backlog.mjs +103 -0
  403. package/tests/cli_lib_formatters.mjs +20 -0
  404. package/tests/confirm_attribution.mjs +30 -46
  405. package/tests/credit_grant.mjs +198 -10
  406. package/tests/criterion_authoring_gate.mjs +272 -0
  407. package/tests/criterion_progress.mjs +33 -1
  408. package/tests/dev_lib.mjs +253 -0
  409. package/tests/devbox_artifact_gate.mjs +75 -0
  410. package/tests/devbox_dmg_backdrop.mjs +137 -0
  411. package/tests/devbox_icons.mjs +304 -0
  412. package/tests/devbox_installer_brand.mjs +232 -0
  413. package/tests/devbox_key_register.mjs +234 -0
  414. package/tests/docs_openapi_route.mjs +110 -0
  415. package/tests/doctor_hooks.mjs +141 -0
  416. package/tests/extract_json.mjs +140 -0
  417. package/tests/fitness.mjs +89 -0
  418. package/tests/gen_freshness.mjs +96 -0
  419. package/tests/github_repos_helpers.mjs +91 -0
  420. package/tests/github_token_store.mjs +121 -0
  421. package/tests/goal_advisory.mjs +251 -0
  422. package/tests/goal_criterion_confirm_ui.mjs +269 -0
  423. package/tests/goal_routes.mjs +59 -4
  424. package/tests/goal_tier.mjs +12 -3
  425. package/tests/governance_catalog.mjs +129 -0
  426. package/tests/governance_claim_eligibility.mjs +262 -0
  427. package/tests/governance_config.mjs +187 -0
  428. package/tests/governance_ownership_scope.mjs +410 -0
  429. package/tests/governance_page_gates.mjs +324 -0
  430. package/tests/governance_parity.mjs +336 -0
  431. package/tests/governance_principals.mjs +232 -0
  432. package/tests/governance_protected_surfaces.mjs +208 -0
  433. package/tests/governance_require_permission.mjs +223 -0
  434. package/tests/governance_resolver.mjs +84 -0
  435. package/tests/governance_role_sync.mjs +231 -0
  436. package/tests/governance_seed.mjs +127 -0
  437. package/tests/governance_session_scope.mjs +434 -0
  438. package/tests/governance_vanilla_boot.mjs +203 -0
  439. package/tests/grade_attribution.mjs +7 -7
  440. package/tests/hall_audit.mjs +223 -0
  441. package/tests/hall_nav.mjs +191 -0
  442. package/tests/hall_palette.mjs +206 -0
  443. package/tests/hall_signout.mjs +124 -0
  444. package/tests/hook_user_agents.mjs +10 -0
  445. package/tests/idea_triage.mjs +162 -0
  446. package/tests/idp_device_exchange.mjs +198 -0
  447. package/tests/idp_federation.mjs +100 -0
  448. package/tests/init.mjs +51 -0
  449. package/tests/instance_config.mjs +65 -0
  450. package/tests/instance_mismatch_guard.mjs +23 -6
  451. package/tests/instance_release_config.mjs +104 -0
  452. package/tests/linkify_refs.mjs +15 -2
  453. package/tests/migrations_forward_safe.mjs +86 -0
  454. package/tests/module_api.mjs +1 -1
  455. package/tests/module_contributions.mjs +55 -0
  456. package/tests/module_loader.mjs +10 -5
  457. package/tests/module_scope_active_claims.mjs +94 -0
  458. package/tests/needs_rebase.mjs +92 -0
  459. package/tests/one_active_claim_per_session.mjs +76 -0
  460. package/tests/override_attribution.mjs +10 -8
  461. package/tests/override_request_ownership.mjs +8 -4
  462. package/tests/package_core.mjs +246 -1
  463. package/tests/parse_cookie_decode.mjs +42 -0
  464. package/tests/pay_on_land.mjs +129 -0
  465. package/tests/platform_boot.mjs +100 -1
  466. package/tests/post_login_landing.mjs +42 -0
  467. package/tests/preflight_checks.mjs +72 -0
  468. package/tests/provision.mjs +289 -7
  469. package/tests/pruned_lockfile_integrity.mjs +79 -0
  470. package/tests/publish_branch_route.mjs +53 -0
  471. package/tests/publish_reconciler.mjs +187 -2
  472. package/tests/repo_info_binding.mjs +248 -0
  473. package/tests/reward_gate.mjs +11 -2
  474. package/tests/reward_mode_cost_plus_only.mjs +116 -0
  475. package/tests/reward_mode_surfacing.mjs +168 -0
  476. package/tests/route_permission_check.mjs +301 -0
  477. package/tests/route_rank_check.mjs +254 -12
  478. package/tests/route_validation.mjs +30 -0
  479. package/tests/sequence.mjs +267 -0
  480. package/tests/session_digest.mjs +44 -0
  481. package/tests/session_index.mjs +18 -6
  482. package/tests/session_records.mjs +39 -1
  483. package/tests/session_reward_on_land.mjs +381 -0
  484. package/tests/session_reward_reconcile.mjs +229 -0
  485. package/tests/ship_api_client_pathspec.mjs +100 -0
  486. package/tests/ship_base_flag.mjs +93 -0
  487. package/tests/ship_ci_deploy.mjs +140 -3
  488. package/tests/ship_upstream_deletion.mjs +57 -0
  489. package/tests/smoke_target.mjs +233 -0
  490. package/tests/start_env_guard.mjs +87 -0
  491. package/tests/start_rebase_warning.mjs +103 -0
  492. package/tests/status_mirror_sync.mjs +122 -0
  493. package/tests/stop_refcheck.mjs +19 -1
  494. package/tests/task_goal_link.mjs +15 -6
  495. package/tests/upgrade.mjs +393 -5
  496. package/tests/web_admission_status.mjs +162 -0
  497. package/tests/write_validation_gaps.mjs +110 -0
  498. package/.gitignore +0 -91
  499. package/docs/adr/0139-platform-history-migration-to-cloudbongos.md +0 -94
  500. package/docs/adr/0140-cloudbongos-standalone-reprovision.md +0 -43
  501. package/scripts/hall-preview/fixtures/access-requests.json +0 -20
  502. package/scripts/hall-preview/fixtures/achievements.json +0 -76
  503. package/scripts/hall-preview/fixtures/analytics__builder.json +0 -251
  504. package/scripts/hall-preview/fixtures/audit-log.json +0 -68
  505. package/scripts/hall-preview/fixtures/blockers__detail.json +0 -12
  506. package/scripts/hall-preview/fixtures/box__me.json +0 -5
  507. package/scripts/hall-preview/fixtures/boxes__cost-ledger.json +0 -69
  508. package/scripts/hall-preview/fixtures/builders__active-claims.json +0 -1
  509. package/scripts/hall-preview/fixtures/builders__directory.json +0 -81
  510. package/scripts/hall-preview/fixtures/builders__roster.json +0 -48
  511. package/scripts/hall-preview/fixtures/goals.json +0 -502
  512. package/scripts/hall-preview/fixtures/goals__25.json +0 -96
  513. package/scripts/hall-preview/fixtures/goals__26.json +0 -67
  514. package/scripts/hall-preview/fixtures/goals__3.json +0 -103
  515. package/scripts/hall-preview/fixtures/goals__35.json +0 -49
  516. package/scripts/hall-preview/fixtures/goals__conflicts.json +0 -154
  517. package/scripts/hall-preview/fixtures/goals__detail.json +0 -96
  518. package/scripts/hall-preview/fixtures/goals__inbox.json +0 -5
  519. package/scripts/hall-preview/fixtures/goals__requests.json +0 -3
  520. package/scripts/hall-preview/fixtures/grades__by-builder.json +0 -32
  521. package/scripts/hall-preview/fixtures/inbox.json +0 -330
  522. package/scripts/hall-preview/fixtures/inbox__detail.json +0 -15
  523. package/scripts/hall-preview/fixtures/instance.json +0 -124
  524. package/scripts/hall-preview/fixtures/leaderboard.json +0 -184
  525. package/scripts/hall-preview/fixtures/me.json +0 -476
  526. package/scripts/hall-preview/fixtures/me__art-key__own.json +0 -6
  527. package/scripts/hall-preview/fixtures/me__event-sound-prefs.json +0 -209
  528. package/scripts/hall-preview/fixtures/me__recent-ships.json +0 -304
  529. package/scripts/hall-preview/fixtures/me__render.json +0 -5
  530. package/scripts/hall-preview/fixtures/me__skill-prefs.json +0 -143
  531. package/scripts/hall-preview/fixtures/me__sound-prefs.json +0 -67
  532. package/scripts/hall-preview/fixtures/me__wandering.json +0 -43
  533. package/scripts/hall-preview/fixtures/override-requests.json +0 -15
  534. package/scripts/hall-preview/fixtures/provisioning__fleet.json +0 -1
  535. package/scripts/hall-preview/fixtures/provisioning__fleet__cost-ledger.json +0 -1
  536. package/scripts/hall-preview/fixtures/provisioning__instances.json +0 -1
  537. package/scripts/hall-preview/fixtures/public__analytics__ecosystem.json +0 -516
  538. package/scripts/hall-preview/fixtures/public__bounty-table.json +0 -37
  539. package/scripts/hall-preview/fixtures/public__cost-summary.json +0 -742
  540. package/scripts/hall-preview/fixtures/public__estimation-drift.json +0 -41
  541. package/scripts/hall-preview/fixtures/public__grades.json +0 -50
  542. package/scripts/hall-preview/fixtures/public__progress.json +0 -124
  543. package/scripts/hall-preview/fixtures/public__recent-shipped.json +0 -426
  544. package/scripts/hall-preview/fixtures/public__repo-health.json +0 -160
  545. package/scripts/hall-preview/fixtures/public__repo-info.json +0 -5
  546. package/scripts/hall-preview/fixtures/security__docs.json +0 -10
  547. package/scripts/hall-preview/fixtures/security__reports.json +0 -31
  548. package/scripts/hall-preview/fixtures/sessions__search.json +0 -9
  549. package/scripts/hall-preview/fixtures/tasks.json +0 -2420
  550. package/scripts/hall-preview/fixtures/tasks__claimable.json +0 -2555
  551. package/scripts/hall-preview/fixtures/tasks__detail.json +0 -111
  552. package/scripts/hall-preview/fixtures/tasks__peer-votes__feed.json +0 -330
  553. package/scripts/hall-preview/fixtures/versions.json +0 -89
@@ -1,41 +0,0 @@
1
- {
2
- "overall_median": 0.08,
3
- "sample_size": 862,
4
- "by_version": [
5
- {
6
- "version_id": "BONGOS-V1",
7
- "median_ratio": 0.08,
8
- "task_count": 229
9
- },
10
- {
11
- "version_id": "GDS-V4",
12
- "median_ratio": 0.09,
13
- "task_count": 211
14
- },
15
- {
16
- "version_id": "V2",
17
- "median_ratio": 0.2,
18
- "task_count": 31
19
- },
20
- {
21
- "version_id": "GDS-V3",
22
- "median_ratio": 0.08,
23
- "task_count": 262
24
- },
25
- {
26
- "version_id": "V1",
27
- "median_ratio": 0.04,
28
- "task_count": 58
29
- },
30
- {
31
- "version_id": "PMS-V2",
32
- "median_ratio": 0.04,
33
- "task_count": 67
34
- },
35
- {
36
- "version_id": "PMS-V1",
37
- "median_ratio": 0.07,
38
- "task_count": 4
39
- }
40
- ]
41
- }
@@ -1,50 +0,0 @@
1
- {
2
- "window_days": 7,
3
- "rolling": {
4
- "n": 2,
5
- "avg_score": "0.0",
6
- "n_passed": 0,
7
- "min_score": "0.0",
8
- "max_score": "0.0"
9
- },
10
- "trend": [
11
- {
12
- "day": "2026-06-10",
13
- "n": 1,
14
- "avg_score": "4.5",
15
- "n_passed": 0
16
- },
17
- {
18
- "day": "2026-06-11",
19
- "n": 2,
20
- "avg_score": "4.5",
21
- "n_passed": 1
22
- },
23
- {
24
- "day": "2026-06-23",
25
- "n": 1,
26
- "avg_score": "5.0",
27
- "n_passed": 0
28
- },
29
- {
30
- "day": "2026-06-28",
31
- "n": 1,
32
- "avg_score": "0.0",
33
- "n_passed": 0
34
- },
35
- {
36
- "day": "2026-07-04",
37
- "n": 1,
38
- "avg_score": "0.0",
39
- "n_passed": 0
40
- },
41
- {
42
- "day": "2026-07-10",
43
- "n": 1,
44
- "avg_score": "0.0",
45
- "n_passed": 0
46
- }
47
- ],
48
- "threshold": 6,
49
- "grader_version": "v4.0"
50
- }
@@ -1,124 +0,0 @@
1
- {
2
- "progress": [
3
- {
4
- "version_id": "BONGOS-V1",
5
- "name": "Cloud Bongos — platform (V1)",
6
- "status": "building",
7
- "shipped_count": "432",
8
- "total_count": "605",
9
- "shipped_weight": "904",
10
- "total_weight": "1299",
11
- "done_when": "Bongos App V1 ships the Cloud Bongos desktop feedback tool: a Zoom-style floating toolbar that captures narrated voice + ~1/sec snapshots and freehand markup over any on-screen target, synthesizes them into one cheap, model-agnostic prompt, and hands it to Claude Desktop and Claude Code. The Dev Box desktop app is absorbed as a module of the bongos app. This is the inaugural version of the bongos line, the successor the GDS migrates into after GDS-V4. Visual element-select is deferred to V2.",
12
- "criteria_count": 43,
13
- "lifecycle_completed_count": 5,
14
- "lifecycle_confirmed_count": 6,
15
- "lifecycle_shipped_count": 422,
16
- "percent_complete": 70
17
- },
18
- {
19
- "version_id": "GDS-V3",
20
- "name": "PMS V3 — multi-builder readiness + per-builder credentials",
21
- "status": "shipped",
22
- "shipped_count": "495",
23
- "total_count": "496",
24
- "shipped_weight": "1138",
25
- "total_weight": "1141",
26
- "done_when": "Delivers multi-builder readiness: clone-and-ship onboarding under two hours, three server-enforced ranks, per-builder credentials/cost/authorship, an Opus grader gating quality, parallel-safe claims and merges, a propose-and-ratify cadence, and production-grade security with red-team bounties.",
27
- "criteria_count": 9,
28
- "lifecycle_completed_count": 0,
29
- "lifecycle_confirmed_count": 0,
30
- "lifecycle_shipped_count": 498,
31
- "percent_complete": 100
32
- },
33
- {
34
- "version_id": "GDS-V4",
35
- "name": "GDS V4 — recall, resumable pipeline, honest measurement",
36
- "status": "frozen",
37
- "shipped_count": "369",
38
- "total_count": "370",
39
- "shipped_weight": "865",
40
- "total_weight": "866",
41
- "done_when": "When this is finished, a builder's session answers \"have we done this before?\" in one call instead of an afternoon — project knowledge (markdown and database prose alike) is searchable in one rank-scoped query and pushed into sessions at claim time; a failed ship is one command from resume instead of a consumed claim; the recurring tool-error classes (wrong-tree writes, HTML 404s, phantom smoke servers) are engineered away; the BFG's measurements reflect real friction so the improvement is provable against the 2026-06-12 baseline; and the city watches itself on one pane of glass. And the build system itself becomes Medusa — a standalone, configurable, self-hostable, AGPL-licensed, non-profit, AI-first platform decoupled from any one project, with Amazonprimea running as its first instance.",
42
- "criteria_count": 10,
43
- "lifecycle_completed_count": 0,
44
- "lifecycle_confirmed_count": 5,
45
- "lifecycle_shipped_count": 365,
46
- "percent_complete": 100
47
- },
48
- {
49
- "version_id": "PMS-V1",
50
- "name": "PMS V1 — project management system, parallel internal track",
51
- "status": "shipped",
52
- "shipped_count": "8",
53
- "total_count": "8",
54
- "shipped_weight": "36",
55
- "total_weight": "36",
56
- "done_when": "Builders auth via GitHub. Slash commands claim/ship tasks atomically. Backlog migrated. Public status page live.",
57
- "criteria_count": 0,
58
- "lifecycle_completed_count": 0,
59
- "lifecycle_confirmed_count": 0,
60
- "lifecycle_shipped_count": 8,
61
- "percent_complete": 100
62
- },
63
- {
64
- "version_id": "PMS-V2",
65
- "name": "PMS V2 — themed /builders UI + gamification",
66
- "status": "shipped",
67
- "shipped_count": "67",
68
- "total_count": "67",
69
- "shipped_weight": "279",
70
- "total_weight": "279",
71
- "done_when": "When this is finished, the citizens building Amazonprimea will keep their works on a themed ledger of their own — naming sessions, claiming tasks in batches, earning laurels for milestones, and seeing each version's scope painted in plain words.",
72
- "criteria_count": 7,
73
- "lifecycle_completed_count": 0,
74
- "lifecycle_confirmed_count": 0,
75
- "lifecycle_shipped_count": 67,
76
- "percent_complete": 100
77
- },
78
- {
79
- "version_id": "V1",
80
- "name": "Game V1 — foundation and polish",
81
- "status": "shipped",
82
- "shipped_count": "58",
83
- "total_count": "58",
84
- "shipped_weight": "248",
85
- "total_weight": "248",
86
- "done_when": "Foundation is durable: regression gates for tiles, sprites, and style-guide drift are live; the world has variant + windowed ground; the player walks; dev ergonomics let new tiles + worlds be added at low manual effort. Commerce shifts to V3.",
87
- "criteria_count": 4,
88
- "lifecycle_completed_count": 0,
89
- "lifecycle_confirmed_count": 0,
90
- "lifecycle_shipped_count": 58,
91
- "percent_complete": 100
92
- },
93
- {
94
- "version_id": "V2",
95
- "name": "Game V2 — visible other players",
96
- "status": "planning",
97
- "shipped_count": "39",
98
- "total_count": "91",
99
- "shipped_weight": "95",
100
- "total_weight": "228",
101
- "done_when": "Other players are visible in a real, walkable world: a player walks the Olympia Sanctuary in-game at reference-art fidelity, with file-based multi-layer maps feeding both client render and server collision, correct depth-sorting on tall structures, at least two connected maps with server-authoritative warps, and the Olympia art set passing the rubric on the locked palette.",
102
- "criteria_count": 7,
103
- "lifecycle_completed_count": 0,
104
- "lifecycle_confirmed_count": 0,
105
- "lifecycle_shipped_count": 39,
106
- "percent_complete": 42
107
- },
108
- {
109
- "version_id": "V3",
110
- "name": "Game V3 — first entirely functional game (purchase loop)",
111
- "status": "planning",
112
- "shipped_count": "0",
113
- "total_count": "8",
114
- "shipped_weight": "0",
115
- "total_weight": "31",
116
- "done_when": "Delivers the real purchase loop: Stripe sign-in, a vendor that sells real Off the Boats goods from a catalogue, order handoff to Hermeslines for fulfilment, and in-world order confirmation.\n\nAlso (folded in from the world-building plan): a lightweight in-house map editor lets a builder author maps that round-trip into the game (depends on the V2 world engine shipping first).",
117
- "criteria_count": 5,
118
- "lifecycle_completed_count": 0,
119
- "lifecycle_confirmed_count": 0,
120
- "lifecycle_shipped_count": 0,
121
- "percent_complete": 0
122
- }
123
- ]
124
- }
@@ -1,426 +0,0 @@
1
- {
2
- "tasks": [
3
- {
4
- "id": "2163",
5
- "title": "Show the goal id (#N) on the hall Goals page — card + detail header",
6
- "value_summary": "The Builders' Hall Goals page now shows each goal's id (e.g. #25) on its card and detail — so referring to 'goal 25' matches what you see on screen.",
7
- "version_id": "BONGOS-V1",
8
- "status": "shipped",
9
- "shipped_at": "2026-07-10T18:30:57.682Z",
10
- "credits_reward": 30,
11
- "credits_awarded": 30,
12
- "est_minutes": null,
13
- "actual_minutes": 10,
14
- "github_login": "jaxri",
15
- "display_name": "Jackson Rini"
16
- },
17
- {
18
- "id": "2166",
19
- "title": "hall-kit.js: shared hall UI primitives (pager, ledger, filter bar, tabs, rail, empty/skeleton)",
20
- "value_summary": "The builders' hall now has one shared component kit — tables, pagers, filters, tabs, and rails that used to be rebuilt slightly differently on every page now come from a single source, so every page redesign that follows lands faster and behaves the same way.",
21
- "version_id": "BONGOS-V1",
22
- "status": "shipped",
23
- "shipped_at": "2026-07-10T18:28:51.046Z",
24
- "credits_reward": 80,
25
- "credits_awarded": 80,
26
- "est_minutes": 240,
27
- "actual_minutes": 10,
28
- "github_login": "jaxri",
29
- "display_name": "Jackson Rini"
30
- },
31
- {
32
- "id": "2160",
33
- "title": "R89-prereq (rehearsal F2): consumer package.json must carry the full host dep closure (+ decide core-module deps like discord.js)",
34
- "value_summary": "R89 cutover prerequisite (F2): decided to keep the shared platform package lean — a module that needs an extra library (Discord) now declares it itself, and a new project automatically picks up the libraries for the features it turns on. (Landed via the shared R89 branch merged under task 2159.)",
35
- "version_id": "BONGOS-V1",
36
- "status": "shipped",
37
- "shipped_at": "2026-07-10T18:09:25.806Z",
38
- "credits_reward": 30,
39
- "credits_awarded": 30,
40
- "est_minutes": null,
41
- "actual_minutes": 23,
42
- "github_login": "lars589",
43
- "display_name": "lars589"
44
- },
45
- {
46
- "id": "2161",
47
- "title": "R89-prereq (rehearsal F3): server.js game entrypoint — widen core exports + rewrite its core requires + set consumer start=server.js",
48
- "value_summary": "R89 cutover prerequisite (F3): the shared platform package now exposes the pieces a game instance's entrypoint needs, and the cutover tool rewrites that entrypoint to use them — so the game server still boots after the split. (Landed via the shared R89 branch merged under task 2159.)",
49
- "version_id": "BONGOS-V1",
50
- "status": "shipped",
51
- "shipped_at": "2026-07-10T18:09:07.800Z",
52
- "credits_reward": 30,
53
- "credits_awarded": 30,
54
- "est_minutes": null,
55
- "actual_minutes": 27,
56
- "github_login": "lars589",
57
- "display_name": "lars589"
58
- },
59
- {
60
- "id": "2159",
61
- "title": "R89-prereq (rehearsal F1): cutover codemod to rewrite host-module doorway requires to @bongos/core/module-api",
62
- "value_summary": "R89 cutover prerequisite (F1): a cutover-time tool that rewrites the game and art modules' internal code links to the shared @bongos/core package, so splitting Amazonprimea onto the packaged core won't break the boot.",
63
- "version_id": "BONGOS-V1",
64
- "status": "shipped",
65
- "shipped_at": "2026-07-10T18:08:15.894Z",
66
- "credits_reward": 30,
67
- "credits_awarded": 30,
68
- "est_minutes": null,
69
- "actual_minutes": 36,
70
- "github_login": "lars589",
71
- "display_name": "lars589"
72
- },
73
- {
74
- "id": "1954",
75
- "title": "Private goals #4 — Home-page inbox widget (accept invitations / approve join-requests)",
76
- "value_summary": "Builders now have a Goal inbox on the hall home page: accept goal invitations and approve or deny join-requests in one place, without hunting through goal pages.",
77
- "version_id": "BONGOS-V1",
78
- "status": "shipped",
79
- "shipped_at": "2026-07-10T17:34:20.219Z",
80
- "credits_reward": 60,
81
- "credits_awarded": 60,
82
- "est_minutes": 120,
83
- "actual_minutes": 12,
84
- "github_login": "jaxri",
85
- "display_name": "Jackson Rini"
86
- },
87
- {
88
- "id": "1471",
89
- "title": "Builders' hall: idea-inbox visibility dashboard (so Archons know when to triage)",
90
- "value_summary": "Managers now see an 'Idea inbox' card on the hall home page showing how many ideas are waiting to be triaged, with one click to open and act on each.",
91
- "version_id": "BONGOS-V1",
92
- "status": "shipped",
93
- "shipped_at": "2026-07-10T16:54:19.994Z",
94
- "credits_reward": 40,
95
- "credits_awarded": 50,
96
- "est_minutes": 90,
97
- "actual_minutes": 6,
98
- "github_login": "jaxri",
99
- "display_name": "Jackson Rini"
100
- },
101
- {
102
- "id": "1473",
103
- "title": "Leaderboard: show tokens used per builder (efficiency per drachma)",
104
- "value_summary": "The builders' leaderboard now shows how many tokens each builder has used, so efficient work (more value per token) is visible and celebrated.",
105
- "version_id": "BONGOS-V1",
106
- "status": "shipped",
107
- "shipped_at": "2026-07-10T16:46:31.385Z",
108
- "credits_reward": 30,
109
- "credits_awarded": 38,
110
- "est_minutes": 60,
111
- "actual_minutes": 5,
112
- "github_login": "jaxri",
113
- "display_name": "Jackson Rini"
114
- },
115
- {
116
- "id": "1476",
117
- "title": "Multi-claim UX: stop implying one-task-only; warn against over-claiming + discourage many slow unfinished claims",
118
- "value_summary": "Trying to claim a task while another is in flight now explains what to do and how to work on several tasks in parallel, instead of printing a confusing error blob.",
119
- "version_id": "BONGOS-V1",
120
- "status": "shipped",
121
- "shipped_at": "2026-07-10T16:39:18.536Z",
122
- "credits_reward": 15,
123
- "credits_awarded": 19,
124
- "est_minutes": 30,
125
- "actual_minutes": 6,
126
- "github_login": "jaxri",
127
- "display_name": "Jackson Rini"
128
- },
129
- {
130
- "id": "2158",
131
- "title": "Upstream auto-publish policy for @bongos/core patch releases (subscription supply side)",
132
- "value_summary": "Decided how new core releases reach subscribers: the owner publishes them deliberately (not auto-published on every change) — keeps release control and avoids storing a standing publish password in the build system.",
133
- "version_id": "BONGOS-V1",
134
- "status": "shipped",
135
- "shipped_at": "2026-07-10T15:57:10.884Z",
136
- "credits_reward": 30,
137
- "credits_awarded": 39,
138
- "est_minutes": null,
139
- "actual_minutes": 10,
140
- "github_login": "lars589",
141
- "display_name": "lars589"
142
- },
143
- {
144
- "id": "2144",
145
- "title": "R89-prereq: rehearse the full cutover on a throwaway clone of amazonprimea (staging)",
146
- "value_summary": "Rehearsed the big platform split on a throwaway copy of the project before we do it for real — it boots and runs end to end (game + platform) on the pinned Cloud Bongos core. Caught 3 must-fix issues that only appear when converting the live project (not the fresh-start demos), so the real switch won't surprise us.",
147
- "version_id": "BONGOS-V1",
148
- "status": "shipped",
149
- "shipped_at": "2026-07-10T15:42:26.095Z",
150
- "credits_reward": 30,
151
- "credits_awarded": 30,
152
- "est_minutes": null,
153
- "actual_minutes": 25,
154
- "github_login": "lars589",
155
- "display_name": "lars589"
156
- },
157
- {
158
- "id": "2150",
159
- "title": "Update subscription: scheduled patch-only auto-upgrade routine for consumer instances",
160
- "value_summary": "Projects can now subscribe to automatic platform updates: opt in and an instance quietly takes the latest safe bug-fix releases on a schedule — and if an update ever fails a health check it rolls itself back with no downtime. Off by default and fully opt-in, with a per-project setting for how far updates may jump (bug-fixes only, by default).",
161
- "version_id": "BONGOS-V1",
162
- "status": "shipped",
163
- "shipped_at": "2026-07-10T12:05:51.655Z",
164
- "credits_reward": 30,
165
- "credits_awarded": 39,
166
- "est_minutes": null,
167
- "actual_minutes": 17,
168
- "github_login": "lars589",
169
- "display_name": "lars589"
170
- },
171
- {
172
- "id": "2157",
173
- "title": "Live rollback drill: prove bongos upgrade auto-rollback end-to-end on demo.cloudbongos.com",
174
- "value_summary": "Proved on the live demo site that a failed platform update safely undoes itself: we deliberately broke an update and the system automatically rolled back to the working version with zero downtime — confirming the safety net works before we let updates run unattended.",
175
- "version_id": "BONGOS-V1",
176
- "status": "shipped",
177
- "shipped_at": "2026-07-10T11:39:56.167Z",
178
- "credits_reward": 30,
179
- "credits_awarded": 30,
180
- "est_minutes": 30,
181
- "actual_minutes": 7,
182
- "github_login": "lars589",
183
- "display_name": "lars589"
184
- },
185
- {
186
- "id": "2155",
187
- "title": "Neutralize world-narrative prose in shipped core docs (primer pitch + reclassify OTB game-design specs) — task 1728 clean-split part B",
188
- "value_summary": "",
189
- "version_id": "BONGOS-V1",
190
- "status": "shipped",
191
- "shipped_at": "2026-07-10T11:10:10.507Z",
192
- "credits_reward": 30,
193
- "credits_awarded": 39,
194
- "est_minutes": null,
195
- "actual_minutes": 4,
196
- "github_login": "lars589",
197
- "display_name": "lars589"
198
- },
199
- {
200
- "id": "2149",
201
- "title": "Add auto-rollback to `bongos upgrade` (revert pin + reinstall + restart on failed health check)",
202
- "value_summary": "The one-command platform update now protects itself: if an update fails partway or the site comes back unhealthy, it automatically undoes the change and restores the previous working version, so a bad update can't leave a site stuck on a broken version.",
203
- "version_id": "BONGOS-V1",
204
- "status": "shipped",
205
- "shipped_at": "2026-07-10T11:08:24.267Z",
206
- "credits_reward": 38,
207
- "credits_awarded": 46,
208
- "est_minutes": null,
209
- "actual_minutes": 14,
210
- "github_login": "lars589",
211
- "display_name": "lars589"
212
- },
213
- {
214
- "id": "2148",
215
- "title": "Prove `bongos upgrade` end-to-end on demo.cloudbongos.com via a canary core release (1.17.1 → 1.17.2)",
216
- "value_summary": "Proved our one-command platform-update system works end-to-end: staged a new version and pushed it live to the demo site with a single command, confirming the running code was actually replaced, the site stayed healthy, and the update was logged.",
217
- "version_id": "BONGOS-V1",
218
- "status": "shipped",
219
- "shipped_at": "2026-07-10T10:45:38.752Z",
220
- "credits_reward": 30,
221
- "credits_awarded": 30,
222
- "est_minutes": null,
223
- "actual_minutes": 32,
224
- "github_login": "lars589",
225
- "display_name": "lars589"
226
- },
227
- {
228
- "id": "2153",
229
- "title": "Finish @bongos/core neutralization: drop project-specific recipes + brand-leaking docs (task 1728 clean-split prereq)",
230
- "value_summary": "New projects built on Cloud Bongos no longer inherit Off the Boats' internal recipes or brand text in the shared platform core.",
231
- "version_id": "BONGOS-V1",
232
- "status": "shipped",
233
- "shipped_at": "2026-07-10T10:13:44.904Z",
234
- "credits_reward": 30,
235
- "credits_awarded": 39,
236
- "est_minutes": null,
237
- "actual_minutes": 58,
238
- "github_login": "lars589",
239
- "display_name": "lars589"
240
- },
241
- {
242
- "id": "2136",
243
- "title": "R89-prereq [topology-routing 1/4]: rewrite .github/workflows/*.yml scripts/gds/* invocations to the pinned @bongos/core",
244
- "value_summary": "The CI checks and merge gates that guard every pull request will keep working after the platform-core split: their commands now resolve the platform code in both the current and future layouts, and a pull request still cannot weaken its own gate.",
245
- "version_id": "BONGOS-V1",
246
- "status": "shipped",
247
- "shipped_at": "2026-07-10T09:58:48.440Z",
248
- "credits_reward": 30,
249
- "credits_awarded": 30,
250
- "est_minutes": null,
251
- "actual_minutes": 22,
252
- "github_login": "lars589",
253
- "display_name": "lars589"
254
- },
255
- {
256
- "id": "2137",
257
- "title": "R89-prereq [topology-routing 2/4]: rewrite infra/*.service ExecStart paths to the pinned @bongos/core (11 units)",
258
- "value_summary": "The background fleet services (dev-box lifecycle, provisioning, nightly search indexing) will keep launching after the platform-core split: their start commands now find the code whether it lives in the old single-repo layout or the new packaged one.",
259
- "version_id": "BONGOS-V1",
260
- "status": "shipped",
261
- "shipped_at": "2026-07-10T09:37:54.653Z",
262
- "credits_reward": 30,
263
- "credits_awarded": 30,
264
- "est_minutes": null,
265
- "actual_minutes": 6,
266
- "github_login": "lars589",
267
- "display_name": "lars589"
268
- },
269
- {
270
- "id": "2138",
271
- "title": "R89-prereq [topology-routing 3/4]: materialize .claude/scheduled-tasks (20 routines) + make run-routine.js two-root aware",
272
- "value_summary": "Kept the automated nightly routines (overnight builder, security review, idea triage, and the housekeeping checkers) working after the platform-core split: the routine dispatcher now finds and runs them whether the code lives in the old single-repo layout or the new packaged one.",
273
- "version_id": "BONGOS-V1",
274
- "status": "shipped",
275
- "shipped_at": "2026-07-10T09:28:34.285Z",
276
- "credits_reward": 30,
277
- "credits_awarded": 30,
278
- "est_minutes": null,
279
- "actual_minutes": 31,
280
- "github_login": "lars589",
281
- "display_name": "lars589"
282
- },
283
- {
284
- "id": "2139",
285
- "title": "R89-prereq [topology-routing 4/4]: fix .claude/hooks require()/spawn of scripts/gds & src/bongos to resolve the pinned core (promotes idea 498)",
286
- "value_summary": "Made the per-session automation resilient to the upcoming platform split: the session hooks now locate the shared platform code whether it lives in the project or in the installed package, so an instance that moves onto the packaged core won't have its sessions start erroring. No visible change today.",
287
- "version_id": "BONGOS-V1",
288
- "status": "shipped",
289
- "shipped_at": "2026-07-10T08:39:54.293Z",
290
- "credits_reward": 30,
291
- "credits_awarded": 30,
292
- "est_minutes": null,
293
- "actual_minutes": 33,
294
- "github_login": "lars589",
295
- "display_name": "lars589"
296
- },
297
- {
298
- "id": "2152",
299
- "title": "Fix mirror-lineage C9 check miscounting migrations/instance/ as core (unit-gate red)",
300
- "value_summary": "Unblocked the automated merge pipeline: an internal safety check was raising a false alarm (mistaking this instance's private setup data for a mismatch) that had stopped code from landing. Fixed the check so merges flow again — nothing about what ships changed.",
301
- "version_id": "BONGOS-V1",
302
- "status": "shipped",
303
- "shipped_at": "2026-07-10T08:35:34.050Z",
304
- "credits_reward": 38,
305
- "credits_awarded": 46,
306
- "est_minutes": 30,
307
- "actual_minutes": 4,
308
- "github_login": "lars589",
309
- "display_name": "lars589"
310
- },
311
- {
312
- "id": "2129",
313
- "title": "fix(onboarding): surface the manual Enable-Device-Flow step on the GitHub App Manifest path + deep-link it from the device_flow_disabled CLI error",
314
- "value_summary": "New project owners now get clear guidance to enable GitHub Device Flow for terminal sign-in, and the terminal error links straight to the fix.",
315
- "version_id": "BONGOS-V1",
316
- "status": "shipped",
317
- "shipped_at": "2026-07-09T22:26:49.623Z",
318
- "credits_reward": 20,
319
- "credits_awarded": 20,
320
- "est_minutes": null,
321
- "actual_minutes": 6,
322
- "github_login": "lars589",
323
- "display_name": "lars589"
324
- },
325
- {
326
- "id": "2101",
327
- "title": "Brand the provisioning control-plane origin as cloudbongos.com (not amazonprimea.com)",
328
- "value_summary": "New-customer sign-up can now carry a Cloud Bongos web address instead of the game's domain on the GitHub connection step — shipped and tested; it activates once that address is pointed at the server.",
329
- "version_id": "BONGOS-V1",
330
- "status": "shipped",
331
- "shipped_at": "2026-07-09T22:21:30.598Z",
332
- "credits_reward": 60,
333
- "credits_awarded": 72,
334
- "est_minutes": 120,
335
- "actual_minutes": 7,
336
- "github_login": "lars589",
337
- "display_name": "lars589"
338
- },
339
- {
340
- "id": "2130",
341
- "title": "fix(security): package-core no-leak gate false-positives on OLDPWD/PWD shell vars (pwd matches the password pattern)",
342
- "value_summary": "Fixed a bug that could intermittently block publishing a new platform release depending on the operator's working folder. Publishing is now reliable.",
343
- "version_id": "BONGOS-V1",
344
- "status": "shipped",
345
- "shipped_at": "2026-07-09T22:18:53.664Z",
346
- "credits_reward": 15,
347
- "credits_awarded": 18,
348
- "est_minutes": null,
349
- "actual_minutes": 6,
350
- "github_login": "lars589",
351
- "display_name": "lars589"
352
- },
353
- {
354
- "id": "2142",
355
- "title": "R89-prereq: real-consumer-layout CI proof — install the .tgz, boot platform-server, run fitness+generators, assert two-root module load",
356
- "value_summary": "New CI check installs Cloud Bongos the way a real downstream project would — a packaged dependency with its own content on top — and proves it boots and finds all its parts.",
357
- "version_id": "BONGOS-V1",
358
- "status": "shipped",
359
- "shipped_at": "2026-07-09T22:09:40.184Z",
360
- "credits_reward": 30,
361
- "credits_awarded": 30,
362
- "est_minutes": null,
363
- "actual_minutes": 17,
364
- "github_login": "lars589",
365
- "display_name": "lars589"
366
- },
367
- {
368
- "id": "2147",
369
- "title": "Exclude host-module tests from @bongos/core; split tests/ in the R89 runbook",
370
- "value_summary": "Kept the game's own tests out of the shareable core package, so it installs cleanly for other projects.",
371
- "version_id": "BONGOS-V1",
372
- "status": "shipped",
373
- "shipped_at": "2026-07-09T21:34:57.270Z",
374
- "credits_reward": 30,
375
- "credits_awarded": 30,
376
- "est_minutes": null,
377
- "actual_minutes": 6,
378
- "github_login": "lars589",
379
- "display_name": "lars589"
380
- },
381
- {
382
- "id": "2145",
383
- "title": "R89-prereq: author the cutover rollback runbook (pg_dump + pin-revert + service restart)",
384
- "value_summary": "Wrote the rollback plan so a failed split of Off the Boats onto the shared core can be reverted to the working monolith in minutes.",
385
- "version_id": "BONGOS-V1",
386
- "status": "shipped",
387
- "shipped_at": "2026-07-09T21:05:08.417Z",
388
- "credits_reward": 30,
389
- "credits_awarded": 30,
390
- "est_minutes": null,
391
- "actual_minutes": 2,
392
- "github_login": "lars589",
393
- "display_name": "lars589"
394
- },
395
- {
396
- "id": "2146",
397
- "title": "Fix gate minimap: click blanks the grid + freezes all controls (0-size minimap → divide-by-zero → NaN pan)",
398
- "value_summary": "On the Cloud Bongos landing, clicking the bottom-right overview map now recenters the view instead of blanking the grid and freezing the controls.",
399
- "version_id": "BONGOS-V1",
400
- "status": "shipped",
401
- "shipped_at": "2026-07-09T21:03:23.172Z",
402
- "credits_reward": 38,
403
- "credits_awarded": 46,
404
- "est_minutes": 30,
405
- "actual_minutes": 3,
406
- "github_login": "lars589",
407
- "display_name": "lars589"
408
- },
409
- {
410
- "id": "2143",
411
- "title": "R89-prereq: author the de-couple runbook + isPublishable partition output for amazonprimea",
412
- "value_summary": "Wrote the step-by-step runbook for splitting Off the Boats onto the shared Cloud Bongos core, with the exact list of which files move to the package vs. stay with the project.",
413
- "version_id": "BONGOS-V1",
414
- "status": "shipped",
415
- "shipped_at": "2026-07-09T21:01:10.751Z",
416
- "credits_reward": 30,
417
- "credits_awarded": 30,
418
- "est_minutes": null,
419
- "actual_minutes": 4,
420
- "github_login": "lars589",
421
- "display_name": "lars589"
422
- }
423
- ],
424
- "days": null,
425
- "range": "recent"
426
- }