@bongos/core 1.24.42 → 1.24.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.bongos-core.json +108 -103
- package/docs/copy-inventory.md +115 -165
- package/docs/copy-registry.json +230 -781
- package/docs/file-map.md +1 -1
- package/docs/module-api-changelog.md +4 -0
- package/docs/onboarding/primer.md +1 -1
- package/docs/page-inventory.json +10 -38
- package/docs/page-readings.json +528 -627
- package/modules/hall-ui/public/ai-studio.html +4 -4
- package/modules/hall-ui/public/atlas.html +4 -4
- package/modules/hall-ui/public/blockers.html +4 -4
- package/modules/hall-ui/public/board-room.html +4 -4
- package/modules/hall-ui/public/builders.js +22 -505
- package/modules/hall-ui/public/city.html +4 -4
- package/modules/hall-ui/public/collab.html +4 -4
- package/modules/hall-ui/public/commands.html +4 -4
- package/modules/hall-ui/public/copy-desk.html +4 -4
- package/modules/hall-ui/public/craft-mode.js +2 -2
- package/modules/hall-ui/public/deploy.html +4 -4
- package/modules/hall-ui/public/dom-utils.js +2 -1
- package/modules/hall-ui/public/goal-map.html +4 -4
- package/modules/hall-ui/public/goals.html +16 -4
- package/modules/hall-ui/public/government.html +4 -4
- package/modules/hall-ui/public/hall-render.js +23 -524
- package/modules/hall-ui/public/hall-widgets.js +11 -109
- package/modules/hall-ui/public/idea.html +4 -4
- package/modules/hall-ui/public/ideas.html +4 -4
- package/modules/hall-ui/public/index.html +6 -19
- package/modules/hall-ui/public/index.states.json +0 -33
- package/modules/hall-ui/public/market-watch-item.html +4 -4
- package/modules/hall-ui/public/market-watch-rules.html +4 -4
- package/modules/hall-ui/public/market-watch.html +4 -4
- package/modules/hall-ui/public/modules.html +4 -4
- package/modules/hall-ui/public/money.html +4 -4
- package/modules/hall-ui/public/my-agents.html +4 -4
- package/modules/hall-ui/public/palette.js +7 -6
- package/modules/hall-ui/public/primer.html +4 -4
- package/modules/hall-ui/public/profile-own.js +639 -0
- package/modules/hall-ui/public/profile.css +2 -1
- package/modules/hall-ui/public/profile.html +48 -5
- package/modules/hall-ui/public/profile.js +27 -2
- package/modules/hall-ui/public/profile.states.json +18 -0
- package/modules/hall-ui/public/project-settings.html +4 -4
- package/modules/hall-ui/public/roadmap.css +7 -138
- package/modules/hall-ui/public/roadmap.js +35 -293
- package/modules/hall-ui/public/roster.html +4 -4
- package/modules/hall-ui/public/settings.html +4 -4
- package/modules/hall-ui/public/shell-trail.js +2 -1
- package/modules/hall-ui/public/shell.js +31 -28
- package/modules/hall-ui/public/street.html +4 -4
- package/modules/hall-ui/public/studio.html +4 -4
- package/modules/hall-ui/public/task.html +4 -4
- package/modules/hall-ui/public/thinking.html +4 -4
- package/modules/hall-ui/public/tweak-editor.html +4 -4
- package/modules/hall-ui/public/watch.html +4 -4
- package/modules/hall-ui/public/work.html +5 -5
- package/modules/onboarding/founding-mode.js +2 -1
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/release-notes.json +12 -0
- package/scripts/bongos/gen-hall-sitemap.js +1 -0
- package/src/bongos/serve-internal.js +6 -6
- package/src/module-api.js +1 -1
- package/tests/craft_mode_nav.mjs +2 -1
- package/tests/curve_controls_delegation.mjs +9 -8
- package/tests/curve_kind_overlay.mjs +5 -5
- package/tests/founding_mode.mjs +5 -3
- package/tests/hall_acclaim_vote_control.mjs +5 -3
- package/tests/hall_audit.mjs +10 -6
- package/tests/hall_board_world.mjs +40 -26
- package/tests/hall_builders_page_pass.mjs +14 -5
- package/tests/hall_goals_band.mjs +88 -0
- package/tests/hall_home_ships_bounded.mjs +10 -21
- package/tests/hall_kit_charts.mjs +7 -5
- package/tests/hall_loading.mjs +2 -1
- package/tests/hall_nav.mjs +41 -39
- package/tests/hall_numbers_page.mjs +100 -0
- package/tests/hall_page_gate_map.mjs +5 -1
- package/tests/hall_palette.mjs +19 -24
- package/tests/hall_profile_world.mjs +7 -2
- package/tests/hall_reading_room.mjs +3 -2
- package/tests/hall_reading_world.mjs +17 -18
- package/tests/hall_sitemap.mjs +2 -1
- package/tests/helpers.mjs +8 -2
- package/tests/leaderboard_roles.mjs +1 -1
- package/tests/module_contributions.mjs +6 -4
- package/tests/nav_permission_atoms.mjs +4 -2
- package/tests/page_tweak_artist.mjs +2 -1
- package/tests/rank_tier_single_source.mjs +3 -0
- package/tests/task_visuals.mjs +3 -1
- package/modules/hall-ui/public/roadmap.html +0 -58
- package/modules/hall-ui/public/roadmap.states.json +0 -31
|
@@ -236,7 +236,7 @@ function extract(src, start, end) {
|
|
|
236
236
|
|
|
237
237
|
await test('the standing card adds the place inside the builder\'s main role, only when it says something new', () => {
|
|
238
238
|
const src = read('modules/hall-ui/public/hall-render.js');
|
|
239
|
-
const code = extract(src, 'const lbState = { rows: [] };', ' return {
|
|
239
|
+
const code = extract(src, 'const lbState = { rows: [] };', ' return { lbState');
|
|
240
240
|
const sandbox = { rows: FIX.leaderboard };
|
|
241
241
|
vm.createContext(sandbox);
|
|
242
242
|
vm.runInContext(`${code}; lbState.rows = rows; this.place = leaderboardPlace; this.text = rolePlaceText;`, sandbox);
|
|
@@ -314,11 +314,13 @@ test('hall-widget registry: placement rules reject bad registrations, accept goo
|
|
|
314
314
|
assert.ok(reg({ id: 'e', view: 'home', zone: 'home-main', summary: true }));
|
|
315
315
|
assert.ok(reg({ id: 'f', view: 'home', zone: 'home-main', collapsedByDefault: true }));
|
|
316
316
|
assert.ok(reg({ id: 'g', view: 'home', zone: 'home-main', core: true }));
|
|
317
|
-
//
|
|
318
|
-
|
|
317
|
+
// task 1005050: 'standing' (Accomplishments) left the views with the view
|
|
318
|
+
// itself — it folded into the Profile page — so a widget naming it is refused.
|
|
319
|
+
assert.equal(reg({ id: 'h', view: 'standing', group: 'work' }), null);
|
|
320
|
+
assert.match(errors.at(-1), /unknown view "standing"/);
|
|
319
321
|
|
|
320
|
-
// only the accepted
|
|
321
|
-
assert.deepEqual(OTB.hallWidgetIds(), ['e', 'f', 'g'
|
|
322
|
+
// only the accepted three reached the registry
|
|
323
|
+
assert.deepEqual(OTB.hallWidgetIds(), ['e', 'f', 'g']);
|
|
322
324
|
} finally {
|
|
323
325
|
console.error = realError;
|
|
324
326
|
delete global.window;
|
|
@@ -97,8 +97,10 @@ test('the hall-preview fixture carries every atom /me resolves', () => {
|
|
|
97
97
|
// core-update banner; task 1005045: the Market Watch settings item left (one sidebar item);
|
|
98
98
|
// task 1005046: Ranks, Economy and Diagrams left Docs (one reading room, the Primer);
|
|
99
99
|
// task 1005049: Sessions and Autobongos left the sidebar (tabs on Watch);
|
|
100
|
-
// task 1005076: the setup flow's holdForSetup
|
|
101
|
-
|
|
100
|
+
// task 1005076: the setup flow's holdForSetup;
|
|
101
|
+
// task 1005050: Accomplishments left it (folded into Profile; its hashes redirect);
|
|
102
|
+
// task 1005051: Roadmap left it (folded into Goals; /roadmap redirects).
|
|
103
|
+
const SHELL_SHA = '5e52e0337239f532';
|
|
102
104
|
|
|
103
105
|
test('shell.js has not changed without its cache-bust being bumped', () => {
|
|
104
106
|
const actual = crypto.createHash('sha256').update(SHELL).digest('hex').slice(0, 16);
|
|
@@ -195,7 +195,8 @@ await test('the status page and the acclaim feed render the helper', () => {
|
|
|
195
195
|
const status = readFileSync(new URL('../modules/status-ui/public/status.js', import.meta.url), 'utf8');
|
|
196
196
|
assert.match(status, /t\.helper_display_name \|\| t\.helper_login/);
|
|
197
197
|
assert.match(status, /with help from \$\{helper\}/);
|
|
198
|
-
|
|
198
|
+
// task 1005050: the acclaim feed moved with Accomplishments to the profile's "Just you" screen.
|
|
199
|
+
const hall = readFileSync(new URL('../modules/hall-ui/public/profile-own.js', import.meta.url), 'utf8');
|
|
199
200
|
assert.match(hall, /with help from \$\{escapeHtml\(helperName\)\}/, 'escaped before it reaches innerHTML');
|
|
200
201
|
const feed = readFileSync(new URL('../modules/lifecycle/routes/tasks.js', import.meta.url), 'utf8');
|
|
201
202
|
assert.match(feed, /helper\.helper_login, helper\.helper_display_name/, 'the acclaim feed carries the helper');
|
|
@@ -93,6 +93,9 @@ const STATIC_LADDER_FILES = [
|
|
|
93
93
|
'modules/discord/discord-channels.js',
|
|
94
94
|
'modules/memory/search.js',
|
|
95
95
|
'modules/hall-ui/public/profile.js',
|
|
96
|
+
// task 1005050: Where you stand moved with Accomplishments to the profile's "Just
|
|
97
|
+
// you" screen and reads the rung above yours off this ladder.
|
|
98
|
+
'modules/hall-ui/public/profile-own.js',
|
|
96
99
|
// task 1005048: the rank <select> on each roster row moved from watch.js to the
|
|
97
100
|
// Builders page with the roster itself; the copy moved with it.
|
|
98
101
|
'modules/hall-ui/public/roster.js',
|
package/tests/task_visuals.mjs
CHANGED
|
@@ -280,7 +280,9 @@ await t('the callers reach for OTBVisual, and no longer for the kit', () => {
|
|
|
280
280
|
assert.ok(!/OTBKit(\.|\[')?\s*(shipVisualThumbHtml|taskVisualFigureHtml|isTaskVisualUrl)/.test(src),
|
|
281
281
|
`${f} still reads a visual renderer off OTBKit`);
|
|
282
282
|
}
|
|
283
|
-
|
|
283
|
+
// task 1005050: Home's ship ledger (the one hall-render.js thumbnail) left with
|
|
284
|
+
// Accomplishments; the Profile's Works ledger is the ship-thumbnail caller now.
|
|
285
|
+
assert.ok(HALL('profile.js').includes('window.OTBVisual.shipVisualThumbHtml'));
|
|
284
286
|
assert.ok(HALL('studio.js').includes('vis.taskVisualFigureHtml('));
|
|
285
287
|
});
|
|
286
288
|
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
<!doctype html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8">
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
-
<title>Roadmap — {{worldName}}</title>
|
|
7
|
-
<meta name="description" content="How the whole build is doing — the program at a glance, then each version — {{worldName}}.">
|
|
8
|
-
<link rel="icon" href="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><text x='16' y='24' font-size='24' text-anchor='middle' font-family='sans-serif'>⌂</text></svg>">
|
|
9
|
-
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
10
|
-
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
11
|
-
<link rel="stylesheet" href="/builders/style.css?v=2026-07-24-deck1">
|
|
12
|
-
<link rel="stylesheet" href="/builders/roadmap.css">
|
|
13
|
-
</head>
|
|
14
|
-
<body data-page="roadmap" data-page-title="Roadmap">
|
|
15
|
-
|
|
16
|
-
<div class="app">
|
|
17
|
-
<aside class="app-sidebar" id="app-sidebar" aria-label="Primary"></aside>
|
|
18
|
-
<div class="app-scrim" id="app-scrim" hidden></div>
|
|
19
|
-
<div class="app-body">
|
|
20
|
-
<header class="app-topbar" id="app-topbar"></header>
|
|
21
|
-
<div class="app-content">
|
|
22
|
-
<!-- The page had no <h1> at all before task 1003306, so it failed
|
|
23
|
-
one-header-main-h1 on every render. The deck takes the BOARD voice,
|
|
24
|
-
not the reading room's: it is a working surface whose figures are the
|
|
25
|
-
thing to look at, and its own name is the quietest thing on it. -->
|
|
26
|
-
<div class="page-head page-head--board">
|
|
27
|
-
<h1 class="page-head__h">Roadmap</h1>
|
|
28
|
-
<p class="page-head__sub" id="roadmap-sub">Loading the roadmap…</p>
|
|
29
|
-
</div>
|
|
30
|
-
|
|
31
|
-
<main id="hall-main">
|
|
32
|
-
<div id="rm-root">
|
|
33
|
-
<div class="hall-loading hall-loading--page" role="status">Loading the roadmap…</div>
|
|
34
|
-
</div>
|
|
35
|
-
</main>
|
|
36
|
-
|
|
37
|
-
<footer class="app-foot" id="app-foot"></footer>
|
|
38
|
-
</div>
|
|
39
|
-
</div>
|
|
40
|
-
</div>
|
|
41
|
-
|
|
42
|
-
<div id="toast" class="toast" role="status" aria-live="polite" data-visible="0"></div>
|
|
43
|
-
|
|
44
|
-
<script src="/builders/dom-utils.js?v=2026-10-25-escape"></script>
|
|
45
|
-
<script src="/builders/shell-trail.js?v=2026-10-08-city-tab"></script>
|
|
46
|
-
<script src="/builders/craft-mode.js?v=2026-11-05-oversight"></script>
|
|
47
|
-
<script src="/builders/shell.js?v=2026-11-05-setup-gate"></script>
|
|
48
|
-
<!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
|
|
49
|
-
<script src="/builders/palette.js" defer></script>
|
|
50
|
-
<!-- The chart kit and the timeline's series builders (task 1003447). Both MUST
|
|
51
|
-
precede roadmap.js: the page reads window.OTBKit / window.OTBRoadmapTimeline
|
|
52
|
-
at render time, so loading either after would be a blank section in
|
|
53
|
-
production and a green unit suite. tests/hall_kit_charts.mjs pins the order. -->
|
|
54
|
-
<script src="/builders/hall-kit.js"></script>
|
|
55
|
-
<script src="/builders/roadmap-timeline.js"></script>
|
|
56
|
-
<script src="/builders/roadmap.js?v=2026-09-03-timeline"></script>
|
|
57
|
-
</body>
|
|
58
|
-
</html>
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"_": "The hall's roadmap deck through modules/ui-design/kit/render.js (task 1003306). The deck is the hall's densest figure surface — a hero band, four status groups and a summarised goal layer per version — so its floors are the 24px one (the goal rows are links in a tight list) and horizontal overflow at 320.",
|
|
3
|
-
"page": "/builders/roadmap",
|
|
4
|
-
"surface": "hall-ui",
|
|
5
|
-
"stub": { "prefix": "/builders/" },
|
|
6
|
-
"modeQuery": false,
|
|
7
|
-
"_feeds": "The kit's stub carries the public-landing fixtures, not the hall's versions/goals feeds, so the deck renders its EMPTY state here and the feed 404s are declared, never hidden. The populated deck is the hall-preview harness's job: node scripts/hall-preview/server.js --port 4612 --fixture-me, then this same file with --base-in/--base-out pointed at it.",
|
|
8
|
-
"ignoreRequests": [
|
|
9
|
-
"/api/(gds|bongos)/me$",
|
|
10
|
-
"/api/(gds|bongos)/me/",
|
|
11
|
-
"/api/(gds|bongos)/versions",
|
|
12
|
-
"/api/(gds|bongos)/goals",
|
|
13
|
-
"/api/(gds|bongos)/tasks",
|
|
14
|
-
"/api/(gds|bongos)/inbox/",
|
|
15
|
-
"/api/(gds|bongos)/public/"
|
|
16
|
-
],
|
|
17
|
-
"ignoreConsole": [
|
|
18
|
-
"/api/(gds|bongos)/",
|
|
19
|
-
"\\b401\\b",
|
|
20
|
-
"\\b404\\b",
|
|
21
|
-
"Unauthorized",
|
|
22
|
-
"Not Found",
|
|
23
|
-
"load failed",
|
|
24
|
-
"roadmap"
|
|
25
|
-
],
|
|
26
|
-
"states": {
|
|
27
|
-
"in": { "auth": true, "expect": { "visible": ["#rm-root"] } },
|
|
28
|
-
"out": { "auth": false }
|
|
29
|
-
},
|
|
30
|
-
"reducedMotion": { "auth": true }
|
|
31
|
-
}
|