@bongos/core 1.24.25 → 1.24.26

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 (62) hide show
  1. package/.bongos-core.json +81 -66
  2. package/docs/copy-inventory.md +217 -212
  3. package/docs/copy-registry.json +298 -233
  4. package/docs/module-api-changelog.md +2 -0
  5. package/docs/page-readings.json +855 -852
  6. package/modules/hall-ui/public/ai-studio.html +1 -1
  7. package/modules/hall-ui/public/blockers.html +1 -1
  8. package/modules/hall-ui/public/blockers.js +3 -1
  9. package/modules/hall-ui/public/board-room.html +2 -0
  10. package/modules/hall-ui/public/collab.html +3 -3
  11. package/modules/hall-ui/public/collab.js +4 -0
  12. package/modules/hall-ui/public/commands.html +2 -2
  13. package/modules/hall-ui/public/copy-desk.html +2 -2
  14. package/modules/hall-ui/public/criterion-uat-ui.js +1 -1
  15. package/modules/hall-ui/public/deploy.html +2 -0
  16. package/modules/hall-ui/public/drachmae.html +1 -1
  17. package/modules/hall-ui/public/fleet.html +2 -0
  18. package/modules/hall-ui/public/gate.html +2 -0
  19. package/modules/hall-ui/public/goals-page.js +1 -1
  20. package/modules/hall-ui/public/goals.css +3 -2
  21. package/modules/hall-ui/public/goals.html +2 -2
  22. package/modules/hall-ui/public/goals.js +1 -1
  23. package/modules/hall-ui/public/government.html +2 -0
  24. package/modules/hall-ui/public/hall-widgets.js +9 -9
  25. package/modules/hall-ui/public/ideas.html +2 -2
  26. package/modules/hall-ui/public/index.html +2 -0
  27. package/modules/hall-ui/public/lightbulb.js +1 -1
  28. package/modules/hall-ui/public/market-watch-item.html +1 -1
  29. package/modules/hall-ui/public/market-watch-rules.html +1 -1
  30. package/modules/hall-ui/public/market-watch-settings.html +2 -0
  31. package/modules/hall-ui/public/market-watch.html +1 -1
  32. package/modules/hall-ui/public/modules.html +1 -1
  33. package/modules/hall-ui/public/my-agents.html +2 -2
  34. package/modules/hall-ui/public/primer.html +1 -1
  35. package/modules/hall-ui/public/profile.html +5 -5
  36. package/modules/hall-ui/public/project-settings.html +2 -0
  37. package/modules/hall-ui/public/ranks.html +3 -3
  38. package/modules/hall-ui/public/roadmap.html +1 -1
  39. package/modules/hall-ui/public/roster.html +1 -1
  40. package/modules/hall-ui/public/sessions.html +2 -0
  41. package/modules/hall-ui/public/settings-software-update.js +1 -1
  42. package/modules/hall-ui/public/settings-specialities.js +1 -1
  43. package/modules/hall-ui/public/settings.html +3 -1
  44. package/modules/hall-ui/public/settings.js +3 -0
  45. package/modules/hall-ui/public/studio.js +3 -3
  46. package/modules/hall-ui/public/style.css +90 -1
  47. package/modules/hall-ui/public/task-detail.js +2 -2
  48. package/modules/hall-ui/public/tweak-editor.html +1 -1
  49. package/modules/hall-ui/public/watch.html +2 -0
  50. package/modules/hall-ui/public/watch.js +1 -1
  51. package/modules/hall-ui/public/work.html +3 -3
  52. package/modules/hall-ui/records/loader.md +35 -0
  53. package/package-lock.json +2 -2
  54. package/package.json +1 -1
  55. package/release-notes.json +10 -0
  56. package/scripts/hall-preview/README.md +1 -0
  57. package/scripts/hall-preview/server.js +9 -0
  58. package/src/bongos/apex-hall-redirects.js +53 -0
  59. package/src/bongos/serve-internal.js +3 -18
  60. package/src/module-api.js +1 -1
  61. package/tests/hall_loading.mjs +153 -0
  62. package/tests/software_update.mjs +33 -0
@@ -504,6 +504,39 @@ test('the platform, which runs the door, keeps /deploy behind its own page gate'
504
504
  assert.match(String(r.location), /auth|sign/i, 'and is sent to sign in, as before');
505
505
  });
506
506
 
507
+ // ── the door on the hub's apex (task 1004736) ─────────────────────────────────
508
+ //
509
+ // Every hosted project's Update button is `<hub origin>/deploy?project=<slug>` — the IdP
510
+ // origin, or HUB_UPGRADE_URL built from the hub's public origin — and on cloudbongos.com
511
+ // that origin is the apex, where /deploy was a 404 (2026-10-14). The page is the hall's,
512
+ // on builders.<apex>. The hub answers the apex address with the hall's, so every link
513
+ // already written into a project's web.env works without that project moving its core.
514
+
515
+ function getOn(port, p, host) {
516
+ return new Promise((resolve, reject) => {
517
+ const req = http.request({ host: '127.0.0.1', port, path: p, headers: { Host: host } }, (res) => { res.resume(); res.on('end', () => resolve({ status: res.statusCode, location: res.headers.location })); });
518
+ req.on('error', reject);
519
+ req.end();
520
+ });
521
+ }
522
+
523
+ test('the apex /deploy sends the owner to the hall\'s door for the same project (task 1004736)', async () => {
524
+ const port = await startServer({ [MODULE_ENV]: '1' });
525
+ for (const p of ['/deploy?project=toast', '/deploy.html?project=toast', '/deploy/?project=toast']) {
526
+ const r = await getOn(port, p, 'hall.test');
527
+ assert.equal(r.status, 302, p);
528
+ assert.equal(r.location, 'https://builders.hall.test/deploy?project=toast', `${p}: the project is carried, so the door opens on it`);
529
+ }
530
+ const bare = await getOn(port, '/deploy', 'hall.test');
531
+ assert.equal(bare.location, 'https://builders.hall.test/deploy', 'no project → the door itself');
532
+ for (const p of ['/deployments', '/deploy/x', '/api/deploy']) {
533
+ const r = await getOn(port, p, 'hall.test');
534
+ assert.notEqual(String(r.location || '').includes('builders.hall.test/deploy'), true, `${p} is not the door`);
535
+ }
536
+ const onHall = await getOn(port, '/deploy?project=toast', 'builders.hall.test');
537
+ assert.doesNotMatch(String(onHall.location || ''), /^https:\/\/builders\./, 'on the hall itself the page is served, not bounced');
538
+ });
539
+
507
540
  // ── the project's OWN update rule reaches the offer (task 1004535) ────────────
508
541
  //
509
542
  // The live defect, 2026-10-02: cloudbongos's rule on /deploy is `minor` and the sweep