@bongos/core 1.24.26 → 1.24.28

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 (109) hide show
  1. package/.bongos-core.json +164 -109
  2. package/docs/adr/0307-autobongos-a-deterministic-supervisor-and-agentic-workers.md +12 -0
  3. package/docs/copy-inventory.md +242 -223
  4. package/docs/copy-registry.json +559 -358
  5. package/docs/module-api-changelog.md +4 -0
  6. package/docs/page-inventory.json +18 -6
  7. package/docs/page-readings.json +4399 -4315
  8. package/docs/recipes/ui-look-before-you-ship.md +1 -0
  9. package/modules/autonomy/fence.js +16 -1
  10. package/modules/government/protected-surfaces.json +2 -0
  11. package/modules/hall-ui/public/ai-studio.html +1 -1
  12. package/modules/hall-ui/public/atlas.html +1 -1
  13. package/modules/hall-ui/public/blockers.html +1 -1
  14. package/modules/hall-ui/public/board-room.html +1 -1
  15. package/modules/hall-ui/public/city.html +1 -1
  16. package/modules/hall-ui/public/collab.html +1 -1
  17. package/modules/hall-ui/public/commands.html +1 -1
  18. package/modules/hall-ui/public/copy-desk.html +1 -1
  19. package/modules/hall-ui/public/core-move-notice.js +9 -6
  20. package/modules/hall-ui/public/deploy-handoff.js +203 -0
  21. package/modules/hall-ui/public/deploy.html +4 -2
  22. package/modules/hall-ui/public/deploy.js +7 -1
  23. package/modules/hall-ui/public/diagrams.html +1 -1
  24. package/modules/hall-ui/public/drachmae.html +1 -1
  25. package/modules/hall-ui/public/fleet.html +1 -1
  26. package/modules/hall-ui/public/gate.html +1 -1
  27. package/modules/hall-ui/public/goal-map.html +1 -1
  28. package/modules/hall-ui/public/goals.html +1 -1
  29. package/modules/hall-ui/public/government.html +1 -1
  30. package/modules/hall-ui/public/idea.html +1 -1
  31. package/modules/hall-ui/public/ideas.html +1 -1
  32. package/modules/hall-ui/public/index.html +1 -1
  33. package/modules/hall-ui/public/market-watch-item.html +1 -1
  34. package/modules/hall-ui/public/market-watch-rules.html +1 -1
  35. package/modules/hall-ui/public/market-watch-settings.html +1 -1
  36. package/modules/hall-ui/public/market-watch.html +1 -1
  37. package/modules/hall-ui/public/modules.html +1 -1
  38. package/modules/hall-ui/public/my-agents.css +72 -1
  39. package/modules/hall-ui/public/my-agents.html +31 -7
  40. package/modules/hall-ui/public/my-agents.js +63 -54
  41. package/modules/hall-ui/public/my-agents.states.json +18 -0
  42. package/modules/hall-ui/public/primer.html +1 -1
  43. package/modules/hall-ui/public/profile.html +1 -1
  44. package/modules/hall-ui/public/project-settings.html +1 -1
  45. package/modules/hall-ui/public/ranks.html +1 -1
  46. package/modules/hall-ui/public/roadmap.html +1 -1
  47. package/modules/hall-ui/public/roster.html +1 -1
  48. package/modules/hall-ui/public/sessions.html +1 -1
  49. package/modules/hall-ui/public/settings-software-update.js +22 -8
  50. package/modules/hall-ui/public/settings.css +2 -132
  51. package/modules/hall-ui/public/settings.html +15 -53
  52. package/modules/hall-ui/public/shell.js +25 -73
  53. package/modules/hall-ui/public/speciality-tools.css +140 -0
  54. package/modules/hall-ui/public/{settings-specialities.js → speciality-tools.js} +83 -6
  55. package/modules/hall-ui/public/street.html +1 -1
  56. package/modules/hall-ui/public/studio.html +1 -1
  57. package/modules/hall-ui/public/style.css +119 -39
  58. package/modules/hall-ui/public/task.html +1 -1
  59. package/modules/hall-ui/public/thinking.html +1 -1
  60. package/modules/hall-ui/public/tweak-editor.html +1 -1
  61. package/modules/hall-ui/public/update-pill.js +623 -0
  62. package/modules/hall-ui/public/watch.html +1 -1
  63. package/modules/hall-ui/public/work.html +1 -1
  64. package/modules/hall-ui/records/my-agents.md +4 -2
  65. package/modules/hall-ui/records/panel-family.md +2 -0
  66. package/modules/hall-ui/records/update-pill.md +12 -0
  67. package/modules/lifecycle/github-push.js +1 -0
  68. package/modules/lifecycle/routes/tasks.js +2 -2
  69. package/modules/lifecycle/runner-self-guard.js +122 -0
  70. package/modules/lifecycle/runner-self.js +154 -0
  71. package/modules/public-landing/public/account.html +3 -3
  72. package/modules/public-landing/public/assets/cosmos.css +45 -0
  73. package/modules/public-landing/public/community.html +4 -4
  74. package/modules/public-landing/public/connections.html +1 -1
  75. package/modules/public-landing/public/guild.html +1 -1
  76. package/modules/public-landing/public/invitations.html +4 -4
  77. package/modules/public-landing/public/projects.html +26 -26
  78. package/modules/status-ui/public/index.html +2 -2
  79. package/modules/status-ui/public/index.states.json +12 -0
  80. package/modules/status-ui/public/status.js +10 -2
  81. package/modules/status-ui/public/style.css +57 -0
  82. package/modules/ui-design/kit/README.md +1 -1
  83. package/modules/ui-design/kit/serve.js +8 -1
  84. package/package-lock.json +2 -2
  85. package/package.json +1 -1
  86. package/release-notes.json +20 -0
  87. package/scripts/bongos/autobongos-loop.js +4 -0
  88. package/scripts/bongos/autobongos-run.js +21 -4
  89. package/scripts/bongos/autobongos-tweak-lane.js +5 -3
  90. package/scripts/bongos/ship-flow.js +20 -0
  91. package/scripts/hall-preview/server.js +4 -0
  92. package/src/module-api.js +1 -1
  93. package/tests/autobongos_host_access.mjs +5 -3
  94. package/tests/autobongos_self_modification.mjs +420 -0
  95. package/tests/core_update_banner.mjs +6 -92
  96. package/tests/core_upgrade_owner_door.mjs +4 -56
  97. package/tests/deploy_handoff.mjs +206 -0
  98. package/tests/government_protected_surfaces.mjs +15 -0
  99. package/tests/hall_loading.mjs +3 -1
  100. package/tests/hall_my_agents.mjs +104 -2
  101. package/tests/helpers.mjs +161 -0
  102. package/tests/hub_connections_page.mjs +1 -1
  103. package/tests/hub_invitations_page.mjs +1 -1
  104. package/tests/loading_mark.mjs +203 -0
  105. package/tests/nav_permission_atoms.mjs +3 -2
  106. package/tests/software_update.mjs +6 -2
  107. package/tests/speciality_offer_ui.mjs +182 -149
  108. package/tests/speciality_walkthrough_ui.mjs +180 -161
  109. package/tests/update_pill.mjs +431 -0
@@ -231,7 +231,7 @@
231
231
  <script src="/builders/dom-utils.js?v=2026-10-25-escape"></script>
232
232
  <script src="/builders/shell-trail.js?v=2026-10-08-city-tab"></script>
233
233
  <script src="/builders/craft-mode.js?v=2026-10-30-market-watch"></script>
234
- <script src="/builders/shell.js?v=2026-10-30-github-chip"></script>
234
+ <script src="/builders/shell.js?v=2026-11-03-update-pill"></script>
235
235
  <script src="/builders/palette.js" defer></script>
236
236
  <script src="/builders/gov-living.js?v=2026-10-09-positions1"></script>
237
237
  <script src="/builders/gov-feeds.js?v=2026-10-09-living3"></script>
@@ -219,7 +219,7 @@
219
219
  <script src="/builders/dom-utils.js?v=2026-10-25-escape"></script>
220
220
  <script src="/builders/shell-trail.js?v=2026-10-08-city-tab"></script>
221
221
  <script src="/builders/craft-mode.js?v=2026-10-30-market-watch"></script>
222
- <script src="/builders/shell.js?v=2026-10-30-github-chip"></script>
222
+ <script src="/builders/shell.js?v=2026-11-03-update-pill"></script>
223
223
  <script src="/builders/palette.js" defer></script>
224
224
  <!-- The kit, for its ONE renderer: the full-size ship-time visual figure
225
225
  (task 1003829), which the older reviews still show. -->
@@ -1038,54 +1038,134 @@ html[data-theme="dark"] .gplate__light { display: none; }
1038
1038
  line-height: 1;
1039
1039
  cursor: pointer;
1040
1040
  }
1041
- /* Core-update banner (task 1004045) — rendered by shell.js when this instance is
1042
- behind the newest published core. Deliberately the accent, not the warning
1043
- colour the denial notice uses: being a release behind is news, not a fault. */
1044
- .core-update-notice {
1045
- display: flex;
1046
- align-items: baseline;
1047
- gap: 12px;
1048
- padding: 10px 22px;
1049
- font-size: 13px;
1050
- color: var(--accent);
1051
- background: var(--accent-weak, var(--warn-weak));
1052
- border-bottom: 1px solid var(--rule-soft);
1041
+ /* ---------- the Update pill and its card (task 1005041, update-pill.js) ----------
1042
+ The owner: the full-width update banners were "way too obstructing"; it should feel
1043
+ like the Claude app's "restart to update". So the news is a quiet pill in the top bar
1044
+ (the Link GitHub chip's shape, one step louder: the accent dot), and everything else
1045
+ lives in a small card under it. The same card carries the one-time "Bongos is updated"
1046
+ note (core-move-notice.js), pinned to the same corner. */
1047
+ .upd-pill {
1048
+ display: inline-flex;
1049
+ align-items: center;
1050
+ gap: 6px;
1051
+ min-height: 28px;
1052
+ min-width: 28px;
1053
+ padding: 0 11px 0 9px;
1054
+ border: 1px solid var(--rule);
1055
+ border-radius: var(--radius-pill);
1056
+ background: var(--bg-card);
1057
+ color: var(--ink);
1058
+ font: inherit;
1059
+ font-size: 12px;
1060
+ font-weight: 500;
1061
+ line-height: 1;
1062
+ white-space: nowrap;
1063
+ flex-shrink: 0;
1064
+ cursor: pointer;
1053
1065
  }
1054
- .core-update-notice__action {
1055
- margin-left: auto;
1056
- font-weight: 600;
1057
- color: inherit;
1066
+ .upd-pill:hover { border-color: var(--ink-faint); }
1067
+ .upd-pill:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
1068
+ .upd-pill__dot { width: 7px; height: 7px; border-radius: 50%; background: var(--accent); flex-shrink: 0; }
1069
+ .upd-pill[data-face="held"] .upd-pill__dot { background: var(--ink-faint); }
1070
+ .upd-pill[data-face="done"] { background: var(--accent); border-color: var(--accent); color: var(--accent-on); }
1071
+ .upd-pill[data-face="done"] .upd-pill__dot { background: var(--accent-on); }
1072
+ .upd-pill[data-face="done"]:hover { background: var(--accent-lift); border-color: var(--accent-lift); }
1073
+ /* The running face turns a ring. The Kill Switch stops it, and the label still says
1074
+ "Updating…", so the rest frame is the whole message. */
1075
+ .upd-pill__spin {
1076
+ width: 10px; height: 10px;
1077
+ border: 1.5px solid var(--rule);
1078
+ border-top-color: var(--accent);
1079
+ border-radius: 50%;
1080
+ flex-shrink: 0;
1081
+ animation: upd-turn 0.9s linear infinite;
1058
1082
  }
1059
- /* The banner on /deploy itself: it still announces the release, but points at the
1060
- control instead of linking to the page the reader is already on (task 1004145). */
1061
- .core-update-notice__hint {
1062
- margin-left: auto;
1063
- color: var(--ink-soft);
1083
+ @keyframes upd-turn { to { transform: rotate(360deg); } }
1084
+
1085
+ .upd-card {
1086
+ position: fixed;
1087
+ top: 64px;
1088
+ right: 16px;
1089
+ z-index: calc(var(--z-sidebar) + 5);
1090
+ width: min(360px, calc(100vw - 32px));
1091
+ max-height: calc(100vh - 96px);
1092
+ overflow-y: auto;
1093
+ padding: 16px 18px 18px;
1094
+ border: 1px solid var(--rule-soft);
1095
+ border-radius: var(--radius);
1096
+ background: var(--bg-card);
1097
+ color: var(--ink);
1098
+ box-shadow: var(--shadow-pop);
1099
+ font-size: 13px;
1100
+ line-height: 1.5;
1064
1101
  }
1065
- .core-update-notice__close {
1066
- min-width: 24px;
1067
- min-height: 24px;
1102
+ .upd-card[hidden] { display: none; }
1103
+ .upd-card p { margin: 0 0 8px; }
1104
+ .upd-card__h { margin: 0 32px 8px 0; font-size: 15px; font-weight: 600; line-height: 1.3; }
1105
+ .upd-card__close {
1106
+ position: absolute;
1107
+ top: 10px; right: 10px;
1108
+ width: 28px; height: 28px;
1068
1109
  border: 0;
1110
+ border-radius: var(--radius-pill);
1069
1111
  background: none;
1070
- color: inherit;
1071
- font-size: 16px;
1112
+ color: var(--ink-soft);
1113
+ font-size: 18px;
1072
1114
  line-height: 1;
1073
1115
  cursor: pointer;
1074
1116
  }
1075
- /* With no action link the close button still sits hard right. */
1076
- .core-update-notice__action + .core-update-notice__close { margin-left: 0; }
1077
- .core-update-notice > span + .core-update-notice__close { margin-left: auto; }
1078
- /* "Upgraded to core X on <date>" and what changed (task 1004731): the same strip, with the
1079
- release-note lines under the sentence in the body ink; it wraps on a phone. */
1080
- .core-move-notice { flex-wrap: wrap; }
1081
- .core-move-notice__body { flex: 1 1 20rem; min-width: 0; }
1082
- .core-move-notice__list {
1083
- margin: 4px 0 0;
1084
- padding-left: 1.15rem;
1085
- max-width: var(--measure, 68ch);
1086
- color: var(--ink-soft);
1117
+ .upd-card__close:hover { background: var(--glass-strong); color: var(--ink); }
1118
+ .upd-card__list { margin: 0 0 10px; padding-left: 1.1rem; color: var(--ink-soft); }
1119
+ .upd-card__list li + li { margin-top: 4px; }
1120
+ .upd-card__note { color: var(--ink-soft); }
1121
+ .upd-card__ver { color: var(--ink-faint); font-size: 12px; }
1122
+ .upd-card__err { color: var(--danger); }
1123
+ .upd-ver { font-family: var(--font-mono); font-size: 12px; }
1124
+ .upd-card__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
1125
+ .upd-btn {
1126
+ display: inline-flex;
1127
+ align-items: center;
1128
+ justify-content: center;
1129
+ min-height: 36px;
1130
+ padding: 0 14px;
1131
+ border: 1px solid var(--glass-edge);
1132
+ border-radius: var(--radius-pill);
1133
+ background: transparent;
1134
+ color: var(--ink);
1135
+ font: inherit;
1136
+ font-size: 13px;
1137
+ text-decoration: none;
1138
+ cursor: pointer;
1087
1139
  }
1088
- .core-move-notice__list li + li { margin-top: 2px; }
1140
+ .upd-btn:hover { background: var(--glass-strong); text-decoration: none; }
1141
+ .upd-btn:focus-visible, .upd-card__close:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
1142
+ .upd-btn--go { background: var(--accent); border-color: var(--accent); color: var(--accent-on); font-weight: 500; }
1143
+ .upd-btn--go:hover { background: var(--accent-lift); border-color: var(--accent-lift); }
1144
+ .upd-btn:disabled { opacity: 1; color: var(--ink-faint); background: var(--glass); border-color: var(--glass-edge); cursor: default; }
1145
+ /* An indeterminate bar: how long an upgrade takes is not known here, so it never fills. */
1146
+ .upd-track { position: relative; height: 4px; margin: 4px 0 10px; border-radius: 2px; background: var(--glass-strong); overflow: hidden; }
1147
+ .upd-track span {
1148
+ position: absolute; top: 0; bottom: 0; left: 0;
1149
+ width: 40%;
1150
+ border-radius: 2px;
1151
+ background: var(--accent);
1152
+ animation: upd-slide 1.6s ease-in-out infinite;
1153
+ }
1154
+ @keyframes upd-slide { 0% { transform: translateX(-100%); } 100% { transform: translateX(250%); } }
1155
+ /* The one-time note sits under the top bar's right end too, on every page that loads it. */
1156
+ .upd-card--note { top: 64px; }
1157
+ @media (max-width: 640px) {
1158
+ .upd-card { right: 16px; left: 16px; width: auto; }
1159
+ }
1160
+ /* The hub's handoff window (deploy-handoff.js): a small popup with nothing in it but the card.
1161
+ The shell still runs (it signs the viewer in), so its chrome is hidden, not removed. */
1162
+ html[data-handoff="on"] .app-sidebar,
1163
+ html[data-handoff="on"] .app-topbar,
1164
+ html[data-handoff="on"] .app-foot,
1165
+ html[data-handoff="on"] .upd-pill,
1166
+ html[data-handoff="on"] .core-move-notice { display: none; }
1167
+ html[data-handoff="on"] .app-content { padding: 0; }
1168
+ .upd-card--handoff { position: static; width: auto; max-width: 420px; max-height: none; margin: 24px auto; box-shadow: none; }
1089
1169
  .topbar-menu {
1090
1170
  display: none;
1091
1171
  align-items: center;
@@ -59,7 +59,7 @@
59
59
  <script src="/builders/dom-utils.js?v=2026-10-25-escape"></script>
60
60
  <script src="/builders/shell-trail.js?v=2026-10-08-city-tab"></script>
61
61
  <script src="/builders/craft-mode.js?v=2026-10-30-market-watch"></script>
62
- <script src="/builders/shell.js?v=2026-10-30-github-chip"></script>
62
+ <script src="/builders/shell.js?v=2026-11-03-update-pill"></script>
63
63
  <!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
64
64
  <script src="/builders/palette.js" defer></script>
65
65
  <!-- task-detail.js still owns the #/idea/N and #/blocker/N deep-link overlay
@@ -141,7 +141,7 @@
141
141
  <script src="/builders/dom-utils.js?v=2026-10-25-escape"></script>
142
142
  <script src="/builders/shell-trail.js?v=2026-10-08-city-tab"></script>
143
143
  <script src="/builders/craft-mode.js?v=2026-10-30-market-watch"></script>
144
- <script src="/builders/shell.js?v=2026-10-30-github-chip"></script>
144
+ <script src="/builders/shell.js?v=2026-11-03-update-pill"></script>
145
145
  <script src="/builders/palette.js" defer></script>
146
146
 
147
147
  <script src="/builders/idea-objects.js?v=2026-09-27-split"></script>
@@ -145,7 +145,7 @@
145
145
  <script src="/builders/dom-utils.js?v=2026-10-25-escape"></script>
146
146
  <script src="/builders/shell-trail.js?v=2026-10-08-city-tab"></script>
147
147
  <script src="/builders/craft-mode.js?v=2026-10-30-market-watch"></script>
148
- <script src="/builders/shell.js?v=2026-10-30-github-chip"></script>
148
+ <script src="/builders/shell.js?v=2026-11-03-update-pill"></script>
149
149
  <script src="/builders/palette.js" defer></script>
150
150
  <script src="/builders/brand-holes.js?v=2026-09-29-aqfix"></script>
151
151
  <script src="/builders/tweak-editor-lib.js?v=2026-09-29-tw27"></script>